![]() |
eine Art onchange für Variabeln?
Meine Frage ist recht simpel, gibt es eine Möglichkeit direkt auf eine Veränderung einer Variabel zu reagieren.
Natürlich kann ich auch eine Schleife machen die das fortwährend abfragt, das macht die ganze Sache aber ein wenig langsam. greetz buster |
Re: eine Art onchnage für Variabeln?
Such mal nach dem Stichwort
![]() Dies ist ziemlich elegant gelöst mit Getter und Setter-Methoden. Hier noch ein kleines Beispiel:
Delphi-Quellcode:
property Foo: Boolean read getFFoo write setFFoo;
|
Re: eine Art onchnage für Variabeln?
Du könntest statt einer Variablen eine Property einer Klasse verwenden. Da könntest Du dann eine Setter-Methode implementieren.
|
Re: eine Art onchange für Variabeln?
mmh danke erstmal da kommen wir der sache schon näher :D
Ich geh mal davon aus, dass getFFoo ne Funktion ist und setFFoo ne procedure (oder?) Ich habe eigetnlich nur vor ne simple Integer Variable u 'überwachen' und wenn sie unter 0 ist untsprechen darauf zu reagieren (0 setzen). Könntest du mir bitte ein konkreteres Bsp. liefern,habe nämlich noch nicht viel mit properties zu tun gehabt, wäre sehr nett :angel2: |
Re: eine Art onchange für Variabeln?
Zitat:
|
Re: eine Art onchange für Variabeln?
Zitat:
|
Re: eine Art onchange für Variabeln?
Zitat:
die Frage ist ja auch, wer oder was verändert die Variable ? |
Re: eine Art onchange für Variabeln?
Zitat:
|
Re: eine Art onchange für Variabeln?
Zitat:
Wenn dennnoch "benachrichtigt" werden willst, kannst du so eine Eigenschaft ganz einfach ins Form implementieren.
Delphi-Quellcode:
type
TForm1= class(TForm) private FMeineIntegerVar: Integer; protected procedure SetmeineIntegerVar(Value: integer); published property MeineIntegerBar: integer read FMeineIntegerVar write SetMeineIntegerVar; ... ... procedure TForm1.SetmeineIntegerVar(Value: Integer); begin if Value <= 0 then ShowMessage('Größeren Wert als 0 eingeben!') else FMeineIntegerBar := Value; end; |
Re: eine Art onchange für Variabeln?
Ich hätte da mal was:
Delphi-Quellcode:
Das OnChange-Event kann man bei Bedarf ja noch hinzufügen ;)
TOnChangeNotifier = class
private FValue: Integer; protected procedure SetValue(x: Integer); public property Value read FValue write SetValue; end; implementation procedure TOnChangeNotifier.SetValue(x: Integer); begin if x >= 0 then FValue := x; else raise ERangeError.Create(); { // Alternativ: if x >= 0 then FValue := x; else FValue := 0; } end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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