Стартовый пул

This commit is contained in:
2024-04-02 08:46:59 +03:00
parent fd57fffd3a
commit 3bb34d000b
5591 changed files with 3291734 additions and 0 deletions

View File

@@ -0,0 +1,339 @@
{ boxprocs unit
Copyright (C) 2005-2017 Lagunov Aleksey alexs75@yandex.ru and Lazarus team
original conception from rx library for Delphi (c)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit rxboxprocs;
{$I rx.inc}
interface
uses Classes, Controls, StdCtrls;
const
LB_ERR = -1;
procedure BoxMoveSelectedItems(SrcList, DstList: TWinControl);
procedure BoxMoveAllItems(SrcList, DstList: TWinControl);
procedure BoxDragOver(List: TWinControl; Source: TObject;
X, Y: Integer; State: TDragState; var Accept: Boolean; Sorted: Boolean);
procedure BoxMoveFocusedItem(List: TWinControl; DstIndex: Integer);
procedure BoxMoveSelected(List: TWinControl; Items: TStrings);
procedure BoxSetItem(List: TWinControl; Index: Integer);
function BoxGetFirstSelection(List: TWinControl): Integer;
function BoxCanDropItem(List: TWinControl; X, Y: Integer;
var DragIndex: Integer): Boolean;
implementation
uses LCLIntf, Graphics;
function BoxItems(List: TWinControl): TStrings;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).Items
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).Items}
else Result := nil;
end;
function BoxGetSelected(List: TWinControl; Index: Integer): Boolean;
begin
if List is TCustomListBox then
begin
if TCustomListBox(List).MultiSelect then
Result := TCustomListBox(List).Selected[Index]
else
Result := TCustomListBox(List).ItemIndex = Index
end
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).Selected[Index]}
else Result := False;
end;
procedure BoxSetSelected(List: TWinControl; Index: Integer; Value: Boolean);
begin
if List is TCustomListBox then
TCustomListBox(List).Selected[Index] := Value
{ else if List is TRxCustomListBox then
TRxCustomListBox(List).Selected[Index] := Value;}
end;
function BoxGetItemIndex(List: TWinControl): Integer;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).ItemIndex
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).ItemIndex}
else Result := -1;
end;
{.$IFNDEF WIN32}
function BoxGetCanvas(List: TWinControl): TCanvas;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).Canvas
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).Canvas }
else Result := nil;
end;
{.$ENDIF}
procedure BoxSetItemIndex(List: TWinControl; Index: Integer);
begin
if List is TCustomListBox then
TCustomListBox(List).ItemIndex := Index
{ else if List is TRxCustomListBox then
TRxCustomListBox(List).ItemIndex := Index;}
end;
function BoxMultiSelect(List: TWinControl): Boolean;
begin
if List is TCustomListBox then
Result := TListBox(List).MultiSelect
{ else if List is TRxCustomListBox then
Result := TRxCheckListBox(List).MultiSelect}
else Result := False;
end;
function BoxSelCount(List: TWinControl): Integer;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).SelCount
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).SelCount}
else Result := 0;
end;
function BoxItemAtPos(List: TWinControl; Pos: TPoint;
Existing: Boolean): Integer;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).ItemAtPos(Pos, Existing)
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).ItemAtPos(Pos, Existing)}
else Result := LB_ERR;
end;
function BoxItemRect(List: TWinControl; Index: Integer): TRect;
begin
if List is TCustomListBox then
Result := TCustomListBox(List).ItemRect(Index)
{ else if List is TRxCustomListBox then
Result := TRxCustomListBox(List).ItemRect(Index)}
else FillChar(Result, SizeOf(Result), 0);
end;
procedure BoxMoveSelected(List: TWinControl; Items: TStrings);
var
I: Integer;
begin
if BoxItems(List) = nil then Exit;
I := 0;
while I < BoxItems(List).Count do begin
if BoxGetSelected(List, I) then begin
Items.AddObject(BoxItems(List).Strings[I], BoxItems(List).Objects[I]);
BoxItems(List).Delete(I);
end
else Inc(I);
end;
end;
function BoxGetFirstSelection(List: TWinControl): Integer;
var
I: Integer;
begin
Result := LB_ERR;
if BoxItems(List) = nil then Exit;
for I := 0 to BoxItems(List).Count - 1 do begin
if BoxGetSelected(List, I) then begin
Result := I;
Exit;
end;
end;
Result := LB_ERR;
end;
procedure BoxSetItem(List: TWinControl; Index: Integer);
var
MaxIndex: Integer;
begin
if BoxItems(List) = nil then Exit;
with List do begin
if CanFocus then SetFocus;
MaxIndex := BoxItems(List).Count - 1;
if Index = LB_ERR then Index := 0
else if Index > MaxIndex then Index := MaxIndex;
if Index >= 0 then begin
if BoxMultiSelect(List) then BoxSetSelected(List, Index, True)
else BoxSetItemIndex(List, Index);
end;
end;
end;
procedure BoxMoveSelectedItems(SrcList, DstList: TWinControl);
var
Index, I, NewIndex: Integer;
begin
Index := BoxGetFirstSelection(SrcList);
if Index <> LB_ERR then
begin
BoxItems(SrcList).BeginUpdate;
BoxItems(DstList).BeginUpdate;
try
I := 0;
while I < BoxItems(SrcList).Count do
begin
if BoxGetSelected(SrcList, I) then
begin
NewIndex := BoxItems(DstList).AddObject(BoxItems(SrcList).Strings[I],
BoxItems(SrcList).Objects[I]);
{ if (SrcList is TRxCheckListBox) and (DstList is TRxCheckListBox) then
begin
TRxCheckListBox(DstList).State[NewIndex] :=
TRxCheckListBox(SrcList).State[I];
end;}
BoxItems(SrcList).Delete(I);
end
else Inc(I);
end;
BoxSetItem(SrcList, Index);
finally
BoxItems(SrcList).EndUpdate;
BoxItems(DstList).EndUpdate;
end;
end;
end;
procedure BoxMoveAllItems(SrcList, DstList: TWinControl);
var
I, NewIndex: Integer;
begin
for I := 0 to BoxItems(SrcList).Count - 1 do begin
NewIndex := BoxItems(DstList).AddObject(BoxItems(SrcList)[I],
BoxItems(SrcList).Objects[I]);
{ if (SrcList is TRxCheckListBox) and (DstList is TRxCheckListBox) then
begin
TRxCheckListBox(DstList).State[NewIndex] :=
TRxCheckListBox(SrcList).State[I];
end;}
end;
BoxItems(SrcList).Clear;
BoxSetItem(SrcList, 0);
end;
function BoxCanDropItem(List: TWinControl; X, Y: Integer;
var DragIndex: Integer): Boolean;
var
Focused: Integer;
begin
Result := False;
if (BoxSelCount(List) = 1) or (not BoxMultiSelect(List)) then
begin
Focused := BoxGetItemIndex(List);
if Focused <> LB_ERR then
begin
DragIndex := BoxItemAtPos(List, Point(X, Y), True);
if (DragIndex >= 0) and (DragIndex <> Focused) then
begin
Result := True;
end;
end;
end;
end;
procedure BoxDragOver(List: TWinControl; Source: TObject;
X, Y: Integer; State: TDragState; var Accept: Boolean; Sorted: Boolean);
var
DragIndex: Integer;
R: TRect;
procedure DrawItemFocusRect(Idx: Integer);
(*
{$IFDEF WIN32}
var
P: TPoint;
DC: HDC;
{$ENDIF}
begin
R := BoxItemRect(List, Idx);
{$IFDEF WIN32}
P := List.ClientToScreen(R.TopLeft);
R := Bounds(P.X, P.Y, R.Right - R.Left, R.Bottom - R.Top);
DC := GetDC(0);
DrawFocusRect(DC, R);
ReleaseDC(0, DC);
{$ELSE}
BoxGetCanvas(List).DrawFocusRect(R);
{$ENDIF}
*)
begin
BoxGetCanvas(List).DrawFocusRect(R);
end;
begin
if Source <> List then
Accept := (Source is TWinControl) { or (Source is TRxCustomListBox) }
else
begin
if Sorted then
Accept := False
else
begin
Accept := BoxCanDropItem(List, X, Y, DragIndex);
if ((List.Tag - 1) = DragIndex) and (DragIndex >= 0) then
begin
if State = dsDragLeave then
begin
DrawItemFocusRect(List.Tag - 1);
List.Tag := 0;
end;
end
else
begin
if List.Tag > 0 then DrawItemFocusRect(List.Tag - 1);
if DragIndex >= 0 then DrawItemFocusRect(DragIndex);
List.Tag := DragIndex + 1;
end;
end;
end;
end;
procedure BoxMoveFocusedItem(List: TWinControl; DstIndex: Integer);
begin
if (DstIndex >= 0) and (DstIndex < BoxItems(List).Count) then
if (DstIndex <> BoxGetItemIndex(List)) then
begin
BoxItems(List).Move(BoxGetItemIndex(List), DstIndex);
BoxSetItem(List, DstIndex);
end;
end;
end.

