Ich bin Targeting eine benutzerdefinierte animierte Fortschrittsbalken in VST
Wie zeichnet man animierte Levelleiste in TVirtualStringTree?
Mein Ziel zu ziehen, um ein ähnliches Ergebnis wie Bild unten zeichnen, habe ich versucht, so etwas wie dieses OnBeforeCellPaint
zu tun:
procedure TForm2.VTs1BeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
var
NewRect : TRect;
xOff, yOff : Integer;
ProgressBarRect: TRect;
Percents: Real;
DrawProgressBar: Boolean;
begin
//draw progress
Percents := 10; // 40%
// progressBar on Column 3
begin
// draw progressbar
ProgressBarRect.Left := 0;
ProgressBarRect.Top := CellRect.Top + 1;
ProgressBarRect.Right := round((CellRect.Right - CellRect.Left) * Percents) + CellRect.Left;
ProgressBarRect.Bottom := CellRect.Bottom - 1;
if (ProgressBarRect.Right - ProgressBarRect.Left) > 0 then
begin
TargetCanvas.Brush.Color := RGB(179,255,102);
TargetCanvas.FillRect(ProgressBarRect);
end;
// ProgressBarRect
inc(ProgressBarRect.Left);
inc(ProgressBarRect.Top);
dec(ProgressBarRect.Right);
dec(ProgressBarRect.Bottom);
if (ProgressBarRect.Right - ProgressBarRect.Left) > 0 then
begin
TargetCanvas.Brush.Color := RGB(221,255,187);
TargetCanvas.FillRect(ProgressBarRect);
end;
end;
end;
aber ich kann nicht tut das gleiche Ergebnis und erreicht den gleichen Ansatz wie das Bild, das folgt:
, dass das Ergebnis, das ich habe bei der Codierung:
Die Fortschrittsbalken kommen zusammen mit dem Knoten nicht daneben und es ist nicht baugleich wie im Bild zeigt, es kommt gelb lange zurück Boden des Knotens ich es auf der linken Seite machen wollte von der Knoten und haben das gleiche Design des animierten Bildes, das ich oben gepostet habe.
* „aber ich kann das gleiche Ergebnis tun und den gleichen Ansatz des Bildes erreichen“ * Warum nicht? was ist anders, was funktioniert nicht und auf welche Weise? –
Ergebnisbild in Frage –
Dies ist vor der Zellfarbe, so dass die tatsächliche Zellfarbe überschreiben kann, was Sie tun. Also, müssen Sie die var ContentRect nicht ändern? – Dsm