Hi,
ich habe eine Funktion für mein Programm geschireben (
http://www.delphipraxis.net/viewtopi...65d8a8f8567d54)
Damit werden andere Fenster in ein PopUp-Menü und in eine ListView minimiert.
Jetzt habe ich aber ein Problem. ERstmal vorweg: Die Funktion wird definitiv nur einmal ausgeführt...
Also führe ich ganz normal die Funktion aus, wird sie scheinbar 2 mal ausgeführt. Zumindest werden 2 Einträge eingetragen.
Schreibe ich jedoch am Anfang der Funktion ein ShowMessage(''); und führe sie aus so funktioniert alles wie gewünscht (bisauf, dass die Message gezeigt wird)
Woran liegt das?
Delphi-Quellcode:
function hide1(i : integer; Listview1 : TListView) : Boolean;
var
pos1 : Integer;
title : String;
begin
ShowMessage(''); //disee doofe Message......
if (ListView1.Items.Item[i].Checked = true) then
begin
{vestecken...}
SetLength(fenster,High(fenster)+2);
SetLength(fenster[High(fenster)],2);
title := GetText(StrToInt(ListView1.Items.Item[i].SubItems.Strings[0]));
fenster[High(fenster),1] := title;
fenster[High(fenster),0] := ListView1.Items.Item[i].SubItems.Strings[0];
ShowWindow(StrToInt(fenster[High(fenster), 0]), SW_HIDE);
end
else
MessageDlg('Fenster schon verborgen.', mtWarning, [mbok], 0);
end;
Das ist irgendwie verrückt!
Ich könnte mir höchstens Vorstellen, dass da irgendwie eine Zeitverzögerung oder sowas der Grund ist. Ein Sleep(1000) bringt aber auch nichts...
Habt ihr ne Ahnung wie ich das vernünftig lösen kann?
Oder wie ich diese Message anzeigen lassen und sofort wieder schließen kann?
Danke schon mal