Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > Visual Basic, Visual Basic.NET

Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten!

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3338, Antworten: 125
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26943, Antworten: 4219
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50950, Antworten: 1396
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7660, Antworten: 186
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 321, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 26, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 32, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 65, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 152, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 78, Antworten: 4
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24.11.2006, 17:47   #1 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard Subroutine wiederhohlen

Guten Tag

Situation

Ich habe einen simplen Command1 ( Button )
wenn ich den doppel klicke geht das cod fenster auf und ich kan codieren.

wenn ich jetzt zum Beispiel codiere, dass wenn ich auf den button klicke die Caption des buttons um +1 erhöht werden soll, und dies bei jedem klick, dann geht dies bei mir nicht und zwar aus folgendem grund.

Wenn die Subroutine am ende ist, und eigendlich wieder auf den nächsten klick warten sollte geht sie ins nirvana, ich habe noch kein While (1) würde man in der Programmiersprache C sagen.

Meine Frage nun: Wieso geht das Programm nach der subroutine nicht wieder dor hin zurück und wartet auf die nächste aktion?
Timolotov ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 27.11.2006, 15:33   #2 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 09.08.2004
Ort: München
Beiträge: 243
Standard

Ich versteh nicht so ganz was du meinst . Ich nehm mal an du willst dass bei jedem klick die command button caption erhöht wird ?

Zitat:
Private Sub Command1_Click()
Command1.Caption = Command1.Caption + 1
End Sub
Oder versteh ich dich falsch?
supersonic ist offline   Mit Zitat antworten
Alt 01.12.2006, 09:29   #3 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard

ja genau das meine ich
danke für die Prägnanz
Timolotov ist offline   Mit Zitat antworten
Alt 01.12.2006, 09:33   #4 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard

aber eben genau das funktioniert bei mir nicht, weil das programm die funktion nur nach dem ersten cklick ausführt und die weiteren einfach nicht mehr beachtet.
Timolotov ist offline   Mit Zitat antworten
Alt 01.12.2006, 09:43   #5 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 17.08.2005
Beiträge: 104
Standard RE:Subroutine wiederhohlen

Hi !!

Setz mal einen Haltepunkt um zu sehen was passiert !!

mfg ARCUS_L
__________________
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton
ARCUS_L ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 01.12.2006, 17:26   #6 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard

nun den halte punkt in der subroutine habe ich schon gesetzt und musste feststellen das die subroutine korrekt abgearbeitet wird.

das problem ist wo kann ich einen halte punkt nach der subroutine, also
nach END SUB setzen
Timolotov ist offline   Mit Zitat antworten
Alt 01.12.2006, 22:28   #7 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 17.08.2005
Beiträge: 104
Standard RE:Subroutine wiederhohlen

Hi !!
Wenn du einen Haltepunkt hast kannst mit F8 Einzelschritte ausführen , also immer eine Befehlszeile nach der anderen, so solltest DU feststellen können wo dein Fehler liegt, oder poste einfach deinen Code.

So ist es etwas schwierig den Fehler zu finden !!


mfg ARCUS_L
__________________
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton
ARCUS_L ist offline   Mit Zitat antworten
Alt 04.12.2006, 08:40   #8 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard

Ich habe mir gedacht das mein anliegen etwas schwierig wird.

also das problem ist nicht mein cod sonder, dass nachdem die Subroutine ausgeführt wurde der cursor ins nirvana geht. debugen funz nicht weil ich dort gar kein cod habe im nirvana.
aber hier mein Cod

Private Sub BTNStart_Click()

Summe = Timer1 + 1
Timer1 = Summe
BTNStart.Caption = Timer1


End Sub
Timolotov ist offline   Mit Zitat antworten
Alt 04.12.2006, 13:04   #9 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 28.11.2006
Beiträge: 19
Standard

Ich versteh nicht so ganz wofür der Timer da sein soll.
Wenn ich das richtig verstehe soll der Wert den der Timer hat bei Klick auf dem Button erscheinen.

Ich habe deinen Code mal so ausprobiert wie er dort steht. erstmal die Frage ist das dein vollständiger Code? Bei mir erscheint auf klick auf den Button immer entweder "True" oder "False", immer im wechsel.
Wenn noch etwas fehlt bitte posten. Ich versuche derweil der Lösung etwas näher zu kommen

edit: Ich versteh nicht was an dem Code so schwer sein soll
Wenn du möchstest das sich pro Klick das Caption (also meinetwegen "1" bei Klick auf "2" erhöht dann emfehle ich dir folgenden Code:
Code:
Private Sub cmd1_Click()   'cmd1 ist bei mir was bei dir was bei dir der BTNstart ist
cmd1.Caption = cmd1.Caption + 1
End Sub
)

Ich hoffe ich habe deine Problematik getroffen

Gruß

Merkur!
Merkur ist offline   Mit Zitat antworten
Alt 04.12.2006, 15:43   #10 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 17.08.2005
Beiträge: 104
Standard RE:Subroutine wiederhohlen

Zitat:
Zitat von Timolotov
also das problem ist nicht mein cod sonder,
Also Das Problem ist sicher Dein Code !!!

