Mysql + stringgrid + faerben

hallo
Ich habe eine mysql Datenbank , wo PCs, Monitore und Dockingstations gespeichert sind.
Ich benutze nur die mysql odbcs , kein zeos oder so.
Ich habe im private von TForm1
fmysql: Tmysqlclient und
Fresult: TmysqlResult
Bisher habe ich die Anzeige der wichtigsten Daten ueber folgende Prozeduren hinbekommen
Zuerst lasse ich mir einen entsprechenden sql befehl geben.

procedure TForm1.mysqlqry ( q : string );
begin

if (q = ‚‘) then begin
q := ’ SELECT r.inventar_Nr,r.netzwerkname,a.benutzer ,’;
q := q + ’ a.benutzer_alt, a.raum , r.bemerkungen ,m.inventar_Nr, d.inventar_Nr, r.statusID’;
q := q + ’ from arbeitsplatz a inner join rechner r ';
q := q + ’ on a.rechnerid = r.rechnerid ';
q := q + ’ left join monitor m ';
q := q + ’ on a.monitorid = m.monitorid ';
q := q + ’ left join dockingstation d ';
q := q + ’ on r.dockingstationid = d.dockingstationid ';
q := q + ’ WHERE „1=1“ ';
end;

FResult := FMysql.query(q, true, ex);
ShowInGrid;

end;

dann die Anzeige im StringGrid

procedure TForm1.ShowInGrid;
var i,j: integer;

begin
if FMySql.Connected then begin

if assigned(FResult) then begin //

Hallo,

du musst die Eigenschaft DefaultDrawing des Grids auf false setzen.
Dann musst du für das Ereignis „OnDrawCell“ eine Prozedur schreiben, in der du selbst für die Ausgabe der Daten im Grid sorgst.
Das geht, indem du auf die Canvas des Grids zeichnest. Jedes mal, wenn das System eine Zelle zeichnen muss (weil deren Inhalt sich geändert hat oder durch das Scrollen des Grids) wird diese Prozedur aufgerufen. Ein Parameter der Prozedur ist das Rechteck, in dem sich die Zelle auf der Canvas befindet. Damit ist es recht leicht, den Hintergrund der Zelle in der gewünschten Farbe einzufärben und dann den Text darin auszugeben (mit den Zeichenfunktionen der Canvas). Die Schriftgröße etc kann man zB aus der Eigenschaft TGrid.Font holen. das ist besser als sie im Code fest einzugeben.

Gruß, Niels