AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Form dockt on Screen

Ein Thema von barese · begonnen am 3. Jun 2011 · letzter Beitrag vom 6. Jun 2011
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von barese
barese

Registriert seit: 27. Nov 2009
Ort: Berlin
35 Beiträge
 
Delphi XE7 Architect
 
#1

Form dockt on Screen

  Alt 3. Jun 2011, 09:08
Hallo Coders !

Ich benutze diesen Code um meine Form an den Screen zu docken.
Funzt auch super auf jeder Auflösung, doch möchte ich jetzt die Procedur mit einem Button aktivieren und deaktivieren können und weiss nicht wie..
...oder geht denn das überhaupt.?

Hilfe Leute...


Delphi-Quellcode:
private
    { Private-Deklarationen }
    procedure OnMove(var aMsg:TWMMove);message WM_MOVE;

Delphi-Quellcode:
procedure TForm1.OnMove(var aMsg:TWMMove);
begin if Form1.Left < 20 then Form1.Left:=0;
   if Form1.Top < 20 then Form1.Top:=0;
   if Form1.Left+Form1.Width > Screen.Width-20 then
   Form1.Left:=Screen.Width-Form1.Width;
   if Form1.Top+Form1.Height > Screen.Height-20 then
   Form1.Top:=Screen.Height-Form1.Height;
end;
Vergessen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:19
Du brauchst einfach eine Boolean-Variable (im Bereich private deines Form)
mit dem du das "Magnetic-Snap" Verhalten an- und abschalten kannst.
Wichtig ist auch, dass du nicht über die globale Variable Form1 auf die Daten zugreifst.
Delphi-Quellcode:
procedure TForm1.OnMove(var aMsg:TWMMove);
begin
   if not FMagneticSnap then Exit;

   if Left < 20 then Left:=0;
   if Top < 20 then Top:=0;
   if Left+Width > Screen.Width-20 then
     Left:=Screen.Width-Width;
   if Top+Height > Screen.Height-20 then
     Top:=Screen.Height-Height;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
439 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:20
Die Form bekommt ein boolesches property.
Der Button verändert dieses property.
Die OnMove-Prozedur nimmt auf dieses property Rücksicht.
Oder?

Ups, zu spät
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von barese
barese

Registriert seit: 27. Nov 2009
Ort: Berlin
35 Beiträge
 
Delphi XE7 Architect
 
#4

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:25
@ConnorMcLeod .. ich glaube ich bin mir nicht sicher.

@shmia..

sieht gut aus aber wie kann ich diese Procedur für ein Button anwenden.?
Vergessen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:33
Also: Die Form hat schon diese Funktion: Das nennt sich dann ScreenSnap.

Für den Button könntest du es mit Button.Parent versuchen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von barese
barese

Registriert seit: 27. Nov 2009
Ort: Berlin
35 Beiträge
 
Delphi XE7 Architect
 
#6

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:38
@Bernhard...

mit Button.Parent .. kenne ich mich leider nicht aus.
Man jetzt bin ich überfordert.

Hast du vieleicht ein Beispiel für mich.?
Vergessen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:45
Du willst doch wissen, ob dein Button sich dem Rand von der Form befindet. Da jetzt die Form nicht unbedingt das Elter von dem Button sein muss, sondern dass z.B. auch ein Panel Elter sein darf, müsste man sich mit Hilfe von Button.Parent das TControl holen, gegen welches man prüfen muss.

Heißt: Du ersetzt in deinem Code die Form mit dem Button und weil du nicht unbedingt wissen musst, wo der Button drauf liegt, ersetzt du Screen mit "Button.Parent". Das sollte dann schon reichen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von barese
barese

Registriert seit: 27. Nov 2009
Ort: Berlin
35 Beiträge
 
Delphi XE7 Architect
 
#8

AW: Form dockt on Screen

  Alt 3. Jun 2011, 09:50
@Bernhard

Missverständniss .. ich will nur mit dem Button die Dock on Screen funktion ausschalten, so das die Form wieder über de screen gezogen werden kann mehr nicht.!
Vergessen
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#9

AW: Form dockt on Screen

  Alt 3. Jun 2011, 10:12
In dein Buttonclick Shimas

FMagneticSnap := not FMagneticSnap;

rein und beim Initialisieren der Form entweder

FMagneticSnap := true oder
FMagneticSnap := false rein.
  Mit Zitat antworten Zitat
Benutzerbild von barese
barese

Registriert seit: 27. Nov 2009
Ort: Berlin
35 Beiträge
 
Delphi XE7 Architect
 
#10

AW: Form dockt on Screen

  Alt 3. Jun 2011, 10:14
@Gustav.R ... goil jau.

jetzt kann ich den Button anwenden.

Und das auch noch mit dein ersten Beitrag cool.
Vergessen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf