| Autor |
Beitrag |
D. Annies
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 01.04.12 18:07
Hi, Delpher,
ich möchte, dass, wenn ich die Spaltenbreite verkleinere und der Feldname zu lang ist, dann am Feldnamenende
drei Punkte erscheinen.
Wie geht das?
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: So 01.04.12 18:51
Besser als Titel zu übermalen ist es sie leer zu lassen und die Überschriften z.B. aus einer Stringlist zu ziehen
der Fillrect-Teil fällt dann raus
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm2.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var G:TStringGrid; ch:THandle; DR:Trect; begin DR := Rect; InflateRect(DR,-2,-2); G := TStringGrid(Sender); if Arow=0 then G.Canvas.Brush.Color := clBtnFace else G.Canvas.Brush.Color := clWhite; G.Canvas.FillRect(Rect); ch := G.Canvas.Handle; G.Canvas.Brush.Style := bsClear; DrawTextEx(ch, PChar(G.Cells[Acol,Arow]), Length(G.Cells[Acol,Arow]), DR, DT_END_ELLIPSIS, nil); end; |
wenn es in Deiner Verison keine Deklaration für DT_END_ELLIPSIS gibt >> 32768
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mo 02.04.12 22:46
Sry für die lange Antwortzeit.
Bin soweit zufrieden, aber:
bummi hat folgendes geschrieben : | Besser als Titel zu übermalen ist es sie leer zu lassen und die Überschriften z.B. aus einer Stringlist zu ziehen
der Fillrect-Teil fällt dann raus |
Wie muss ich mir das denn vorstellen?
LG, Detlef
Moderiert von Narses: Zitat kenntlich gemacht.
_________________ ut vires desint, tamen est laudanda voluntas
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 02.04.12 23:10
Ich nehme an Du schreibst direkt in Cells[X,Y], wenn Du dies für ROW=0 nicht tust, sondern die Informationen in einem Array oder einer Stringlist vorhältst kannst Du bei "Zeichnen" diese Werte ausgeben ohne vorher irgendetwas übermalen zu müssen.
Also Quasi wie in einem DrawGrid ...
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Di 03.04.12 17:57
Hi, Bummi,
das habe ich leider nicht verstanden, z.B. weil ich noch nicht mit einem DrawGrid gearbeitet habe.
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 04.04.12 07:42
Ein Grid dient ja eigentlich nur der Darstellung(Bearbeitung) von Daten, diese in den Cells zu haben ist ja eigentlich eher unpraktisch, ich habe mal ein Microbeispiel angehängt.
Das Array of Array of String wird dann üblicherweise eher ein Array of Array of TMyClass oder eine Liste von Records o.ä. sein.
Einloggen, um Attachments anzusehen!
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mi 04.04.12 07:56
Danke, Bummi, werde mich heute nachmittag/abend mal einlesen.
LG, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|