Hallo Gemeinde,
Folgendes habe ich vor:
in einem StringGrid werden verschiedene Daten abgebildet. Der Nutzer soll nun via Popup-Menu beim Click auf eine
Zelle die Farbe dieser ändern können. Bisher habe ich folgendes:
Delphi-Quellcode:
Procedure PM_Fert_FT(Sender:TObject);
var oldFontCol:Tcolor; oldBrush:TColor;
ACol,ARow:integer;
aRect:TRect ;
aStr:String;
Begin
with mainform do
Begin
oldFontCol:=STGRP_Fert_FT.Canvas.Font.Color;
oldBrush:=STGRP_Fert_FT.Canvas.Brush.Color ;
aRect:=Rect(ACol,ARow,ACol,ARow);
aStr:=STGRP_Fert_FT.Cells[ACol,ARow];
case TMenuItem(Sender).Tag of
0:Begin
ACol:=STGRP_Fert_FT.Col;
ARow:=STGRP_Fert_FT.Row;
STGRP_Fert_FT.Canvas.Brush.Color :=clMoneyGreen ;
STGRP_Fert_FT.Canvas.FillRect(aRect);
End;
end;
DrawText(STGRP_Fert_FT.Canvas.Handle,PChar(aStr),
length(aStr), aRect,DT_CENTER or DT_VCENTER or DT_SINGLELINE);
STGRP_Fert_FT.Canvas.Font.Color:=oldFontCol;
STGRP_Fert_FT.Canvas.Brush.Color:=oldBrush;
end;
end;
Nach dem Start kann ich nun das besagte Menu öffnen und die Farbe wählen.
Leider bekomme ich es nicht hin, dass die gewählte Farbe auch tatsächlich eingezeichnet wird.
Liegts am Code? Sollte doch soweit OK sein...
MFG
Steffen
EDIT: STGRP_Fert_FT ist das Grid,
PM_Fert_FT entsprechend das Menu