Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Programm-Abbruch

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
Autor Thema:  Programm-Abbruch (1337 mal gelesen)
Frank Drebin
Mitglied



Sehen Sie sich das Profil von Frank Drebin an!   Senden Sie eine Private Message an Frank Drebin  Schreiben Sie einen Gästebucheintrag für Frank Drebin

Beiträge: 14
Registriert: 14.12.2010

erstellt am: 08. Jan. 2011 11:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin,

mein Programm, was ich geschrieben habe, rechnet (je nach Einstellung des Nutzers) relativ lange. Ich würde dem Nutzer ganz gerne die Entscheidungsmöglichkeit eines Abbruchs geben.
Ich hab da auch schon nen relativ plausiblen Quelltext gefunden. Hier mal das Beispiel (Userform mit Start-und Stopp-Button und einem Label):

Code:
Dim bAbbruch As Boolean
   
Private Sub cmdCancel_Click()
    bAbbruch = True
End Sub
   
Private Sub cmdStart_Click()
    bAbbruch = False
    cmdCancel.Enabled = True
    cmdStart.Enabled = False
    MachWas
End Sub
   
Private Sub UserForm_Initialize()
    cmdCancel.Enabled = True
    cmdCancel.Cancel = True
End Sub
   
Private Sub MachWas()
    Dim i As Long
    Dim a As Integer
    a = 0
    For i = 1 To 1000000
        a = i + 1
        Debug.Print a
        If bAbbruch Then
            bAbbruch = False
            If MsgBox("Wirklich Abbrechen", vbYesNo + vbQuestion) = vbYes Then
                lblInfo.Caption = "Abgebrochen"
                cmdCancel.Enabled = False
                cmdStart.Enabled = True
                Exit Sub
            End If
        End If
        lblInfo.Caption = i
    Next i
    lblInfo.Caption = "bin Fertig"
    cmdCancel.Enabled = False
    cmdStart.Enabled = True
End Sub

Nun ist das Problem, dass ich beim Starten des Programms der Stopp-Button zwar (theoretisch) aber praktisch nicht anwählber ist.
Kennt jemand das Problem und/oder ne Lösung?

Beste Grüße
F.Drebin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Volkmar Grube
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Volkmar Grube an!   Senden Sie eine Private Message an Volkmar Grube  Schreiben Sie einen Gästebucheintrag für Volkmar Grube

Beiträge: 128
Registriert: 31.01.2009

WIN11 64Bit, SWX 2022, Delphi 10

erstellt am: 08. Jan. 2011 13:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank Drebin 10 Unities + Antwort hilfreich

Hallo Frank,
also in Delphi müsste man in so einem Fall die Processmessages aufrufen, damit das Programm mal kurz guckt, ob noch andere Nachrichten in der Schlange stehen. Dein cmdCancel_Click() erzeugt nur eine Nachricht in der Schlange, die erst bearbeitet wird, wenn der Rechenprozess abgeschlossen ist.
Ich kann jetzt allerdings nicht sagen, wie das in SWXSolidWorks-API bzw VB anzugeben ist.
Bevor du bAbbruch auswertest, müsstest du die Nachrichtenschlange verarbeiten:
  Delphi-Syntax:
  Application.ProcessMessages;
  If bAbbruch Then begin ....

Vielleicht kann da jemand mit VB-Kenntnissen helfen.

------------------
Grüße aus Dresden
Volkmar Grube

Es gibt keine Probleme, es gibt nur Aufgaben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frank Drebin
Mitglied



Sehen Sie sich das Profil von Frank Drebin an!   Senden Sie eine Private Message an Frank Drebin  Schreiben Sie einen Gästebucheintrag für Frank Drebin

Beiträge: 14
Registriert: 14.12.2010

erstellt am: 08. Jan. 2011 16:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hmmm ... das dachte ich mir auch schon. Hatte nur gehofft, dass jemand hier eventuell so viel Ahnung von VBA hat, dass er gleich ne Lösung parat hat.

Trotzdem danke.
Gruß aus Dresden nach Dresden ... hehe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Volkmar Grube
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Volkmar Grube an!   Senden Sie eine Private Message an Volkmar Grube  Schreiben Sie einen Gästebucheintrag für Volkmar Grube

Beiträge: 128
Registriert: 31.01.2009

WIN11 64Bit, SWX 2022, Delphi 10

erstellt am: 08. Jan. 2011 18:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank Drebin 10 Unities + Antwort hilfreich

Ich hab das mal gegoogelt:
guck mal da:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_10485383.html

Grüße  aus Dresden
Volkmar Grube

Es gibt keine Probleme, es gibt nur Aufgaben.

[Diese Nachricht wurde von Volkmar Grube am 08. Jan. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frank Drebin
Mitglied



Sehen Sie sich das Profil von Frank Drebin an!   Senden Sie eine Private Message an Frank Drebin  Schreiben Sie einen Gästebucheintrag für Frank Drebin

Beiträge: 14
Registriert: 14.12.2010

erstellt am: 08. Jan. 2011 18:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das hat tatsächlich geholfen. Ich danke Dir recht herzlich!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 10. Jan. 2011 10:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank Drebin 10 Unities + Antwort hilfreich

Hallo zusammen,

ich konnte jetzt den Link von Volkmar nicht lesen, da sich das hinter einem (später kostenpflichtigen?) Abo versteckt, aber ich vermute, dass dort auch nur steht, dass in VB/VBA der entsprechende Befehl DoEvents heißt.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Volkmar Grube
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Volkmar Grube an!   Senden Sie eine Private Message an Volkmar Grube  Schreiben Sie einen Gästebucheintrag für Volkmar Grube

Beiträge: 128
Registriert: 31.01.2009

WIN11 64Bit, SWX 2022, Delphi 10

erstellt am: 10. Jan. 2011 19:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank Drebin 10 Unities + Antwort hilfreich

Ist mir das peinlich. Normalerweise passe ich da immer auf.
Aber man wird halt älter. Entschuldigung.

------------------
Grüße aus Dresden
Volkmar Grube

Es gibt keine Probleme, es gibt nur Aufgaben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz