AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Komponenten verschieben

Ein Thema von Andreas L. · begonnen am 21. Feb 2006 · letzter Beitrag vom 21. Feb 2006
Antwort Antwort
Andreas L.
(Gast)

n/a Beiträge
 
#1

Komponenten verschieben

  Alt 21. Feb 2006, 14:28
Hi,
ich möchte eine kleine IDE programmieren. Also der User soll Buttons, Panels, etc. auf ein Form platzieren können und diese auch verschieben und vergrößern können.

Wie ermögliche ich das wenn der User auf einen Button klickt eine neue Komponente (zum Beispiel ein button) auf einen Form eingefügt wird und wie gebe ich den Button solche schwarzen Punkte zum Größe ändern und wie kann der Button verschoben werden?

Delphi-Quellcode:
var
 button : Tbutton;
begin
 button:=Tbutton.create(????);
end;
Schonmal Danke
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: Komponenten verschieben

  Alt 21. Feb 2006, 17:43
Also Verschieben geht schonmal:

Zitat von Code von Danniolo:
Von TWinControl abgeleitete Komponenten können über die Message WM_SysCommand skaliert und verschoben werden. Die Message wird mit der Methode Perform direkt an die Fensterprocedure des Controls gesendet. Die Komponente reagiert dann je nach übergebenem Parameter.
ReleaseCapture kümmert sich um die Verarbeitung der Mausereignisse.

procedure TForm1.WinControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Sender is TWinControl) then
begin
ReleaseCapture; //Fängt alle Mausereignisse ab
TWinControl(Sender).Perform(WM_SysCommand, $F012, 0);
end;
end;

Die Prozedur muss dem OnMouseDown-Ereignis des entsprechenden Controls zugewiesen werden.
Um die Aktion (Verschieben, Skalieren) zu wählen muss dem Parameter WParam von Perform einer der folgenden Werte zugewiesen werden.
TWinControl-Größe ändern, nur linker Rand:
______
| <-|-> Wert: $F001
------
TWinControl Größe ändern, nur rechter Rand:
______
<-|-> | Wert: $F002
------
TWinControl Größe ändern, nur oberer Rand:
^
__|___
| v | Wert: $F003
------
TWinControl Größe ändern, linker u. oberer Rand:
^
__|___
<-|->v | Wert: $F004
------
TWinControl Größe ändern, rechter u. oberer Rand:
^
__|___
| v <-|-> Wert: $F005
------
TWinControl Größe ändern, nur unterer Rand:
______
| ^ | Wert: $F006
--|---
v
TWinControl Größe ändern, linker u. unterer Rand:
______ <-|->^ | Wert: $F007
--|---
v
TWinControl Größe ändern,rechter u. unterer Rand:
______
| ^<-|-> Wert: $F008
---|--
v
TWinControl verschieben:
Wert: $F009
$F011
$F012
TWinControl wird minimiert:
Wert: $F020-$F029
TWinControl füllt den Clientbereich aus:
Wert: $F030 - $F039
Den Code zum Größe verändern habe ich auch schon. Aber wie bekomme ich solche schwarzen Rechtecke an die Buttons um die Größe mit denen zu verändern?
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: Komponenten verschieben

  Alt 21. Feb 2006, 17:55
Komplettlösung: http://delphi.about.com/library/weekly/aa102505a.htm
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#4

Re: Komponenten verschieben

  Alt 21. Feb 2006, 17:58
Geht auch einfacher: Bei Google suchenTControlSizer
Dominik Peters
  Mit Zitat antworten Zitat
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 11:50 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