2014-02-21 81 views
3

有無論如何使用鼠標來調整德爾福Fmx的無邊界形式? 我試圖使用MouseDown和MouseMove,然後使用窗體的位置與窗體的左側和頂部相比較,但我無法使其工作。德爾福fmx調整大小格式

出於某種原因fmx中的鼠標與正常的vcl應用程序中的鼠標看起來非常不同。

+1

添加一個狀態欄,保持其「ShowSizeGrip」爲真,並且您已完成:) – TLama

+1

偉大的,如果它的工作 - 您已經保存了我的一天:) – user3337132

+0

@TLama:請作出答案,以便我們可以投票? – whosrdaddy

回答

0

在Firemonkey鼠標座標不是任何時候相對於窗體的頂部/左側像素。

可以使用的功能,將它們轉換和模擬sizegrip有這樣的代碼:

procedure TFenetre.btnRedimensionneMouseDown(Sender: TObject; 
    Button: TMouseButton; Shift: TShiftState; X, Y: Single); 
begin 
    if (ssLeft in Shift) then 
    begin 
    deplacementX := X; 
    deplacementY := Y; 
    end; 
end; 

procedure TFenetre.btnRedimensionneMouseMove(Sender: TObject; 
    Shift: TShiftState; X, Y: Single); 
begin 
    if (ssLeft in Shift) then 
    begin 
    Self.width := Self.width - deplacementX + X; 
    Self.height := Self.height - deplacementY + Y; 
    end; 
end; 

btnRedimensionne是別人用作gripsize控制按鈕,圖像或任何東西。

在你的類添加這樣的:

deplacementX, deplacementY: Single; 

這些字段被用於計算解放運動(增加或減少的形式/幀的大小)。