Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
cxAlex
Beiträge: 2111 Registriert: 26.06.2008 10:42
Beitrag
von cxAlex » 02.05.2009 17:39
InitNetwork(), InitEngine3D(), InitMovie(), InitScintilla()... Alles muss initialisiert werden, aber wenn man die Initialisierung 2* aufruft gibts nen Fehler. Ist schnell mal passiert, ein Include enthält irgendwo ein Init, das MainFile auch .... . Natürlich sollte man so programmieren das sowas nicht vorkommen kann, aber wenn man Includes von 3. aus dem Forum usw. verwendet kann das schon nerven. EnableSafeInit() verhindert das eine Init - Procedure 2* aufgerufen wird. Spart Zeit und Nerven.
Code: Alles auswählen
Macro _EndOfMacro1()
EndM
EndMacro
Macro _EndOfMacro2()
acro
EndMacro
Macro EndOfMacro()
:_EndOfMacro1()_EndOfMacro2()
EndMacro
Macro EnableSafeInit(_Name)
Procedure _#_Name
Static isInit
If Not isInit
isInit = #True
ProcedureReturn _Name
EndIf
EndProcedure
Macro _Name
_#_Name
EndOfMacro()
EndMacro
; Zum Test deaktivieren
EnableSafeInit(InitNetwork())
EnableSafeInit(InitEngine3D())
Debug InitNetwork()
Debug InitNetwork()
Debug InitEngine3D()
Debug InitEngine3D()
Zwar Quick & Dirty aber Nervenschonend
Gruß, Alex
STARGÅTE
Kommando SG1
Beiträge: 7032 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 02.05.2009 18:39
habe ich etwas unterschlagen ?
---------------------------
PureBasic
---------------------------
Zeile 34: 'EndMacro' fehlt.
---------------------------
OK
---------------------------
Ich habe es monatelang selber ersucht ein Macro in einem Macro zu machen, und bin gescheitert ... du auch ?
EDIT: hab ich, exakt dein Code mit 4.30
Zuletzt geändert von
STARGÅTE am 02.05.2009 18:42, insgesamt 2-mal geändert.
cxAlex
Beiträge: 2111 Registriert: 26.06.2008 10:42
Beitrag
von cxAlex » 02.05.2009 18:41
Wenn du das Example von Oben ausführst sollte alles gehen. Es wird mindestens PB 4.3 benötigt.
ZeHa
Beiträge: 4760 Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:
Beitrag
von ZeHa » 02.05.2009 19:02
Bei mir hat's leider auch nicht funktioniert.
ZeHa hat bisher kein Danke erhalten.
Klicke
hier , wenn Du wissen möchtest, woran ihm das vorbeigeht.
cxAlex
Beiträge: 2111 Registriert: 26.06.2008 10:42
Beitrag
von cxAlex » 02.05.2009 19:03
Komisch....
Ich verwende PB 4.3 x86. Sonst jemand bei dem es nicht geht?
Kaeru Gaman
Beiträge: 17389 Registriert: 10.11.2004 03:22
Beitrag
von Kaeru Gaman » 02.05.2009 19:03
hochinteressant.
bei mir läufts anstandslos.
4.30 x86 auf XPpro, keinerlei Userlibs.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
NicknameFJ
Beiträge: 324 Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet
Beitrag
von NicknameFJ » 02.05.2009 19:07
Bei mir läuft es auch einwandfrei
(Win XP Home SP3 - PB 4.30)
Grüße
NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller
cxAlex
Beiträge: 2111 Registriert: 26.06.2008 10:42
Beitrag
von cxAlex » 02.05.2009 19:14
STARGÅTE hat geschrieben:
Ich habe es monatelang selber ersucht ein Macro in einem Macro zu machen, und bin gescheitert ... du auch ?
Also bei mir kann ich so Macros mit Macros machen, das funktioniert:
Code: Alles auswählen
Macro _EndOfMacro1()
EndM
EndMacro
Macro _EndOfMacro2()
acro
EndMacro
Macro EndOfMacro()
:_EndOfMacro1()_EndOfMacro2()
EndMacro
Macro BuildMacro(_Macro, _MacroLine)
Macro _Macro
_MacroLine
EndOfMacro()
EndMacro
BuildMacro(Add(x,y),x + y)
BuildMacro(Sub(x,y),x - y)
Debug Add(3,2)
Debug Sub(3,2)
STARGÅTE
Kommando SG1
Beiträge: 7032 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 02.05.2009 19:26
jo ich eben nicht... hatte ja auch die idee mit den zusammen bauen von EndM-acro
Aber ich habe imemr wieder ein EndMacro fehlt bekommen, weil ja halt auch eins fehlt
auch so gehts nicht:
Code: Alles auswählen
Macro _EndOfMacro1
EndM
EndMacro
Macro _EndOfMacro2
acro
EndMacro
Macro EndOfMacro
_EndOfMacro1#_EndOfMacro2
EndMacro
Macro BuildMacro(_Macro, _MacroLine)
Macro _Macro
_MacroLine
EndOfMacro
EndMacro
BuildMacro(Add(x,y),x + y)
BuildMacro(Sub(x,y),x - y)
Debug Add(3,2)
Debug Sub(3,2)
selbst wenn cih die Leerzeichen oben entferne gehs nicht.
STARGÅTE
Kommando SG1
Beiträge: 7032 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 02.05.2009 19:31
Ahh jetzt gehts es, aber nur weil wirklich alle Leerzeichen weg sind!
und der : wieder gesetz ist:
Code: Alles auswählen
Macro _EndOfMacro1
EndM
EndMacro
Macro _EndOfMacro2
acro
EndMacro
Macro EndOfMacro
:_EndOfMacro1#_EndOfMacro2
EndMacro
Macro BuildMacro(_Macro, _MacroLine)
Macro _Macro
_MacroLine
EndOfMacro
EndMacro
BuildMacro(Add(x,y),x + y)
BuildMacro(Sub(x,y),x - y)
Debug Add(3,2)
Debug Sub(3,2)
okee, dann wird ab jetzt einiges Einfacher .... *Includes umschreib*