Soweit wir noch nicht bei Science Fiction sind sollte dein Programm auch nur das tun was im Quelltext steht. Schau doch einfach an welchen Stellen im Code die Methode aufgerufen wird und nicht "
theoretisch könnte das sein"
Die Codebasis ist über mehr als 20 Jahre entstanden, das Programm entsprechend groß und teilweise unübersichtlich. So einfach ist das leider nicht.
Zitat:
PS: Software die das Haus verlässt braucht unbedingt vernünftiges
Exception-Logging sodass du direkt den kompletten Aufruf-Stack bekommst. Wenn die einzige Info nur ein kurzer Text auf einer Messagebox ist wird man echt nicht glücklich.
Haben wir. Bringt uns hier nur nichts, da ich das Problem bisher nicht reproduzieren kann. Ich muss mit dem Arbeiten, was der Kunde mitteilt.
Zitat:
Critical Sections sind einfach: Du erzeugst dir einmalig so ein Objekt, und immer um einen Abschnitt zu sperren sagst du einmal
Acquire()
und wenn du fertig bist
Release()
http://docwiki.embarcadero.com/RADSt...che_Abschnitte
Delphi-Quellcode:
uses
System.SyncObjs;
var
criticalSection: TSynchroObj;
procedure funWithClipboard();
begin
criticalSection.Acquire();
try
ClipBoard.Open();
try
// (...)
finally
ClipBoard.Close();
end;
finally
criticalSection.Release();
end;
end;
Das werde ich mal versuchen, danke