AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fenster-Verschiebung selber programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster-Verschiebung selber programmieren

Ein Thema von Lernnix · begonnen am 18. Okt 2005
Antwort Antwort
Lernnix

Registriert seit: 10. Feb 2005
Ort: Mainz
15 Beiträge
 
Delphi 5 Professional
 
#1

Fenster-Verschiebung selber programmieren

  Alt 18. Okt 2005, 16:31
Hallo!

Der folgende Quelltext setllt ein Programmgerüst dar, mit dem ich die Programmierung von Festern und aller dahinter stehenden Logik erlernen und verstehen will.

Delphi-Quellcode:
var
 Screen: TScreen;
 XRes,YRes: Longint; //Die X/Y Bildschirmauflösung
 Bpp: Longint; //Farbtiefe in Bits per Pixel
 Buttons: Byte; //Zwischenspeicher für den Zustand der Maus
 MousePosX,
 MousePosY: LongINt; //Position Mauszeiger

begin
   Screen.Setup(XRes,YRes,Bpp);
    Font.LoadFont; //Zur Darstellung von Text
    InitMouse;
    EnableMouse;
    MouseOn;
    Buttons := 0;
    WinX := 10; WinY := 10; //Fensterposition zu verschiebender Block
    repeat
       MouseCoords(MousePosX,MousePosY); //Aktuelle Mausposition ermitteln
       SetMousePosition(MousePosX,MousePosY); //Mauszeiger auf diese Position setzen
       //----------------------------------- Jeder weitere Code hier
       //----------------------------------- Every further code here
       Buttons := MouseButton;

       Screen.Bar(WinX,WinY,WinX+100,WinY+50,$000000FF); //irgendein Fensterobjekt zum Verschieben

       //Wenn Maustaste gedrückt (Links), dann soll der Block verschoben werden
       if Buttons<>0 then
       if Boolean(IsMouseInArea(WinX,WinY,WinX+100,WinY+50))
        then Screen.BitBlit(WinX,WinY,WinX+100,WinX+50,MousePosX,MousePosY);

       //WinX := WinX+MousePosX; //Diese Berechnung hilft nicht weiter
       //WinY := WinY+MousePosY; //Warum nicht???
       //---------------------------------- Bis Endebedingung erreicht
       //----------------------------------- Until condition to exit
    until Keypressed;
    DisableMouse;
    Font.RemoveFont;
   Screen.Done;
end.
Wenn ich nun den Bar verschieben will klappt das, solange die Mausposition innerhalb des während der Anweisung Screen.Bar(...) festgelegten Bereiches liegt. Verläßt die Mausposition diesen Bereich, erfolgt keine weitere Verschiebung. Die Berechnung WinX/Y := WinX/Y + MousePosX/Y führt nicht zum Erfolg, weshalb ich diese Zeilen auch auskommentiert habe.

Wer kann mir hier helfen?

Lernnix
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz