Seite 1 von 3
PB 4.2 => 4.3 Include
Verfasst: 21.12.2008 19:26
von cxAlex
Da es in 4.3 einige Änderungen an den Befehlsnamen usw. gab und es mir zu viel Aufwand war alle meine Sources manuell anzupassen hab ich ein kleines Include geschrieben mit dem 90% meiner alten Sources unter 4.3 laufen (theoretisch unter x86 und x64). Sicher nicht perfekt, erspart mir aber viel Arbeit:
Code: Alles auswählen
; Konstanten
#Byte = #PB_Byte
#Word = #PB_Word
#Character = #PB_Character
#Long = #PB_Long
#Float = #PB_Float
#Double = #PB_Double
#Quad = #PB_Quad
#String = #PB_String
; Funktionen
Macro ValQ(_x)
Val(_x)
EndMacro
Macro StrQ(_x)
Str(_x)
EndMacro
Macro BinQ(_x)
Bin(_x)
EndMacro
Macro HexQ(_x)
Hex(_x)
EndMacro
Macro CountList(_list)
ListSize(_list)
EndMacro
Macro ClearGadgetItemList(_gadget)
ClearGadgetItems(_gadget)
EndMacro
Macro ChangeListIconDisplay(_gadget, _state)
SetGadgetAttribute(_gadget, #PB_ListIcon_DisplayMode, _state)
EndMacro
Macro CreateGadgetList(_window)
UseGadgetList(_window)
EndMacro
; ACHTUNG: Kann zu Fehlern führen
Macro PeekL(_x)
PeekI(_x)
EndMacro
Macro PokeL(_x, _v)
PokeI(_x, _v)
EndMacro
; Typen
Macro l
i
EndMacro
Macro LONG
INTEGER
EndMacro
Verfasst: 21.12.2008 19:55
von AND51
Zu aufgebläht:
Code: Alles auswählen
NewList test()
Macro CountList
ListSize
EndMacro
Debug CountList(test())
anstatt
Code: Alles auswählen
NewList test()
Macro CountList(_List)
ListSize(_List)
EndMacro
Debug CountList(test())
genügt. Das Gleiche gilt natürlich für alle anderen Befehle.
Verfasst: 21.12.2008 20:00
von cxAlex
Ich setze bei Makros generell Klammern, auch wenn ich keine Parameter brauche. So unterscheide ich sie leichter von Variablen.
Im speziellen Fall von l und LONG war das nicht möglich.
Verfasst: 21.12.2008 20:16
von AND51
> Ich setze bei Makros generell Klammern, ... So unterscheide ich sie leichter von Variablen
Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist. Wie dem auch sei, zur Hilfe empfehle ich dir die Wekrzeugtafel der IDE zu benutzen; die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.
> Im speziellen Fall von l und LONG war das nicht möglich.
Ich sagte ja auch "Befehle" und nicht 'Strukturen'.
Verfasst: 21.12.2008 20:19
von THEEX
Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist. Wie dem auch sei, zur Hilfe empfehle ich dir die Wekrzeugtafel der IDE zu benutzen; die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.
Wenn der Code älter ist und einige 1000 Zeilen hat, kannste einiges vergessen haben und dann hilft Dir auch nicht unbedingt die Auflistung der Makros. Besser fände ich es, wenn Macros farblich anders gekennzeichnet wären, als Proceduren oder Variablen.
Verfasst: 21.12.2008 20:20
von cxAlex
> Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist.
Und wenn ich mir den Code nach 1, 2 Monaten wieder anschaue muss ich mir erst wieder alles durchsehen.
Ist einfach meine persönliche Syntax - Konvention: Makros IMMER () dran, auch wenn ich keine Parameter brauche.
Ich will jetzt keinen Flame über meinen Programmierstill vom Zaun brechen, also lassen wir das bitte.
//Edit: THEEX versteht mich

Verfasst: 21.12.2008 20:21
von AND51
Dann muss es aus eurer Sicht geradezu angeberisch klingen, wenn ich hiermit verkünde, dass ich Makros von Variablen unterscheiden kann, und das auch bei mehr als 1000 Zeilen Code.
Wie gesagt, jedem das seine.
Bloß komisch, dass hier offenbar niemand Makros mit Prozeduren verwechselt, die kannst du nämlich auch nicht in der Autoauflistung unterscheiden...
Verfasst: 21.12.2008 20:23
von cxAlex
AND51:
> die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.
AND51:
> Bloß komisch, dass hier offenbar niemand Makros mit Prozeduren verwechselt, die kannst du nämlich auch nicht in der Autoauflistung unterscheiden...
Du wiedersprichst dir. Lassen wir das jetzt einfach, das hat nichts mit dem Thema des Topics zu tun!
Verfasst: 21.12.2008 20:35
von Hyper
Danke cxAlex!
Ich habe noch nicht begonnen PB 4.30 zu nutzen, aber eventuell nützt mir dann Dein Include.
Verfasst: 21.12.2008 20:44
von AND51
cxAlex:
Nein, du verwechsest das.
