AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

form über Image verschieben

Ein Thema von Stephan · begonnen am 3. Mai 2003 · letzter Beitrag vom 4. Mai 2003
Antwort Antwort
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#1

form über Image verschieben

  Alt 3. Mai 2003, 21:22
Hi,

wie kann ich ein Formular am besten über ein Image verschieben (z.B. um eigene Programmbalken zu machen).

viele Grüße

Stephan
viele Grüße

Stephan
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#2
  Alt 3. Mai 2003, 22:27
Wie ist das gemeint? Daß sich dein TImage genauso verhält wie die Titelleiste der Form?
Dann musst du im OnMouseMove-Event des Images folgendes machen:
Delphi-Quellcode:
  if ssLeft in Shift then
  begin
    Form1.Left := X - Image1.Left + Form1.Left;
    Form1.Top := Y - Image1.Top + Form1.Top;
  end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 4. Mai 2003, 01:20
Moin Stephan,

schau doch mal hier in der Code Library unter VCL-Komponenten.
Dort gibt's einen Eintrag: Fenster ohne Titelzeile verschieben.
(was nicht heisst, dass das Fenster keine Titelzeile haben darf)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#4
  Alt 4. Mai 2003, 11:43
Oder meine 2 Zeilen Code
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 4. Mai 2003, 12:21
Moin tommie-lie,

nur bei Deinem Beispiel würde das Fenster immer verschoben werden, sobald die Shifttaste gedrückt ist und sich der Cursor über das Image bewegt. Es fehlt also auf jeden Fall noch die Abfrage, ob die Linke Maustaste gedrückt ist (dafür darf Shift nicht gedrückt sein), damit sich das Image so verhält, wie eine Titelzeile.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#6
  Alt 4. Mai 2003, 14:30
Wieso?
Mal abgesehen davon, daß mein Code vollkommen falsch ist (sorry, aber um die Uhrzeit ), was du aber nicht bemängelst, frage ich vorher mit "if ssLeft in Shift" ab, ob die linke Maustaste gedrückt wurde. Und wenn ich bei mir die Shift-, Alt- oder Strg-Taste drücke und versuche, ein Fenster zu verschieben, klappt das immer noch, weil Windows (meins zumindest) nur nach der linken Maustaste guckt.

Richtigerweise wäre mein Code aber folgender:
Delphi-Quellcode:
  if ssLeft in Shift then
  begin
    Form1.Left := Mouse.CursorPos.X - MousePos.X;
    Form1.Top := Mouse.CursorPos.Y - MousePos.Y;
  end;
und zwar mit globaler Variable MousePos: TPoint und im MouseDown-Event folgendes:
Delphi-Quellcode:
  MousePos.X := Mouse.CursorPos.X - Form1.Left;
  MousePos.Y := Mouse.CursorPos.Y - Form1.Top;
Das dürfte besser klappen als mein erster *g*
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 4. Mai 2003, 15:14
Moin tommie-lie,

sorry
Da hast Du auch wieder recht.

Ich würde allerdings den anderen Weg vorziehen, da man hier alles an einem Punkt konzentriert hat, und nicht, wie in Deinem Beispiel an dreien, ausserdem wird so das Fenster beim Verschieben angezeigt, wie es im System eingestellt ist (SystemParametersInfo/SPI_GETDRAGFULLWINDOWS).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#8
  Alt 4. Mai 2003, 15:18
Hmm, stimmt, das Fenster wird immer vollständig gezeigt und nicht nur mit Rahmen. Daran habe ich nicht gedacht, weil ich sowieso immer den Inhalt beim Verscieben anzeigen lasse...
  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 19:47 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