View File

@@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="36"
height="36"
viewBox="0 0 36 36"
version="1.1"
id="svg106"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="tdbgrid_rx_150.svg"
inkscape:export-filename="D:\temp\rx\work\tdbgrid_rx_200.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs100">
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="marker4874"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4872"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4596"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient914"
id="linearGradient226"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.6666667,0,0,2.6666667,-36.919643,-1737.1066)"
x1="3"
y1="1035.3622"
x2="12"
y2="1035.3622" />
<linearGradient
inkscape:collect="always"
id="linearGradient914">
<stop
style="stop-color:#4276c4;stop-opacity:1;"
offset="0"
id="stop910" />
<stop
id="stop916"
offset="0.34375"
style="stop-color:#80b3ff;stop-opacity:1" />
<stop
style="stop-color:#0044aa;stop-opacity:1"
offset="1"
id="stop912" />
</linearGradient>
<linearGradient
gradientTransform="matrix(2.6666667,0,0,2.6666667,-36.919643,-1745.1066)"
y2="1035.3622"
x2="12"
y1="1035.3622"
x1="3"
gradientUnits="userSpaceOnUse"
id="linearGradient932"
xlink:href="#linearGradient914"
inkscape:collect="always" />
<linearGradient
y2="1035.3622"
x2="12"
y1="1035.3622"
x1="3"
gradientTransform="matrix(2.6666667,0,0,2.6666667,-36.919643,-1753.1063)"
gradientUnits="userSpaceOnUse"
id="linearGradient936"
xlink:href="#linearGradient914"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient914"
id="linearGradient208"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.6666667,0,0,2.6666667,-36.919643,-1737.1066)"
x1="3"
y1="1035.3622"
x2="12"
y2="1035.3622" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.805556"
inkscape:cx="18"
inkscape:cy="18"
inkscape:document-units="px"
inkscape:current-layer="layer7"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1018"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-grids="false"
inkscape:snap-global="true"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:snap-to-guides="true">
<inkscape:grid
type="xygrid"
id="grid108" />
</sodipodi:namedview>
<metadata
id="metadata103">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="base"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-296.29999)"
style="display:inline">
<rect
style="fill:none;fill-rule:evenodd;stroke-width:0.65726703"
id="rect110"
width="36"
height="36"
x="0"
y="296.29999" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="db"
style="display:inline"
transform="translate(0,-12)">
<g
style="display:inline"
id="g899"
transform="matrix(0.75,0,0,0.75,27.689732,-741.89438)">
<ellipse
ry="3"
rx="10"
cy="1030.1925"
cx="-20.919643"
id="ellipse880"
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient208);stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<ellipse
ry="3.9169633"
rx="10.988618"
cy="1026.2755"
cx="-20.919643"
id="ellipse878"
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<ellipse
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient932);stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="ellipse930"
cx="-20.919643"
cy="1024.1925"
rx="10"
ry="3" />
<ellipse
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="ellipse874"
cx="-20.919643"
cy="1020.2756"
rx="10.988618"
ry="3.9169633" />
<ellipse
ry="3"
rx="10"
cy="1018.1926"
cx="-20.919643"
id="ellipse934"
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient936);stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<ellipse
ry="3.9169633"
rx="10.988618"
cy="1014.2756"
cx="-20.919643"
id="ellipse858"
style="opacity:1;fill:#bdd1ec;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<ellipse
style="opacity:1;fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient226);stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="ellipse868"
cx="-20.919643"
cy="1012.1926"
rx="11"
ry="4" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="dbgrid"
style="display:inline"
transform="translate(0,-12)">
<rect
style="fill:#ffffff;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect861"
width="23.97464"
height="17.82"
x="9.8170557"
y="27.916946" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="dbgrid_vert"
style="display:inline;opacity:1"
transform="translate(0,-12)">
<rect
style="fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.49999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect863"
width="4.4850006"
height="17.81925"
x="9.8122492"
y="27.898851" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="dbgrid_hor"
style="display:inline"
transform="translate(0,-12)">
<rect
style="opacity:1;fill:#e6e6e6;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.49809623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect896"
width="23.976402"
height="4.3564043"
x="9.8157978"
y="27.895296" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="dbgrid_vert1"
style="display:inline"
transform="translate(0,-12)">
<path
style="fill:none;stroke:#4d4d4d;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.25,32.249999 v 12.75"
id="path866"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer10"
inkscape:label="dbgrid_hor2"
style="display:inline"
transform="translate(0,-12)">
<path
style="fill:none;stroke:#000000;stroke-width:1.49999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 16.40625,35.12182 h 4.583743 v 0"
id="path869"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.49999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 16.40625,38.121812 h 4.583743 v 0"
id="path869-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.49999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 16.468006,41.157173 h 4.583744 v 0"
id="path869-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 25.5,35.126169 h 6.000001 v 0"
id="path869-7"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 25.500004,38.109379 h 4.425 v 0"
id="path869-7-4"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 25.500007,41.159188 h 6 v 0"
id="path869-7-8"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="text"
style="display:inline"
transform="translate(0,-12)">
<flowRoot
xml:space="preserve"
id="flowRoot914-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:1.25;font-family:'Arial Unicode MS';-inkscape-font-specification:'Arial Unicode MS';letter-spacing:0px;word-spacing:0px;fill:#c500ab;fill-opacity:1;stroke:#ffffff;stroke-width:2.96764684;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
transform="matrix(0.69531428,0,0,0.82672154,-2.2079422,11.788973)"><flowRegion
id="flowRegion916-5"
style="fill:#c500ab;fill-opacity:1;stroke:#ffffff;stroke-width:2.96764684;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"><rect
id="rect918-0"
width="38.14209"
height="34.674625"
x="3.4674628"
y="-1.8781176"
style="fill:#c500ab;fill-opacity:1;stroke:#ffffff;stroke-width:2.96764684;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" /></flowRegion><flowPara
id="flowPara920-2"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.33333397px;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke:#ffffff;stroke-width:2.96764684;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill">Rx</flowPara></flowRoot> </g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,127 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: tpbeditdataform.caption
msgid "Phone book data"
msgstr ""
#: tpbeditdataform.label1.caption
msgid "Patronymic"
msgstr ""
#: tpbeditdataform.label2.caption
msgid "Name"
msgstr ""
#: tpbeditdataform.label3.caption
msgid "Surname"
msgstr ""
#: tpbeditdataform.label4.caption
msgid "Phone"
msgstr ""
#: tpbeditdataform.label5.caption
msgctxt "TPBEDITDATAFORM.LABEL5.CAPTION"
msgid "ICQ"
msgstr ""
#: tpbeditdataform.label6.caption
msgid "Memo"
msgstr ""
#: tpbmainform.caption
msgid "Phone book"
msgstr ""
#: tpbmainform.edtdelete.caption
msgid "Delete"
msgstr ""
#: tpbmainform.edtedit.caption
msgctxt "TPBMAINFORM.EDTEDIT.CAPTION"
msgid "Edit"
msgstr ""
#: tpbmainform.edtfind.caption
msgid "Find"
msgstr ""
#: tpbmainform.edtnew.caption
msgid "New"
msgstr ""
#: tpbmainform.edtprint.caption
msgid "Print"
msgstr ""
#: tpbmainform.hlpabout.caption
msgid "About"
msgstr ""
#: tpbmainform.menuitem1.caption
msgid "System"
msgstr ""
#: tpbmainform.menuitem10.caption
msgctxt "TPBMAINFORM.MENUITEM10.CAPTION"
msgid "-"
msgstr ""
#: tpbmainform.menuitem14.caption
msgctxt "TPBMAINFORM.MENUITEM14.CAPTION"
msgid "-"
msgstr ""
#: tpbmainform.menuitem16.caption
msgctxt "TPBMAINFORM.MENUITEM16.CAPTION"
msgid "-"
msgstr ""
#: tpbmainform.menuitem18.caption
msgid "Help"
msgstr ""
#: tpbmainform.menuitem3.caption
msgctxt "TPBMAINFORM.MENUITEM3.CAPTION"
msgid "Edit"
msgstr ""
#: tpbmainform.menuitem7.caption
msgctxt "TPBMAINFORM.MENUITEM7.CAPTION"
msgid "-"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[0].title.caption
msgid "ID"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[1].title.caption
msgid "PATRONYMIC"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[2].title.caption
msgid "NAME"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[3].title.caption
msgid "SURNAME"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[4].title.caption
msgid "PHONE"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[5].title.caption
msgctxt "TPBMAINFORM.RXDBGRID1.COLUMNS[5].TITLE.CAPTION"
msgid "ICQ"
msgstr ""
#: tpbmainform.rxdbgrid1.columns[6].title.caption
msgid "MEMO"
msgstr ""
#: tpbmainform.sysexit.caption
msgid "Exit"
msgstr ""

