Seite 2 von 2
Verfasst: 15.11.2004 00:29
von Lars
PBZecke hat geschrieben:Weg von einer modernen OOP zur PB-Steinzeit.
Ich persönlich mag OOP eigentlich sehr gerne. Aber um den Text eines
Gadgets zu setzen, reicht wirklich der Procedurale Ansatz, wobei ich
natürlich einsehe, dass OOP-Gadgets schon irgendwie sexy sind

Verfasst: 15.11.2004 14:00
von bluejoke
Offtopic: Nachdem ich OOP in PHP endlich kapiert habe, hab ich gemerkt, wie geil des ist. Das ganze ist soooooo viel praktischer, und momentan ist es das einzige, dass ich bei PB wirklich vermisse. Außerdem muss doch niemand OOP benutzen. Bei TurboPascal, u.s.w. (und nat. PHP) ist es ja auch optional. --> Ab auf den Wunschzettel für PB 17.49 im Jahre 2036.
Simon
Verfasst: 15.11.2004 15:00
von Kaeru Gaman
...mal 'ne ganz andere lösungsidee
(korrigiert mich bitte, wenn ich jetzt müll erzähle)
...könnte man nicht den pointer von dem gadgettext irgentwie ermitteln?
...dann müsste man doch den poiter-inhalt direkt ändern können, gell?
...natürlich müsste man am anfang den inhalt als genügend grossen dummy definieren, damit man nicht übers ende schreibt...
Verfasst: 15.11.2004 16:25
von bobobo
immerzu Pointer
ich nehm fast schon an dass die pointer immerzu auf den Teppich kommen weil in der PB-Hilfe steht dass das was für fortgeschrittene Programmierer ist.
Pb ist PB und kommt in weiten Teilen ohne direkt zu manipulierende Pointer aus.
Code: Alles auswählen
;- Window Constants
;
Enumeration
#Window_0
#Window_1
#Button_0
#Button_1
#String_0
#Button_2
EndEnumeration
Global win1,win2
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Application")
win1=WindowID(#WIndow_0)
If CreateGadgetList(WindowID())
ButtonGadget(#Button_0, 0, 0, 170, 110, "FillTextBox")
ButtonGadget(#Button_1, 170, 0, 170, 110, "Schluss nun")
EndIf
EndIf
If OpenWindow(#Window_1, 410, 159, 295, 216, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "TextBoxWindow",win1)
win2=WindowID(#WIndow_1)
If CreateGadgetList(WindowID())
StringGadget(#String_0, 0, 0, WindowWidth(), WindowHeight()-20, "")
ButtonGadget(#Button_2, 0, WindowHeight()-20, WindowWidth(), 20, "Anderes An-Aus",#PB_Button_Toggle)
EndIf
EndIf
HideWindow(#Window_0,0)
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
;Debug "WindowID: " + Str(EventWindowID())
GadgetID = EventGadgetID()
If GetGadgetState(#button_2)=1
HideWindow(#window_0,1)
Else
HideWindow(#window_0,0)
EndIf
If GadgetID = #Button_1
End
EndIf
If GadgetID = #Button_0
Debug "GadgetID: #Button_0"
UseWindow(#Window_1)
text.s=""
For i=1 To 20
text+Chr(Random(24)+97)
SetGadgetText(#String_0,text)
Next i
ElseIf GadgetID = #String_0
Debug "GadgetID: #String_0"
EndIf
EndIf
Until Event = #PB_EventCloseWindow
End
;
Verfasst: 15.11.2004 18:12
von Lars
bluejoke hat geschrieben:Ab auf den Wunschzettel für PB 17.49 im Jahre 2036.
Sehr (!) begrenzt ist das schon möglich in PB. Durchsuch mal das
Codearchiv nach OOP, da gibt es einige Beispiele in PB.
Was nicht funktioniert sind die Geschichten, die dann ins eingemachte
gehen, das fängt schon bei vererbung an, die zwar theoretisch möglich ist,
sich aber bei selber geschriebenen Klassen schon etwas schierig gestaltet.
Also, nicht zu viel erwarten, aber einfache Objekte kann man schon
basteln.
Vielleicht solltest du für Fragen über das hier hinnaus aber einen neuen
Thread öffnen

Verfasst: 15.11.2004 20:02
von Kaeru Gaman
@bobobo
sorry...
aber ich habe mich schon lange an pointer gewöhnt
z.b. unter DOS mit QuickC 3.5 war es am einfachsten, einen punkt in die grafik mit pointer zu setzen, anstatt eine umständlich PSET-funktion zu benutzen...(wohlgemerkt, MODE13 mit 320x160x256farben war der tollste grafixmode damals...)
...nur mal als beispiel...
Pb ist PB : aber der direkte weg ist doch manchmal der kürzeste...
Verfasst: 15.11.2004 22:07
von PBZecke
[quote="Kaeru Gaman
...
Pb ist PB : aber der direkte weg ist doch manchmal der kürzeste...[/quote]
In diesem Falle ist der direkte Weg SetWindowText_() ...
