AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster: Bitte warten

Ein Thema von kluckweb · begonnen am 22. Nov 2006 · letzter Beitrag vom 23. Nov 2006
Antwort Antwort
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#1

Fenster: Bitte warten

  Alt 22. Nov 2006, 19:16
Hallo zusammen,

ich habe folgendes sehr merkwürdiges Problem:

Ich würde gerne ein Fenster mit Bitte warten einblenden, wenn eine Routine im Hintergrund läuft.
Wenn ich dazu ein Formular machen und das dann öffne und nach der Routine wieder schließe wird das Fenster zwar geöffnet, aber das Image, welches sich in dem Formular befindet wird nicht angezeigt. Ich habe es alternativ mit Labels versucht. Die werden auch nicht angezeigt.

Es wird wirklich nur die reine Form, ohne die darauf befindlichen Elemente angezeigt.

Rufe ich das Formular dann aber per Button mal auf (zu Testzwecken) werden alle Inhalte richtig dargestellt.

Daher meine Frage:

Hat jemand entweder eine Idee, woran dieser merkwürdige Fehler liegen könnte oder wenn nicht, vielleicht eine Idee, wie man so ein "Bitte warten" Fenster realisieren könnte, während eine Routine weiter läuft?

Danke für Eure Hilfe.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:17
Zeige mal etwas Code.
Markus Kinzler
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#3

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:23
Hier ein Auszug aus dem Code:

Delphi-Quellcode:

If Frage.stellen('Sind Sie sicher, dass Sie Uploaden möchten?') then Begin

  Bittewarten.Show;
  IdFTP1.Host := 'www.MEINESEITE.de' ;
  IdFTP1.Username := 'webYY';
  IdFTP1.Password := 'abcdefgh';
  IdFTP1.Connect;
  IdFTP1.ChangeDir('/html/dateiupload');


  idftp1.put('datei.php',false);
  IdFTP1.Quit;
  IdFTP1.Disconnect;
  Bittewarten.Close;
  showMessage('Der Upload war erfolgreich');
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:25
Gib dem Fenster zwischendurch mal die Chance auf Messages zu reagieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jakobwenzel
jakobwenzel

Registriert seit: 31. Aug 2005
Ort: Ingelheim am Rhein
141 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:27
Nach dem Show noch ein Bittewarten.Update.

Hintergrund:
Wenn das Fenster dargestellt wird, sendet Windows eine Nachricht, dass das Fenster gezeichnet werden soll an das Prog. Da aber der Download noch läuft wird die Nachricht noch nicht abgeholt.

Ein Application.ProcessMessages hätte den gleichen Effekt.
Wenn du das Application.ProcessMessages ins idFTP1.OnWork schreibst, wird es immer wieder ausgeführt und deine Anwendung bleibt bedienbar (wenn der Upload länger dauert kann man so dann zB einen Abbrechen-Schalter einbauen, ohne das Application.ProcessMessages käme der Klick erst nach der Fertigstellung des Uploads an)

EDIT: Da bemüht man sich so, und dann is man zu lahm
Jakob Wenzel
"My store now sells Ninja Weapons!"
Comicverkäufer bei den Simpsons
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#6

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:28
Was meinst DU denn bitte mit "auf Messages reagieren"?

Und was hat das denn mit dem fehlenden Inhalt zu tun?
  Mit Zitat antworten Zitat
Benutzerbild von jakobwenzel
jakobwenzel

Registriert seit: 31. Aug 2005
Ort: Ingelheim am Rhein
141 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Fenster: Bitte warten

  Alt 22. Nov 2006, 19:45
Windows sendet Nachrichten an das Programm, u.a. dass es sich doch bitte zeichnen möge. Die werden aber nicht direkt abgeholt, weil das Programm noch in der Prozedur hängt und quasi keine Zeit hat, die Nachrichten abzuholen. Und mit Application.ProcessMessages wird halt das Abholen der Nachrichten erzwungen. Und wenn du das in das OnWork von der FTP-Komponente schreibst, wird das halt in regelmäßigen Schritten während des Uploads aufgerufen und die App bleibt bedienbar. (Auch gut für Fortschrittsbalken)
Jakob Wenzel
"My store now sells Ninja Weapons!"
Comicverkäufer bei den Simpsons
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#8

Re: Fenster: Bitte warten

  Alt 23. Nov 2006, 13:22
Hi,

vielen Dank für Eure Hilfe.

Es lag wirklich am fehlenden .update Befehl.

Nun läuft es.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr.
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