Seite 2 von 5

Re: undokumentierte Konstanten

Verfasst: 26.06.2010 11:31
von Josh
DarkDragon hat geschrieben:Doch, alle Quelltexte müssen wieder angepasst werden, die sich das zum Vorteil gemacht haben. Das soll so bleiben wie es ist.
was sich durch eine kleines häckchen in einer checkbox erledigen lassen würde. welche vorteile meinst du?

Re: undokumentierte Konstanten

Verfasst: 26.06.2010 12:24
von DarkDragon
Naja, es gibt sicher ne Menge QuellTexte hier im Web die z.B. so funktionieren:

Code: Alles auswählen

Procedure Test()
  Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
EndProcedure

Global SinglePassWontAllowAccessBeforeButMultiPassDoes.i = 10

Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
Test()
Aber würde Test() nun SinglePassWontAllowAccessBeforeButMultiPassDoes kennen würde es nichtmehr laufen.

Re: undokumentierte Konstanten

Verfasst: 26.06.2010 13:09
von Josh
wie oben geschrieben, würde sich das leicht durch eine einstellmöglichkeit in den compileroptionen lösen lassen, damit alter code weiterhin singlepass compiliert wird. damit wäre auch jedem die möglichkeit geboten, sich weiterhin mit einem einfachen compiler abzuplagen.

von mir aus kann aber gerne jeder, der ein programm ohne EnableExplicit schreibt probleme bekommen bis ende nie.

Re: undokumentierte Konstanten

Verfasst: 26.06.2010 19:29
von Rudi
Um nochmal auf die Fragestellung zurückzukommen. Alle mir bekannten Farb-Konstanten:

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 322, 112, "Farbkonstanten", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  SendMessage_(WindowID(0),#WM_SETICON,#False,11)
  TextGadget(1, 5, 5, 100, 30, "#Black")
  SetGadgetColor(1, #PB_Gadget_BackColor, #Black)
  SetGadgetColor(1, #PB_Gadget_FrontColor, #White)
  TextGadget(2, 5, 40, 100, 30, "#Gray")
  SetGadgetColor(2, #PB_Gadget_BackColor, #Gray)
  TextGadget(3, 110, 5, 100, 30, "#Red")
  SetGadgetColor(3, #PB_Gadget_BackColor, #Red)
  TextGadget(4, 215, 5, 100, 30, "#Magenta")
  SetGadgetColor(4, #PB_Gadget_BackColor, #Magenta)
  TextGadget(5, 110, 40, 100, 30, "#Green")
  SetGadgetColor(5, #PB_Gadget_BackColor, #Green)
  TextGadget(6, 215, 40, 100, 30, "#Yellow")
  SetGadgetColor(6, #PB_Gadget_BackColor, #Yellow)
  TextGadget(7, 5, 75, 100, 30, "#White", #WS_BORDER)
  SetGadgetColor(7, #PB_Gadget_BackColor, #White)
  TextGadget(8, 110, 75, 100, 30, "#Blue")
  SetGadgetColor(8, #PB_Gadget_BackColor, #Blue)
  TextGadget(9, 215, 75, 100, 30, "#Cyan")
  SetGadgetColor(9, #PB_Gadget_BackColor, #Cyan)

  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruß, Rudi

Re: undokumentierte Konstanten

Verfasst: 26.06.2010 19:32
von DarkDragon
Josh hat geschrieben:von mir aus kann aber gerne jeder, der ein programm ohne EnableExplicit schreibt probleme bekommen bis ende nie.
So besser:

Code: Alles auswählen

Procedure Test()
  Define SinglePassWontAllowAccessBeforeButMultiPassDoes
  Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
EndProcedure

Global SinglePassWontAllowAccessBeforeButMultiPassDoes.i = 10

Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
Test()
Würde dasselbe produzieren, bzw. einen Fehler wegen Doppeldeklaration.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 17:49
von KPA
Hi nino

hilf mir zu verstehen. Der Vorteil eines Singlepass Compiler soll die Garantie der besseren Lesbarkeit von Quelltexten sein ?? Weil man die Procedure in der richtigen Reihenfolge schreibt ??

Was soll das heißen. Schreibst du die Procedures mitten in den Quelltext ? Aber selbst wenn, wohin genau wenn es mehrere Aufrufe der gleichen Procedure an versch. Stellen des Quelltextes gibt? Und wie soll das die lesbarkeit erhöhen ??

Ich glaube hier wird lediglich der Nachteil das PureBasic kein Multipass Compiler ist versucht wegzudiskutieren.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:01
von DarkDragon
Ich glaube du bist dir garnicht bewusst, was es heißt sowas nachträglich einzubauen. Solche zusammengehackte Tools wie man sie hier findet sind mit sowas nicht vergleichbar, immerhin muss danach ja alles korrekt laufen. Es werden also weitere Bugs auftauchen und dadurch dass man nun eine Checkbox sogar fordert um den alten Compiler zu verwenden wird die ganze Arbeit verdoppelt. Und wie schon erwähnt, KPA: wenn du all unsere Codes dann anpasst dann sind wir damit einverstanden. Die Wende um PB 4.0 war uns schon genug.

@Josh: Ich glaub du willst KPA dabei helfen, gell? Kannst ja mal mit dem Code-Archiv anfangen.

Wenn ihr fertig seid können wir darüber diskutieren, vorher seh ich da keinen Grund jetzt nach all den Jahren umzustellen wegen sowas.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:05
von Josh
KPA hat geschrieben:hilf mir zu verstehen. Der Vorteil eines Singlepass Compiler soll die Garantie der besseren Lesbarkeit von Quelltexten sein ?? Weil man die Procedure in der richtigen Reihenfolge schreibt ??
an solche obskuren logiken solltest du dich hier gewöhnen :D

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:06
von ts-soft
Ich benötige fast nie Declare, lediglich bei sehr grossen Programmen mit vielen Includes, wenn die
Proceduren sich in einer anderen Datei befinden.

Solange ich kein Declare nutze, kann ich bei auftreten eines Fehlers sicher sein, das ich im Source
nach Oben suchen muß. Dies ist bei MultiPass nicht mehr gegeben.

Den Geschwindigkeitsvorteil haben wir bereits erwähnt.

Ausserdem wenn aus allen Single-Pass Compilern Multi-Pass Compiler gemacht werden, gibt es
keine Multi-Pass Compiler mehr :twisted:

Das Wort zum Sonntag sprach:
Thomas

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:09
von Josh
DarkDragon hat geschrieben:@Josh: Ich glaub du willst KPA dabei helfen, gell?
natürlich. sinnvolle vorschläge werde ich immer unterstützen