Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponenten einfrieren (https://www.delphipraxis.net/110546-komponenten-einfrieren.html)

Christian18 19. Mär 2008 19:03


Komponenten einfrieren
 
Hallo,

kann man in Delphi die Komponenten einfrieren? Damit ich die zu Laufzeit auf der Form verschieben kann? Ich möchte, wenn man Strg und Alt Drückt und dann noch eine Komponente via MouseDown aktiviert, dass man diese dann verschieben kann.

DeddyH 19. Mär 2008 19:13

Re: Komponenten einfrieren
 
Meinst Du so etwas?
Delphi-Quellcode:
procedure TFormMain.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (ssAlt in Shift) and (ssCtrl in Shift) then
    begin
      ReleaseCapture;
      Button1.Perform(WM_SYSCOMMAND,$F012,0);
    end;
end;

Christian18 19. Mär 2008 19:18

Re: Komponenten einfrieren
 
Hey genau das meine ich. Ich probiere das schon seit einer Stunde und habe schon was weiß ich wieviel code getippt. Das es mit so ein paar zeilen getan ist, hätte ich nicht gedacht. Vielen dank.

MFG Christian18

Fussball-Robby 19. Mär 2008 19:23

Re: Komponenten einfrieren
 
Zitat:

Zitat von Christian18
Ich probiere das schon seit einer Stunde und habe schon was weiß ich wieviel code getippt.

Ich will ja nicht böse sein, aber hättest du 13,5 Sekunden gesucht, hättest du in der CodeLib das hier gefunden :wink:

Christian18 19. Mär 2008 19:26

Re: Komponenten einfrieren
 
Ich habe die Suche probiert, aber nichts gefunden. Wahrscheinlich habe ich die falschen Schbegriffe eingeben.

Ich habe gerade gesehen, dass man das nicht mit allen Komponenten machen kann. Wie geht das denn mit einem Label oder so?

Fussball-Robby 19. Mär 2008 19:30

Re: Komponenten einfrieren
 
Das geht nur bei Objekten, die ein Handle haben, z.B. Panels, Edit usw. Und Labels haben kein Handle.

DeddyH 19. Mär 2008 19:31

Re: Komponenten einfrieren
 
Aber StaticText hat ein Handle.

Fussball-Robby 19. Mär 2008 19:34

Re: Komponenten einfrieren
 
Du könntest es natürlich auch einfacher machen, indem du in einer Variable speicherst, ob die Maustaste gedrückt ist. Ich hab bei den Schweizern ein Beispiel gefunden :wink:
Das geht dann übrigens bei allen Objekten, die ein OnMouseDown/Up/Move haben.

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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-2025 by Thomas Breitkreuz