Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Auslöser (https://www.delphipraxis.net/58763-ausloeser.html)

maximus Caesar 12. Dez 2005 12:02


Auslöser
 
Hallo!
Wenn jetzt z.B. eine Taste der Tastatur gedrückt wird, dann kann man ja dem Programm sagen, das es dann eine Prozeudre ausführen soll.
Wenn ich jetzt z.B. eine Variable vom Typ Integer habe, und diese einen bestimmten Wert erreicht oder übersteigt, ist es dann auch möglich, eine prozedur auszuführen, ohne dass ich andauernd im Hintergrund einen Timer oder was anderes laufen habe, das den Wert überprüft?

jim_raynor 12. Dez 2005 12:11

Re: Auslöser
 
Nein das geht nicht. Du müsstest eine Funktion machen, über die der Integer gesetzt wird. Dann könntest du dort die Prüfung machen und eine Hier im Forum suchenCallback-Prozedur aufrufen.

TeronG 12. Dez 2005 12:21

Re: Auslöser
 
Was erhöht denn deinen Integer? Eine externe Quelle oder ne Procedure in deinem Programm?

dataspider 12. Dez 2005 12:23

Re: Auslöser
 
Hi Maximus,
wenn es eine Integer Variable aus deinem Code ist, dann mach doch daraus ein Property mit einer Write - Methode. Da kannst du vor dem Setzen der Variablen entsprechend reagieren oder deine Procedure ausführen.
Gruß, Frank

maximus Caesar 12. Dez 2005 12:27

Re: Auslöser
 
Zitat:

Zitat von dataspider
Hi Maximus,
wenn es eine Integer Variable aus deinem Code ist, dann mach doch daraus ein Property mit einer Write - Methode. Da kannst du vor dem Setzen der Variablen entsprechend reagieren oder deine Procedure ausführen.
Gruß, Frank

Wie mach ich das?

Die Integervariable wird inerhalb des Programms bestimmt

TeronG 12. Dez 2005 13:55

Re: Auslöser
 
Zitat:

Zitat von maximus Caesar
Die Integervariable wird inerhalb des Programms bestimmt

Wenn das nur an einer Stelle geschieht prüfe dort ... ansonsten würd ich auf maximus verweisen.
(object erstelle unso .. )
EDIT: hilfe dazu: Delphi-Referenz durchsuchenProperty --> read, write

dataspider 12. Dez 2005 14:10

Re: Auslöser
 
Wie mache ich das...
Statt einer Integer Variablen MyInteger die Variante mit Property:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    FMyInteger: Integer;
    procedure SetMyInteger(const Value: Integer);
    { Private-Deklarationen }
  public
    property MyInteger: Integer read FMyInteger write SetMyInteger;
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SetMyInteger(const Value: Integer);
begin
  if (FMyInteger <> Value) then
  begin
    // oder vorher procedure
    // if CheckValueOK(Value) then
    //   FMeineInteger := Value
    if Value <= 10000 then
      FMyInteger := Value
    else
      ShowMessage('Nur bis 10000 gestattet...');
  end;
end;

end.
Gruß, Frank

maximus Caesar 12. Dez 2005 14:54

Re: Auslöser
 
Danke!


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