Autor Beitrag
Tracer
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 22.08.03 15:58 
hi leutz,
folgendes Problem bei einem TDBGrid:

1. In einer Titel-Zelle soll ein Icon angezeigt werden statt ein Text
2. Wenn ich die Titel-Zelle anklicke soll sich das Icon wechseln

hat jemand ne Idee???

thx for help
tracer
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 23.08.03 17:45 
ja, die Methoden, OnDrawCell und OnClick überschreiben und die Zellen selbst zeichnen.

grez
msch
Tracer Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 24.08.03 20:27 
hi msch,
kannst du mir mal ein konkretes beispiel geben...hast du das schon mal gemacht...also bei normalen spalten funktioniert das ja auch aber bei den titelzeilen bekomm ich nicht die position der zu zeichnente zelle raus :-( und so kann ich auch nix reinzeichen.. nur wenn ich die absolute position vom gesamten grid aus angebe...also halt irgendwo x,y ein bild hinmale... nur wenn das grid verändert wird dann ist mein bild irgendwo auf dem grid nur nicht in der titelzelle *grumml*
vieleicht irgend jemand ne ahnung wie ich die positionen der titelzellen heraus bekomm??
das wäre viel leichter

cu
tracer
Tracer Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 25.08.03 07:48 
hi@all,
hab eine lösung gefunden :lol:
für alle die noch suchen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm.GridDrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn;//var afont: TFont;
var
  TheRect : TRect;
begin
  if Column.FieldName = 'BlaBla' then // Name der Spalte
  begin
    TheRect := Rect;
    OffsetRect(TheRect,0,-TheRect.Top);
    DBGrid1.Canvas.FillRect(Rect);
    DBGrid1.Canvas.Draw(TheRect.left+3,TheRect.top+1,imgcolumnheader.Picture.Graphic);//Bild zeichnen
  end;
end


cu tracer