Zwei Fenster zeitgleich verschieben
Übersicht

![]() |
FastJackBetreff: Zwei Fenster zeitgleich verschieben |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
nachdem mir gestern so schnell und unkompliziert geholfen werden konnte, versuche ich es heute doch glatt noch einmal. ![]() 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? ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm,
bei jeden schleifendurchlauf das machen: GadgetX(Infofenster)=Gadgetx(Mainfenster)+Gadgetwidth(Mainfenster) Achtung, kein lauffähiger code. |
||
between angels and insects |
![]() |
FastJack |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group