Rx - new component - TRxDateRangeEdit

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3244 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2014-06-26 12:09:27 +00:00
parent 08bef44aac
commit 42c3fcce2b
10 changed files with 331 additions and 140 deletions

View File

@ -54,7 +54,7 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item4>
</RequiredPackages>
<Units Count="101">
<Units Count="103">
<Unit0>
<Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/>
@ -102,14 +102,15 @@
<Unit5>
<Filename Value="../../rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<WindowIndex Value="0"/>
<TopLine Value="4823"/>
<CursorPos X="3" Y="4826"/>
<TopLine Value="3742"/>
<CursorPos X="1" Y="3763"/>
<UsageCount Value="17"/>
<Bookmarks Count="2">
<Item0 X="1" Y="2564" ID="2"/>
<Item1 X="1" Y="4791" ID="1"/>
<Item1 X="1" Y="3763" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit5>
@ -192,24 +193,18 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="rxdbgrid_columsunit"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<WindowIndex Value="0"/>
<TopLine Value="78"/>
<CursorPos X="1" Y="166"/>
<TopLine Value="103"/>
<CursorPos X="55" Y="103"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit17>
<Unit18>
<Filename Value="../../rxdconst.pas"/>
<UnitName Value="rxdconst"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/>
<TopLine Value="144"/>
<CursorPos X="21" Y="165"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit18>
<Unit19>
<Filename Value="../../../lcl/include/winapih.inc"/>
@ -507,25 +502,21 @@
<Unit58>
<Filename Value="../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<EditorIndex Value="5"/>
<WindowIndex Value="0"/>
<TopLine Value="222"/>
<TopLine Value="216"/>
<CursorPos X="3" Y="216"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
</Unit58>
<Unit59>
<Filename Value="../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="1562"/>
<CursorPos X="16" Y="1583"/>
<TopLine Value="11283"/>
<CursorPos X="45" Y="11304"/>
<UsageCount Value="22"/>
<Bookmarks Count="1">
<Item0 X="23" Y="7562" ID="3"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit59>
<Unit60>
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/classesh.inc"/>
@ -836,135 +827,59 @@
<Unit100>
<Filename Value="../../../../lcl/buttonpanel.pas"/>
<UnitName Value="ButtonPanel"/>
<EditorIndex Value="3"/>
<WindowIndex Value="0"/>
<TopLine Value="339"/>
<CursorPos X="1" Y="349"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit100>
<Unit101>
<Filename Value="/home/alexs/install/source/fpcsrc/rtl/objpas/classes/classesh.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="468"/>
<CursorPos X="15" Y="489"/>
<UsageCount Value="10"/>
</Unit101>
<Unit102>
<Filename Value="/home/alexs/install/source/fpcsrc/rtl/objpas/classes/collect.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="41"/>
<CursorPos X="2" Y="44"/>
<UsageCount Value="10"/>
</Unit102>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<JumpHistory Count="8" HistoryIndex="7">
<Position1>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="182" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="867" Column="35" TopLine="845"/>
</Position1>
<Position2>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="183" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="110" Column="50" TopLine="89"/>
</Position2>
<Position3>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="176" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="875" Column="61" TopLine="855"/>
</Position3>
<Position4>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="178" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="708" Column="39" TopLine="706"/>
</Position4>
<Position5>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="179" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="3763" Column="24" TopLine="3744"/>
</Position5>
<Position6>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="181" Column="1" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5712" Column="1" TopLine="5677"/>
</Position6>
<Position7>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="182" Column="21" TopLine="147"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="110" Column="48" TopLine="88"/>
</Position7>
<Position8>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="133" Column="10" TopLine="96"/>
<Filename Value="../../rxdbgrid.pas"/>
<Caret Line="875" Column="63" TopLine="854"/>
</Position8>
<Position9>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="124" Column="8" TopLine="101"/>
</Position9>
<Position10>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="158" Column="40" TopLine="118"/>
</Position10>
<Position11>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="120" Column="36" TopLine="111"/>
</Position11>
<Position12>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="165" Column="3" TopLine="163"/>
</Position12>
<Position13>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="167" Column="1" TopLine="158"/>
</Position13>
<Position14>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="166" Column="88" TopLine="162"/>
</Position14>
<Position15>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="69" Column="20" TopLine="56"/>
</Position15>
<Position16>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="166" Column="98" TopLine="145"/>
</Position16>
<Position17>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="151" Column="54" TopLine="106"/>
</Position17>
<Position18>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="121" Column="1" TopLine="106"/>
</Position18>
<Position19>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="137" Column="1" TopLine="106"/>
</Position19>
<Position20>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="121" Column="1" TopLine="106"/>
</Position20>
<Position21>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="123" Column="1" TopLine="106"/>
</Position21>
<Position22>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="124" Column="1" TopLine="106"/>
</Position22>
<Position23>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="125" Column="1" TopLine="106"/>
</Position23>
<Position24>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="156" Column="45" TopLine="121"/>
</Position24>
<Position25>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="166" Column="1" TopLine="139"/>
</Position25>
<Position26>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="168" Column="116" TopLine="147"/>
</Position26>
<Position27>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="166" Column="1" TopLine="147"/>
</Position27>
<Position28>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="169" Column="1" TopLine="147"/>
</Position28>
<Position29>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="167" Column="1" TopLine="147"/>
</Position29>
<Position30>
<Filename Value="../../rxdbgrid_columsunit.pas"/>
<Caret Line="166" Column="80" TopLine="138"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>

View File

@ -75,8 +75,8 @@ msgstr "Campo '%s' no usado en expresión de filtro"
#: rxdconst.sexprbadnulltest
#, fuzzy
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
msgstr "Valor nulo habilitado en '=' y '<>'"
#: rxdconst.sexprexpected
@ -294,6 +294,15 @@ msgstr "Hacia Delante"
msgid "Text to find"
msgstr "Texto a Buscar"
#: rxdconst.srxdbgridselapplycaption
msgctxt "rxdconst.srxdbgridselapplycaption"
msgid "Apply"
msgstr "Aceptar"
#: rxdconst.srxdbgridselapplyhint
msgid "Apply current columns setings"
msgstr ""
#: rxdconst.srxdbgridselcolcaption
msgid "Grid columns"
msgstr "Columnas de la Tabla"

View File

@ -74,7 +74,7 @@ msgid "Field '%s' not used in filter expression"
msgstr ""
#: rxdconst.sexprbadnulltest
msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
msgstr ""
#: rxdconst.sexprexpected
@ -292,6 +292,15 @@ msgstr ""
msgid "Text to find"
msgstr ""
#: rxdconst.srxdbgridselapplycaption
msgctxt "rxdconst.srxdbgridselapplycaption"
msgid "Apply"
msgstr ""
#: rxdconst.srxdbgridselapplyhint
msgid "Apply current columns setings"
msgstr ""
#: rxdconst.srxdbgridselcolcaption
msgid "Grid columns"
msgstr ""

View File

@ -75,8 +75,8 @@ msgstr "Поле '%s' не может быть использовано в вы
#: rxdconst.sexprbadnulltest
#, fuzzy
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
msgstr "NULL-значения разрешены только в выражениях '=' и '<>'"
#: rxdconst.sexprexpected
@ -294,6 +294,15 @@ msgstr "Вперёд"
msgid "Text to find"
msgstr "Текст для поиска"
#: rxdconst.srxdbgridselapplycaption
msgctxt "rxdconst.srxdbgridselapplycaption"
msgid "Apply"
msgstr "Применить"
#: rxdconst.srxdbgridselapplyhint
msgid "Apply current columns setings"
msgstr ""
#: rxdconst.srxdbgridselcolcaption
msgid "Grid columns"
msgstr "Поля таблицы"

View File

@ -84,8 +84,8 @@ msgstr "Поле '%s' не може бути використане в вира
#: rxdconst.sexprbadnulltest
#, fuzzy
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
#| msgid "NULL-values enabled in '=' и '<>'"
msgid "NULL-values enabled in '=' и '<>'"
msgstr "NULL-значення дозволені тільки у виразах '=' і '<>'"
#: rxdconst.sexprexpected
@ -303,6 +303,15 @@ msgstr "Вперед"
msgid "Text to find"
msgstr "Текст для пошуку"
#: rxdconst.srxdbgridselapplycaption
msgctxt "rxdconst.srxdbgridselapplycaption"
msgid "Apply"
msgstr "Застосувати"
#: rxdconst.srxdbgridselapplyhint
msgid "Apply current columns setings"
msgstr ""
#: rxdconst.srxdbgridselcolcaption
msgid "Grid columns"
msgstr "Поля таблиці"

View File

