Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Handle von TObject (https://www.delphipraxis.net/28777-handle-von-tobject.html)

Die Muhkuh 30. Aug 2004 08:11


Handle von TObject
 
Hi,


ich erste dynamisch ein paar kompos. Denen weise ich ein "OnMouseMove" Event zu. Im OnMouseMove Event soll das Label verschoben werden.

Delphi-Quellcode:
ReleaseCapture;
  SendMessage(Sender.Handle,WM_SysCommand,$f012,0);

Das Problem, das es kein Sender.Handle gibt. Wie bekomme ich ein Handle auf den Sender (TObject)?


[edit] Schreib-Recht-Fehler :wall: [/edit]

mirage228 30. Aug 2004 08:17

Re: Handle von TObject
 
Hi,

wer ist den der Sender? Wenn es ein Edit oder ein Memo ist könntest du nach TWinControl casten. TWinControl hat eine Eigenschaft "Handle".

mfG
mirage228

Die Muhkuh 30. Aug 2004 08:19

Re: Handle von TObject
 
Hi,


der Sender ist ein TprLabel. Das ist abgeleitet von TGraphicControl

mirage228 30. Aug 2004 08:25

Re: Handle von TObject
 
Zitat:

Zitat von Spider
Hi,


der Sender ist ein TprLabel. Das ist abgeleitet von TGraphicControl

Hi,

dann muss ich dich Leider enttäuschen, TGraphicControl und auch TLabel besitzen kein Handle.
Falls du ein Label mit Handle brauchst, nimm ein TStaticText (o.Ä.). Das ist imho die Kapselung des WinAPI 'STATIC' und besitzt daher ein Handle.

mfG
mirage228

Die Muhkuh 30. Aug 2004 08:26

Re: Handle von TObject
 
gibt es keine möglichkeit? Und was wenn ich die Kompo ableite und noch ein Handle "dazu mache"?

mirage228 30. Aug 2004 08:31

Re: Handle von TObject
 
Zitat:

Zitat von Spider
gibt es keine möglichkeit? Und was wenn ich die Kompo ableite und noch ein Handle "dazu mache"?

Also mir fällt derzeit keine Alternative zu TWinControl-Komponenten ein - vielleicht gibts auch keine.
Was versteht du unter "ein Handle dazu machen". Wenn lediglich die Eigenschaft existiert, heisst das nicht, dass du damit arbeiten kannst.

mfG
mirage228

alcaeus 30. Aug 2004 10:12

Re: Handle von TObject
 
Hi Manuel!

Zitat:

Zitat von Spider
Und was wenn ich die Kompo ableite und noch ein Handle "dazu mache"?

Da empfehle ich dir wirklich, TStaticText zu verwenden bzw. abzuleiten und so zu verändern, dass sie deinen Vorstellungen entspricht. Wenn du ein Handle dazumachen willst, musst du dir wahrscheinlich etwas einfallen lassen, um nicht mit Windows-Handles in Konflikt zu kommen, so dass diese nicht evtl. verwechselt werden. Und außerdem, wenn Windows diese Handle-Sache schon anbietet, wieso willst du das Rad ein zweites Mal erfinden? :roll:

Greetz
alcaeus

Luckie 30. Aug 2004 12:12

Re: Handle von TObject
 
Dann verschieb das Ding doch mit den Eigenschaften Left und Top.

Die Muhkuh 30. Aug 2004 12:17

Re: Handle von TObject
 
Hi,


@Luckie

siehe hier warum ich nicht Top und Left benutzen möchte:

http://www.delphipraxis.net/internal...994&highlight=

teebee 30. Aug 2004 13:19

Re: Handle von TObject
 
Also, wenn Du das Label transparent machen kannst, sieht folgendes eigentlich ganz akzeptabel aus:
Delphi-Quellcode:
Var Maus: Boolean;
    OffX, OffY: Integer;

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Maus := True;
  OffX := X;
  OffY := Y;
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Maus := False;
end;

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Var MyLabel: TLabel;
    FormKoord: TPoint;
begin
  If Maus Then Begin
   MyLabel := Sender As TLabel;
   FormKoord := ScreenToClient(MyLabel.ClientToScreen(Point(x,y)));
   MyLabel.SetBounds(FormKoord.x-OffX,FormKoord.y-OffY,MyLabel.Width,MyLabel.Height);
  End;
end;
Gruß, teebee


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.
Seite 1 von 2  1 2      

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