AGB  ·  Datenschutz  ·  Impressum  







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

Komponente im Raster verschieben

Ein Thema von oki · begonnen am 15. Aug 2007 · letzter Beitrag vom 30. Aug 2007
 
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Komponente im Raster verschieben

  Alt 15. Aug 2007, 18:16
Hi Leute!

Ich habe eine eigene Klasse mit dem Vorfahren TCustomControl. Im MouseDown-Ereignis reagiere ich wie folgt:
Delphi-Quellcode:
      ReleaseCapture;
      case CurPosState of
        cps_none:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F012, 0);
        cps_LeftTop:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F004, 0);
        cps_RightTop:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F005, 0);
        cps_LeftBottom:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F007, 0);
        cps_RightBottom:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F008, 0);
        cps_Left:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F001, 0);
        cps_Top:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F003, 0);
        cps_Right:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F002, 0);
        cps_Bottom:
          TWinControl(self).Perform(WM_SYSCOMMAND, $F006, 0);
      end;
CurPosState ist ein eigener Typ, der mir sagt ob und auf welchem Ziehpunkt der Cursor steht. So kann ich zur Laufzeit die Größe des Controls per Maus ändern. Mein cps_none bedeutet kein Ziehpunkt -> also gesamtes Control verschieben.
Jetzt möchte ich aber ein "Gitter" mit einer festgelegten Rasterweite einschalten (im Hauptprogramm). Als beispiel soll ein Raster von 10 Pixel gelten.
wenn ich nun die Kompo zur Laufzeit verschiebe oder in der Größe ändere, dann soll das in 10-er Schritten erfolgen. Das erspart dem Anwender ein nachträgliches mühsames Ausrichten. Leider hab ich nun keinen Film, wie ich das machen kann.

Ich hatte mir gedacht, dass nachträglich im MouseUp zu machen, find ich aber nicht so elegant.

Wenn einer 'ne Idee hat, würd mich freuen.

Gruß oki
42
  Mit Zitat antworten Zitat
 


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 05:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz