VB: Problem
Nurmi 17.11.2003 - 14:13 574 9
Nurmi
OC Addicted
|
da ich mich gerade erst 20 min mit VB spiele und schon bei einem Problem nicht weiterkomme - hätte ich 2 Fragen: Ich will, wenn der Button1 geclickt wird - daß sich der ButtonLabel von Start auf Stop ändert und die Schleife die dann gestartet wird bei erneuten Click stopt. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Text = "Stop" While (?????) Sleep(2000) DuDas() End While End Sub naja was er jetzt macht ist daß er mir den Button1.Text erst wenn die Methode beendet wird neu setzt und wenn ich einmal in der Schleife bin reagiert die Oberfläche auf nichts mehr...(hätte es mal mit ner globalen booleanvariable probiert ) Kann mir da wer ein paar Tips geben oder zumindest eine gute Tutorial Seite wo das Problem erläutert wird ? Hab nicht die Nerven da lange zu suchen bzw. mich weiter in VB einzulesen MfG NuRmi
|
Nurmi
OC Addicted
|
so hab jetzt ein bischen weitergeproggt und dabei ist mir aufgefallen - daß wenn mein algorithmus läuft ich auf der GUI weder einen button clicken kann noch das Fenster verschieben kann - is a bissl bled weis wer wie man das ändern kann ? bzw was da das problem ist ?
|
mat
AdministratorLegends never die
|
welches vb? wennst ned .net hast wirds schwer. weil vb 6.0 hat keine threading funktionen/klassen. du könntest über eine COM DLL ausweichen.
|
Nurmi
OC Addicted
|
hab schon des dotnet nur ka wie das threading funkt - kann man das explizit einstellen oder muaß man danach proggn ? ich weis sehr sehr gimpy gefragt
Bearbeitet von Nurmi am 17.11.2003, 18:38
|
mat
AdministratorLegends never die
|
2teres..
|
mg_shadow
live and die in starlight
|
erklär mal genau was du machen willst! denn deine erste erklärung erscheint mir weder sinnvoll noch logisch!
aber vermutlich wäre der beste weg über einen timer! und der button starten / stoppt den timer! damit kann sich die GUI auch refreshen!
|
mg_shadow
live and die in starlight
|
@mat ich würd keinem VB neuling so komplizierte lösungsvorschläge machen!
ich hab zwar im .net noch nicht programmiert, aber mutlithreading ist meines erachtens etwas zu hoch gegriffen für jemanden der 20min VB erfahrung hat!
|
JC
AdministratorDisruptor
|
so hab jetzt ein bischen weitergeproggt und dabei ist mir aufgefallen - daß wenn mein algorithmus läuft ich auf der GUI weder einen button clicken kann noch das Fenster verschieben kann - is a bissl bled
weis wer wie man das ändern kann ? bzw was da das problem ist ? Das ist wegen der Sleep-Anweisung. Wozu brauchst du die denn überhaupt?
|
mat
AdministratorLegends never die
|
erklär mal genau was du machen willst! denn deine erste erklärung erscheint mir weder sinnvoll noch logisch! er will einen algorithmus laufen lassen und trotzdem gleichzeitig an der gui rumfummeln. aber vermutlich wäre der beste weg über einen timer! und der button starten / stoppt den timer! damit kann sich die GUI auch refreshen! timer wäre hier ein großes nono weil die gui auf einem messagesystem basiert, das ebenfalls geblockt wird. es könnte auch sein das dus andersrum meinst: timer ruft den algo auf.. wäre kontraproduktiv, weil er garantiert will dass der algo volle cpupower bekommt und möglichst schnell abläuft.. obwohl mich die idee irgendwie geil macht in vb .net is threading ned allzu schwer.. ein paar tutorials und das geht schon. deshalb is es ja auch vb. also besser ein schwerer lösungsweg als ein falscher
|
mg_shadow
live and die in starlight
|
an einen Timer hab ich wegen dem Sleep(2000) gedacht! ich war der meinung er will irgendwas haben was alle 2 sekunden irgendwas macht! (deshalb hab ich auch gemeint das die gui sich refreshen kann wenn das timerintervall 2 sek ist)
wenn er was haben will was nebenbei rechnet ist mutlithreading natürlich der richtige weg!
|