27-11-2019, Saat: 10:26
(27-11-2019, Saat: 00:22)narkotik Adlı Kullanıcıdan Alıntı:(26-11-2019, Saat: 20:18)SimaWB Adlı Kullanıcıdan Alıntı: Bu drag-drop esnasında çalışır. Burada asıl işe yaracak olan FindVCLWindow'dur. Yalnız o da sadece TWinControl'den türemiş olan bileşenlerde işe yarar. Örneğin bir TLabel üzerinde iseniz FindVCLWindow'dan Nil dönecektir.
Normalde'de çalışıyor diye hatırlıyorum.(Olmuyormuş TMSScripter'da bu şekilde oluyordu aklımda kalmış)
belki birinin işe yarar
private { Private declarations } procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
procedure TForm1.CMMouseEnter(var Message: TMessage); var rc:trect; a:string; i,b:integer; begin inherited; if Form1.PageControlEXanapanel.Pages[0].Showing=true then begin for I := 0 to form1.FlowPanel1.ControlCount-1 do begin MyPoint := form1.FlowPanel1.Controls[i].ScreenToClient(Mouse.CursorPos); rc:= form1.FlowPanel1.Controls[i].ClientRect; if PtInRect(rc, MyPoint) then begin FormController.Panel7.Parent := tpanel(tpanel(form1.FlowPanel1.Controls[i]).Controls[1]) ; FormController.Panel7.Width :=34; FormController.Panel7.Height :=tpanel(form1.FlowPanel1.Controls[i]).Controls[1].Height; FormController.Panel7.left :=0; FormController.Panel7.top :=0; FormController.Panel7.Visible:=true; a:= FlowPanel1.Controls[i].Name; b:= strtoint(MidStr(a,7,3)); AktifSayfaNo:= (b+1); exit end else begin FormController.Panel7.Visible:=false; end; end; end; end;
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest); var Ch: Bool; begin if csDesigning in ComponentState then Message.Result := HTCLIENT else begin Ch:= False; //Do checks and pass `Ch:= True;` if something changed... if Ch then Invalidate; end; end;