vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB Skript (VBS)
Wartet Sub-Programm, wenn ich in ihm eine Funktion aufrufe? 
Autor: Bert_XL
Datum: 14.07.11 14:18

Hallo zusammen,

ich bin zur Zeit am VBS Programmieren und habe nun mal eine allgemeine Frage:
ich rufe in einem Sub-Programm eine Funktion auf. Wartet nun dieses Sub bis er den Rückgabewert der Funktion erhalten hat oder läuft dieses Parallel weiter? Ich denke ich habe nämlich einige Timingprobleme...
Wie ist es wenn ich ein Sub-Programm in einem anderen Sub-Programm aufrufe? Was kann man tun damit das Programm auf den Rückgabewert wartet?
bin leider kein Profi in VBS, habe grade erst angefangen und freue mich schon auf antworten...

viele Grüße
Bert

Beitrag wurde zuletzt am 14.07.11 um 14:19:31 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wartet Sub-Programm, wenn ich in ihm eine Funktion aufrufe? 
Autor: Elwood
Datum: 14.07.11 14:27

Hallo Bert_XL,
ja, nein, vielleicht, vielleicht auch nicht...
So oder ähnlich könnten die Antworten lauten und sie wären immer richtig. Deine Frage ist einfach zu global und läßt alle Möglichkeiten zu.
Das beste wäre ein konkretes Beispiel, dass du dann hier postest. Wo vermutest du z.b. das Timing-Problem?

ciao
Elwood

Wer sp?ter bremst, ist l?nger schnell

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wartet Sub-Programm, wenn ich in ihm eine Funktion aufrufe? 
Autor: Bert_XL
Datum: 14.07.11 14:43

vielen dank für die schnelle antwort. also hier mal ein kurzer ausschnitt aus dem Programm:

sub Prog_calc()
...

If SmartTags("Programm_1")= Tool_No Then
SmartTags("Prog_1") = Prog_LoadName (SmartTags("Programm_1"))
End If
If SmartTags("Programm_2")= Tool_No Then
SmartTags("Prog_2") = Prog_LoadName (SmartTags("Programm_2"))
End If
If SmartTags("Programm_3")= Tool_No Then
SmartTags("Prog_3") = Prog_LoadName (SmartTags("Programm_3"))
End If
If SmartTags("Programm_4")= Tool_No Then
SmartTags("Prog_4") = Prog_LoadName (SmartTags("Programm_4"))
End If
'usw...

end sub


also ich rufe in dem Sub-Programm "Prog_calc" die Funktion "Prog_LoadName" öfters auf. Mein Problem ist nun, dass mehrere dieser If-Anweisungen wahr sein können, wenn die verschiedenen "Programme_x" den gleichen Wert enthalten. Als Ergebnis wird nun entweder mal ein Name nicht richtig zugewiesen oder ein Programm übersprungen usw...
ich denke das mein Sub-Programm nicht wartet bis der Funktionsaufruf beendet ist und schon weiter springt zur nächsten If-Anweisung, ist das richtig? wie kann ich das ändern?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wartet Sub-Programm, wenn ich in ihm eine Funktion aufrufe? 
Autor: Elwood
Datum: 14.07.11 15:21

Hallo Bert_XL,
das reicht leider immer noch nicht aus.
Was passiert in die Funktionen SmartTags und Prog_LoadName? Welche Programmme werden ggf. konkret und vor allem wie aufgerufen?

ciao
Elwood

Wer sp?ter bremst, ist l?nger schnell

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wartet Sub-Programm, wenn ich in ihm eine Funktion aufrufe? 
Autor: Bert_XL
Datum: 14.07.11 15:30

mit dem Befehl Smarttags("xy") lese ich einfach nur einen Wert aus der Steuerung, aus der SPS. (ist glaub ich eine Systemfunktion)

die Funktion "Prog_LoadName" ist ein von mir geschriebene Funktion, die eine Abfrage enthält und dann einen Namen aus einem Speicherbereich herausliest.

hier das Programm "Prog_LoadName":

Function Prog_LoadName(ByRef ProgNR)

If ProgNR = 0 Then
Prog_LoadName = 0
Else
Call LoadDataRecord(1, ProgNR, Null)
Prog_LoadName = SmartTags("Tool_name")

End If

End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel