AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Methodenzeiger/Funktionszeiger Variable
Thema durchsuchen
Ansicht
Themen-Optionen

Methodenzeiger/Funktionszeiger Variable

Ein Thema von thecatprj2501 · begonnen am 26. Jan 2011 · letzter Beitrag vom 3. Feb 2011
Antwort Antwort
thecatprj2501

Registriert seit: 25. Jan 2011
3 Beiträge
 
#1

Methodenzeiger/Funktionszeiger Variable

  Alt 26. Jan 2011, 00:19
Hallo und Hallöchen,
ich bin neu in Delphi und arbeite mit ver.2010, habe mir eine OPC Client gebastelt und alles funzt supi.

Nun Stellte ich mir folgende frage: geht das das ich eine Integer Varieble überwachen lasse und wenn sich dieser wert ändert das automatisch dann meine sende funktion diesen geänderten wert zum OPCServer sendet.
Leider fehlt mir jeglicher ansatz, was auch den nicht ganz konkreten Titel beweist, um nach dem "was ich will" bei google zu suchen oder die foren nach lösungen zu wälzen.

Also wenn mir jemand dabei helfen könnte, fänd ich das super.

LG
TheCatPrj2501
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Methodenzeiger/Funktionszeiger Variable

  Alt 26. Jan 2011, 01:10
Ein Ansatz...

Delphi-Quellcode:
type
TNotifyEvent = procedure(Sender: TObject) of object;

TSomeClass = class
private
  FMyInt: Integer;
  FOnMyIntChange: TNotifyEvent;
  procedure SetMyInt(const Value: Integer);
public
  property MyInt: Integer read FMyInt write SetMyInt;
  property OnMyIntChange: TNotifyEvent read FOnMyIntChange write FOnMyIntChange;
end;

procedure TSomeClass.SetMyInt(const Value: Integer);
var
  HasChanged: Boolean;
begin
  HasChanged := Value <> FMyInt;
  FMyInt := Value;
  if HasChanged and Assigned( FOnMyIntChange ) then
    FOnMyIntChange( Self );
end;

{weiters}
TForm1 = class( TForm ) // oder so..
  procedure FormCreate(Sender: TObject);
public
  SomeInstance: TSomeClass;
  procedure OnSomeInstanceMyIntChange(Sender: TObject);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SomeInstance := TSomeClass.Create;
  SomeInstance.OnMyIntChange := OnSomeInstanceMyIntChange;
end;

procedure TForm1.OnSomeInstanceMyIntChange(Sender: TObject);
var
  I: Integer;
begin
  I := TSomeClass(Sender).MyInt;
  // nun per Socket senden
  {...}
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (26. Jan 2011 um 01:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Methodenzeiger/Funktionszeiger Variable

  Alt 26. Jan 2011, 09:46
Schreibt man eine Setter-Methode i.d.R. nicht eher so:
Delphi-Quellcode:
procedure TSomeClass.SetMyInt(const Value: Integer);
begin
  If Value <> FMyInt then
  begin
    FMyInt := Value;
    If Assigned(FOnMyIntChange) then FOnMyIntChange(Self);
  end;
end;
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Methodenzeiger/Funktionszeiger Variable

  Alt 26. Jan 2011, 14:22
Kann man machen. Ist sogar schöner so. Danke für den Hinweis!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
thecatprj2501

Registriert seit: 25. Jan 2011
3 Beiträge
 
#5

AW: Methodenzeiger/Funktionszeiger Variable

  Alt 3. Feb 2011, 21:11
Danke für eure hilfte hat alles super geklappt
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:28 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