![]() |
Delphi-Version: 7
Namen von boolschen Variablen / Bool Variablen überwachen
Hallo Forum,
ich möchte in einer Anwendung grafisch anzeigen wenn gewisse Schalter (bool) gesetzt sind und natürlich auch die Anzeige entfernen, wenn der Schalter nicht gesetzt ist. Den Schalter kann der User selbst jederzeit setzen. Zum Beispiel: Ich erlaube dem User auf ein PopUpMenü-Eintrag zu klicken um einen Editiermodus zu aktivieren. Verschiedene Aktionen (speichern, ESC-Taste, abbrechen etc.) beenden diesen Editiermodus. Dahinter verbirgt sich eine boolsche Variable die in jedem einzelnen Eventhandler entsprechend verändert wird. Mir schwebt nun eine Funktion vor, die sämtliche boolschen Variablen umschaltet und abhängig von der Variable weitere Dinge verrichtet: Also praktisch so: Jemand schaltet das Editieren ein (boolEDIT:=TRUE) passiert nicht auf den Button oder PupUpKlick, sondern der Button schickt die Variable an diese Funktion und diese schaltet den Wert um und reagiert abhängig vom Namen der Variablen. So nach dem Motto: Procedure SwitchBool ( NameDerBoolVariable: ??? (String) ) Begin NameDerBoolVariable := Not NameDerBoolVariable; if NameDerBoolVariable = 'boolEdit' then begin // zeig was sexy an.. end; |
AW: Namen von boolschen Variablen / Bool Variablen überwachen
Das macht man mit einer
Delphi-Quellcode:
. Im Setter kann man dann auf die Änderung reagieren und einen Event auslösen (Vor der Änderung, Nach der Änderung).
property
|
AW: Namen von boolschen Variablen / Bool Variablen überwachen
OK, es geht also...
Kannst du mir ein Beispiel zeigen oder auf die Sprünge helfen? |
AW: Namen von boolschen Variablen / Bool Variablen überwachen
Deklariere im Public-Abschnitt oder auch Private (was eigentlich Quatsch ist) eine
Delphi-Quellcode:
property
Delphi-Quellcode:
type
TTestClass = class private FMyProperty: Boolean; procedure SetMyProperty(Value: Boolean); function GetMyProperty: Boolean; public // Alternativ zu GetMyProperty kannst du auch einfach FMyProperty einsetzen, da beim Lesen ja nur der aktuelle Wert zurückgegeben werden soll property MyProperty: Boolean read GetMyProperty write SetMyProperty; end; implementation procedure TTestClass.SetMyProperty(Value: Boolean); begin if SomeCondition then // Hier kannst du entscheiden, wann deine Variable gesetzt werden soll FMyProperty := Value; end; function TTestClass.GetMyProperty: Boolean; begin Result := FMyProperty; end; Alles nur so hier reingeschrieben. Es könnte also auch der ein oder andere (Schreib-)Fehler darin enthalten sein. Edit: Im Setter (SetMyProperty) kannst du natürlich noch hunderte weitere Schritte ausführen wie z.B. ein paar Buttons je nach Zustand ein- oder ausschalten. Halte den Setter aber so kurz wie möglich.
Delphi-Quellcode:
procedure TTestClass.SetMyProperty(Value: Boolean);
begin if SomeCondition then // Hier kannst du entscheiden, wann deine Variable gesetzt werden soll FMyProperty := Value; DoSomeOtherStuffHere; end; |
AW: Namen von boolschen Variablen / Bool Variablen überwachen
Zitat:
|
AW: Namen von boolschen Variablen / Bool Variablen überwachen
Ich mag mich täuschen, aber ich habe den TE so verstanden, dass er gerne eine Prozedur hätte, der er eine beliebige (oder zumidnest verschiedene) Boolsche variablen übergeben kann und dir Prozedur negiert deren Wert und abhängig von der konkreten Variablen wird dann noch irgendwas in der Anzeige gesteuert.
Das wird aber wohl so naiv nicht funktionieren, weswegen er vielleicht um es einfach zu halten vielleicht das switchen der Variablenwerte jeweils für die Variablen an der richtigen Stelle selber macht und dann jeweils eine Prozedur aufruft, um die Anzeige anzupassen:
Delphi-Quellcode:
Eine Funktion, die nur eine boolsche Variable "Switched", könnte man realisieren, indem man die variable als Referenz übergibt:
[...irgendwo im Code passiert:]
EditsOnLeftSideVisible:= True // False // not EditsOnLeftSideVisible ??? AdjustView procedure AdjustView() begin //...andere Prüfungen PanelWithEditsOnLeftSide.Visible:=EditsOnLeftSideVisible; //...andere Prüfungen end;
Delphi-Quellcode:
procedure SwitchBoolValue(var aBool:Bool);
begin aBool:=not aBool; end; |
AW: Namen von boolschen Variablen / Bool Variablen überwachen
Zitat:
Ich probiere es zunächst einmal mit dem Hinweis auf den Setter. Vielen Dank zunächst.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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