Witam.
Jak to mawiaja kto pyta nie bladzi - rzeczywiscie wdarl sie maly "byk", dopiero gdy przeczytalem Twojego posta zaczalem sie zastanawiac gdzie tkwil blad. poza tym sprawdzalem Twoj sposob, moj byl podobny ... opieral sie na zdefiniowaniu zmiennych globalnych i przypisaniu w zdarzeniu onSelectCell, mianowicie:
procedure TPlanEksperymentu.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
Wiersz:=ARow;
Kolumna:=ACol;
StringGrid1.Invalidate;
end;
a nastepnie w zdarzeniu onDrawCell:
..............................
if gdSelected in state then
begin
Canvas.Font.Name:='Century Gothic';
Canvas.Brush.Color :=clMoneyGreen;
Canvas.Font.Color:=clBlack;
Canvas.Font.Size:=9;
Canvas.Font.Style:=[fsBold];
Canvas.FillRect(Rect);
Frame3D(Canvas,Rect,clRed,clRed,1);
end;
if (ACol=Kolumna) and (ARow=0) then
begin
Frame3D(Canvas,Rect,clRed,clRed,2);
end;
if (ACol=0) and (ARow=Wiersz) then
begin
Frame3D(Canvas,Rect,clRed,clRed,2);
end;
................................
A znaleziony "BYK" tkwil sobie od samego poczatku nie zuwazony dopoty nie zostala zastosowana procedura odswiezania....mianowicie na samym poczatku w onDrawCell :
.........
StringGrid1.Cols[3].Add('1');
.........
Na samym poczatku sodzilem ze to wina zbyt "konkretnego" stosowania klasy TCanvas, przy wylaczonym DefaultDrawing:=false nalezalo samemu zadbac o kolory, style, czcionke..etc. Jednak okazalo sie ze to nie to :)
Dzieki Rav [browar] za sugestie :)
pozdrawiam