Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Komponenten zur Laufzeit bewegen (wie delphi es z.b tut) (https://www.delphipraxis.net/16886-komponenten-zur-laufzeit-bewegen-wie-delphi-es-z-b-tut.html)

Pseudemys Nelsoni 25. Feb 2004 03:41


Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
hoi,

kann mir jemand erklären wie das funktioniert (z.b delphi oder auch C usw), das man da bei dem form designer buttons memos und alles bewegen kann?
ich möchte nämlich so eine art dialog editor für mirc machen, dazu müsst ich allerdings wissen wie man die buttons etc bewegt und wie man diese anker zum grössen verstellen dort rankriegt

Urba 25. Feb 2004 05:25

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
Hallo,

Bei den Ankern kann ich dir leider nicht helfen, mit dem Verschieben im Allgemeinen hingegen schon. Im OnMouseDown und im Up Ereigniss kann man die Cursor-Position innerhalb des Objekts herausfinden. Diese sind dort mit X und Y angegeben. Somit kannst du mit

Delphi-Quellcode:
Object.Left + X

und

Object.Top + Y
immer auf die globale Koordinate zugreifen.

Hoffe das hilft ein wenig.

Gruss
Urba

Pseudemys Nelsoni 25. Feb 2004 06:35

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
hoi,

jo, daran hatte ich auch schon gedacht, aber die events onmousedown/up werden ja nur einmal ausgeführt. ich bräuchte so eine art OnMouseMove innerhalb des OnMouseDown's

SirThornberry 25. Feb 2004 06:43

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
Delphi-Quellcode:
procedure TJBPosSlider.fMouseDownProc(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  fIsMouseDown := True;
end;

procedure TJBPosSlider.fMouseUpProc(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  fIsMouseDown := False;
end;

procedure TJBPosSlider.fMouseMoveProc(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if fIsMouseDown then
  begin
    //Quelltext zum verschieben
  end;
end;

Mirilin 25. Feb 2004 06:47

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
:hi:

Klick

mfg Tobias

Pseudemys Nelsoni 25. Feb 2004 07:43

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
hallo leute, danke für die antworten ^^


ich hab es mal mit:

Delphi-Quellcode:
var
  Form1: TForm1;
  isDown: boolean = false;
  stLeft, stTop: integer;

...

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  isDown := true;
  stTop := Y;
  stLeft := X;
end;

...

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  isDown := false;
end;

...

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if isDown then
  begin
    if Y > stTop then
      Button1.Top := Button1.top+1
    else if stTop > Y then
      Button1.Top := Button1.top-1;
    if X > stLeft then
      Button1.Left := Button1.Left+1
    else if stTop > X then
      Button1.Left := Button1.Left-1;
  end;
end;

versucht. Funktioniert zwar (einigermaßen), ist aber saaaaaaulahm, besonders wenn man die maus schnell bewegt, da komt der button kaum hinterher, gehts auch anders?

Die Muhkuh 25. Feb 2004 08:02

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
Ich versteh zwar net viel davon aber ich kann auch was leisten :mrgreen:

mach doch bei Button1.left := Button1.left + 1 statt die eins eine höhere Zahl

fkerber 25. Feb 2004 08:05

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
Hi!

Darf ich fragen, warum du es nicht so machst, wie die Schweizer?
Ich glaube, das geht besser oder täusche ich mich?

Ciao fkerber

Pseudemys Nelsoni 25. Feb 2004 08:17

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
jo, das von den schweizern geht, nur da kapier ich den source nicht so ganz, was bewirkt die neue klasse?

nailor 25. Feb 2004 15:26

Re: Komponenten zur Laufzeit bewegen (wie delphi es z.b tut)
 
oder statt +/- 1 setz ihn direkt dahin, wo die Maus ist...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 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