@ -40,6 +40,7 @@ uses
const
RxCtrllPageName = 'RX Controls';
RxToolsPageName = 'RX Tools';
procedure Register;
@ -49,7 +50,7 @@ uses
curredit, rxswitch, rxdice, rxtoolbar, rxxpman, PageMngr, RxAppIcon,
Dialogs, ComponentEditors, DBPropEdits, DB, rxctrls,
RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock,
rxpopupunit, rxspin, RxTimeEdit,
rxpopupunit, rxspin, RxTimeEdit, rxDateRangeEditUnit,
RxAboutDialog, RxViewsPanel, RxMDI;
{$IFDEF USE_TRxAppIcon}
@ -159,7 +160,12 @@ end;
procedure RegisterRxHistoryNavigator;
begin
RegisterComponents('RX Tools',[TRxHistoryNavigator]);
RegisterComponents(RxToolsPageName,[TRxHistoryNavigator]);
end;
procedure RegisterrxDateRangeEditUnit;
begin
RegisterComponents(RxCtrllPageName,[TRxDateRangeEdit]);
end;
procedure Register;
@ -190,6 +196,8 @@ begin
RegisterUnit('RxViewsPanel', @RegisterRxViewsPanel);
RegisterUnit('RxHistoryNavigator', @RegisterRxHistoryNavigator);
RegisterUnit('RxMDI', @RegisterRxMDI);
RegisterUnit('rxDateRangeEditUnit', @RegisterrxDateRangeEditUnit);
end;
initialization

View File

@ -0,0 +1,230 @@
unit rxDateRangeEditUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, types, Controls, Buttons, StdCtrls, Spin;
type
{ TRxCustomDateRangeEdit }
TRxCustomDateRangeEdit = class(TCustomControl)
private
FOnEditChange: TNotifyEvent;
FsbDecYear: TSpeedButton;
FsbDecMonth: TSpeedButton;
FsbIncYear: TSpeedButton;
FsbIncMonth: TSpeedButton;
FEditYear: TSpinEdit;
FEditMonth: TComboBox;
procedure DoIncMonth(Sender: TObject);
procedure DoIncYear(Sender: TObject);
procedure DoDecMonth(Sender: TObject);
procedure DoDecYear(Sender: TObject);
function GetMonth: word;
function GetPeriod: TDateTime;
function GetYear: word;
procedure SetMonth(AValue: word);
procedure SetPeriod(AValue: TDateTime);
procedure SetYear(AValue: word);
procedure InternalOnEditChange(Sender: TObject);
protected
class function GetControlClassDefaultSize: TSize; override;
procedure FillMonthNames;
procedure SetAutoSize(AValue: Boolean); override;
procedure EditChange; virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Year:word read GetYear write SetYear;
property Month:word read GetMonth write SetMonth;
property Period:TDateTime read GetPeriod write SetPeriod;
property OnChange: TNotifyEvent read FOnEditChange write FOnEditChange;
end;
type
TRxDateRangeEdit = class(TRxCustomDateRangeEdit)
published
property Autosize default True;
property Year;
property Month;
property OnChange;
end;
implementation
{ TRxCustomDateRangeEdit }
procedure TRxCustomDateRangeEdit.DoIncMonth(Sender: TObject);
begin
if FEditMonth.ItemIndex < 11 then
FEditMonth.ItemIndex := FEditMonth.ItemIndex + 1
else
begin
FEditMonth.ItemIndex := 0;
FEditYear.Value:=FEditYear.Value + 1;
end;
end;
procedure TRxCustomDateRangeEdit.DoIncYear(Sender: TObject);
begin
FEditYear.Value:=FEditYear.Value + 1;
end;
procedure TRxCustomDateRangeEdit.DoDecMonth(Sender: TObject);
begin
if FEditMonth.ItemIndex > 0 then
FEditMonth.ItemIndex := FEditMonth.ItemIndex - 1
else
begin
FEditMonth.ItemIndex := 11;
FEditYear.Value:=FEditYear.Value - 1;
end;
end;
procedure TRxCustomDateRangeEdit.DoDecYear(Sender: TObject);
begin
FEditYear.Value:=FEditYear.Value - 1;
end;
function TRxCustomDateRangeEdit.GetMonth: word;
begin
Result:=FEditMonth.ItemIndex+1;
end;
function TRxCustomDateRangeEdit.GetPeriod: TDateTime;
begin
Result:=EncodeDate(Year, Month, 1);
end;
function TRxCustomDateRangeEdit.GetYear: word;
begin
Result:=FEditYear.Value;
end;
procedure TRxCustomDateRangeEdit.SetMonth(AValue: word);
begin
if (AValue>0) and (AValue < 13) then
FEditMonth.ItemIndex:=AValue;
end;
procedure TRxCustomDateRangeEdit.SetPeriod(AValue: TDateTime);
var
Y, M, D: word;
begin
DecodeDate(AValue, Y, M, D);
FEditMonth.ItemIndex:=M-1;
FEditYear.Value:=Y;
end;
procedure TRxCustomDateRangeEdit.SetYear(AValue: word);
begin
FEditYear.Value:=AValue;
end;
procedure TRxCustomDateRangeEdit.InternalOnEditChange(Sender: TObject);
begin
EditChange;
end;
class function TRxCustomDateRangeEdit.GetControlClassDefaultSize: TSize;
begin
Result.CX := 80 + 70 + 23 * 4;
Result.CY := 23;
end;
procedure TRxCustomDateRangeEdit.FillMonthNames;
var
i: Integer;
begin
for i:=1 to 12 do
FEditMonth.Items.Add(DefaultFormatSettings.LongMonthNames[i]);
end;
procedure TRxCustomDateRangeEdit.SetAutoSize(AValue: Boolean);
begin
if AutoSize = AValue then
Exit;
inherited SetAutosize(AValue);
FEditMonth.AutoSize := AValue;
FEditYear.AutoSize := AValue;
end;
procedure TRxCustomDateRangeEdit.EditChange;
begin
if Assigned(FOnEditChange) then FOnEditChange(Self);
end;
constructor TRxCustomDateRangeEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FEditYear:=TSpinEdit.Create(Self);
FEditMonth:=TComboBox.Create(Self);
FEditMonth.Style:=csDropDownList;
FEditYear.Width:=70;
FEditMonth.Width:=80;
FsbDecYear:=TSpeedButton.Create(Self);
FsbDecMonth:=TSpeedButton.Create(Self);
FsbIncYear:=TSpeedButton.Create(Self);
FsbIncMonth:=TSpeedButton.Create(Self);
FsbDecYear.OnClick:=@DoDecYear;
FsbDecMonth.OnClick:=@DoDecMonth;
FsbIncYear.OnClick:=@DoIncYear;
FsbIncMonth.OnClick:=@DoIncMonth;
FEditYear.Parent:=Self;
FsbDecYear.Parent:=Self;
FsbDecMonth.Parent:=Self;
FsbIncYear.Parent:=Self;
FsbIncMonth.Parent:=Self;
FEditMonth.Parent:=Self;
FsbDecYear.Caption:='<<';
FsbDecMonth.Caption:='<';
FsbIncYear.Caption:='>>';
FsbIncMonth.Caption:='>';
FsbDecYear.Left:=0;
FsbDecMonth.Left:=23;
FEditMonth.Left:=46;
FEditYear.Left:=126;
FsbIncMonth.Left:=206;
FsbIncYear.Left:=229;
ControlStyle := ControlStyle + [csNoFocus];
FsbDecYear.Align:=alLeft;
FsbDecMonth.Align:=alLeft;
FsbIncYear.Align:=alRight;
FsbIncMonth.Align:=alRight;
FEditYear.Align:=alRight;
FEditMonth.Align:=alClient;
FEditYear.MaxValue:=9999;
with GetControlClassDefaultSize do
SetInitialBounds(0, 0, CX, CY);
FillMonthNames;
SetPeriod(Now);
AutoSize := True;
FEditMonth.OnChange:=@InternalOnEditChange;
FEditYear.OnChange:=@InternalOnEditChange;
end;
destructor TRxCustomDateRangeEdit.Destroy;
begin
inherited Destroy;
end;
end.

