Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Treeview und max. Breite (https://www.delphipraxis.net/100896-treeview-und-max-breite.html)

bingo72 5. Okt 2007 09:11


Treeview und max. Breite
 
Hallo Experten!!

Ich möchte einem User erlauben, die TreeView max. eine 1/4 Seitenbreite auseinanderziehen zu lassen. Wie kann ich das machen??
Bitte um Ideen...

LG
Thomas

DeddyH 5. Okt 2007 09:16

Re: Treeview und max. Breite
 
Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin
  Treeview1.Constraints.MaxWidth := self.Width div 4;
end;

s-off 5. Okt 2007 09:24

Re: Treeview und max. Breite
 
Hallo,

Du lässt also den User zur laufzeit die Größe des TreeViews ändern, habe ich das richtig verstanden?

Dann würde ich die Message 'WM_SIZE' abfangen, die gefeuert wird, sobald sich die Größe des TreeViews ändert.
Dort prüfst Du dann die Width-Property auf <= Form.Width div 4.

bingo72 5. Okt 2007 09:35

Re: Treeview und max. Breite
 
Ja hast Du richtig verstanden...danke für die Tipps!!

Jetzt hab ich gleich rechts neben der Treeview einen Splitter, den ich mit Align = left an die Treeview 'patze'...
Nach dem Einbau der Constraints bleibt zwar die Treeview bei der vorgegeben Größe stehen, aber der Splitter läßt sich dennoch weiter nach rechts verschieben. Vielleicht brauch ich ja da nur das Verhalten des Splitters regeln, da sich ja die TreeView sowieso an dem Splitter orientiert?? Was meint ihr?? :gruebel:

LG
Thomas

s-off 5. Okt 2007 09:39

Re: Treeview und max. Breite
 
Dann habe ich Dich doch nicht richtig verstanden - dachte, Du regelst das per Drag'n'Resize, aber egal :stupid:

Mit Splitter geht's natürlich ganz anders und viel einfacher:
Delphi-Quellcode:
procedure TForm1.Splitter1CanResize(Sender: TObject; var NewSize: Integer;
  var Accept: Boolean);
begin
   if NewSize > Form1.Width div 4 then
      Accept := False
   else
      Accept := True;
end;

DeddyH 5. Okt 2007 09:48

Re: Treeview und max. Breite
 
Oder etwas kürzer:
Delphi-Quellcode:
procedure TForm1.Splitter1CanResize(Sender: TObject; var NewSize: Integer;
  var Accept: Boolean);
begin
  Accept := NewSize < self.Width div 4;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz