AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Namen von boolschen Variablen / Bool Variablen überwachen

Namen von boolschen Variablen / Bool Variablen überwachen

Ein Thema von Sugar · begonnen am 26. Sep 2015 · letzter Beitrag vom 29. Sep 2015
Antwort Antwort
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#1

Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 26. Sep 2015, 12:30
Delphi-Version: 7
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;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 26. Sep 2015, 12:41
Das macht man mit einer property . Im Setter kann man dann auf die Änderung reagieren und einen Event auslösen (Vor der Änderung, Nach der Änderung).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#3

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 27. Sep 2015, 12:36
OK, es geht also...

Kannst du mir ein Beispiel zeigen oder auf die Sprünge helfen?
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.607 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 27. Sep 2015, 13:47
Deklariere im Public-Abschnitt oder auch Private (was eigentlich Quatsch ist) eine 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;

Geändert von Aviator (27. Sep 2015 um 13:52 Uhr) Grund: Beitrag erweitert
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 28. Sep 2015, 06:22
Deklariere ... oder auch Private (was eigentlich Quatsch ist)
Wieso ist das Quatsch?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.708 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 28. Sep 2015, 09:39
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:
  [...irgendwo im Code passiert:]
  EditsOnLeftSideVisible:= True // False // not EditsOnLeftSideVisible ???
  AdjustView

procedure AdjustView()
  begin
  //...andere Prüfungen
  PanelWithEditsOnLeftSide.Visible:=EditsOnLeftSideVisible;
  //...andere Prüfungen
  end;
Eine Funktion, die nur eine boolsche Variable "Switched", könnte man realisieren, indem man die variable als Referenz übergibt:

Delphi-Quellcode:
procedure SwitchBoolValue(var aBool:Bool);
  begin
  aBool:=not aBool;
  end;
Ralph
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#7

AW: Namen von boolschen Variablen / Bool Variablen überwachen

  Alt 29. Sep 2015, 06:44
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.
Stimmt! So war der ursprüngilche Gedanke. Hintergrund ist der, dass ich nicht an jeder Stelle an der diese Variable(n) verändert werden, manuell die Routine zum Anpassen der Ansicht aufrufen muss. Ich will - sozusagen - auf das "Event" des Ändern des Werts der Bool-Variable reagieren.

Ich probiere es zunächst einmal mit dem Hinweis auf den Setter. Vielen Dank zunächst..
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf