Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi onVariableChange? (https://www.delphipraxis.net/22429-onvariablechange.html)

glkgereon 17. Mai 2004 17:50


onVariableChange?
 
hi
kann ich einer variablen eine procedure zuweisen?
also immer wenn zB ein boolean auf true gesetzt wird, soll die ausgeführt werden.
geht das?
wenn ja, wie?

mirage228 17. Mai 2004 17:53

Re: onVariableChange?
 
Du könntest dir mal properties anschauen.

Ein Beispiel:

Delphi-Quellcode:
  private
    FMyBool: Boolean;
 
    procedure SetMyBool(const MyBool: Boolean);
  public
    property MyBoolean: Boolean read FMyBool write SetMyBool;
end;
und dann die Implementierung:
Delphi-Quellcode:
procedure TIrgendwas.SetMyBool(const MyBool: Boolean);
begin
  FMyBool := MyBool;
  OnMyBoolGeaendert;
  // sonstige Prozeduren
end;
Ich hoffe das hat dir einen Denkanstoß gegeben.

mfG
mirage228

mirage228 17. Mai 2004 17:53

Re: onVariableChange?
 
Argh, Doppelpost! Bitte löschen!

glkgereon 17. Mai 2004 17:56

Re: onVariableChange?
 
tut mir leid, da ich so was noch nie gemacht hb... :(
kannst du mir event einen kompletten source geben, dh soviel, das ich "nur noch" die procedure die ich haben will da reinschreiben muss?

ich weiss, sollte man nicht (null-bock-regel), aber wie gesagt, ich brauchs und hab davon keinen dunst :(

mirage228 17. Mai 2004 18:01

Re: onVariableChange?
 
Hi,

ok, ich tue dir den Gefallen (Code aus der Unit1 eines neu erstellten Formulares Form1)

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FMyBoolVar: Boolean;

    procedure SetMyBoolVar(MyBoolVar: Boolean);
  public
    { Public-Deklarationen }
    property MyBooleanVar: Boolean read FMyBoolVar write SetMyBoolVar;

    procedure MyVarChanged;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SetMyBoolVar(MyBoolVar: Boolean);
begin
  FMyBoolVar := MyBoolVar;
  MyVarChanged;
end;

procedure TForm1.MyVarChanged;
begin
  ShowMessage('MyBooleanVar geändert!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyBooleanVar := True;
end;

end.
mfG
mirage228

glkgereon 17. Mai 2004 18:06

Re: onVariableChange?
 
danke :love: :-)

noch kurze frage

die procedure kann ich erstens für alle typen nehmen, oder?

also natürliuch wenn ich in den deklarationen boolean durch zb integer ersetze :-D

und zweitens wird die immer aufgerufen, nicht nur, wenn bool von true auf false gesetzt wird, und nicht wenn von false auf true?

mirage228 17. Mai 2004 18:10

Re: onVariableChange?
 
Zitat:

Zitat von glkbkk
danke :love: :-)

noch kurze frage

die procedure kann ich erstens für alle typen nehmen, oder?

also natürliuch wenn ich in den deklarationen boolean durch zb integer ersetze :-D

und zweitens wird die immer aufgerufen, nicht nur, wenn bool von true auf false gesetzt wird, und nicht wenn von false auf true?

Hi,

natürlich kannst du das. Du kannst so ziemlich alle Typen verwenden (näheres siehe OH).

Ja, immer wenn ein Wert an die Variable zugewiesen wird. ^^

mfG
mirage228

glkgereon 17. Mai 2004 19:51

Re: onVariableChange?
 
super :thuimb:

ich hab danach erst mal in den quelltext eingebaut, es verstanden und etwas ausgedünnt :-D
es funktioniert (aber!) immer noch :-D

danach habbich erst mal 5 minuten überlegt, wozu ichs nochmal benutzen wollte.. :gruebel:

aber jetzt weiss ichs, ich habs halbwegs verstanden, und es funzt!!! :thuimb:


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