1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
{
*****************************************************************************
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
Author: Maciej Izak
DaThoX 2004-2015
FreeSparta.com
}
unit sparta_ResizerFrame;
{$mode delphi}{$H+}
interface
uses
SysUtils,
// IdeIntf
FormEditingIntf, PropEdits, ObjectInspector,
// Sparta
sparta_BasicResizeFrame;
type
{ TResizerFrame }
TResizerFrame = class(TBasicResizeFrame)
private
FActivePropertyGridItemIndex: Integer;
protected
procedure TryBoundDesignedForm; override;
procedure BeginFormSizeUpdate(Sender: TObject); override;
procedure EndFormSizeUpdate(Sender: TObject); override;
end;
implementation
{$R *.lfm}
{ TResizerFrame }
procedure TResizerFrame.TryBoundDesignedForm;
begin
if DesignedForm = nil then
Exit;
// special for frames
{DesignedForm.BeginUpdate;
DesignedForm.RealWidth := DesignedForm.RealWidth + 1;
DesignedForm.RealWidth := DesignedForm.RealWidth - 1;
DesignedForm.EndUpdate;}
inherited TryBoundDesignedForm;
end;
procedure TResizerFrame.BeginFormSizeUpdate(Sender: TObject);
var
OI: TObjectInspectorDlg;
begin
inherited;
// when was active ActivePropertyGrid.ItemIndex for height or width during scaling
// there was problem with values :<
OI := FormEditingHook.GetCurrentObjectInspector;
if ((Sender = pR) or (Sender = pB) or (FNodes.IndexOf(Sender) in [3,4,5])) and Assigned(OI) then
begin
FActivePropertyGridItemIndex := OI.GetActivePropertyGrid.ItemIndex;
OI.GetActivePropertyGrid.ItemIndex := -1;
end
else
FActivePropertyGridItemIndex := -1;
end;
procedure TResizerFrame.EndFormSizeUpdate(Sender: TObject);
var
OI: TObjectInspectorDlg;
begin
inherited;
// restore last selected item in OI.
if FActivePropertyGridItemIndex <> -1 then
begin
OI := FormEditingHook.GetCurrentObjectInspector;
if OI <> nil then
OI.GetActivePropertyGrid.ItemIndex := FActivePropertyGridItemIndex;
FActivePropertyGridItemIndex := -1;
end;
GlobalDesignHook.RefreshPropertyValues;
end;
end.
|