![]() |
VirtualStringTree zeigt immer Scrollbars
Hi,
nach längerem mal wieder eine Frage. Ich habe mehrere VirtualStringTree auf meinem Formular. Die sind auf mehrere Tabs verteilt. Im ersten Tab werden Einträge ausgewählt in weiteren dann speziellen Aufgaben zugeteilt. Die ausgewählten Einträge des ersten Tags werden dabei auf die andere kopiert. Das geht auch alles, ABER im letzten VirtualStringTree sind dann immer die blöden Scrollbars zu sehen. Ich habe das VirtualStringTree per Copy&Paste vom Zweite genommen, so wie die anderen auch. Die Spalten erstelle ich zur Laufzeit. Hier die Einstellungen im
Delphi-Quellcode:
(identisch für alle):
FormCreate
Delphi-Quellcode:
Nur zur Erklärung von
vstVerfuegbare.NodeDataSize := SizeOf(TTreeData);
vstVerfuegbare.Header.Columns.Clear; vstVerfuegbare.Header.Columns.Add.Text := 'Bla'; vstVerfuegbare.Header.Columns.Add.Text := 'Blupp'; vstVerfuegbare.Header.Columns[0].Width := TextGroesse(vstVerfuegbare.Header.Columns[0].Text, vstVerfuegbare.Header.Font).cx + 20; vstVerfuegbare.Header.AutoSizeIndex := 0; vstVerfuegbare.Header.Columns[1].Width := TextGroesse(vstVerfuegbare.Header.Columns[1].Text, vstVerfuegbare.Header.Font).cx + 20; vstVerfuegbare.Repaint;
Delphi-Quellcode:
.
TextGroesse
Delphi-Quellcode:
Der einzige Unterschied gesteht in der zusätzlichen Methode
function TextGroesse(const Text : string; Font : TFont = nil) : TSize;
// Die einzige, mir gekannte, verlässlich Methode die Breite und Höhe des Textes zu ermitteln, // TCanvas.TextWidth() macht das nicht immer richtig. var DC : hDC; F : hFont; begin F := 0; DC := GetDC(0); try if Font <> nil then F := SelectObject(DC, Font.Handle); if not GetTextExtentPoint32(DC, Text, Length(Text), Result) then begin Result.cx := 0; Result.cy := 0; end; finally if F <> 0 then SelectObject(DC, F); ReleaseDC(0, DC); end; end;
Delphi-Quellcode:
, weil ich dort einen Eintrag hervorheben will mit
vstVerfuegbareDrawText
Delphi-Quellcode:
TargetCanvas.Font.Style := [fsBold];
|
AW: VirtualStringTree zeigt immer Scrollbars
Hallo,
die Scrollbars kannst Du auch ausblenden:
Delphi-Quellcode:
vstVerfuegbare.ScrollBarOptions.Scrollbars:=ssNone;
Zitat:
|
AW: VirtualStringTree zeigt immer Scrollbars
Danke, ich habe die ScrollBarOptions auf
Delphi-Quellcode:
gesetzt, das hilft schon.
ssVertical
Aber trotz
Delphi-Quellcode:
muss ich immer noch
vstVerfuegbare.Header.AutoSizeIndex := 0;
Delphi-Quellcode:
setzen, sonst ist die zweite Spalte nur ganz klein.
vstVerfuegbare.Header.Columns[1].Width
Gruß David Edit: Ich habe mich jetzt mal 2 Stunden durchgesteppt und den Fehler gefunden. ;( Asche auf mein Haupt. Ein
Delphi-Quellcode:
war nicht für diesen VST, sondern für einen anderen und damit war dieser VST immer im Status
vstVerfuegbare.EndUpdate;
Delphi-Quellcode:
. Somit auch kein Neuzeichnen der Scrollbars.
tsUpdating
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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