Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

"Ungültiges Fensterhandle (Code 1400)" wegen indy

  Alt 26. Okt 2006, 12:58
Hallo Community,
Ich erhalte die o.g. reproduzierbare Fehlermeldung, wenn ich meinen FTP-Server aus der TNA heraus wieder anzeigen lasse. ABER der Fehler tritt nur dann auf, wenn ich meinen FTP-Server sofort beim Programmstart minimiere (Autostart-Feature) und ein Client eine Verbindung zum FTP-Server aufgebaut hat.

Delphi-Quellcode:
[OnFormCreate]
begin
  if CB_Autostart.Checked then
  begin
    Application.ShowMainForm := false;
    AddTNAIcon('NoobFTP - Server');
    Open_FTP_Server;
  end;
end;

Procedure TF_Server.AddTNAIcon(const TNA_String: String);
begin
  with NIM do begin
    cbSize := SizeOf(NIM);
    Wnd := self.Handle;
    uID := 0;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    hIcon := Application.Icon.Handle;
    uCallbackMessage := WM_TASKBAREVENT;
    StrPCopy(szTip, TNA_String);
  end;
  Shell_NotifyIcon(NIM_ADD, @NIM);
end;

[Open_FTP_Server]
begin
  IdFTPServer1.Active := not IdFTPServer1.Active;
  if IdFTPServer1.Active then
  begin
    IdFTPServer1.MaxConnections := StrToIntDef(E_maxC.Text, 2);
    L_status.Caption := 'Status: opened';
    B_create.Caption := 'Close FTP Server';
  end;
end;

Procedure TF_Server.WMSysCommand(var Msg: TWMSysCommand);
Begin
  if (Msg.CmdType and $FFF0) = SC_MINIMIZE then
  begin
    self.Hide;
    //windows.ShowWindow(Application.Handle, SW_HIDE);
    //windows.ShowWindow(self.Handle, SW_HIDE);
    AddTNAIcon('NoobFTP - Server');
  end
  else
    inherited;
end;

Procedure TF_Server.WMTaskBarEvent(var Msg: TMessage);
Begin
  case Msg.LParamLo of
    WM_LBUTTONDBLCLK:
      begin
        self.Show;
        //windows.ShowWindow(self.Handle, SW_SHOW);
        //windows.ShowWindow(Application.Handle, SW_SHOW);
        Application.BringToFront;
        RemoveTNAIcon;
      end;
  End;
End;
Kann mir jemand erklären, wie diese Fehlermeldung zustande kommt?

mfg Nogge
  Mit Zitat antworten Zitat