Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Systemfehler. Code 1400. Ungültiges Fensterhandle. Und nu? (https://www.delphipraxis.net/45605-systemfehler-code-1400-ungueltiges-fensterhandle-und-nu.html)

shmia 20. Mai 2005 08:32

Re: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und n
 
Zitat:

Zitat von Tyler
keiner ne Idee? Ich find sonst keinen Ausweg, ausser mit der Fehlermeldung zu leben *bibber*

Diesen Fehler habe ich z.B. schon mal gehabt, wenn am Rechner kein Standarddrucker installiert war.
(Dies kommt z.B. bei Laptops vor, die noch nie an einen Drucker angeschlossen waren.)

Du kannst den Fehler finden, wenn du in den Projektoptionen -> Debuggen -> Mit Debug DCU's aktivierst.
Dann muss noch das Häckchen in Tools -> Debugger-Optionen -> Sprach-Exceptions -> Bei Delphi-Exceptions stoppen aktiviert sein.

Wenn die Delphi IDE dann bei Auftreten des Fehlers stoppt, dann lässt du dir als erstes mal den Aufrufstack anzeigen.

marabu 20. Mai 2005 08:33

Re: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und n
 
Hallo Tyler,

nach allem was ich in diesem thread lese, dreht sich dein Verdacht um die Art und Weise wie deine TCP-Server Komponente aktiviert und deaktiviert wird. Das kann nach meiner Einschätzung nicht die Fehlerursache sein. Als erstes solltest du in einem Minimal-Programm sicher stellen, dass du die TCP-Komponente richtig verwendest. Am besten auch den Code des Gegenstücks in einem Testprogramm isolieren. Das dürften zwei sehr kleine Programme werden. Wenn da etwas nicht klappt, stelle den Quelltext online und dann wird dir geholfen.

Was macht eigentlich deine Form f_Vorgangsbuch alles noch so - außer einen Buttonclick entgegennehmen? Warum übergibst du das Handle dieses Dialogfensters und nicht das Application Handle an ShellExecute()?

Grüße vom marabu

Tyler 23. Mai 2005 06:34

Re: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und n
 
den Tip mit dem Aufruf-stack hab ich durch, wurde dadurch aber auch nicht schlauer, jedenfalls steht da nichts verdächtiges :)

Jetzt hab ich jedenfalls meine beiden Routinen in 2 kleine Programme gesteckt. Zu dem Fehler wie oben beschrieben kommt es jetzt zwar nicht, aber klappen tuts immer noch nicht.

Ist nicht viel Code, ich zeigs mal eben:

Client:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  ProgressBar1.Max := 9000;
  IdTCPClient1.Port := 5001;
  IdTCPClient1.Host := '127.0.0.1';
  IdTCPClient1.Connect;
  IdTCPClient1.WriteLn('1000');

  for i := 0 to 9000 do
  begin
    IdTCPClient1.WriteLn(IntToStr(i));
    ProgressBar1.Position := i;
  end;

 
end;
Server:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdTCPServer1.DefaultPort := 5001;
  IdTCPServer1.Active := True;
end;

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
var
  s : String;
  i : Integer;
begin
  AThread.Connection.ReadLn(s);
  i := StrToInt(s);
  if i > ProgressBar1.Max then
    ProgressBar1.Max := i
  else
    ProgressBar1.Position := i;
end;
Das wars. Mehr nicht. Hier ersch eint zur Abwechslung die Fehlermeledung "Socketfehler 10053 - Die Software hat einen Abbruch der Verbindung verursacht." - das ungefähr bei einem Drittel.

Kruzifix, dabei will ich doch nur ein paar Zahlen übers TCProtokoll übertragen, kann doch nicht so schwer sein :(

Bitte um Hilfe :)


tyler

marabu 23. Mai 2005 07:55

Re: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und n
 
Hallo Tyler,

beim Client setzt du ProgressBar.Max auf 9000, signalisierst dem Server 1000 und zählst 9001 vor. Im for-loop solltest du später die message pump mit Application.ProcessMessages am Laufen halten. Auf der Serverseite verwirfst du die empfangenen Daten einfach.

Probiere es mal so:
Delphi-Quellcode:
s := AThread.Connection.ReadLn();
Grüße vom marabu

Tyler 23. Mai 2005 09:39

Re: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und n
 
Mit der 1000 war nur n Tippfehler. ^^ :)

Gut, also das Application.ProcessMessage hab ich eingebaut, und den String "s" auch wie von dir empfohlen übergeben. Weiterhin wird beim Server die Procedure nicht mehr beim OnConnect ausgeeführt, sondern bei "OnExecute"

Nun klappts zwar erstmal ohne Fehlermeldung, nur, ganz komisch, zählt der Server erst die Progressbar hoch, dann werden anscheind die Daten gesendet, und der Client zählt danach die Progressbar hoch. Also ganz klar versetzt. :wacko:


tyler


//EDIT

ok, löppt. Ich muss den Send-Buffer nur ein bisser reduzieren, sonst sender der die "lines" in einem Schub. Ich versuch das jetzt mal eins zu eins in mein Hauptprogramm zu übernehmen...

DualCoreCpu 6. Okt 2019 09:51

AW: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und nu?
 
bei mir ist dieser Fehler heute um 10:20 unmittelbar nach Systemstart von Windows 10 aufgetreten als ich nach paar Mausbewegungen über meinen Bildschirm Delphi starten wollte. Der Start bricht mit ebendiesem Fehler ab. Fehlerbericht ist gespeichert. Habe nach Anweisung im Diagnosetool das Embarcadero Dashboard geöffnet, mich dort eingeloggt, weil ich den Fehlerbericht an Emba senden will. Wie mache ich das nun?

Nachdem ich meinen Browser gestartet habe, um diesen Beitrag hier zu posten, habe ich einen 2. Versuch unternommen, Delphi zu starten. Nun startet Delphi trotz Fehlermeldung, dass 2 Instanzen von Delphi gestartet wurden. Beide Instanzen sind nun aktiv, verhalten sich aber genau gleich. Das in der zuletzt gestarteten Instanz geöffnete Projekt ist auch in der anderen Instanz geladen. Also scheinen beide Instanzen dasselbe Fensterhandle zu benutzen

TurboMagic 7. Okt 2019 21:20

AW: Systemfehler. Code 1400. Ungültiges Fensterhandle. Und nu?
 
Ganz einfach: in quality.embarcadero.com com mit deinem EDN Login einloggen und dann gibt's oben einen großen roten "Vorgang erstellen" Button. Diesen ausfüllen. Nach dem du das Formular abgeschickt hast wird die URL des Bugreports oben kurz eingeblendet. Klicke darauf und dann findest du auf der dann erscheinenden Seite auch die Möglichkeit eine Datei anzuhängen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz