AGB  ·  Datenschutz  ·  Impressum  







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

Warte-Fenster anzeigen

Ein Thema von BillieJoe90 · begonnen am 29. Mär 2007 · letzter Beitrag vom 30. Mär 2007
Antwort Antwort
Benutzerbild von BillieJoe90
BillieJoe90

Registriert seit: 29. Sep 2006
Ort: Bovenden
122 Beiträge
 
#1

Warte-Fenster anzeigen

  Alt 29. Mär 2007, 18:41
Hallo,
ich würde gerne, während mein Programm etwas macht, dem Benutzer ein kleines Wartefenster anzeigen, wenn es etwas länger dauert. Meine Idee war folgende:

Delphi-Quellcode:
procedure SoUndSo;
begin
  pleaseWait.showAdvice('CD-Laufwerke werden überprüft...');
  refreshDrives;
  pleaseWait.hideAdvice;
end;
Delphi-Quellcode:
procedure TpleaseWait.showAdvice(advice:String);
begin
  lblAdvice.Caption := advice;
  self.Position := poMainFormCenter;
  MainForm.Enabled := false;
  self.show;
end;

procedure TpleaseWait.hideAdvice;
begin
  MainForm.Enabled := true;
  self.hide;
end;
Das funktioniert aber nicht... Das Fenster bekommt man gar nicht zu sehen, auch wenn das Programm einige Sekunden mit refreshDrives beschäftigt ist.

Wie kann ich das Wartefenster so lange an zeigen lassen, wie das Programm für refreshDrives braucht?

Danke schonmal!

Johannes
Johannes
Wenn Sie jetzt gleich bestellen, bekommen Sie ein zweites Set GRATIS!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Warte-Fenster anzeigen

  Alt 29. Mär 2007, 18:44
Hi,

evtl. kannst du irgendwo ein Delphi-Referenz durchsuchenApplication.ProcessMessages einbauen, doch ich würde dir empfehlen, das Einlesen der Laufwerke in einen Thread auszulagern.
  Mit Zitat antworten Zitat
Benutzerbild von BillieJoe90
BillieJoe90

Registriert seit: 29. Sep 2006
Ort: Bovenden
122 Beiträge
 
#3

Re: Warte-Fenster anzeigen

  Alt 29. Mär 2007, 18:51
Zitat von Matze:
doch ich würde dir empfehlen, das Einlesen der Laufwerke in einen Thread auszulagern.
Und dann wäre das möglich?
Johannes
Wenn Sie jetzt gleich bestellen, bekommen Sie ein zweites Set GRATIS!
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Warte-Fenster anzeigen

  Alt 29. Mär 2007, 18:54
Ich denke, das folgendes...
Delphi-Quellcode:
procedure TpleaseWait.showAdvice(advice:String);
begin
  lblAdvice.Caption := advice;
  self.Position := poMainFormCenter;
  MainForm.Enabled := false;
  self.show;
  Application.ProccesMessages;
end;
schon reicht...
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von BillieJoe90
BillieJoe90

Registriert seit: 29. Sep 2006
Ort: Bovenden
122 Beiträge
 
#5

Re: Warte-Fenster anzeigen

  Alt 29. Mär 2007, 21:16
Ja, es klappt!
Danke!
Johannes
Wenn Sie jetzt gleich bestellen, bekommen Sie ein zweites Set GRATIS!
  Mit Zitat antworten Zitat
Benutzerbild von BillieJoe90
BillieJoe90

Registriert seit: 29. Sep 2006
Ort: Bovenden
122 Beiträge
 
#6

Re: Warte-Fenster anzeigen

  Alt 29. Mär 2007, 21:31
Eine Frage hätte ich allerdings noch:
Währenddessen können keine anderen Befehle "gewollt" ausgeführt werden, oder? In pleaseWait befindet sich nämlich ein Timer, der etwas machen soll...
Johannes
Wenn Sie jetzt gleich bestellen, bekommen Sie ein zweites Set GRATIS!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Warte-Fenster anzeigen

  Alt 30. Mär 2007, 05:34
Hi,

es kommt darauf an, wie deine Funktion zum Aktualisieren der Laufwerke ausschaut. Falls das eine Schleife ist, würde ich dort ebenfalls, wie ich oben genannt habe, ProcessMessages ausfüren, bzw. versuchen, ob's dann klappt. Aber wenn das Aktualisieren lang dauert, würde ich wirklich einen Thread nutzen, dann läuft die Sache eigenständig im Hintergrund ab.
  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 14:57 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