У меня есть потомок TFrame, на котором имеется значительная панель, являющаяся сторонним компонентом (TLMDSimplePanel)). Размер на этой панели работает отлично, но я хочу, чтобы размер рамки, в которой он находится, динамически изменялся при изменении пользователем размера панели. (Панель имеет небольшой размер большого пальца, который пользователь может просто щелкнуть и перетащить с помощью мыши).
Код для этого кадра ниже:
unit SizeableFrame;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TcmBaseFrameFrame, LMDCustomControl, LMDCustomPanel, LMDCustomBevelPanel,
LMDSimplePanel, StdCtrls;
type
TcmSizeableFrame = class(TcmBaseFrame)
LMDSimplePanel1: TLMDSimplePanel;
Memo1: TMemo;
Memo2: TMemo;
procedure LMDSimplePanel1Resize(Sender: TObject);
procedure FrameCanResize(Sender: TObject; var NewWidth, NewHeight: Integer;
var Resize: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
cmSizeableFrame: TcmSizeableFrame;
implementation
{$R *.dfm}
procedure TcmSizeableFrame.FrameCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
inherited;
Resize := True;
end;
procedure TcmSizeableFrame.LMDSimplePanel1Resize(Sender: TObject);
const
ExpandByPixels = 60;
var
MyFrame : TFrame;
begin
inherited;
Self.Height := LMDSimplePanel1.Height + ExpandByPixels;
Self.Width := LMDSimplePanel1.Width + ExpandByPixels;
end;
end.
Это прекрасно работает, если пользователь сжимает размер кадра, но если они пытаются растянуть его больше его первоначальных границ, они могут только расширить его до того, что появляется , чтобы быть его оригинальным размером + ExpandByPixels, после чего пользователь не может продолжать плавно перетаскивать его к большему размеру.
Если они останавливаются, а затем снова щелкают и перетаскивают ручку размера, они могут затем перетаскивать ее на больший размер, но опять-таки это ограничивается аналогичным образом (текущий размер + ExpandByPixels = внешняя граница). Они могут бесконечно повторять этот цикл, расширяя кадр до любого размера, но не плавно одним движением мыши, а это то, чего я хочу.
Я проверил эту же проблему на потомках TForm и получил те же симптомы.
Что мне здесь не хватает?
Заранее спасибо за любую помощь. : -)