Jetzt wird's strange:
Eben habe ich durch Zufall rausgefunden, dass die Tooltipps verschwunden sind, wenn eine andere Delphi-Anwendung läuft. Mit dieser simuliere ich ein Stück Hardware, mit der von meiner aktuellen Applikation kommuniziert wird. Da diese eigentlich fast immer im Hintergrund läuft, waren die Tooltipps auch so gut wie immer weg. Gestartet habe ich die meist wenn ich das Hauptprogramm zum ersten mal getestet habe, daher ging es am Anfang. Die Anwendung selbst starte ich aber normalerweise nicht aus der
IDE sonder starte direkt die EXE.
Und natürlich habe ich auch schon weiter gesucht. In der Applikation wird zyklisch ein Log, welches in einem Memo ausgegeben wird aktualisiert. Sobald "Memo.Lines.BeginUdpate" / "Memo.Lines.EndUpdate" zyklisch aufgerufen wird, sind die Tooltipps in der
IDE verschwunden. Hatte da eine etwas ungünstige Konstellation, ist aber ja nur ein Testprogramm:
Delphi-Quellcode:
LogLines := FLogLines.LockList;
try
mLog.Lines.BeginUpdate;
try
if LogLines.Count > 0 then
begin
while LogLines.Count > 0 do
mLog.Lines.Add(LogLines.ExtractAt(0));
while mLog.Lines.Count > 10000 do
mLog.Lines.Delete(0);
SendMessage(mLog.Handle, EM_LINESCROLL, 0, mLog.Lines.Count);
end;
finally
mLog.Lines.EndUpdate;
end;
finally
FLogLines.UnlockList;
end;
ich habe das jetzt geändert in:
Delphi-Quellcode:
LogLines := FLogLines.LockList;
try
if LogLines.Count > 0 then
begin
mLog.Lines.BeginUpdate;
try
while LogLines.Count > 0 do
mLog.Lines.Add(LogLines.ExtractAt(0));
while mLog.Lines.Count > 10000 do
mLog.Lines.Delete(0);
SendMessage(mLog.Handle, EM_LINESCROLL, 0, mLog.Lines.Count);
finally
mLog.Lines.EndUpdate;
end;
end;
finally
FLogLines.UnlockList;
end;
und siehe da, die Tooltips in der
IDE sind wieder da (LogLines.Count ist nur ab und zu > 0). Ist absolut reproduzierbar. Externe Applikation. Ein Memo und einen Timer drauf. Dann im Timer zyklische Memo.Lines.BeginUpdate und Memo.Lines.EndUpdate aufrufen. Das Ding starten und Good By Tooltips...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)