Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Teile vom Programm ausblenden (https://www.delphipraxis.net/6967-teile-vom-programm-ausblenden.html)

F.W. 28. Jul 2003 21:09


Teile vom Programm ausblenden
 
Mein Programm sieht folgendermaßen aus: Es gibt drei Panels, die übereinander angeordnet sind, an den Seiten glcih lang.
In der Statusleiste gibt es in einem Untermenü drei Einträge zum anhaken.
Nun möchte ich dem Benutzer gewährleisten, dass er über das an- und abhaken dieser Einträge die Panels ein- und ausblenden kann.
Das schwierige dabei ist nur,das Fenster soll nur so groß sein, unbedingt nötig. Wenn also oben das erste Panel ausgeblendet wird, sollen die anderen beiden nachrutschen und das Fenster soll sich der neuen Größe anpassen. :?:

Da ich erst seit kurzer Zeit arbeite, scheint mir das 'n bisschen zu groß, ich weiß garnicht erst, wo ich anfangen soll :shock:

mirage228 28. Jul 2003 21:17

Re: Teile vom Programm ausblenden
 
Also...

die Form Height bestimmst du so:

Delphi-Quellcode:
procedure TForm1.anpassen;
var
  p1,p2,p3,I: integer;
  platz: integer; // eventuell unten am form platzlassen
begin
  p1 := 0; p2 := 0; p3 := 0;
  if Panel1.Visible then P1 := Panel1.Height;
  if Panel2.Visible then P2 := Panel2.Height;
  if Panel3.Visible then P3 := Panel3.Height;
  i := p1 + p2 + p3;
  platz := 32;
 
  Form.ClientHeight := i + platz;
  Panel1.Top := 8;
  Panel2.Top := p1 + 8 + 8;
  Panel3.Top := p1 + p2 + 24;
end;
die prozedur dann nur noch in die form-dekl. eintragen und dann in dem menü aufrufen.

mfG
mirage228

p.s.: der code ist jetzt ausm gedächtnis, ich weiss nich obber funkt.

czapie 28. Jul 2003 21:38

Re: Teile vom Programm ausblenden
 
Ich weiß ja nicht wie lange du schon mit Delphi arbeitest, also komm dir bitte nicht verscheißert vor.
Im object-Inspektor hast du doch die ganzen Eigenschaften der Objekte und eben auch des Forms.
Auf diese Eigenschaften kannst du auch dynamisch zugreifen wie oben dargestellt.
Objektname.eigenschaft:=Wert

ciao,
Czapie.

Sanchez 28. Jul 2003 21:45

Re: Teile vom Programm ausblenden
 
hallo,

du kannst die Align-Eigenschaft der Panele z.B. auf alTop setzen. Blendest du jetzt das oberste aus, schieben sich die anderen nach oben.

zumindest bei meinem kleinen Test funktioniert es ganz gut.

grüße, daniel

F.W. 29. Jul 2003 16:30

Re: Teile vom Programm ausblenden
 
Zitat:

Zitat von mirage228
Delphi-Quellcode:
procedure TForm1.anpassen;
var
  p1,p2,p3,I: integer;
  platz: integer; // eventuell unten am form platzlassen
begin
  p1 := 0; p2 := 0; p3 := 0;
  if Panel1.Visible then P1 := Panel1.Height;
  if Panel2.Visible then P2 := Panel2.Height;
  if Panel3.Visible then P3 := Panel3.Height;
  i := p1 + p2 + p3;
  platz := 32;
 
  Form.ClientHeight := i + platz;
  Panel1.Top := 8;
  Panel2.Top := p1 + 8 + 8;
  Panel3.Top := p1 + p2 + 24;
end;

Der Tip ist super, gut durchdacht, muss schon sagen!! :hello:
Aber jetzt hab' ich noch ein Problem, ich habe die Menüitems mit Autocheck=True bestückt. Wie kann ich jetzt klar machen, dass wenn der Haken davor ist, soll das Panel sichtbar sein, und anders halt dann unsichtbar?

Mein alter Quelltext lautet:
Delphi-Quellcode:
if menuitem1.Checked = True then Panel1.Visible := True;
if menuitem1.Checked = False then Panel1.Visible := False;
Unsichtbar wird das Panel, alledings wird es beim anhaken nicht wieder sichtbar.

Was soll ich da jetzt machen?

F.W. 30. Jul 2003 19:11

Re: Teile vom Programm ausblenden
 
Damit habe ich jetzt keine Probleme mehr.

:dancer: Danke an alle!!!!!!!!!!!!!!!!!!!!! :dancer2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 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 by Thomas Breitkreuz