Главная » Шпаргалка » DELPHI INTERBASE FireBird » Работа с StrinGrid

Работа с 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.