Autor Beitrag
110022
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mo 08.10.07 14:27 
wie kann kann ich einen prozentbalken bei knopfdruck iim 30 sek takt um 1% steigen lassen

und wenn 100% erreicht sind wird ein text angezeigt.

bitte gesamten quelltext zeigen.





wie bau ich hier noch den timer ein?(bin nochn anfänger)ps:bin 14



ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
begin

  ProgressBar1.Max := 99;

  for lIx := 0 to ProgressBar1.Max do begin

    ProgressBar1.Position := lIx;

    Application.ProcessMessages;

  end;

end;

end.




da kommt ne fehlermeldung

ausblenden Delphi-Quelltext
1:
2:
begin
  Timer1.Enabled := False;   <---------Record, Objekt oder Klassentyp erforderlich



was muss ich machen?

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von 110022 am Mo 08.10.07 15:12, insgesamt 3-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 08.10.07 14:34 
Hallo und :welcome: in der Entwickler-Ecke!

Schön, dass du die Edit-Funktion gefunden ist, nur leider sieht man jetzt die Frage nicht mehr ;-) Edit: Ah..., jetzt ist sie wieder da, dafür der Code wieder wech :mrgreen:

Wenn das mit den "alle 30 Sekunden" noch aktuell ist, dann solltest du dir mal die Timer-Komponente (unter System) angucken. Diesen Timer kannst du dann per Buttonklick starten, das Intervall auf 30.000 stellen und deinen Code im OnTimer-Event ausführen.

_________________
We are, we were and will not be.
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Mo 08.10.07 14:37 
Wie Gausi schon gesagt hat benötigst du den Timer..

und hier noch eine kleine Anregung.. (aus dem Kopf heraus also keine Garantie für Funktionalität)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
  ProgressBar1.Max := 99;
  for lIx := 0 to ProgressBar1.Max do begin
    ProgressBar1.Position := lIx;
    Application.ProcessMessages;
  end;
end;


Damit man aber auch was von dem Progress sieht sollte man mit
ausblenden Delphi-Quelltext
1:
Application.ProcessMessages					


die Anzeige aktualisieren.

EDIT1:
Peinlich ^^ sorry Gausi.. bin wohl noch nicht ganz ausm Wochenende :D

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.


Zuletzt bearbeitet von Alpha_Wolf am Mo 08.10.07 14:51, insgesamt 4-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 08.10.07 14:41 
Eine VCL-Komponente in einem Thread aktualisieren? Sehr interessanter Ansatz. :lol:

Timer auf 30 Sekunden, im OnTimer Position um 1 erhöhen, wenn 100 dann Showtext, fertig. Da braucht man weder Application-ProcessMessages noch Threads für.

_________________
We are, we were and will not be.
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Mo 08.10.07 14:51 
EDIT2 siehe voriges Post...:
Wobei, hab mir doch dabei was gedacht.. ich meine nicht die ProgressBar sondern den Timer mit dem Vorgang auszulagern.. der extra Thread müsste sich doch nur mit dem Hauptthread synchronisieren.. (heisst doch irgendwie synchronized, oder so) und so greift der Thread nur kurz nach 30. sekunden auf die Form zu und aktualisiert die Progressbar und sonst nicht oder? Ach egal.. ich glaub ich bin ruhig *g*

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 08.10.07 15:01 
Bezugnehmend auf das erneute Edit im ersten Beitrag:
Erstmal: Den Code vom bösen Wolf mal ganz schnell vergessen. Der is noch im Wochenende. :mrgreen:

Dann packst du nen Timer auf die Form, und stellst das Interval auf 30.000. Im OnTimer-Event des Timers schreibst du dann
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Progressbar1.Position := Progressbar1.Position + 1;

if Progressbar1.Position = 100 then
begin
  Timer1.Enabled := False; // Timer ausschalten, man ist ja fertig ;-)
  Showmessage('Fertig');
end;

_________________
We are, we were and will not be.
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Mo 08.10.07 16:00 
:mrgreen: ich und böse :angel:

War nur als Anregung gedacht.. dein Code funktioniert natürlich, wollte ihm doch nicht alles vorkaun :D

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 08.10.07 16:08 
110022: Es bringt nichts, wenn du immer wieder deinen ersten Beitrag editierst. Wenn du eine Nachfrage hast, dann antworte hier bitte. Dann können diejenigen, die das Topic noch nicht gelesen haben, mit dem ganzen auch was anfangen. Danke. ;-)

_________________
We are, we were and will not be.