mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 22:20:25 +02:00
EditButton: Implement property SimpleLayout for TTimeEdit. Patch by Janusz Tomczak, slighty modified by me (Issue #0028561).
git-svn-id: trunk@49850 -
This commit is contained in:
parent
e8704af162
commit
108a741bb8
@ -39,8 +39,6 @@ const
|
|||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ TEbEdit }
|
{ TEbEdit }
|
||||||
|
|
||||||
TEbEdit = class(TCustomMaskedit)
|
TEbEdit = class(TCustomMaskedit)
|
||||||
@ -873,11 +871,14 @@ type
|
|||||||
IsEmptyTime: Boolean;
|
IsEmptyTime: Boolean;
|
||||||
FDefaultNow: Boolean;
|
FDefaultNow: Boolean;
|
||||||
FDroppedDown: Boolean;
|
FDroppedDown: Boolean;
|
||||||
|
FSimpleLayout: Boolean;
|
||||||
FOnAcceptTime: TAcceptTimeEvent;
|
FOnAcceptTime: TAcceptTimeEvent;
|
||||||
FOnCustomTime: TCustomTimeEvent;
|
FOnCustomTime: TCustomTimeEvent;
|
||||||
function GetTime: TDateTime;
|
function GetTime: TDateTime;
|
||||||
procedure SetTime(AValue: TDateTime);
|
procedure SetTime(AValue: TDateTime);
|
||||||
procedure SetEmptyTime;
|
procedure SetEmptyTime;
|
||||||
|
function GetLayout: Boolean;
|
||||||
|
procedure SetLayout(AValue: Boolean);
|
||||||
procedure TimePopupReturnTime(Sender: TObject; const ATime: TDateTime);
|
procedure TimePopupReturnTime(Sender: TObject; const ATime: TDateTime);
|
||||||
procedure TimePopupShowHide(Sender: TObject);
|
procedure TimePopupShowHide(Sender: TObject);
|
||||||
procedure OpenTimePopup;
|
procedure OpenTimePopup;
|
||||||
@ -949,6 +950,7 @@ type
|
|||||||
property ParentShowHint;
|
property ParentShowHint;
|
||||||
property PopupMenu;
|
property PopupMenu;
|
||||||
property ShowHint;
|
property ShowHint;
|
||||||
|
property SimpleLayout: Boolean read GetLayout write SetLayout default True;
|
||||||
property TabStop;
|
property TabStop;
|
||||||
property TabOrder;
|
property TabOrder;
|
||||||
property Visible;
|
property Visible;
|
||||||
@ -2947,6 +2949,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TTimeEdit.GetLayout: Boolean;
|
||||||
|
begin
|
||||||
|
Result := FSimpleLayout;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTimeEdit.SetLayout(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
FSimpleLayout := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTimeEdit.SetTime(AValue: TDateTime);
|
procedure TTimeEdit.SetTime(AValue: TDateTime);
|
||||||
var
|
var
|
||||||
Output: String;
|
Output: String;
|
||||||
@ -2997,7 +3009,7 @@ begin
|
|||||||
ATime := GetTime;
|
ATime := GetTime;
|
||||||
if ATime = NullDate then
|
if ATime = NullDate then
|
||||||
ATime := SysUtils.Time;
|
ATime := SysUtils.Time;
|
||||||
ShowTimePopup(PopupOrigin, ATime, Self.DoubleBuffered, @TimePopupReturnTime, @TimePopupShowHide);
|
ShowTimePopup(PopupOrigin, ATime, Self.DoubleBuffered, @TimePopupReturnTime, @TimePopupShowHide, FSimpleLayout);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TTimeEdit.TryParseInput(AInput: String; out ParseResult: TDateTime): Boolean;
|
function TTimeEdit.TryParseInput(AInput: String; out ParseResult: TDateTime): Boolean;
|
||||||
@ -3043,18 +3055,17 @@ begin
|
|||||||
OpenTimePopup;
|
OpenTimePopup;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TTimeEdit.EditEditingDone;
|
procedure TTimeEdit.EditEditingDone;
|
||||||
begin
|
begin
|
||||||
ParseInput;
|
ParseInput;
|
||||||
inherited EditEditingDone;
|
inherited EditEditingDone;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
constructor TTimeEdit.Create(AOwner: TComponent);
|
constructor TTimeEdit.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
SetEmptyTime;
|
SetEmptyTime;
|
||||||
|
FSimpleLayout := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCalcEdit }
|
{ TCalcEdit }
|
||||||
|
@ -36,7 +36,6 @@ type
|
|||||||
procedure GridsDblClick(Sender: TObject);
|
procedure GridsDblClick(Sender: TObject);
|
||||||
procedure GridsKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure GridsKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
procedure MoreLessBtnClick(Sender: TObject);
|
procedure MoreLessBtnClick(Sender: TObject);
|
||||||
procedure SetLayout(SimpleLayout: Boolean);
|
|
||||||
private
|
private
|
||||||
FClosed: Boolean;
|
FClosed: Boolean;
|
||||||
FOnReturnTime: TReturnTimeEvent;
|
FOnReturnTime: TReturnTimeEvent;
|
||||||
@ -46,6 +45,7 @@ type
|
|||||||
function GetTime: TDateTime;
|
function GetTime: TDateTime;
|
||||||
procedure Initialize(const PopupOrigin: TPoint; ATime: TDateTime);
|
procedure Initialize(const PopupOrigin: TPoint; ATime: TDateTime);
|
||||||
procedure ReturnTime;
|
procedure ReturnTime;
|
||||||
|
procedure SetLayout(SimpleLayout: Boolean);
|
||||||
procedure SetTime(ATime: TDateTime);
|
procedure SetTime(ATime: TDateTime);
|
||||||
published
|
published
|
||||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
@ -54,14 +54,14 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure ShowTimePopup(const Position: TPoint; ATime: TDateTime; const DoubleBufferedForm: Boolean;
|
procedure ShowTimePopup(const Position: TPoint; ATime: TDateTime; const DoubleBufferedForm: Boolean;
|
||||||
const OnReturnTime: TReturnTimeEvent; const OnShowHide: TNotifyEvent = nil);
|
const OnReturnTime: TReturnTimeEvent; const OnShowHide: TNotifyEvent = nil; SimpleLayout: Boolean = True);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
procedure ShowTimePopup(const Position: TPoint; ATime: TDateTime; const DoubleBufferedForm: Boolean; const OnReturnTime: TReturnTimeEvent;
|
procedure ShowTimePopup(const Position: TPoint; ATime: TDateTime; const DoubleBufferedForm: Boolean; const OnReturnTime: TReturnTimeEvent;
|
||||||
const OnShowHide: TNotifyEvent);
|
const OnShowHide: TNotifyEvent; SimpleLayout: Boolean);
|
||||||
var
|
var
|
||||||
NewForm: TTimePopupForm;
|
NewForm: TTimePopupForm;
|
||||||
begin
|
begin
|
||||||
@ -72,6 +72,9 @@ begin
|
|||||||
NewForm.OnHide := OnShowHide;
|
NewForm.OnHide := OnShowHide;
|
||||||
if DoubleBufferedForm then
|
if DoubleBufferedForm then
|
||||||
NewForm.ActivateDoubleBuffered;
|
NewForm.ActivateDoubleBuffered;
|
||||||
|
NewForm.SetLayout(SimpleLayout);
|
||||||
|
if not SimpleLayout then
|
||||||
|
NewForm.SetTime(ATime); //update the row and col in the grid;
|
||||||
NewForm.Show;
|
NewForm.Show;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -178,6 +181,7 @@ begin
|
|||||||
try
|
try
|
||||||
if SimpleLayout then
|
if SimpleLayout then
|
||||||
begin
|
begin
|
||||||
|
MoreLessBtn.Caption := '>>';
|
||||||
MinutesGrid.RowCount := 2;
|
MinutesGrid.RowCount := 2;
|
||||||
MinutesGrid.ColCount := 6;
|
MinutesGrid.ColCount := 6;
|
||||||
for r := 0 to MinutesGrid.RowCount - 1 do
|
for r := 0 to MinutesGrid.RowCount - 1 do
|
||||||
@ -189,6 +193,7 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
MoreLessBtn.Caption := '<<';
|
||||||
MinutesGrid.RowCount := 12;
|
MinutesGrid.RowCount := 12;
|
||||||
MinutesGrid.ColCount := 5;
|
MinutesGrid.ColCount := 5;
|
||||||
for r := 0 to MinutesGrid.RowCount - 1 do
|
for r := 0 to MinutesGrid.RowCount - 1 do
|
||||||
|
Loading…
Reference in New Issue
Block a user