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 Screenie |
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:35 Uhr. |
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