Bei eigener GUI Fenster verschieben...
Übersicht

![]() |
maximilianBetreff: Bei eigener GUI Fenster verschieben... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
ich bin gerad am coden einer GUI. Da ich mich aber noch nie mit sowas befasst habe (sonst code ich nur Spiele) hab ich hier ein dummes Problem. Ich weis net so recht wie ich Fenster verschieben soll. Das Code-Funzelchen unten schafft das zwar schon, aber wenn ich die Maus zu sschnell bewege, lässt der Zeiger das Fenster irgendwo liegen. Ausserdem wird die Leiste immer zentriert (Window\WinX1 / 2), da ich keine bessere Lösung kenne. Wäre wirklich nett, wenn mir jemand einen besseren Weg zeigen könnte. Code: [AUSKLAPPEN] MouseKey = MouseDown(1) If MouseX() > Window\WinX And MouseX() < Window\WinX + Window\WinX1 Then If MouseY() > Window\WinY And MouseY() < Window\WinY + 15 And MouseKey = True Then Window\WinX = MouseX() - Window\WinX1 / 2 Window\WinY = MouseY() - 7 End If End If Grüße, LordChaos |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meine Lösung:
Code: [AUSKLAPPEN] ; Draggen
Das ist jetzt (fast) direkt rauskopiert. Ich hoffe, es hilft dir.
if g\disabled = false then if rectsoverlap(mousex(),mousey(),1,1,g\x,g\y,g\w,TITELLEISTENHOEHE) and mousedown(1) then if (g\Dragging = false) then g\Dragging = true g\dragX = mousex()-(g\x+x) g\dragY = mousey()-(g\y+y) end if end if if mousedown(1) and (g\Dragging = true) then g\x = mousex() - g\dragX g\y = mousey() - g\dragY end if if not mousedown(1) then g\Dragging = false end if |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr schön, doch noch besser wäre eine Funktion ohne Rectsoverlap, denn ich programmiere lieber ohne BlitzBasic-spezifische Befehle um meine Programme irgerndwann mal auf für ein anderes Basic portieren zu können. Das mache ich zwar sicherlich nie, aber ich möchte mir diese Möglichkeit vorbehalten. ![]() Sonst werde ich diese wahrscheinlich nehmen. Grüße, LordEverything |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group