Ich hab einen alten Code ausgegraben, der unter D7 und
W2k immer funktioniert hat und unter D2k9 und Vista nur manchmal geht.
Delphi-Quellcode:
// Zum Testen stark vereinfacht - Fehler tritt aber immernoch auf.
procedure callback(Value: PAnsiChar);
begin
Form1.Label4.Caption:=Value; // klappt immer
showmessage('Tadaaa'); // klappt nur selten
end;
Der Callback kommt aus einer
DLL und der Wert steht beim debuggen auch in Value. Hab zum testen mal nen Text statisch reingeschrieben. Selber effekt. Die Messagebox geht auf aber ist leer. Manchmal klappts aber auch. Ich löse den callback zum Testen durch einen ButtonClick aus. Klicke ich 10 mal hab ich bestimmt ca 3 mal Text in der Messagebox. Wie gesagt, ob ich Value anzeige oder Statischen Text ist egal. Der Callback ansich funktioniert also. Es muss IMO was an der
VCL klemmen.
Der Callback ist nicht Teil der Klassenstruktur also auch bewusst nicht "of object". Ich denke mir, dass der Callback asynchron rein kommt und die
VCL da Schwierigkeiten hat. Gibts da nen Trick oder so? Ich kann nix syncen in meinem Mainform, oder doch?
Gruß,
Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?