1 (edited by Vickus 2023-09-09 05:27:26)

Topic: Раскрашивание строки по чекбоксу

Добрый день!
Помогите, пожалуйста, с примером. Необходимо при клике на чекбокс в таблице, чтобы строка окрашивалась в любой цвет.
Спасибо!

Re: Раскрашивание строки по чекбоксу

Vickus wrote:

Добрый день!
Помогите, пожалуйста, с примером. Необходимо при клике на чекбокс в таблице, чтобы строка окрашивалась в любой цвет.
Спасибо!

procedure Form1_TableGrid1_OnEditAccept (Sender: TObject; ACol, ARow: Integer; Value: String; var Accept: Boolean);
var
i,CC: integer;
begin
  if (Form1.TableGrid1.Cell[ACol,ARow].AsBoolean = False) then
  begin
     CC := randomColor;
     for i:=0 to Form1.TableGrid1.Columns.Count-1 do
         Form1.TableGrid1.Cell[i,ARow].Color := CC;
  end else
    for i:=0 to Form1.TableGrid1.Columns.Count-1 do
         Form1.TableGrid1.Cell[i,ARow].Color := clWhite;
end;

function randomColor: integer;
var
RR:integer;
begin
  Randomize;
  RR := Random(7);
  CASE RR OF
  1: Result := clFuchsia;
  2: Result := clGray;
  3: Result := clGreen;
  4: Result := clNavy;
  5: Result := clTeal;
  6: Result := clAqua;
  7: Result := clHighlight;
  end;
end;

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  if (SQLExecute('SELECT COUNT(id) FROM template') = '0') then
     SQLExecute('INSERT INTO template(name)VALUES("Первое поле"),("Второе поле"),("Третье поле"),("Четвертое поле")');  
end;
Post's attachments

Attachment icon test.rar 4.37 kb, 61 downloads since 2023-09-09 

Re: Раскрашивание строки по чекбоксу

pavlenko.vladimir.v wrote:
Vickus wrote:

Добрый день!
Помогите, пожалуйста, с примером. Необходимо при клике на чекбокс в таблице, чтобы строка окрашивалась в любой цвет.
Спасибо!

procedure Form1_TableGrid1_OnEditAccept (Sender: TObject; ACol, ARow: Integer; Value: String; var Accept: Boolean);
var
i,CC: integer;
begin
  if (Form1.TableGrid1.Cell[ACol,ARow].AsBoolean = False) then
  begin
     CC := randomColor;
     for i:=0 to Form1.TableGrid1.Columns.Count-1 do
         Form1.TableGrid1.Cell[i,ARow].Color := CC;
  end else
    for i:=0 to Form1.TableGrid1.Columns.Count-1 do
         Form1.TableGrid1.Cell[i,ARow].Color := clWhite;
end;

function randomColor: integer;
var
RR:integer;
begin
  Randomize;
  RR := Random(7);
  CASE RR OF
  1: Result := clFuchsia;
  2: Result := clGray;
  3: Result := clGreen;
  4: Result := clNavy;
  5: Result := clTeal;
  6: Result := clAqua;
  7: Result := clHighlight;
  end;
end;

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  if (SQLExecute('SELECT COUNT(id) FROM template') = '0') then
     SQLExecute('INSERT INTO template(name)VALUES("Первое поле"),("Второе поле"),("Третье поле"),("Четвертое поле")');  
end;

СПАСИБО!!!