Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Bünni,
14. Mär 2019
Im OnAfterItemPaint hatte ich kurzzeitig eine Variante, die sogar das gewünschte Ergebnis brachte.
Dabei habe ich VST.Header.Columns.Left abgerufen und so erfahren, wo sich meine erste Zelle befindet.
Hat geklappt. Vorher wurden die Icons vermutlich auch so oft pro Node gezeichnet wie das VST Columns hat. Aber die jetzige Lösung ist um Welten besser, da ich auch die Column abfragen kann und so...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Bünni,
14. Mär 2019
Habe gerade eben den Code auf das AfterCellPaint-Event umgebaut.
Hier eine kleine Änderung und dort und alles arbeitet perfekt.
Dort kann ich nun auch abfragen, in welche Zelle ich bin und auch nur dann den Code ausführen. Ich schätze, dass das auch Performancevorteile mit sich bringen könnte.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Bünni,
14. Mär 2019
OnAfterCellPaint (mit Abfrage, ob ich in der richtigem Column bin) statt OnAfterItemPaint?
Da ich mehrere Icons pro Zelle zeichne, brauche ich OnGetImageIndex dann ja wohl nicht.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Bünni,
14. Mär 2019
Das war die Information die ich brauchte. Ich frage jetzt VST.Header.Columns.Left ab und nicht mehr R.Left.
Lohnt sich ein Umbau auf GetImageIndex? Denn ich male mehrere Bilder in die erste Zelle. Nicht nur eines.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Bünni,
14. Mär 2019
Das Malen der Icons ist kein Problem.
Code verkürzt. Alles Unwichtige ist raus
procedure TKSTData.VSTAfterItemPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect);
var
R: TRect;
IconPosLeft, IconPosTop: Integer;
begin
R := ItemRect;