![]() |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Wenn du folgendes versuchst
Delphi-Quellcode:
Ansonsten Poste mal den Code von den beiden Events dann versteht man besser was du meinst.
//nach dem öffnen des Fensters
Button.Tag := 1; //dann im OnExpanded if Button.Tag = 0 then //dein code zum öffnen else Button.Tag := 0; Gruß Stormy |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Hallo,
du könntest, für den Fall dass das Fenster von der Button.Expanded Methode ausgeblendet wird, vorher den Event auf nil setzen, und wenn du das Fenster erneut öffnest, dann wieder auf deine Ereignismethode. |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Zitat:
Zitat:
Zitat:
![]() |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Zitat:
Delphi-Quellcode:
Und zum anderen die relevanten Zeilen aus meiner Button-Komponente:
procedure TForm2.OnOptionClose(Sender : TObject);
begin MyQuickButton1.Expanded := False; end; procedure TForm2.MyQuickButton1Expanded(Sender: TObject; Expanded: Boolean); var oPnt: TPoint; begin oPnt := MyQuickButton1.ClientToScreen(Point(0, MyQuickButton1.Height)); FOptions := TfrmOptions.Create(Nil); FOptions.Top := oPnt.Y; FOptions.Left := oPnt.X; FOptions.FreeOnRelease; FOptions.OnCallback := OnOptionClose; FOptions.Show; end;
Delphi-Quellcode:
procedure TMyQuickButton.SetExpanded(const Value : Boolean);
begin if FExpanded <> Value then begin SetExpandedImg(not FExpanded); FExpanded := Value; CallEvents; Invalidate; end; end; ... procedure TMyQuickButton.CallEvents; begin // Call expanded event if FExpanded and Assigned(FOnExpanded) then FOnExpanded(Self, FExpanded); // Call collapsed event if not FExpanded and Assigned(FOnCollapsed) then FOnCollapsed(Self, FExpanded); end; procedure TMyQuickButton.Click; var Form: TCustomForm; begin SetExpandedImg(not FExpanded); FExpanded := not FExpanded; CallEvents; Form := GetParentForm(Self); if Form <> nil then Form.ModalResult := ModalResult; inherited; end; |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Du könntest den Button mit einer
![]() Edit: Für FOptions würde sich dann ja ggf. ein "Singleton" anbieten... |
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Zitat:
In Action.OnUpdate wird Button.Expanded je nach Optionfenster.Visible gesetzt? So weit so klar, Warum bei Action.OnExecute das Fenster schließen? Wann erstelle ich denn dann deiner Meinung nach das Optionsfenster? Zitat:
|
Re: Suche Idee, Button soll Options Fenster anzeigen/verberg
Ja mit Schließen meinte ich "Anzeigen bzw. Verbergen" (Visible := not Visible).
Singelton ist, wenn Du nur ein Optionsmenü instanzieren kannst, pro Klasse. Singleton war auch nur ein Vorschlag. Du kannst das Formular auch in einer Variable (private/protected Abschnitt des Aufrufenden Forms) zwischenspeichern. Wenn die Variable zu Anfang = nil ist, erstellst Du das Form, ansonsten musst ja nur "Visible" ändern... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 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-2025 by Thomas Breitkreuz