Macro-Fehler

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Macro-Fehler

Beitrag von Leonhard »

Code: Alles auswählen

; Das Macro
Macro SetGadgetAttribute(Gadget, Attribut, Value)
	If Attribut = #PB_String_Password
		If Value = #PB_Ignore : Value = '*' : EndIf
		SendMessage_(GadgetID(Gadget), 204, Value, #Null)
	Else
		SetGadgetAttribute(Gadget, Attribut, Value)
	EndIf
EndMacro
; Der Aufruf
SetGadgetAttribute(#igString1, #PB_String_Password, '*')
Bei mir gibt es da einen Macro-Fehler. Ich weis auch, wiso: Ich verwende das Macro in dem Macro. Dies ist ein Interner Fehler. Ein Macro sollte nicht in sich selbst eingefügt werden. Dies fürt (wie hier) zu Fehlern. Kann man das bei der Macro-Erstellung verbessern?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wie jetzt.....? :freak:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

Kaeru... zu deiner Signatur

Wir haben keine großen Signaturen hier im Board glaube ich, v. dh könntest du den bitte rausnehmen? /:->
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nein.

die is aus aktuellem anlass so.

http://www.purebasic.fr/german/viewtopi ... 5143#95143
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

ganz einfach: In dem Macro wird das Macro verwendet. Das Macro ist gleich mit einer PB-Standart-Funktion. Es währe Praktisch, wenn das Macro in sich nicht verwendet wird, da man dort einen dummen Fehler bekommt.
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Ich versteh das Problem nicht. Natürlich muss es einen Fehler geben, wenn ein Macro im selben Macro benutzt wird, weil es eben nicht einer Prozedur gleichzusetzen ist. Der Code im Macro wird ja komplett genommen und an alle Stellen im Code, wo das Macro aufgerufen wird kopiert. Da eben nicht mit Referenzen gearbeitet wird, sondern mit Kopien, müsstest du lediglich den Platz für unendlich Kopien haben, dann würds funktionieren. Und dass dadurch eine Fehlermeldung generiert wird ist doch mehr als wünschenswert.
Es währe Praktisch, wenn das Macro in sich nicht verwendet wird, da man dort einen dummen Fehler bekommt.
Klar, es gibt ja auch keinen Fehler im Programm, wenn man ein Macro auch nicht in sich selbst packt. Das macht ja auch null Sinn.
Optimismus ist ein Mangel an Information.
Gesperrt