Работа с StrinGrid
// кусок кода из программы для работы с StrinGrid
unit U_AnalizRinka;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids,ShellApi, ExtCtrls ;
type
TF_AnalizRinka = class(TForm)
GroupBox1: TGroupBox;
SG_Analiz: TStringGrid;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
BB_Search: TBitBtn;
Button2: TButton;
SG_Preff: TStringGrid;
BitBtn1: TBitBtn;
GroupBox2: TGroupBox;
Splitter1: TSplitter;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure LoadGrid;
procedure SaveGrid;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure SG_PreffSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure BitBtn4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_AnalizRinka: TF_AnalizRinka;
del1:integer;
implementation
uses UDM;
{$R *.dfm}
procedure TF_AnalizRinka.BitBtn1Click(Sender: TObject);
begin
//кнопка сохранить стрингрид
SaveGrid;
end;
procedure TF_AnalizRinka.SaveGrid;
var
f: textfile;
x, y: integer;
begin
//процедура записи стрин грида в фаил
assignfile(f, ExtractFilePath(Application.EXEName)+'Templates\config\AnalisRinka.ini');
rewrite(f);
writeln(f, SG_Preff.colcount);
writeln(f, SG_Preff.rowcount);
for X := 0 to SG_Preff.colcount - 1 do
for y := 0 to SG_Preff.rowcount - 1 do
writeln(F, SG_Preff.cells[x, y]);
closefile(f);
end;
procedure TF_AnalizRinka.LoadGrid;
var
f: textfile;
temp, x, y: integer;
tempstr: string;
begin
// прцедура чтения в стрингрид из файла
if FileExists(ExtractFilePath(Application.EXEName)+'Templates\config\AnalisRinka.ini')
then begin
assignfile(f, ExtractFilePath(Application.EXEName)+'Templates\config\AnalisRinka.ini');
reset(f);
readln(f, temp);
SG_Preff.colcount := temp;
readln(f, temp);
SG_Preff.rowcount := temp;
for X := 0 to SG_Preff.colcount - 1 do
for y := 0 to SG_Preff.rowcount - 1 do
begin
readln(F, tempstr);
SG_Preff.cells[x, y] := tempstr;
end;
closefile(f);
end;
SG_Preff.Cells[0,0]:='Название';
SG_Preff.Cells[1,0]:='Ссылка Hotline';
end;
procedure TF_AnalizRinka.FormCreate(Sender: TObject);
begin
//кнопка загрузить
LoadGrid;
end;
procedure TF_AnalizRinka.BitBtn2Click(Sender: TObject);
var
i,j: Integer;
begin
//удалить вібраную строку
j:=SG_Preff.Row; // строка с выделением
SG_Preff.Rows[j].Clear;
for i:=j to SG_Preff.RowCount-2 do
SG_Preff.Rows[i].Assign(SG_Preff.Rows[i+1]);
SG_Preff.RowCount:=SG_Preff.RowCount-1;
end;
procedure TF_AnalizRinka.SG_PreffSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//переменная выбраной строки
del1:=arow;
end;
procedure TF_AnalizRinka.BitBtn4Click(Sender: TObject);
begin
// добавить строку
SG_Preff.RowCount:=SG_Preff.RowCount+1
end;
procedure TF_AnalizRinka.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveGrid;
end;
end.