Autor Beitrag
Dee-M-Cee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Do 26.01.06 16:29 
Ich hatte schoneinmal hier gefragt, wie ich Zeilenumbrüche in einem StringGrid darstellen kann.
Mir wurde gesagt, dass ich das mit der Prozedur DrawCell machen soll.

Zum einen habe ich eine Prozedur, die in einer Schleife Werte in das Grid einträgt.
Das mache ich natürlich einfach mit Grid[x,y]:='Text';

Aber wie muss ich das machen, wenn ich die DrawCell Prozedur benutzen will?
Ich habe die Prozedur erstellt und auch versucht damit Text auszugeben, aber es hat nicht geklappt.

Muss ich die DrawCell Prozedur irgendwie aufrufen, oder wird sie immer automatisch aufgerufen, wenn das Grid die Zellen erstellt?

Also nochmal kurz meine Frage: Wie bekomme ich die Prozedur dazu mir Text in die Zellen zu schreiben ?
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 26.01.06 16:42 
OnDrawCell wird automatisch für jede zu zeichnende Zelle aufgerufen:
Du zeichnest auf dem Canvas des TStringGrids, und zwar an dem durch Rect bezeichneten Rechteck.

_________________
Na denn, dann. Bis dann, denn.
Dee-M-Cee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Do 26.01.06 16:50 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm_Haupt.Grid_Kal_MonatDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
 var TextOut: string;
begin
 TextOut := 'bla';
 DrawText(Grid_Kal_Monat.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,DT_CENTER);
end;


Das müsste doch eigentlich klappen oder? So hatte ich es in einem anderen Thread gelesen.
Es wird aber nichts ausgegeben.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Do 26.01.06 17:35 
Versuch es mal so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm_Haupt.Grid_Kal_MonatDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
 var TextOut: string;
begin
 TextOut := 'bla';
 DrawText(Grid_Kal_Monat.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,DT_CENTER);
end;


Lg Martin

_________________
Ein Nutzer der Ecke ;-)
Dee-M-Cee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Do 26.01.06 17:46 
Es tut sich immer noch nichts...
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 26.01.06 18:59 
Hallo,

hast Du die Ereignisbehandlungs-Routine im Objektinspektor beim Ereignis OnDrawCell zugewiesen?

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Dee-M-Cee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Do 26.01.06 19:13 
user profile iconLannes hat folgendes geschrieben:
Hallo,

hast Du die Ereignisbehandlungs-Routine im Objektinspektor beim Ereignis OnDrawCell zugewiesen?

Bingo! Nein sie war (warum auch immer) nicht zugewiesen. Jetzt klappts. Danke :)