Sorry aber ich komme da nicht mit. Ich weiß jetzt ungefähr was ich in meine Klasse alles schreiben soll allerdings wars das auch schon. Meine Hauptverständnisschwierikeiten liegen noch immer in der Verbindung der Klasse mit der Anwendung.
Sprich: "Wie kommuniziert die Klasse mit der Anwendung?"
Vielleicht kannst du deine Codezeilen kurz kommentieren. Habe mal versucht die BeispielKlasse von mir so weit es geht abzuändern jedoch fehlt da noch Grundlegendes. Es soll wenn sich FStatus ändert in der Anwendung gemeldet werden.
Testen würde ich das Ganze erstmal über ein Formular indem ich über einen Button FStatus ändere und auf eine Meldung warte (wo wir wieder bei meinem Verständnisproblem wären). Davon schein ich allerdings noch meilenweit entfernt zu sein
Delphi-Quellcode:
type
TOnChange_Proc = procedure() of object;
Fehlt hier nicht noch was?
Delphi-Quellcode:
unit Testclass;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms, Dialogs,
StdCtrls, WinSock,
ActiveX, ComObj, ExtCtrls;
type
TOnChange_Proc =
procedure()
of object;
TMyClass =
class(TObject)
private
FTimer : TTimer;
FStatus : Boolean;
FOnChange : TOnChange_Proc;
procedure OnChange;
function getAvailable: Boolean;
procedure testTimer(Sender : TObject);
public
constructor Create;
destructor destroy;
override;
property OnChange_Func : TOnChange_Proc
read FOnChange
write FOnChange;
property Status : Boolean
read FStatus
write FStatus;
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;
FOnChange :=
nil;
end;
destructor TMyClass.Destroy;
begin
FTimer.Free;
inherited;
end;
procedure TMyClass.OnChange;
begin
if Assigned(FOnChange)
then
FOnChange;
end;
procedure TMyClass.testTimer(Sender:TObject);
begin
GetAvailable;
ShowMessage('
Timer läuft auch')
end;
function TMyClass.GetAvailable: Boolean;
begin
if FStatus = true
then
result := true
else
result := false
end;
end.