Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Im Grid die Linien selber zeichnen (farbe) (https://www.delphipraxis.net/136214-im-grid-die-linien-selber-zeichnen-farbe.html)

Jackie1983 25. Jun 2009 18:17


Im Grid die Linien selber zeichnen (farbe)
 
Servus,

habe da mal wieder ne frage zum StringGrid.
Wenn ich in der Draw Methode nichts habe, wird mein Grid
ohne text ohne farbe dargestellt, ist ja auch richtig so, aber man sieht die Linien.

Diese möchte ich gerne anpassen, wo kann ich das?

Mfg

Satty67 25. Jun 2009 18:42

Re: Im Grid die Linien selber zeichnen (farbe)
 
Zumindest ausblenden geht mit
Delphi-Quellcode:
GridLineWidth := 0;
dann selber zeichnen

Lannes 25. Jun 2009 18:56

Re: Im Grid die Linien selber zeichnen (farbe)
 
Hallo,

oder anstelle von FillRect > Rectangle mit einem in allen Richtungen vergrößertes Rect verwenden und dadurch die Linien übermalen
Delphi-Quellcode:
StringGrid1.Canvas.Pen.Color := clRed;
StringGrid1.Canvas.Rectangle(Rect.Left - 1,Rect.Top - 1,Rect.Right + 1,Rect.Bottom + 1);

Jackie1983 26. Jun 2009 05:55

Re: Im Grid die Linien selber zeichnen (farbe)
 
Zitat:

Zitat von Satty67
Zumindest ausblenden geht mit
Delphi-Quellcode:
GridLineWidth := 0;
dann selber zeichnen

Aber wenn man GridLineWidth auf 3 hat oder so muss man ja die
Linien auch irgend wie zeichnen können.

Zitat:

Zitat von Lannes
Hallo,

oder anstelle von FillRect > Rectangle mit einem in allen Richtungen vergrößertes Rect verwenden und dadurch die Linien übermalen
Delphi-Quellcode:
StringGrid1.Canvas.Pen.Color := clRed;
StringGrid1.Canvas.Rectangle(Rect.Left - 1,Rect.Top - 1,Rect.Right + 1,Rect.Bottom + 1);

werde mal schauen

thx

Satty67 26. Jun 2009 07:19

Re: Im Grid die Linien selber zeichnen (farbe)
 
Zitat:

Zitat von Jackie1983
Aber wenn man GridLineWidth auf 3 hat oder so muss man ja die Linien auch irgend wie zeichnen können.

Mit GridLineWidth > 0 forderst du TStringGrid auf, die Linie zu zeichnen. In der Paint-Methode wird dann die Linienfarbe fest auf clSilver festgelegt.

Also musst Du die Paint-Methode von StringGrid ändern, was zuviel unnötiger Aufwand wäre oder eben die Line ausschalten und selber zeichnen. Wenn Du den Source der VCL hast, kannst auch mit Copy&Paste arbeiten und Dir ein StringGrid ableiten und da LineColor als public Property anlegen.

QuickAndDirty 26. Jun 2009 07:55

Re: Im Grid die Linien selber zeichnen (farbe)
 
Die Methode Drawcell überschreiben
und aus TDrawgrid.Drawcell den Code stehlen und abändern. Das selbe gilt für den Code in TSTRINGGRID.Drawcell.

habe ich so gemacht geht super

Lannes 26. Jun 2009 14:42

Re: Im Grid die Linien selber zeichnen (farbe)
 
Hallo,
Zitat:

Zitat von Jackie1983
Aber wenn man GridLineWidth auf 3 hat oder so muss man ja die
Linien auch irgend wie zeichnen können.

dann setz zusätzlich Pen.Width auf GridLineWidth:
Delphi-Quellcode:
StringGrid1.Canvas.Pen.Color := clRed;
StringGrid1.Canvas.Pen.Width := StringGrid1.GridLineWidth
StringGrid1.Canvas.Rectangle(Rect.Left - 1,Rect.Top - 1,Rect.Right + 1,Rect.Bottom + 1);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz