AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Klasse soll Anwendung nur bei best. Änderung benachrichtigen
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse soll Anwendung nur bei best. Änderung benachrichtigen

Ein Thema von Sunshine21 · begonnen am 26. Jun 2008 · letzter Beitrag vom 27. Jun 2008
 
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#1

Klasse soll Anwendung nur bei best. Änderung benachrichtigen

  Alt 26. Jun 2008, 09:35
Hallo Deutschland (3:2) )

Ich glaube ich brauch professionelle Hilfe.

Ich habe hier ein Klasse die ich in einer extra Unit gespeichert habe. Sämtliche Funktionen und Prozeduren (auch ein Timer ist dabei) funktionieren soweit ganz gut. Ich rufe sie in meiner Anwendung auf und kann dann auf freigegebene Variablen je nach Berechtigung zugreifen.

Jetzt würde ich aber aus dieser Klasse gerne eine Art Komponente entwickeln, welche permanent alles im Hintergrund abwickelt und nur bei bestimmten Änderungen von Statusvariablen eine Nachricht an meine Anwendung sendet. Momentan wird die Klasse nur per Timer in der Anwendung aufgerufen.

Was mir absolut unklar ist, ist wie ich die Verbindung zwischen Klasse und Hauptanwendung hinbekommen soll, damit die Klasse selbst von alleine den Zustand überprüft und die Hauptanwendung nur dann einen Bescheid bekommt, wenn sich in der Klasse auch wirklich etwas geändert hat.

Ich habe der besseren Übersicht mal eine einfache Klasse erstellt, in der ein Timer jeweils den Rückgabewert einer Funktion für zwei Typen prüft. Jetzt sollte eine Nachricht an die Anwendung geschickt werden, sobald sich einer der beiden Status ändert.

Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe und natürlich auch, dass ihr mir helfen könnt


Delphi-Quellcode:
unit Unit2;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms, Dialogs,
    StdCtrls, ExtCtrls;

type
    TType = (type1, type2);
    TMyClass = class(TObject)

    private
    FTimer : TTimer;
    FStatus : Boolean;

    function getAvailable(t: TType): Boolean;
    procedure testTimer(Sender : TObject);

    public
    constructor Create;
    destructor destroy; override;

    property Available [t : TType] : Boolean read GetAvailable;
    property Timer : TTimer read FTimer write FTimer;
end;

implementation

constructor TMyClass.Create;
begin
inherited;
    FTimer := TTimer.Create(nil);
    FTimer.enabled := false;
    FTimer.Interval := 1000;
    FTimer.OnTimer := testTimer;
end;

destructor TMyClass.Destroy;
begin
    FTimer.Free;
    inherited;
end;

function TMyClass.GetAvailable(t: TType): Boolean;
begin
  if FStatus = true then
  result := true
  else
  result := false
end;

procedure TMyClass.testTimer(Sender:TObject);
begin
    GetAvailable(type1);
    GetAvailable(type2);
end;

end.
Einen lieben Gruß

Sunshine
  Mit Zitat antworten Zitat
 


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 16:59 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