![]() |
TTreeview - Höhe der Items bei Eigenschaft Wordwrap nicht korrekt
Hallo,
ich entwickle einen Anwendung unter Delphi XE 10.2.1, die für IOS und Android compiliert werden soll. Ich habe hierbei eine TTreeview-Komponente verwendet, die mir in drei Ebenen die Werte als Baum anzeigen soll. Dabei habe ich das Problem, dass die Höhe der Items nicht korrekt berechnet wird, wenn die Eigenschaft WordWrap eingeschaltet ist und dadurch einzelne Elemente mehrzeilig in der Darstellung werden. Der Text wird dann zwar umgebrochen, die Höhe der Items ist aber immer wie für eine Zeile. Eigentlich müsste doch die Höhe abhängig von der Zeilenanzahl, die sich für das Item ergibt, berechnet werden. Im Quelltext erzeuge ich die Elemente des Baumes wie folgt: EPItem := TTreeViewItem.Create(nil); EleItem.WordWrap := True; ... EleItem.Text := ... EleItem.Parent := ... Auf dem Form liegt ein StyleBook, in dem der treeviewitemstyle etwas abgeändert wurde. das oben beschriebene Problem besteht aber auch, wenn es diesen Style im StyleBook nicht gibt, es hat also wahrscheinlich nichts mit dem Style an sich zu tun. Ich hoffe es kann damit jemand etwas anfangen und hat eine Idee, was da für eine Eigenschaft evtl. einzustellen ist oder das Problem zu lösen ist. Vielen Dank im Voraus. :) |
AW: TTreeview - Höhe der Items bei Eigenschaft Wordwrap nicht korrekt
Wie rufst du die Höhe denn ab?
|
AW: TTreeview - Höhe der Items bei Eigenschaft Wordwrap nicht korrekt
Hallo,
das Problem ist nicht das Abrufen der Höhe. Wenn man den Treeview ganz normal anzeigt mit der Eigenschaft Wordwrap, dann werden ja die Elemente mehrzeilig umgebrochen und angezeigt. Klickt man aber ein solches Element an, so daß es markiert ist dann ist die Markierung nicht hoch genug und der Text oben und unten abgeschnitten. Grüsse |
AW: TTreeview - Höhe der Items bei Eigenschaft Wordwrap nicht korrekt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hänge nochmal einen Sceenshot an, wie das ganze aussieht bzw. was das Problem ist. Ausserdem die PAS und FMX-Datei. Ist also direkt ersichtlich bei einem einfachen Beispielform mit einem Treeview. Was mache ich da falsch? Danke im Voraus.
Delphi-Quellcode:
object Form1: TForm1
Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 480 ClientWidth = 640 FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [Desktop] OnShow = FormShow DesignerMasterStyle = 0 object TreeView1: TTreeView Align = Client Size.Width = 640.000000000000000000 Size.Height = 480.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Viewport.Width = 636.000000000000000000 Viewport.Height = 476.000000000000000000 end end
Delphi-Quellcode:
unit TreeTest;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, FMX.TreeView; type TForm1 = class(TForm) TreeView1: TTreeView; procedure FormShow(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormShow(Sender: TObject); Var ParentItem, TreeItem : TTreeViewItem; Cnt : Integer; begin Cnt := 1; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 1'; TreeItem.Parent := TreeView1; ParentItem := TreeItem; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 2'; TreeItem.Parent := ParentItem; ParentItem := TreeItem; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 3'; TreeItem.Parent := ParentItem; ParentItem := TreeItem; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 4: kurzer Text'; TreeItem.Parent := ParentItem; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 4 mit langem Text für Umbruch'; TreeItem.Parent := ParentItem; TreeItem := TTreeViewItem.Create(nil); TreeItem.Name := 'ItemNo'+IntToStr(Cnt); Inc(Cnt); TreeItem.WordWrap := True; TreeItem.Text := 'Stufe 4: wieder kurz'; TreeItem.Parent := ParentItem; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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