Si consideri il seguente unità molto semplice:Come posso fare una visualizzazione ad albero ripensare se è necessaria o meno una barra di scorrimento orizzontale?
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
Aggiungere ad un VCL forme di APP ed eseguire. Il risultato è simile al seguente:
Vorrei per la barra di scorrimento orizzontale per non essere visibile. Come posso raggiungere questo obiettivo?
Ora mi rendo conto che è possibile rimuovere la riga di codice che assegna la stringa molto lunga. Ma questo è un programma ridotto per lo scopo della mia domanda. In the real app the text of the nodes is changing e voglio che le barre di scorrimento mostrino se sono necessarie e non mostrano se non sono necessarie.
Conosco lo stile TVS_NOHSCROLL
ma non riesco a usarlo. A volte la vista ad albero contiene del testo che è più ampio dello spazio disponibile. E a volte no.
Voglio anche utilizzare TTreeView
e non voglio utilizzare la visualizzazione ad albero virtuale. Non che io abbia qualcosa contro la visualizzazione ad albero virtuale, solo che la mia app sta attualmente utilizzando TTreeView
.
Grazie. Proprio il lavoro. È il 'WM_SETREDRAW (1, 0)' in 'EndUpdate' che fa il lavoro. Non so esattamente perché ha l'effetto. –
Relavent Raymond Chen: [Esiste un'implementazione predefinita per WM_SETREDRAW, ma potresti riuscire a fare meglio] (http://blogs.msdn.com/b/oldnewthing/archive/2011/01/24/10119211.aspx) –