title image


Smiley Hier angepasste Variante für alle vorhandene Fenster :-)
Hi Frager,



schau mal, hier eine schnelle 'Universallösung', bei der wieder alle Forms berücksichtigt werden.

Es werden 2 globale Variablen benötigt, den Code in die Unit der Form reinschreiben, welche als 'Hauptunit' dient - oder eben in alle Fenster..





procedure TForm1.WMMove;

var

x: Integer;

begin

for x := 0 to Application.ComponentCount - 1 do

if Application.Components[x] is TForm then

if ((Application.Components[x] as TForm) Self) and ((Application.Components[x] as TForm).Visible) then

begin

(Application.Components[x] as TForm).Left := (Application.Components[x] as TForm).Left - (_Old_Left_Main - Left);

(Application.Components[x] as TForm).Top := (Application.Components[x] as TForm).Top - (_Old_Top_Main - Top);

end;

end;







_Old_Left_Main und _Old_Top_Main sind einfache Integer, die ich bei der Fensterbewegung vorher festlege (bei mir in einem OnMouseMove):





procedure TForm1.irgendeinvisuellesobjectMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if not (ssLeft in Shift) then

Exit;

_Old_Left_Main := Left;

_Old_Top_Main := Top;

ReleaseCapture;

Perform(wm_syscommand, $F012, 0);

// if CheckBox_SnapForms.Checked then

// Check_Seiten_Form2Form(Self);

end;







Anschließend, nach erfolgter Bewegung wird die WMMove abgearbeitet, die Variablen sind gesetzt :-)



Ich denke, ich habe keinen Denkfehler drin - den Fenstern ist egal, WO sie sich befinden..

Gruß
~Mathias
..   ————————————————————————————————————————
..
..   Private Seite: http://www.nogad.de
..
..   ————————————————————————————————————————
..
..   Pension Fiege - Inhaber Monika Fiege
..   Kranichfelder Straße 68
..   99097 Erfurt
..
..   Tel: +49 361 41 38 39
..   Fax: +49 361 42 150 87
..
..   www.Pension-Fiege.de
..
..   ————————————————————————————————————————


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: