AGB  ·  Datenschutz  ·  Impressum  







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

Label ändert sich nicht

Ein Thema von delphis spassbremse · begonnen am 10. Feb 2007 · letzter Beitrag vom 10. Feb 2007
Antwort Antwort
delphis spassbremse
(Gast)

n/a Beiträge
 
#1

Label ändert sich nicht

  Alt 10. Feb 2007, 13:07
Moinzen... hab nben kleines Prob...

Ich hab mir ein Programm geschrieben, das meine
Internetcafesoftware aktualisieren soll...

nur hab ich ein problem, dass während dem Updatevorgang
sich das Label mit den Updateinfos nicht ändert..

CODE:
Delphi-Quellcode:

 ..... var I: Integer; update2: Tinifile;


    Label3.Caption := 'Verbinde mit Updateserver'; // Das ändert sich noch

    sleep(1000);
    downloadfile('http://'+setting.ReadString('config', 'host', '')+':24888/ricupdate.ricu', 'C:\Windows\ricupdate.ricu');

    sleep(1000);
    Label3.Caption := 'Lade Dateiliste'; // Das nicht mehr
    update2 := TIniFile.create(ExtractFilePath(ParamStr(0))+ 'ricupdate.ricu');

    sleep(1000);
    update2.ReadSections(filel.Items);
    pb3.Max := filel.Count;

    sleep(1000);
    Label3.Caption := 'Suche Daten';

    for I := 0 to form1.filel.Count - 1 do
    begin
      Label3.Caption := 'Datei '+inttostr(I)+'/'+inttostr(filel.Count - 1)+' wird geladen';
      downloadfile('http://'+setting.ReadString('config', 'host', '')+':24888/'+update2.ReadString('File'+inttostr(I), 'sdat', ''), update2.ReadString('File'+inttostr(I), 'pcdat', ''));
      pb3.Position := I;
      sleep(1500);
    end;

    Label3.Caption := 'Vorgang wird abgeschlossen'; / Das au nich
    sleep(5000);
    ende; // Abschlussfunktion zum registrywert setzen und runtefahren...
end;
Hat jem. ne idee?

MFG
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 13:09
Dieses Problem haben wir zu Zeit jeden Tag.
1. Sleep ist suboptimal, da es dann Programm komplett schlafen legt.
2. Vor dem Warten (Sleep, delay, ...) Application.ProcessMessages; aufrufen
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 13:10
Moin Björn,

Du musst dem System auch Zeit geben den Inhalt zu aktualisieren.
Mit Sleep gibst Du die Rechenzeit die Deinem Thread zusteht sofort ab.
Vor dem Sleep könntest Du noch ein Application.ProcessMessages, oder LabelX.Refresh einbauen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
delphis spassbremse
(Gast)

n/a Beiträge
 
#4

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 13:12
ok danke... werde ich mal probieren...
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 13:14
Benutz statt dem Sleep besser:
Delphi-Quellcode:
procedure Delay(const Milliseconds: DWord);
var
  FirstTickCount: DWord;
begin
  FirstTickCount := GetTickCount;
  while ((GetTickCount - FirstTickCount) < Milliseconds) do
    Application.ProcessMessages;
end;
Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 14:02
Zitat von MrKnogge:
Benutz statt dem Sleep besser:
Und warte im 49. Tag nach dem Systenstart, 49 Tage bis die Schleife beendet ist, da GetTickCount wieder bei 0 anfängt zu zählen.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 14:22
Wieso? Damit das passiert, muss man schon ziemlich genau den Moment treffen. Das halte ich für sehr unwahrscheinlich.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 14:53
Zitat von inherited:
Wieso? Damit das passiert, muss man schon ziemlich genau den Moment treffen. Das halte ich für sehr unwahrscheinlich.
Aber du weist ja, der Teufel ist ein Eichhörnchen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Label ändert sich nicht

  Alt 10. Feb 2007, 15:48
Hi,
diese Variante funktioniert auch, wenn der 49. Tag überschritten wird:
Delphi-Quellcode:
procedure Delay(const Milliseconds: Cardinal);
var c: Cardinal;
begin
  c := GetTickCount;
  while (GetTickCount-Milliseconds < c) and not (Application.Terminated or DelayCanceled) do
  begin
    Application.ProcessMessages;
    Sleep(1);
  end;
end;
Anmerkung:
Eine globale Variable DelayCanceled: Boolean, damit das Delay auch jederzeit (z.B. bei einem Klick auf einen Button) abgebrochen werden kann.
Sleep(1); damit das Programm nicht ständig mit 100% CPU-Auslastung läuft.
Application.Terminated, damit Delay auch abgebrochen wird, falls man das Programm schließen will.

BTW: In der CL sollte sich dazu auch jede Menge finden lassen: DelayDelay
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  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 11: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