Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Konzeptfrage zu Problem Methodenzeiger vs. reguläre Procedur

  Alt 13. Okt 2009, 09:34
Hallo und guten Tag an alle DP´ler,

Wollte mal eine Frage stellen zu einem Eventhandling, was ich probiert habe, welches aber so anscheinend (noch) nicht funktioniert. Ich wollte in einer Procedure einen Thread öffnen, diesen abarbeiten und dann über ein Event schließen. Da dies nirgendswo anders benötigt wird, habe ich mal folgende Struktur ausprobiert:

Delphi-Quellcode:
procedure TForm2.Messung(iMessreihen, iMesswerte, iMessabstand: Integer);
var TempList: TMesswertpacket;
  procedure GetMesswertList(Sender: TObject; List: TStringList);
    begin
      try
        TempList.FsLMesswertListe.Assign(List);
      finally
        FMessThread.Free;
      end;
    end;
begin
// in der Messung sollen iMessreihen * iMesswerte an Messpunkten aufgenommen, um
// diese später statistisch auszuwerten.
// Dafür Mesthread erstellen, der in regelmäßigen Abständen die entsprechende Anzahl
// an Messwerten aufnimmt.
  FMessThread := TMessThread.create((iMessreihen * iMesswerte), iMessabstand);
  try
    FMessThread.OnMessWertListcompleted := GetMessWertList;
    FMessThread.WaitFor;
    TempList.Messwertreihen := iMessreihen;
    TempList.Messwertanzahl := iMesswerte;
    // weitere Aufrufe, die die TempList an eine andere Funktion schicken
  except
    FMessThread.Free;
  end;
end;
Ich weiß, wenn ich die GetMesswertList in die Funktionsliste der TForm2 aufnehme, bekomme ich das ohne Probleme hin, wollte es aber in sich verschachteln, da die GetMesswertList-Procedure eh nirgendswo anders Verwendung findet. Kann man das in irgendeiner Form so zum Laufen bringen (derzeit bekomme ich immer Fehlermeldung, wegen regulärer Funktion und Methodenzeiger)?

Vielen Dank im Voraus
BAMatze

Ps.: das Event wird erst nach einem Schleifenaufruf (for-Schleife) und somit nach Ermittlung ALLER Messwerte ausgelöst.
2. Account Sero
  Mit Zitat antworten Zitat