![]() |
Verlaufs Graph in VirtualStringTree Zelle Zeichnen
Morgen,
weis einer villeicht wie ich einen verlaufs graph in eine Zelle zeichnen kann. Hat jemand villeicht einen beispielcode? |
Re: Verlaufs Graph in VirtualStringTree Zelle Zeichnen
HI,
kannst du noch etwas genauer sagen, was für dich ein Verlaufsgraph ist? Und dann käme natürlich hinzu, was hast du dir denn dazu schon überlegt, wo kommst du gerade nicht weiter, etc. (um mal dezent auf die Forenregeln zu verweisen) Gruß Der Unwissende |
Re: Verlaufs Graph in VirtualStringTree Zelle Zeichnen
ja selbstverständlich habe ich mich schon damit beschäftig;-)
Momentan sieht mein ereignis so aus:
Delphi-Quellcode:
Und das ist dan der graph:
procedure TfrmMain.VstBeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; CellRect: TRect); var J,I, PercentageSize, RndPercent: integer; ColorStart: Word; Data: PTreeData; R,G,B: byte; begin J:= 0; //SpeedGraph if (Column = 4) then begin Data := Sender.GetNodeData(Node); RndPercent:=99;///MEIN EINTRAG : HIER MUSS DER WERT ÜBER DIE RECORD MEM. STRUCTURE ÜBERGEBEN WERDEN InflateRect(CellRect, 424, 3); Cellrect.Left := Vst.Header.Columns.Items[4].Left; DrawEdge(TargetCanvas.Handle, CellRect, BF_FLAT, BF_SOFT or BF_FLAT); PercentageSize := (CellRect.Right - CellRect.Left) * RndPercent div 100; if True then begin ColorStart :=ClYellow; R:= GetRValue(ColorStart); G:= GetGValue(ColorStart); B:= GetBValue(ColorStart); for I := CellRect.Right downto CellRect.Left do begin TargetCanvas.Brush.Color := RGB(R,G,B); Randomize; J := Random(20); TargetCanvas.Pen.Color := ClWhite; TargetCanvas.MoveTo(j+i,0); TargetCanvas.LineTo(1,75); if CellRect.Right - CellRect.Left <= PercentageSize then TargetCanvas.FillRect(CellRect); Dec(CellRect.Right); Dec(G); end; end else begin CellRect.Right := CellRect.Left + PercentageSize; if RndPercent = 100 then TargetCanvas.Brush.Color := clRed else TargetCanvas.Brush.Color := clLime; TargetCanvas.FillRect(CellRect); end; end; end; ![]() ![]() wie man sieht wird der graph nicht richtig gezeichnet. Also der angang der Graphen wirkt "verzert". Was man nicht sieht ist dass der Graph komischerweise irgendwie komplett durchgezeichnet wird, also ich möchte performance sparen indem der graph immmer nur so lang ist wie die Spalten breite oder cellenbreite. Ich hätte gerne eine funktion indem ich ich die graph höhe als integerwert eingebe. Der Graph soll z.B. den Verlaus dder Cpu auslastung darstellen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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