Einzelnen Beitrag anzeigen

Megamorph

Registriert seit: 28. Dez 2005
25 Beiträge
 
#9

Re: Problem mit Thread in der Klasse

  Alt 27. Dez 2008, 11:59
Hallo,

@Luckie: Danke, genau das habe ich gesucht! So funktioniert es jetzt auch. (-:
@alzaimar:
>Innerhalb der Methode greifst Du aber auf eine private Variable der Klasse zu. Ohne Objekt geht das immer in die Hose.

Ein klares "falsch"! Der Bauplan für ein Objekt ist eine Klasse. Methoden sind Proceduren/Funktionen, die Member der Klasse sind. Methoden können auf interne(private) und externe(public) Variablen (jedoch nicht properties) zugreifen! Das ganze auch ohne Objekt! Logischerweise wird der Code einer Methode einer Klasse erst dann ausgeführt, wenn ein Objekt nach dem Bauplan der Klasse erschaffen wurde und die Methode aufgerufen wird.

Delphi-Quellcode:
type
  TXxxxxxx = class
    private
//...
      bActive_ : Boolean;
    public
//...
      procedure WorkThread();
      property bActive : Boolean read bActive_ write bActive_ ;
  end;

implementation

procedure TXxxxxxx.WorkThread;
begin
  while true do
  begin
    MessageBox(0,'1','',MB_OK);
    if bActive_ then begin end;
    MessageBox(0,'2','',MB_OK);
  end;
end;

end.
Das hier funktioniert, wenn die Methode nun nicht gerade als Thread aufgerufen wird, obwohl die Methode WorkThread (nicht vom Namen irritieren lassen) die private Variable bActive_ benutzt. (-;

>Bist Du sicher, Du weisst, was (Delphi)Klassen sind bzw. wie man damit arbeitet? Oder ist das nur die übliche ouch! Betriebsblindheit?

Bitte nicht nur bei den anderen nach Fehlern suchen.
MfG Mega.
  Mit Zitat antworten Zitat