Zwei Fenster zeitgleich verschieben

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

FastJack

Betreff: Zwei Fenster zeitgleich verschieben

BeitragDi, Okt 12, 2004 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

nachdem mir gestern so schnell und unkompliziert geholfen werden konnte, versuche ich es heute doch glatt noch einmal. Smile

Folgendes Problem:
Ich habe zwei Fenster programmiert ein Hauptfenster und ein Infofenster.
Das Infofenster hat genau die gleiche Breite, wie das Hauptfenster.
Ich möchte, dass das Infofenster immer ganu unter dem Hauptfenster "angedockt" bleibt, also muss sich das Infofenster beim verschieben des Hauptfensters mitbewegen.

Eigentlich kann man sich das so vorstellen wie bei Winamp mit dem Playlist-Fenster.

Ich habe versucht im Verschieben-Event des Hauptfensters die X und Y Koordinaten mit EventX und EventY auszulesen. Funktioniert auch problemlos. Danach habe ich versucht mit SetGadgetShape die Position des Infofensters anzupassen. Doch dann verschwindet das Infofenster sofort.

Hat irgendjemand 'ne Idee, oder gibt es vielleicht ne API Funktion dafür?
Question

Jan_

Ehemaliger Admin

BeitragDi, Okt 12, 2004 10:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm,
bei jeden schleifendurchlauf das machen:
GadgetX(Infofenster)=Gadgetx(Mainfenster)+Gadgetwidth(Mainfenster)

Achtung, kein lauffähiger code.
between angels and insects

FastJack

BeitragDi, Okt 12, 2004 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube das funktioniert so nicht... leider von der fehlenden Y-Position mal zu schweigen, aber wenn es auf der X-Achse schon nicht klappt.

Code: [AUSKLAPPEN]
Mainfenster = CreateWindow("Mainfenster",100,50,300,100,TEST,1)
Infofenster = CreateWindow("Infofenster",100,150,300,200,TEST,1)
ActivateGadget Mainfenster

;Hauptschleife
While beenden = 0

   Select WaitEvent()
      Case $803 : End
   End Select
   
   GadgetX(Infofenster)=GadgetX(Mainfenster)+GadgetWidth(Mainfenster)
   
Wend

simi

BeitragDi, Okt 12, 2004 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Code: [AUSKLAPPEN]

SetGAdgetShape Infofenster, GadgetX(Mainfenster), GadgetY(Mainfenster)+GadgetHeight(Mainfenster),GadgetWidth(Infofenster),GadgetHeight(Infofenster)

(nicht getestet)

Zusätzlich würde ich das nur bei Event $801 und $802 machen (Verschieben, skalieren)

cu simi

Jan_

Ehemaliger Admin

BeitragDi, Okt 12, 2004 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jaja, schuldigung, ich war noch bei OOP.

Code: [AUSKLAPPEN]
Mainfenster = CreateWindow("Mainfenster",100,50,300,100,TEST,1)
Infofenster = CreateWindow("Infofenster",100,150,300,200,TEST,1)
ActivateGadget Mainfenster

;Hauptschleife
While beenden = 0

Select WaitEvent()
Case $803 : End
End Select

SetGadgetShape Infofenster, GadgetX(Mainfenster), GadgetY(Mainfenster)+GadgetHeight(Mainfenster) , GadgetWidth(Infofenster) , GadgetHeight(Infofenster)



Wend


[Edit] Och Simi, beeile dich mal nicht so!
between angels and insects

FastJack

BeitragDi, Okt 12, 2004 11:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Unglaublich, es funktioniert. Genau so wollte ich das haben.

Eigentlich hatte ich nichts anderes gemacht, allerdings nicht bei jedem Schleifendurchlauf, sondern beim Verschieben-Event.
Hätte ich mir ja denken können.

Vielen Dank!

Jan_

Ehemaliger Admin

BeitragDi, Okt 12, 2004 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ist ja auch besser so!

Code: [AUSKLAPPEN]
Mainfenster = CreateWindow("Mainfenster",100,50,300,100,TEST,1)
Infofenster = CreateWindow("Infofenster",100,150,300,200,TEST,1)
ActivateGadget Mainfenster

;Hauptschleife
While beenden = 0

   Select WaitEvent()
      Case $803 : End
      Case $801 :SetGadgetShape Infofenster, GadgetX(Mainfenster), GadgetY(Mainfenster)+GadgetHeight(Mainfenster) , GadgetWidth(Infofenster) , GadgetHeight(Infofenster)
      Case $802 :SetGadgetShape Infofenster, GadgetX(Mainfenster), GadgetY(Mainfenster)+GadgetHeight(Mainfenster) , GadgetWidth(Infofenster) , GadgetHeight(Infofenster)
   End Select



Wend
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group