nie działa .DefaultDrawColumnCell

nie działa .DefaultDrawColumnCell
ZE
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ZAbstractConnection, ZConnection,
  Data.DB, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, ZAbstractRODataset,
  ZAbstractDataset, ZDataset;

type
  TForm1 = class(TForm)
    ZConnection1: TZConnection;
    ZQuery3: TZQuery;
    DataSource3: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin

    DBGrid1.Canvas.Brush.Color:=clInfoBk;
    DBGrid1.Canvas.Font.Color:=clBlack;
    Dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
    i :=1;
    ZQuery3.first;
    while not ZQuery3.eof do
    begin
        if ZQuery3.RecNo = i then

        begin
          DBGrid1.Canvas.Brush.Color:=clInfoBk;
          DBGrid1.Canvas.Font.Color:=clBlack;
          DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
        end;
        sleep(250);
        ZQuery3.Next;
        i := I+1;
    end;
end;

end.

wyżej zamieściłem kod, którego zadaniem jest zmiana koloru wiersza przetwarzanego w danej chwili, po pierwsze kompilator zgłasza błąd

Kopiuj
"[dcc32 Error] Unit1.pas(57): E2250 There is no overloaded version of 'Rect' that can be called with these arguments' i
"[dcc32 Error] Unit1.pas(57): E2003 Undeclared identifier: 'Column' "

nie potrafie umiejscovic gdzie tkwi błąd,

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0
  1. popraw formatowanie
  2. pokaż w której linijce wyskakuje błąd
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
0

A czym jest Rect? Przecież nie zadeklarowałeś takiej zmiennej a to nie jest parametr procedury jak w przypadku DrawColumnCell i kompilator "myśli", że chciałeś wywołać funkcję
https://docwiki.embarcadero.com/Libraries/Athens/en/System.Classes.Rect

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

właśnie miałem pisać to samo, co sięcej żadnej z przekazanych do metody zmiennej nie zadeklarowałeś

ZE
  • Rejestracja: dni
  • Ostatnio: dni
0
kAzek napisał(a):

A czym jest Rect? Przecież nie zadeklarowałeś takiej zmiennej a to nie jest parametr procedury jak w przypadku DrawColumnCell i kompilator "myśli", że chciałeś wywołać funkcję
https://docwiki.embarcadero.com/Libraries/Athens/en/System.Classes.Rect

To szczerze mówiąc nie bardzo wiem jak miałoby to wyglądać i zatem proszę o podpowiedź

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

jak chcesz ustawić kolor wiersza bazując na danych z bazy to https://stackoverflow.com/questions/16800103/change-dbgrid-row-color-on-field-value-in-delphi

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.