AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eine Art onchange für Variabeln?

Ein Thema von buster55 · begonnen am 8. Apr 2009 · letzter Beitrag vom 8. Apr 2009
Antwort Antwort
Seite 1 von 3  1 23      
buster55

Registriert seit: 25. Nov 2007
88 Beiträge
 
#1

eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 15:24
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
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#2

Re: eine Art onchnage für Variabeln?

  Alt 8. Apr 2009, 15:25
Such mal nach dem Stichwort Hier im Forum suchenProperty.
Dies ist ziemlich elegant gelöst mit Getter und Setter-Methoden.

Hier noch ein kleines Beispiel:

property Foo: Boolean read getFFoo write setFFoo;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: eine Art onchnage für Variabeln?

  Alt 8. Apr 2009, 15:26
Du könntest statt einer Variablen eine Property einer Klasse verwenden. Da könntest Du dann eine Setter-Methode implementieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
buster55

Registriert seit: 25. Nov 2007
88 Beiträge
 
#4

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 15:52
mmh danke erstmal da kommen wir der sache schon näher
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 15:53
Zitat von buster55:
Natürlich kann ich auch eine Schleife machen die das fortwährend abfragt, das macht die ganze Sache aber ein wenig langsam.
Das ist doch Blödsinn. Eine Variable ändert sich nur durch eine Zuweisung im Code und dann weißt du auch wann sie sich geändert hat. Du musst also nicht ständig den Zustand der Variablen überprüfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
buster55

Registriert seit: 25. Nov 2007
88 Beiträge
 
#6

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 15:57
Zitat:
Eine Variable ändert sich nur durch eine Zuweisung im Code und dann weißt du auch wann sie sich geändert hat
nicht wenn der Benutzer darauf Einfluss hat, dann weiß man zwar wann sie sich ändern könnte aber nicht wann sie konkret einen Wert annimmt, schon gar nicht wenn die Variabel von einer Dritten Quelle gelesen wird.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#7

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 15:59
Zitat von Luckie:
Das ist doch Blödsinn. Eine Variable ändert sich nur durch eine Zuweisung im Code
richtig,
die Frage ist ja auch, wer oder was verändert die Variable ?
Karl-Heinz
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#8

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 16:00
Zitat von buster55:
nicht wenn der Benutzer darauf Einfluss hat, dann weiß man zwar wann sie sich ändern könnte aber nicht wann sie konkret einen Wert annimmt, schon gar nicht wenn die Variabel von einer Dritten Quelle gelesen wird.
das solltes du schon etwas näher erklären
Karl-Heinz
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#9

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 16:02
Zitat von buster55:
Zitat:
Eine Variable ändert sich nur durch eine Zuweisung im Code und dann weißt du auch wann sie sich geändert hat
nicht wenn der Benutzer darauf Einfluss hat, dann weiß man zwar wann sie sich ändern könnte aber nicht wann sie konkret einen Wert annimmt, schon gar nicht wenn die Variabel von einer Dritten Quelle gelesen wird.
Ich denke da ist dein Anwendungsdesign aber ziemlich suboptimal

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;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: eine Art onchange für Variabeln?

  Alt 8. Apr 2009, 16:05
Ich hätte da mal was:

Delphi-Quellcode:
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;
Das OnChange-Event kann man bei Bedarf ja noch hinzufügen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:31 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