Dear visitor, welcome to Jabaco - Community. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
![]() |
Source code |
1 2 3 4 5 6 7 8 |
Public Sub Command1_Click() For I = 1 To 100 ProgressBar1.Value = I ' und zum Warten For t = 1 To 1000000 Next t Next i End Sub |
This post has been edited 1 times, last edit by "schnitzelbrain" (Sep 9th 2011, 11:53am)
![]() |
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Public Sub Command1_Click() Timer1.enabled = true For I = 1 To 100 ' Hier läuft mein Program code weiter mit einigen Berechnungen und For/next Schleifen Next i Timer1.enabled = false End Sub Public Sub Timer1_Timer() ProgressBar1.Value = ProgressBar1.Value + 1 end sub |
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Public Sub Timer1_Timer() ProgressBar1.Value = ProgressBar1.Value +1 End Sub Public Sub Command1_Click() Timer1.Enabled=True Timer1.Interval=1 ProgressBar1.PaintString=True End Sub Public Sub Command2_Click() Timer1.Enabled=False End Sub Public Sub Command3_Click() ProgressBar1.Value=0 End Sub |
![]() |
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Public Sub Timer1_Timer() ProgressBar1.Value = ProgressBar1.Value +1 End Sub Public Sub Command1_Click() Timer1.Enabled=True Timer1.Interval=1 ProgressBar1.PaintString=True For I = 1 to 10000000 'Tue irgendwas next i End Sub Public Sub Command2_Click() Timer1.Enabled=False End Sub Public Sub Command3_Click() ProgressBar1.Value=0 End Sub |
Quoted
Wenn ich dein Beispiel um eine For/next schleife ergänze, passiert mit dem ProgressBar so lange nichts bis die Schleife abgelaufen ist.
Quoted
Das heißt der Timer Event kann die Schleife nicht unterbrechen.
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Dim I as integer=1 Public Sub Timer1_Timer() ProgressBar1.Value = ProgressBar1.Value +1 'Tue irgendwas I=I+1 If I >= 10000000 then Timer1.Enabled=False end if End Sub Public Sub Command1_Click() Timer1.Enabled=True Timer1.Interval=1 ProgressBar1.PaintString=True End Sub Public Sub Command2_Click() Timer1.Enabled=False End Sub Public Sub Command3_Click() ProgressBar1.Value=0 End Sub |
![]() |
Source code |
1 2 3 4 5 6 7 |
1 Vorgang gestartet 2 Busy an 3 Schleifen........ 4 Vorgang beendet 5 Busy aus |
Möglicherweise könnte man es erreichen, indem Timer wiederum einen anderen Timer aufruft, etc.Leider kann ich dann den Vorgang für mein Projekt nicht gebrauchen. Da der refresh von den Feldern (und vom Bar) erst kommt wenn der Button_click oder der Timer_click abgearbeitet ist.
Mein "Tue Irgendwas" sind ein paar geschachtelte schleifen die zwischendrin eigentlich Werte(Fortschritt) anzeigen sollten. Das haut leider aus bekannten Gründen nicht hin.
Ja, das geht. Du könntest den Mouse-Cursor auf Sanduhr stellen und hinterher wieder zurück.
Quoted
Gibt es wenigstens eine Möglichkeit eine "Busy" Anzeige einzubauen, also:
![]()
Source code
1 2 3 4 5 6 7 1 Vorgang gestartet 2 Busy an 3 Schleifen........ 4 Vorgang beendet 5 Busy aus
Das hatte ich Versucht, der Text wird nicht angezeigt
Quoted
Oder ein Label einbauen, das wärend alles abläuft einen Text anzeigt wie "Bitte warten ...".
This post has been edited 2 times, last edit by "schnitzelbrain" (Sep 11th 2011, 4:59pm)
Habs auch ausprobiert. Du hast recht.Das hatte ich Versucht, der Text wird nicht angezeigt
Quoted
Oder ein Label einbauen, das wärend alles abläuft einen Text anzeigt wie "Bitte warten ...".![]()
Erst wenn mein Button5_click rum ist erscheint das "Done" im Textfeld![]()
![]()
Gleiches mit einem Label mit Label1.Enabled = True wird es bei Click auf den Button nicht Sichtbar.
![]() |
Jabaco Source |
1 2 3 4 5 |
Label1.Caption = "Bitte warten..." For I = 1 to 100000 System.out.println(i) Next I Label1.Caption = "Ok" |
Nicht daß ich wüßte. Man kann ein Reflesh selbst auslösen. Aber verhindern ... ?
Quoted
Gibt es Irgendwas bekanntes (ich weis es kann bestimmt viel geben) das ein regelmäßigen Refresh von den Textfeldern/Labels usw verhindert?
Ich meine ein java include oder eine jabaco Einstellung?
Ne, mit der Jabaco-Version hat das nichts zu tun. Das Problem liegt viel tiefer. Bei den Zusammenhängen, wie Java funktioniert und so.
Quoted
Liegt es vielleicht an meiner Jabaco Version ich benutze die vom 14.1.2011, den link hattest du mir mal gegeben.
This post has been edited 1 times, last edit by "theuserbl" (Sep 14th 2011, 1:47am)
Habe es gerade noch mal überprüft, Sieht so aus, daß nur in der Jabaco-IDE das Programm sich selbst überholt und ein "Ok" ausgibt, bevor die For-Schleife zu Ende abgearbeitet wurde.
Wenn in Button_click etwas steht wie
Dann erscheint als Label-Text nur "Ok". Gleichzeitig läuft die innere Schleife noch immer weiter.
![]()
Jabaco Source
1 2 3 4 5 Label1.Caption = "Bitte warten..." For I = 1 to 100000 System.out.println(i) Next I Label1.Caption = "Ok"
![]() |
Jabaco Source |
1 2 3 4 5 6 7 |
Public Sub Command1_Click() Label1.Caption = "Please wait..." For i = 1 To 100000 System.out.println(i) Next i Label1.Caption = "Ok." End Sub |
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import VB.CommandButton; public class Form1$CommandButton extends CommandButton { int ID; Form1 Owner; int Index; public void setOwner(Form1 var1, int var2) { Owner = var1; ID = var2; Index = -1; } public void _Click() { if(1 == ID) { Owner.Command1_Click(); } } } |
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import VB.CommandButton; public class Form1$CommandButton extends CommandButton { int ID; Form1 Owner; int Index; public void setOwner(Form1 var1, int var2) { Owner = var1; ID = var2; Index = -1; } public void _Click() { Thread thread = new Thread() { public void run() { if(1 == ID) { Owner.Command1_Click(); } } }; thread.start(); } } |
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 |
Public Sub run() ' Hier den eigenen Code hinschreiben ' Zum Beispiel: ' Label1.Caption = "Bitte warten..." ' For I = 1 to 100000 ' System.out.println(i) ' Next I ' Label1.Caption = "Ok" End Sub |
![]() |
Jabaco Source |
1 2 3 4 |
Public Sub Command1_Click() Dim myClass As new Class1 myClass.start() End Sub |
This post has been edited 2 times, last edit by "theuserbl" (Sep 17th 2011, 2:07am)
![]() |
Jabaco Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import VB.CommandButton; public class Form1$CommandButton extends CommandButton { int ID; Form1 Owner; int Index; public void setOwner(Form1 var1, int var2) { Owner = var1; ID = var2; Index = -1; } public void _Click() { Click click = new Click(); click.start(); } public class Click extends Thread { public void run() { if(1 == ID) { Owner.Command1_Click(); } } } } |
Es funktiniert dann bei dem von mir gezeigten Programm, das einen Button hat, der "Command1" heißt und nur auf "Click" reagiert wird.
Quoted
Hab ich das richtig verstanden, wenn ich die Klasse anlege wie von dir als kompilerfreundlich gepostet. Dann sollte es funktionieren?