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 Toolbar zur Laufzeit vernichten und wieder neu erstellen (https://www.delphipraxis.net/45564-toolbar-zur-laufzeit-vernichten-und-wieder-neu-erstellen.html)

Benjin 8. Mai 2005 15:41


Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Hallo,

ich versuche eine Funktion in meinem Programm zu implementieren, die eine Toolbar verschwinden und
wieder erscheinen lässt. Mit einer normalen Änderung der Visible oder Enabled Eigenschaft funktioniert das leider nicht zufriedenstellend, da zwar die Toolbar verschwindet, aber ein Platzhalter bleibt bze. der benötigte Platz auf der Form nicht verwendet werden kann.

Nun versuche ich zur Laufzeit die Toolbar per destroy zu entfernen und per create wieder neu zu erstellen mit entsprechenden Funktionen für die Buttons.
Ersteres funktioniert Problemlos via .destroy(), beim "Wiederaufbau" habe ich leider Probleme.
Wie gehe ich das am besten an und wie erstelle ich Buttons, Funktionen etc. während der Laufzeit neu??


Vielen Dank für jegliche hilfe,

marabu 8. Mai 2005 17:31

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Zitat:

Zitat von Benjin
Nun versuche ich zur Laufzeit die Toolbar per destroy zu entfernen und per create wieder neu zu erstellen

So funktioniert es ohne destroy und create:

Delphi-Quellcode:
with Toolbar do begin
  Visible := not Visible;
  if Visible
    then Parent := self // deine Form
    else Parent := nil;
end;
Grüße vom marabu

Khabarakh 8. Mai 2005 17:34

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
1. Nie Destroy aufrufen, nimm besser Free.
2. Hast du dich schon mit OOP beschäftigt? Wenn nicht, solltest du da anfangen.

[edit]Dummer roter nichtexistenter Kasten :stupid: [/edit]

Benjin 9. Mai 2005 11:33

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Zitat:

Zitat von marabu
Zitat:

Zitat von Benjin
Nun versuche ich zur Laufzeit die Toolbar per destroy zu entfernen und per create wieder neu zu erstellen

So funktioniert es ohne destroy und create:

Delphi-Quellcode:
with Toolbar do begin
  Visible := not Visible;
  if Visible
    then Parent := self // deine Form
    else Parent := nil;
end;
Grüße vom marabu


Ist bei dieser Variante auch der Platz der Toolbar verwendbar? Oder existiert weiterhin ein unsichtbarer Platzhalter?

Und wie sieht die "Toolbar wieder anzeigen"-Funktion aus?

Vielen Dank!

Jan

MathiasSimmack 9. Mai 2005 11:35

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Das ist eine toggle-Funktion. Du rufst sie auf, die Toolbar verschwindet. Du rufst sie noch mal auf, die Toolbar erscheint. :roll:

Benjin 9. Mai 2005 23:06

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Klar, mir gehts jedoch nicht nur ums reine Verschwinden, sondern darum, auf der ursprünglichen Toolbar Position andere Elemente anzuzeigen, während die Toolbar ausgeblendet ist.

Mit dem normalen Visible := False geht dies eben nicht.

Deswegen meine Frage...

Aenogym 9. Mai 2005 23:31

Re: Toolbar zur Laufzeit vernichten und wieder neu erstellen
 
Zitat:

Zitat von Benjin
Klar, mir gehts jedoch nicht nur ums reine Verschwinden, sondern darum, auf der ursprünglichen Toolbar Position andere Elemente anzuzeigen, während die Toolbar ausgeblendet ist.

Mit dem normalen Visible := False geht dies eben nicht.

Deswegen meine Frage...

der "platzhalter" dürfte verschwinden, da das parent auf nil gesetzt wird.

aenogym


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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