İstediğiniz böyle bir şey mi ?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, IBCustomDataSet, IBQuery, IBDatabase,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBQuery1: TIBQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ListBox1: TListBox;
ListBox2: TListBox;
procedure Button1Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
i : Integer ;
begin
with IBDatabase1 do
begin
Connected := false ;
DatabaseName := ExtractFilePath(Application.ExeName) + 'dnm.fdb' ;
DefaultTransaction := IBTransaction1 ;
SQLDialect := 3 ;
Params.Clear ;
Params.Add('user_name=SYSDBA') ;
Params.Add('password=masterkey') ;
Params.Add('lc_ctype=WIN1254') ;
LoginPrompt := False ;
Connected := True ;
end ;
with IBTransaction1 do
begin
Active := False ;
DefaultDatabase := IBDatabase1 ;
Params.Clear ;
Params.Add('read_committed') ;
Params.Add('rec_version') ;
Params.Add('nowait') ;
Active := True ;
end ;
IBQuery1.Database := IBDatabase1 ;
IBQuery1.SQL.Clear ;
IBQuery1.SQL.Add('Select Count(BELGE_NO) from ( ') ;
IBQuery1.SQL.Add('Select BELGE_NO from new_table ') ;
IBQuery1.SQL.Add('Group by BELGE_NO ') ;
IBQuery1.SQL.Add('Order by belge_no)Data ') ;
IBQuery1.Open ;
i := IBQuery1.FieldByName('Count').AsInteger ;
IBQuery1.SQL.Clear ;
IBQuery1.SQL.Add('Select BELGE_NO from new_table ') ;
IBQuery1.SQL.Add('Group by BELGE_NO ') ;
IBQuery1.SQL.Add('Order by belge_no') ;
IBQuery1.Open ;
ListBox1.Items.Clear ;
ListBox2.Items.Clear ;
IBQuery1.First ;
For i := 1 to i do
begin
if i Mod 2 = 0 then
ListBox2.Items.Add('clRed')
else
ListBox2.Items.Add('clYellow') ;
ListBox1.Items.Add(IBQuery1.FieldByName('BELGE_NO').Text) ;
IBQuery1.Next ;
end ;
IBQuery1.SQL.Clear ;
IBQuery1.SQL.Add('Select * from NEW_TABLE') ;
IBQuery1.SQL.Add('ORDER BY BELGE_NO') ;
IBQuery1.Open ;
DataSource1.DataSet := IBQuery1 ;
DBGrid1.DataSource := DataSource1 ;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
i, x : Integer ;
Satir_Rengi : TColor ;
begin
i := ListBox1.Items.IndexOf(DBGrid1.datasource.dataset.fieldbyname('BELGE_NO').Text) ; ;
Satir_Rengi := StringToColor( ListBox2.Items.Strings[i] ) ;
DBGrid1.canvas.Brush.Color := Satir_Rengi ;
DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
end.

