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