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 :D

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.

Bild