Seite 1 von 3
... Requester positionieren? NewProb. Farbänderung im Button
Verfasst: 04.04.2007 09:07
von Xaby
Hallo Fans.
Ich habe ein Programm, was 300, 200 als WindowGröße besitzt.
Und ich kann es natürlich verschieben. Das Programm speichert die Fensterposition.
Nun habe ich auch einen ColorRequester eingebaut, um Farbe wählen zu können (wozu sonst) ... was mich nun stört ist, dass der Requester scheinbar willkürlich auftaucht.
Der MessageRegester wohl immer in der Mitte des Bildschirms und der ColorRequester immer am Rand meines Fensters. Ich würde es gern so machen, dass es in Bezu auf die Mausposition oder in Bezug auf den Button, den ich zuletzt gedrückt hatte positioniert wird.
Wäre ja blöd, wenn ich hier (Berlin) einen Knopf drücke und in Köln mein Requester aufpoppt und ich nicht sehen kann, wieso mein Programm nicht weiterläuft.
Um es kurz zu machen, mit welchem Kniff kann ich die Fensterposition der Requester bestimmen?
Verfasst: 04.04.2007 12:35
von Scarabol
Hallo
Ist zwar kompliziert aber erstmal würd ich sagen kannst du das Fenster mit MoveWindow_() oder so verschieben, da das "normale" Programm allerdings anhält während der Requester offen ist, musst du das verschieben wahrscheinlich in einen Thread packen.
Gruß
Scarabol
Verfasst: 04.04.2007 12:41
von Xaby
Was passiert, wenn ich darum ein echtes Fensterpacke und das erst öffne und wenn der Reqeuster geschlossen wird, es auch schließe?
Ich hab gesehen, dass der FarbwählerGadget sich an meinen Tabs ausrichtet. Mein erstes PanalGadget ...
die Frage ist halt nur, ob es bei allen Requestern gleich ist.
Aber einen ganzen Farbwähler erst selbst zu machen. Klar, ist nicht so das Problem, aber eigentlich sollen die Requester Arbeit abnehmen und nicht welche machen

Verfasst: 04.04.2007 12:44
von Scarabol
Dazu solltest du vielleicht einen kleine Testcode schreiben und es einfach ausprobieren genaues kann ich dir leider auch nicht sagen.
Gruß
Scarabol
Verfasst: 04.04.2007 12:52
von ts-soft
http://www.purebasic.fr/english/viewtop ... r+position
für Messageboxen, für ColorRequester usw. befindet sich alles im CodeArchiv,
einfach mal selber suchen
Verfasst: 04.04.2007 13:18
von Xaby
Ich hab mal was geschrieben ...
Code: Alles auswählen
Procedure.l ColorNachfrage(x.l,y.l)
OpenWindow(0,x,y,0,0,"",#PB_Window_BorderLess,WindowID(1))
Farbe=ColorRequester()
CloseWindow(0)
ProcedureReturn Farbe
EndProcedure
OpenWindow(1,100,200,300,400,"Farbwahltest")
CreateGadgetList(WindowID(1))
ButtonGadget(1,50, 50,100,50,"Eins")
ButtonGadget(2,50,150,100,50,"Zwei")
ButtonGadget(3,150,50,100,50,"Drei")
ButtonGadget(4,150,150,100,50,"Vier")
CloseGadgetList()
Quit=0
Repeat
Event= WaitWindowEvent()
If Event = #PB_Event_Gadget
GadgetNr=EventGadget()
x=WindowX(1)
y=WindowY(1)
If GadgetNr=1
ColorNachfrage(x,y)
EndIf
If GadgetNr=2
ColorNachfrage(x+60,y+150)
EndIf
If GadgetNr=3
ColorNachfrage(x+200,y+50)
EndIf
If GadgetNr=4
ColorNachfrage(x+200,y+150)
EndIf
EndIf
If Event=#PB_Event_CloseWindow
Fenster=EventWindow()
If Fenster=1
Quit=1
EndIf
EndIf
Until Quit
Bei dem CodeArchiv bin ich mir nicht sicher, was da funkioniert und was nicht. Es gibt doch noch keinen offiziellen Release für PB 4 oder doch?
Hab mir auch den Link durchgelesen. Hört sich interessant an, aber wenn es auch auf einem Mac laufen soll, der nun nicht gerade Windows XP installiert hat
Also mein Code, ist die Praxis zur oben angekündigten Theorie.
Geht aber nur mit dem ColorRequester. MessageRequester ... ist wohl immer in der Mitte.

Verfasst: 04.04.2007 13:24
von ts-soft
Den Code im CodeArchiv brauchste nur ausführen, dann weißte ob er geht
Wegen der MessageRequester lies einfach nochmal mein vorheriges Posting.
PS: Selber suchen macht schlank
Verfasst: 04.04.2007 13:28
von Xaby
Nee, selbst suchen höchstens

Verfasst: 04.04.2007 14:00
von Kaeru Gaman
wenn du dich selbst erst noch suchen musst, dann weiß ich ja nicht......
Verfasst: 04.04.2007 17:35
von THEEX
*grinst*
Eine weitere Möglichkeit wäre, wenn Du dir dein Requester selbst bastelst, dann kannste die Fensterposition auf jeden Fall festlegen...
