Entwickler-Ecke
LCL-Komponenten - Panel schliessen
pitko - Fr 02.01.15 14:03
Titel: Panel schliessen
Hallo zusammen,
ich bin gerade dabei, mit Lazarus zu beginnen und möchte ein kleines Programm schreiben.
Die TForm1 hat ein Menü, darüber möchte ich die einzelnen Seiten auf Panels aufrufen.
Es soll nun so sein, dass wenn ein neues Panel über einen Menüpunkt aufgerufen wird, das bisher
angezeigte Panel mit nicht mehr angezeigt wird.
Meine Lösung bisher ist, dass ich alle Panels mit Panelx.visible := FALSE in der Menüpunktprozedur MenuItem.onClick nicht mehr anzeige.
Bei ca. 15 Panels eine riesige Schreiberei.
Gibt es eine Möglichkeit, alle Objekte, also Panels auf der MainForm gleichzeitig zu verstecken, oder wäre hier eine
extra Prozedur hilfreicher?
Danke.
pitko - Fr 02.01.15 16:54
Danke erstmal ub60,
ich habe diesen Programmteil einmal in eine bestehende (Menü) onClick Prozedur geschrieben,
eine eigene Prozedur wird - noch nicht - erkannt, ohne Fehlermeldung...
Beim Anklicken in der .exe kommt dann eine Exception.
ub60 - Fr 02.01.15 17:11
Sinnvollerweise sollten Deine Panel dann auch Panel1 bis PanelX heißen (fortlaufend!).
Bei mir funktioniert das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.ButtonAusClick(Sender: TObject); var i : Integer; begin for i:=1 to 6 do TPanel(Findcomponent('Panel'+IntToStr(i))).Visible:=FALSE; end;
procedure TForm1.ButtonAnClick(Sender: TObject); var i : Integer; begin for i:=1 to 6 do TPanel(Findcomponent('Panel'+IntToStr(i))).Visible:=True; end; |
ub60
pitko - Fr 02.01.15 17:22
Natürlich habe ich die Panels von Panel1 bis PanelX umbenannt, soweit hab ich ja noch mitgedacht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Menu21Click(Sender: TObject); var i: Integer; begin for i:=2 to 12 do begin TPanel(Findcomponent('Panel'+IntToStr(i))).Visible:=FALSE; end;
Panel2.Visible := TRUE; Panel2.Align := alTop; end; |
Hmmm, ich kann da jetzt keine großen Unterschiede entdecken ...
pitko
Moderiert von Narses: Beiträge zusammengefasstub60
es funktioniert !
Vielen Dank !
Ich hatte noch keine 12 Panels angelegt, somit ist die Prozedur ins Leere gelaufen.
Wenn ich die exakte Anzahl der Panels nehme, ist alles iO.
pitko
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!