![]() |
Problem mit ClientToScreen
Ich möchte beim Klicken eines Button (Buttons sind voll in), dass sich direkt darunter ein Form öffnet... Dazu habe ich diesen Code:
Delphi-Quellcode:
cmdEditLiegenschaft ist der Button.
procedure TfrmAuftraege.acEditChangePropertyExecute(Sender: TObject);
var frm : TfrmFindProperty ; P : TPoint ; begin frm := TfrmFindProperty.Create(self) ; P := Point (cmdEditLiegenschaft.Left,cmdEditLiegenschaft.Top) ; P.Y := cmdEditLiegenschaft.Height + P.Y ; P := cmdEditLiegenschaft.ClientToScreen(P) ; frm.Top := P.Y ; frm.Left := P.x ; frm.show ; end; Doch leider ist das Form nicht an der gewünschten Stelle. Der button selbst liegt in einem Tabsheet, das Tabsheet in einem Pagecontrol usw... Warum klappt das nicht. Hier mal ein ![]() |
Re: Problem mit ClientToScreen
Du musst immer von Parent des Button ausgehen:
liegt mein Button z.B. im Panel panel1, dann
Delphi-Quellcode:
var
p : TPoint; begin p := panel1.ClientToScreen(Point(Button1.Left,Button1.Top+Button1.Height)); PopUpmenu1.Popup(p.X,p.Y); |
Re: Problem mit ClientToScreen
:wall: Das wars schon. Ich geb einen aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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 by Thomas Breitkreuz