Include-Dateien solltest Du ziemlich am Anfang Deinens Hauptcodes "includen", da darin die Prozeduren deklariert werden.
Du machst dies vermutlich erst innerhalb der Hauptschleife.
Dort gehört jedoch nur der Aufruf der vorher (in der Include-Datei) deklarierten Prozedur hin.
am besten postest du deinen Source hier im Thread
(aber schön in Code-Tags ) damit wir klarer sehen.
Nur so aufs gerade wohl wird das sonst nix mit ner fundierten
Fehlersuche.
Nun, eine Prozedur darf nicht innerhalb einer Schleife (For, While, Repeat) oder einer bedingten Verzweigung (If) stehen.
Wenn du also eine Include-Datei hast, welche eine Prozedur beherbergt, so darf diese auch nur ausserhalb der oben genannten Konstrukten eingefügt werden.
Zuletzt geändert von freedimension am 20.11.2005 20:19, insgesamt 1-mal geändert.
Beginne jeden Tag als ob es Absicht wäre! BILDblog
Ich vermute mal du möchtest das zweite Programm, mit dem ersten
Programm aufrufen und hast den Befehl IncludeFile "Player.pb"
einfach an die Stelle (nach einem Buttonevent) geschrieben wo du
den Player aufrufen willst.
Du schreibst den Befehl IncludeFile "Player.pb" am besten gaaanz
oben in die allererste Zeile deines Hauptprogrammes.
Dann kann nichts schief gehen.
Damit du aber das zweite Programm aus dem ersten aufrufen kannst,
wirst du den Hauptabschnitt des zweiten Programmes ebenfalls als
Procedure definieren müssen, d.h. vor die Haupt Repeat Schleife
(und allfällige Zeilen davor) kommt eine Zeile
Procedure zweitesprogramm()
und nach dem Until am Ende der Hauptschleife kommt Procedurereturn.
Das End bleibt draussen.
Damit das zweite Programm auch alleine Lauffähig bleibt, schreibst du
unter das Procedurereturn vor dem End die Zeile
zweitesprogramm()
Damit wird bei Direktstart des zweiten Programms diese Zeile aufgerufen
und das ist eben die Procedure mit der Hauptloop.
Aus dem ersten Programm rufst du bei dem gewünschten Buttonevent
ebenfalls zweitesprogramm() auf.
So in etwa wird es gehen.
Mögliche Probleme:
Gleiche Konstanten und Bezeichnungen in den beiden Programmen
Globale Variable
; PureBasic Visual Designer v3.92 build 1460
IncludeFile "HauptFenster.pb"
IncludeFile "Player\1\winamp.pbi"
init = init_winamp("Player\1\in_mp3.dll","Player\1\out_wave.dll",hWindow)
Debug init
Open_Button_14()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_EventGadget
If GadgetID = #Player_1
IncludeFile "Player\1\Player.pb"
ElseIf GadgetID = #Plasyer_2
ElseIf GadgetID = #Player_1_Einst
Es ist egal wo sich die Includedatei befindet , wenn sich in der Datei z.b.
eine Prozedure befindet kannst du sie nicht innerhalb einer IF Anweisung
einbinden.