![]() |
Im Stringgrid eine Linie dicker als andere
Hi Leute,
ich hab 'nen StringGrid mit 7 Spalten. Die letzten beiden sollen sich jetzt von den ersten 5 abheben. Ich hatte gedacht, dass man einfach die Linie zwischen Spalte 5 und 6 dicker macht, als die anderen. hab aber keine ahnung wie das geht. Falls aber einer von euch 'ne Alternative weiss, bin ich dankbar. tia, read you gordon |
Re: Im Stringgrid eine Linie dicker als andere
hi,
es gibt ein event onDrawCell oder so ähnlich. Da kannst du dann bestimmen, wie die zellen gemalt werden und an deiner vorgesehenen stelle den rand dicker machen. ich habe hier mal nen code, der in einem kalendar (oben waren die tage) die spalte des aktuellen tag dick eingerahmt hat. (links und rechts dick)
Delphi-Quellcode:
du musst halt nur die zeile mit dem encodedate anpassen und unten eine linie weniger zeichnen.
if Acol > 0 then
if EncodeDate(FYear, FMonth, ACol) = Date then begin Canvas.Pen.Color := clBlack; Canvas.Pen.Width := 2; Canvas.MoveTo(Rect.Left, Rect.Top); // links Canvas.LineTo(Rect.Left, Rect.Bottom); Canvas.MoveTo(Rect.Right, Rect.Top); //rechts Canvas.LineTo(Rect.Right, Rect.Bottom); end; Gruß Ken |
Re: Im Stringgrid eine Linie dicker als andere
Danke für die schnelle Antwort. Hab jetzt folgenden Code:
Delphi-Quellcode:
Allerdings verstärkt er nicht die Linie im Stringgrid, sondern zeichnet eine Linie, die dann quasi vom Grid verdeckt wird. Was soll ich denn jetzt machen? :(
procedure StringGrid1.DrawCell(Sender: TObject; Acol, ARow : Integer;
Rect:TRect; State:TGridDrawState); begin if Acol = 4 then begin Canvas.Pen.Color:=clblack; Canvas.Pen.eidth:=3; Canvas.moveto(Rect.Left,Rect.Top); Canvas.Lineto(Rect.Left,Rect.Bottom); end; |
Re: Im Stringgrid eine Linie dicker als andere
hi,
probier mal vor jedes Canvas noch dein Stringgrid zu schreiben
Delphi-Quellcode:
hatte vergessen, daß in der funktion, aus der ich das genommen habe, am anfang der methode ein
procedure StringGrid1.DrawCell(Sender: TObject; Acol, ARow : Integer;
Rect:TRect; State:TGridDrawState); begin if Acol = 4 then begin DeinGrid.Canvas.Pen.Color:=clblack; DeinGrid.Canvas.Pen.eidth:=3; DeinGrid.Canvas.moveto(Rect.Left,Rect.Top); DeinGrid.Canvas.Lineto(Rect.Left,Rect.Bottom); end;
Delphi-Quellcode:
steht
with Sender as TStringgrid do begin
Gruß Ken |
Re: Im Stringgrid eine Linie dicker als andere
Danke! Mit
Delphi-Quellcode:
geht es!
StringGrid1.canvas.{etc};
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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