Dein Code wird nur funktionieren wenn "Option Explicit" (Variablendklaration erfoderlich ) nicht eingeschaltet ist. Sonst hättest du sofort die Fehlermeldung "Variable nicht definiert " das solltest Du eigentlich wissen nachdem du im ersten Beitrag schon "C" zitiert hast. "C" ist da nicht so nachsichtig wie VB.

So nun zum Code :

Da keine Variable deklariert ist ist der inhalt von Timer1 und Summe Nothing also Leer.

Nach dem Klick zählst du Zu nichts(Timer1) 1 dazu und schreibst es in Summe dadurch ist der Wert von Summe 1.
Nun schreibst du Summe in Timer1 dadurch sind die Werte von Summe und Timer1 1.

nun noch Timer1 auf die Caption Eigenschaft des Command Buttons
womit dort auch 1 steht.
Und genau das wird bei jedem Klick auf den Button passieren, es wird immer 1 in der Capition Eigenschaft stehen egal wie oft du drauf klickst.

Das wäre dir sicher aufgefallen hättest du einen Haltepunkt bei "Private Sub BTNStart_Click() " gesetzt und mit "F8" einzelschritte ausgeführt !!

Solltest du aber doch die Variablen deklariert haben wird genau das eintreten was Merkur schon geschrieben hat ein wechsel zwischen True und False.

mfg ARCUS_L
__________________
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton
ARCUS_L ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 04.12.2006, 17:08   #11 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 24.11.2006
Beiträge: 9
Standard

Nun ich möchte eigentlich niemanden verärgern, ich bin ein absoluter anfänger was VB anbelangt.

nun das häcklein ist nicht drin das heisst doch das ich die Variablen nicht deklarieren muss?

Der Cod von Merkur funz nicht, es gibt ne fehler meldung

Laufzeit fehler '13'

Typen unverträglich


Ist es so das die Variablen, da sie niergens deklariert sind, bei jedem cklick wieder auf null gesetzt werden?
Timolotov ist offline   Mit Zitat antworten
Alt 04.12.2006, 18:45   #12 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 28.11.2006
Beiträge: 19
Standard

also bei mir funzt der sowas von

Vielleicht hast du dann irgendwo einen anderen Namen o.ä., dass das deswegen nicht geht.

Code:
Private Sub BTNStart_Click()
BTNStart.Caption = BTNStart.Caption + 1
End Sub
Das ist nochmal der Code mit deinem Buttonnamen. Nimm für das erste Caption das du so eingeben kannst am besten "0" oder "1" oder schick einfach nochmal deinen Code damit man mal sehen kann wo denn der Fehler aufgetreten ist weil allgemein funktioniert das so!
Also nochmal Code posten und dann schauen wir weiter![/url]
Merkur ist offline   Mit Zitat antworten
Alt 04.12.2006, 19:19   #13 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 17.08.2005
Beiträge: 104
Standard RE:Subroutine wiederhohlen

Hi !!

Was auch klar ist das es nicht funktioniert da du jetzt "Option Explicit" eingeschaltet hast.

Hier wird versucht zu einem String, in diesem Fall BTNStart.Caption , 1 dazuzuzählen nachden 1 aber vom Typ Integer ist kommt die Fehlermeldung Typen unverträglich

Code:
Private Sub BTNStart_Click() 
BTNStart.Caption = BTNStart.Caption + 1 
End Sub
Richtig wäre :
Code:
Option Explicit

Private iZähler As Integer

Private Sub BTNStart_Click()

iZähler = iZähler + 1

BTNStart.Caption = CStr(iZähler)

End Sub
mfg ARCUS_L
__________________
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton
ARCUS_L ist offline   Mit Zitat antworten
Alt 04.12.2006, 19:24   #14 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 28.11.2006
Beiträge: 19
Standard

Ich habe gar nichts deklariert. Das geht.
Wenn du den Caption Wert zu anfang auf 1 oder 0 setzt dann addiert der mit dem Code pro klick einen dazu!!!
Merkur ist offline   Mit Zitat antworten
Alt 04.12.2006, 21:37   #15 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 17.08.2005
Beiträge: 104
Standard RE:Subroutine wiederhohlen

Hi !!

Das ist mir schon klar das es so auch funktioniert !!

Aber du solltest beachten das VB eine nicht deklarierte Variable selbst mit dem Typ Variant anlegt. Was ja eigentlich super ist.

Wenn man aber weis das eine Integer Variable nur 2 Bytes des Speichers benötigt , eine Variant Variable aber 22 Bytes ist das schon nicht mehr so super.

In diesem Programm spielt das mit Sicherheit keine Rolle solltest du aber einmal umfangreichere Programme mit einigen 100 oder mehr Variablen schreiben dan kannst du dir ausrechnen welchen Unterschied das in deinem Arbeitsspeicher ausmacht !!

mfg ARCUS_L
__________________
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton
ARCUS_L ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > Visual Basic, Visual Basic.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an




Alle Zeitangaben in WEZ +2. Es ist jetzt 10:14 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2