![]() |
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] |
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 |
Re: Handle von TObject
Hi,
der Sender ist ein TprLabel. Das ist abgeleitet von TGraphicControl |
Re: Handle von TObject
Zitat:
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 |
Re: Handle von TObject
gibt es keine möglichkeit? Und was wenn ich die Kompo ableite und noch ein Handle "dazu mache"?
|
Re: Handle von TObject
Zitat:
Was versteht du unter "ein Handle dazu machen". Wenn lediglich die Eigenschaft existiert, heisst das nicht, dass du damit arbeiten kannst. mfG mirage228 |
Re: Handle von TObject
Hi Manuel!
Zitat:
Greetz alcaeus |
Re: Handle von TObject
Dann verschieb das Ding doch mit den Eigenschaften Left und Top.
|
Re: Handle von TObject
Hi,
@Luckie siehe hier warum ich nicht Top und Left benutzen möchte: ![]() |
Re: Handle von TObject
Also, wenn Du das Label transparent machen kannst, sieht folgendes eigentlich ganz akzeptabel aus:
Delphi-Quellcode:
Gruß, teebee
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 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