Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi onchange Procedure für einen Booleanvariable? (https://www.delphipraxis.net/92308-onchange-procedure-fuer-einen-booleanvariable.html)

gandime 17. Mai 2007 18:36


onchange Procedure für einen Booleanvariable?
 
Hi,
ist es möglich für einen Booleanvariable eine onchange Procedure ohne timer zu machen?

mfg gandime

Muetze1 17. Mai 2007 18:43

Re: onchange Orocedure für einen Booleanvariable?
 
Wenn die boolsche Variable in einer Klasse liegt, ja. Dann einfach per Property veröffentlichen und im Setter die Eventmethode auslösen, soweit zugewiesen...

gandime 17. Mai 2007 18:47

Re: onchange Procedure für einen Booleanvariable?
 
ja die boolean Variable liegt in einer Klasse vor.
Wie veröffentliche ich dann damit eine Property?
ein beispiel wäre nett :-)

Muetze1 17. Mai 2007 18:51

Re: onchange Procedure für einen Booleanvariable?
 
Delphi-Quellcode:
type
  TDieKlasse = class
  private
    fBoolVar: Boolean;
    FOnBoolVarChanged: TNotifyEvent;

    procedure SetBoolVar(Value: Boolean);
 
  public
    property BoolVar: Boolean read fBoolVar writer SetBoolVar;
    property OnBoolVarChanged: TNotifyEvent read FOnBoolVarChanged write FOnBoolVarChanged;
  end;

...

procedure TDieKlasse.SetBoolVar(Value: Boolean)
begin
  if ( fBoolVar <> Value ) then
  begin
    fBoolVar := Value;

    if assigned(FOnBoolVarChanged) then
      FOnBoolVarChanged(Self);
  end;
end;

gandime 17. Mai 2007 19:09

Re: onchange Procedure für einen Booleanvariable?
 
Die boolean Variable muss aber private sein oder?
Ich hab auch schon versucht die boolean Variable aus einer anderen Klasse zu benutzen, was aber nicht funktioniert hat!
edit:
so wie ich das sehe kann ich auch einfach eine public Procedure machen, anstatt eine booleanvariable, was nicht so umständlich is!
trotzdem danke vlt benutze ich es später nochmal

Muetze1 17. Mai 2007 19:29

Re: onchange Procedure für einen Booleanvariable?
 
Du könntest sie auch protected deklarieren, aber wozu? Schliesslich ist der Zugriff über BoolVar doch öffentlich möglich. Auch musst du nun immer auf BoolVar zugreifen und nicht auf fBoolVar damit die Änderungen ein Event (OnBoolVarChanged) auslösen!

Was meinst du mit "boolean einer anderen Klasse"?

/EDIT: Klar, du kannst einfach statt direktes ansprechen der Variablen dir auch eine Methode deklarieren. Wie es auch immer beliebt...

/EDIT2: meine Lösung bezog sich darauf einen vorhandenen Code (vorhandene öffentliche boolsche Variable) mit einem Event nachzurüsten...

gandime 17. Mai 2007 19:42

Re: onchange Procedure für einen Booleanvariable?
 
ja aber warum umständlich wenns auch einfach geht und für meine Bedürfnisse reicht die einfache Methode ;-)
wie gesagt trotzdem danke für deine bemühungen :-)


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