View File

@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="9"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/>
<AutoCreateForms Value="False"/>
<Title Value="Phone book demo"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<XPManifest>
<DpiAware Value="True"/>
</XPManifest>
<Icon Value="0"/>
</General>
<i18n>
<EnableI18N Value="True"/>
<OutDir Value="languages"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<Language Value=""/>
<CharSet Value=""/>
</VersionInfo>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="4">
<Item1>
<PackageName Value="FCL"/>
<MinVersion Major="1" Valid="True"/>
</Item1>
<Item2>
<PackageName Value="DBFLaz"/>
<MinVersion Minor="1" Release="1" Valid="True"/>
</Item2>
<Item3>
<PackageName Value="rxnew"/>
<MinVersion Major="1" Minor="1" Release="4" Build="93" Valid="True"/>
</Item3>
<Item4>
<PackageName Value="LCL"/>
</Item4>
</RequiredPackages>
<Units Count="12">
<Unit0>
<Filename Value="PhoneBookDemo.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="3" Y="12"/>
<UsageCount Value="27"/>
</Unit0>
<Unit1>
<Filename Value="pbmainunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="pbMainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="pbMainUnit"/>
<IsVisibleTab Value="True"/>
<TopLine Value="70"/>
<CursorPos X="137" Y="84"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="usr/local/share/lazarus/components/rxnew/Demos/PhoneBookDemo/pbmainunit.pas"/>
<ComponentName Value="pbMainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="pbMainUnit"/>
<CursorPos X="5" Y="9"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
<Filename Value="usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="pbeditdataunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="pbEditDataForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="pbEditDataUnit"/>
<EditorIndex Value="-1"/>
<TopLine Value="9"/>
<CursorPos X="3" Y="42"/>
<UsageCount Value="25"/>
</Unit4>
<Unit5>
<Filename Value="../../rxcloseformvalidator.pas"/>
<UnitName Value="RxCloseFormValidator"/>
<TopLine Value="195"/>
<CursorPos Y="211"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<Filename Value="../../../../lcl/dialogs.pp"/>
<UnitName Value="Dialogs"/>
<TopLine Value="27"/>
<CursorPos X="13" Y="45"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<Filename Value="../../../../lcl/include/promptdialog.inc"/>
<TopLine Value="868"/>
<CursorPos Y="886"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="../../../../lcl/lcltype.pp"/>
<UnitName Value="LCLType"/>
<TopLine Value="716"/>
<CursorPos X="3" Y="723"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="../../rxaboutdialog.pas"/>
<UnitName Value="RxAboutDialog"/>
<TopLine Value="96"/>
<CursorPos X="18" Y="103"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<Filename Value="../../rxconst.pas"/>
<TopLine Value="88"/>
<CursorPos X="3" Y="113"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="/home/alexs/install/source/fpcsrc/rtl/objpas/classes/classesh.inc"/>
<TopLine Value="471"/>
<CursorPos Y="503"/>
<UsageCount Value="10"/>
</Unit11>
</Units>
<JumpHistory Count="18" HistoryIndex="17">
<Position1>
<Filename Value="pbmainunit.pas"/>
<Caret Line="82" Column="5" TopLine="55"/>
</Position1>
<Position2>
<Filename Value="pbmainunit.pas"/>
<Caret Line="83" Column="26" TopLine="56"/>
</Position2>
<Position3>
<Filename Value="pbmainunit.pas"/>
<Caret Line="84" Column="26" TopLine="57"/>
</Position3>
<Position4>
<Filename Value="pbmainunit.pas"/>
<Caret Line="91" Column="26" TopLine="58"/>
</Position4>
<Position5>
<Filename Value="pbmainunit.pas"/>
<Caret Line="95" Column="23" TopLine="65"/>
</Position5>
<Position6>
<Filename Value="pbmainunit.pas"/>
<Caret Line="101" Column="13" TopLine="80"/>
</Position6>
<Position7>
<Filename Value="pbmainunit.pas"/>
<Caret Line="101" Column="78" TopLine="80"/>
</Position7>
<Position8>
<Filename Value="pbmainunit.pas"/>
<Caret Line="91" Column="29" TopLine="79"/>
</Position8>
<Position9>
<Filename Value="pbmainunit.pas"/>
<Caret Line="101" Column="74" TopLine="79"/>
</Position9>
<Position10>
<Filename Value="pbmainunit.pas"/>
<Caret Line="75" Column="15" TopLine="41"/>
</Position10>
<Position11>
<Filename Value="pbmainunit.pas"/>
<Caret Line="74" Column="39" TopLine="40"/>
</Position11>
<Position12>
<Filename Value="pbmainunit.pas"/>
<Caret Line="101" Column="72" TopLine="81"/>
</Position12>
<Position13>
<Filename Value="pbmainunit.pas"/>
<Caret Line="106" TopLine="81"/>
</Position13>
<Position14>
<Filename Value="pbmainunit.pas"/>
<Caret Line="102" TopLine="80"/>
</Position14>
<Position15>
<Filename Value="pbmainunit.pas"/>
<Caret Line="101" TopLine="79"/>
</Position15>
<Position16>
<Filename Value="pbmainunit.pas"/>
<Caret Line="103" TopLine="81"/>
</Position16>
<Position17>
<Filename Value="pbmainunit.pas"/>
<Caret Line="108" Column="13" TopLine="86"/>
</Position17>
<Position18>
<Filename Value="pbmainunit.pas"/>
<Caret Line="36" Column="28" TopLine="18"/>
</Position18>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="PhoneBookDemo"/>
</Target>
<SearchPaths>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Watches Count="1">
<Item1>
<Expression Value="W"/>
</Item1>
</Watches>
</Debugging>
</CONFIG>