Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komponenten zur Laufzeit erzeugen und auf Form bewegen!? (https://www.delphipraxis.net/25686-komponenten-zur-laufzeit-erzeugen-und-auf-form-bewegen.html)

torud 10. Jul 2004 13:53


Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
Hallo Leute!

Ich würde mir gern ein kleines Tool schreiben, mit dem ich ähnlich wie im Delphi mir aus einer PageControl Komponenten auf ein Form ziehen kann und ihnen Scripte oder sonstige Jobs zuweisen kann.

Die Idee verfolgt mich schon eine Weile und nun will ich sie angehen, habe aber keine Vorstellung davon, wie ich zumindest den ersten Teil davon realisieren könnte. Also ein PageControl zu erzeugen, mit einer Toolbar und ein paar Toolbuttons ist kein Problem. Auch dürfte es kein Problem sein nach Klich auf einen Button ein bestimmtes Control zu erzeugen. Aber wie ist es mit dem bewegen zur Lauzeit???

Gibts es sonst noch Hürden, die ich zu beachten hätte?

ps.: Ich habe nicht vor Delphi neu zu erfinden! :-D

SirThornberry 10. Jul 2004 13:58

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
Du musst dafür sorgen das klicks etc nicht ausgeführt werden. Eine Möglichkeit wäre das Control in ein Panel zu stopfen und darüber ein transparentes TWinControl zu legen welches dann die Move, Click etc. messages abfängt und dann fürs verschieben verantwortlich ist. Die Anker zum Größe ändern und verschieben natürlich nicht vergessen

torud 10. Jul 2004 14:03

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
Hallo Sir,

so etwas habe ich noch NIE gemacht, hast Du noch Zeit für etwas mehr an Informationen ???

Denn mit der Info ein transparentes TWinControl drüber zu legen, kann ich irgendwie nix anfangen. Ich habe auch noch nie einen Button erzeugt und dann die MouseMove und Click-Events in dieser Richtung ausgewertet.

Gibt es irgendwelche BeispielCodes, damit man sich langsam "reinfühlen" kann? :pale:

Meflin 10. Jul 2004 14:11

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
hier am beispiel eines images:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const sc_dragmove = $f012;
begin
  ReleaseCapture;
  TWinControl(Image1).perform(wm_syscommand,sc_dragmove, 0);
end;

torud 10. Jul 2004 14:13

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
Ich habe die Suche nochmals bedient und bin fündig geworden!

Danke an alle, die gerade im Sprunge waren eine Antwort zu verfassen.

Hier die 2 Links:

Eine eine Lösung aus der Schweiz

Und hier eine fertige Komponente

:)

SirThornberry 10. Jul 2004 14:15

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
@Meflin: Von der Idee her ok aber TImage ist kein TWinControl... ich such mal schnell noch paar sourcen raus bzw. versuch was zusammenzubasteln

[Edit]War mal wieder zu langsam... Die Komponente scheint mir ganz ok zu sein, das vom Swissdelphicenter find ich ni so toll da man dies für jede Componente erstellen muss und die eventuell schon zugewiesenen onMouseDowns etc verloren gehen, was bei der Komponente nicht der Fall zu sein scheint[/Edit]

torud 12. Jul 2004 06:08

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
Hallo nochmals!

Die Komponente, welche ich im vorherigen Posting angegeben habe, ist wirklich Klasse. Mich interessiert jetzt aber noch, wie ich das Verschieben mit so einem Raster wie im Delphi realisieren kan, damit der User ein optisches und reales Hilfsmiteel zum verschieben und "Einrasten" hat.

Soll ich das mit einem Hintergrundbild wie im Delphi machen?
Aber wie kann ich dann ein solches Raster realisieren?

Tyler 14. Jul 2004 19:39

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
der Frage schliess ich mich an... hab zwar einen etwas abweichenderen Code, würde aber auch gerne wissen, wie ich das sog. "Snap-On-Grid" realisieren könnte :)

Delphi-Quellcode:
ReleaseCapture;
TPanel(Sender).perform(WM_SysCommand, $F012, 0);
thx

tyler

SirThornberry 14. Jul 2004 20:31

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
@torud: Das raster bekommst du ganze einfach hinn indem du einfach im OnPaint die Punkte in einem gewissen abstand aufs Form malst.

torud 20. Jul 2004 10:24

Re: Komponenten zur Laufzeit erzeugen und auf Form bewegen!?
 
OK, das beantwortet die Frage, wie ich ein Raster zumindest gemahlt bekomme.Wie aber kann man denn dann die Komponenten an diesem "virtuellen" Raster "einrasten"?

Hm, !??? :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.
Seite 1 von 2  1 2      

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