AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Warum keine Zwischenergebnisse in Rechnung mit großn Zahlen?

Warum keine Zwischenergebnisse in Rechnung mit großn Zahlen?

Ein Thema von Svenkan · begonnen am 5. Jun 2007 · letzter Beitrag vom 5. Jun 2007
Antwort Antwort
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#1

Warum keine Zwischenergebnisse in Rechnung mit großn Zahlen?

  Alt 5. Jun 2007, 12:47
Hey!
Wir überlegen uns in Informatik grade, warum bei Rechnung in einer Schleife mit innerer Ergebnisausgabe keine Zwischen-, sondern nur Endergebnisse ausgegeben werden.
Könnt ihr da helfen??

Delphi-Quellcode:
procedure TForm1.Button11Click(Sender: TObject);
var start,ende,zaehler,zahl: Integer;
begin
 start:=StrToInt(Edit22.text);
 zaehler:=start;
 ende:=StrToInt(Edit23.text);
 zahl:=0;
   while zaehler<=ende do begin
    zahl:=zahl+zaehler;
    zaehler:=zaehler+1;

    Edit24.Text:=IntToStr(zahl);
   end;

 ShowMessage('Die Summe beträgt '+IntToStr(zahl)+'!');
end;
Sven Kannenberg
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 12:49
Ohne ein Application.Processmessage oder Edit24.Update hat das Control keine Chance den aktualisierten Wert anzuzeigen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 12:51
Und ohne ein Sleep oder so hat der Typ vorm Bildschirm auch keine Chance das Hochzählen zu erkennen ... zumindest nicht auf einem Halbwegs neuerem Prozessor mit > 1 MHz (möglicherweise übertrieben )
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 12:51
Hi,

meinst Du das in Edit24?

Die Sache wird einfach sein, dass das Edit nicht aktualisiert wird. Macht einmal folgendes:

Delphi-Quellcode:
procedure TForm1.Button11Click(Sender: TObject);
var start,ende,zaehler,zahl: Integer;
begin
start:=StrToInt(Edit22.text);
zaehler:=start;
ende:=StrToInt(Edit23.text);
zahl:=0;
   while zaehler<=ende do begin
    zahl:=zahl+zaehler;
    zaehler:=zaehler+1;

    Edit24.Text:=IntToStr(zahl);
    Edit24.Refresh; // Edit24 neu zeichnen
    Sleep(1000); // eine Sekunde warten, damit ihr auch seht, dass was neues im Edit steht
   end;

ShowMessage('Die Summe beträgt '+IntToStr(zahl)+'!');
end;
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 12:53
Habs mit ProcessMessages gemacht! Danke!
Sven Kannenberg
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#6

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 13:12
Bitte bitte bitte...

Nur weil man aus DOS-Zeiten noch Sleep kennt, kommt doch endlich mal davon weg!
Sleep suspendiert den aktuellen Thread, d.h. auch Fenster etc. werden nicht neu gezeichnet, sondern sind während der Sleep-Periöde HÄNGEND!

Und auch in Threads hat Sleep nichts verloren! Wenn man diese pausieren will, nimmt man eine der MsgWaitFor..., die wenigstens auch frühzeitig abgebrochen werden können!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 13:14
Hi CCRDude,

ich hätte jetzt genau so gut ein DelayDelay nehmen können, jedoch war die Sache mit dem Sleep schneller und bringt den gewünschten Effekt, nämlich denn, dass man sieht, dass etwas passiert.

Mir ist schon bewusst, dass Sleep den kompletten Thread zum "Hängen" bringt.
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#8

Re: Warum keine Zwischenergebnisse in Rechnung mit großn Zah

  Alt 5. Jun 2007, 13:42
Und was ist, wenn der Benutzer innerhalb der Sekunde zufällig in das Fenster klickt?
Dann erscheint in der Fenstertitelzeile "Anwendungsname (reagiert nicht)"...

Benutzer sind nunmal nicht immer so "wissend", daß ihnen sofort klar ist, daß sie während der Berechnung das Fenster nichtmal verschieben oder anders anfassen dürfen (in dieser Schleife sind das ja mal unbekannt viele Sekunden, vielleicht sogar Minuten, in denen nicht geklickt werden DARF... und wenns dadurch Minuten dauert, wird es noch wahrscheinlich, daß der Benutzer in ein anderes Fenster und dann zurückspringt und beim Zurückspringen alles hängt)... dieses Manko macht imho KEIN gewünschter Effekt (der im Vergleich zur grundlegenden Fensterbedienung eher untergeordnet ist) wett.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:23 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