View File

@ -345,6 +345,7 @@ procedure TRxMDIPanel.ChildWindowsAdd(F: TForm);
var
B:TRxMDIButton;
begin
Assert(Assigned(TaskPanel), 'Нет связанной панели задач');
HideCurrentWindow;
F.BorderStyle:=bsNone;
F.Align:=alClient;

View File

@ -17,9 +17,6 @@
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Description Value="Delphi VCL Extensions (RX)
Copyright (c) 1998 Master-Bank
@ -27,7 +24,7 @@ translate to Lazarus by alexs in 2005 - 2014
"/>
<License Value="LGPL"/>
<Version Major="2" Minor="6" Release="5" Build="152"/>
<Files Count="68">
<Files Count="69">
<Item1>
<Filename Value="autopanel.pas"/>
<UnitName Value="AutoPanel"/>
@ -303,6 +300,10 @@ translate to Lazarus by alexs in 2005 - 2014
<Filename Value="rx_lcl.res"/>
<Type Value="Binary"/>
</Item68>
<Item69>
<Filename Value="rxdaterangeeditunit.pas"/>
<UnitName Value="rxDateRangeEditUnit"/>
</Item69>
</Files>
<LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/>
<i18n>

View File

@ -18,7 +18,7 @@ uses
RxTimeEdit, rxtoolbar, RxVersInfo, RxViewsPanel, rxxpman, seldsfrm,
tooledit, vclutils, RxCloseFormValidator, RxHistoryNavigator,
ex_rx_bin_datapacket, ex_rx_datapacket, ex_rx_xml_datapacket, rxsortby,
RxMDI, RxIniPropStorage, LazarusPackageIntf;
RxMDI, RxIniPropStorage, rxDateRangeEditUnit, LazarusPackageIntf;
implementation