Betrachten Sie die folgende sehr einfache Einheit:Wie kann ich eine Baumansicht neu überdenken, ob eine horizontale Bildlaufleiste benötigt wird?
Unit1.pas
unit Unit1;
interface
uses
Windows, Classes, Controls, Forms, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
SLongString = 'blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah';
procedure TForm1.FormCreate(Sender: TObject);
var
Node: TTreeNode;
begin
TreeView1.Width := 200;
Node := TreeView1.Items.Add(nil, SLongString);
Node.Text := 'blah';
end;
end.
Unit1.dfm
object Form1: TForm1
ClientHeight = 137
ClientWidth = 216
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object TreeView1: TTreeView
Left = 8
Top = 8
Width = 198
Height = 121
end
end
hinzufügen Zu einer VCL-Formular App und ausgeführt werden. Das Ergebnis sieht wie folgt aus:
Ich möchte mich für die horizontale Bildlaufleiste nicht angezeigt werden. Wie kann ich das erreichen?
Jetzt erkenne ich, dass ich die Codezeile entfernen konnte, die die sehr lange Zeichenfolge zuweist. Aber das ist ein reduziertes Programm für meine Frage. In the real app the text of the nodes is changing und ich möchte die Bildlaufleisten zeigen, wenn sie benötigt werden, und nicht zeigen, wenn sie nicht benötigt werden.
Ich weiß über die TVS_NOHSCROLL
Art, aber ich kann das nicht verwenden. Manchmal enthält die Baumansicht Text, der breiter ist als der verfügbare Platz. Und manchmal nicht.
Ich möchte auch TTreeView
verwenden und nicht virtuelle Baumansicht verwenden möchten. Nicht, dass ich etwas gegen die virtuelle Baumansicht habe, nur dass meine App gerade TTreeView
verwendet.
Dank. Nur die Arbeit. Es ist das 'WM_SETREDRAW (1, 0)' in 'EndUpdate', das die Arbeit erledigt. Nicht ganz sicher, warum es die Wirkung hat. –
Relavent Raymond Chen: [Es gibt eine Standardimplementierung für WM_SETREDRAW, aber möglicherweise können Sie es besser machen] (http://blogs.msdn.com/b/oldnewthing/archive/2011/01/24/10119211.aspx) –