Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ce035c9

Browse files
Code Central Commit
Some free Delphi components from Embarcadero Code Central have been added
1 parent 5aced77 commit ce035c9

File tree

181 files changed

+134781
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+134781
-0
lines changed
23.5 KB
Binary file not shown.
1.3 MB
Binary file not shown.
45.9 KB
Binary file not shown.
5.02 KB
Binary file not shown.

‎Embarcadero Code Central/Custom Containers Pack/CCPack5.rtf‎

Lines changed: 7614 additions & 0 deletions
Large diffs are not rendered by default.

‎Embarcadero Code Central/Custom Containers Pack/Source/Boxes.pas‎

Lines changed: 492 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package ccpack50;
2+
3+
{$R *.RES}
4+
{$ALIGN ON}
5+
{$ASSERTIONS ON}
6+
{$BOOLEVAL OFF}
7+
{$DEBUGINFO ON}
8+
{$EXTENDEDSYNTAX ON}
9+
{$IMPORTEDDATA ON}
10+
{$IOCHECKS ON}
11+
{$LOCALSYMBOLS ON}
12+
{$LONGSTRINGS ON}
13+
{$OPENSTRINGS ON}
14+
{$OPTIMIZATION ON}
15+
{$OVERFLOWCHECKS OFF}
16+
{$RANGECHECKS OFF}
17+
{$REFERENCEINFO ON}
18+
{$SAFEDIVIDE OFF}
19+
{$STACKFRAMES OFF}
20+
{$TYPEDADDRESS OFF}
21+
{$VARSTRINGCHECKS ON}
22+
{$WRITEABLECONST ON}
23+
{$MINENUMSIZE 1}
24+
{$IMAGEBASE 400000ドル}
25+
{$DESCRIPTION 'Custom Containers Pack'}
26+
{$DESIGNONLY}
27+
{$IMPLICITBUILD OFF}
28+
29+
requires
30+
vcl50,
31+
dsnide50;
32+
33+
contains
34+
ccwdlg in 'ccwdlg.pas' {CCWDialog},
35+
ccreg in 'ccreg.pas',
36+
ccwiz in 'ccwiz.pas',
37+
Boxes in 'Boxes.pas',
38+
ccregprc in 'ccregprc.pas',
39+
ccwizres in 'ccwizres.pas';
40+
41+
end.
Binary file not shown.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{*******************************************************}
2+
{ }
3+
{ Delphi Visual Component Library }
4+
{ Custom Containers Pack (CCPack) }
5+
{ }
6+
{ Copyright (c) 1997-99, Sergey Orlik }
7+
{ }
8+
{ Written by: }
9+
{ Sergey Orlik }
10+
{ product manager }
11+
{ Russia, C.I.S. and Baltic States (former USSR) }
12+
{ Inprise Moscow office }
13+
{ e-mail: sorlik@inprise.ru }
14+
{ WWW: http://www.inprise.ru }
15+
{ }
16+
{ Personal Home Page: }
17+
{ www.geocities.com/SiliconValley/Way/9006/ }
18+
{ }
19+
{*******************************************************}
20+
21+
//======================================
22+
// VCL Version Define
23+
24+
{$IFDEF VER130} // Delphi 5
25+
{$DEFINE VER_VCL5}
26+
{$ENDIF}
27+
28+
{$IFDEF VER125} // CBuilder 4
29+
{$DEFINE VER_VCL4}
30+
{$ENDIF}
31+
32+
{$IFDEF VER120} // Delphi 4
33+
{$DEFINE VER_VCL4}
34+
{$ENDIF}
35+
36+
37+
//======================================
38+
// Language&IDE Define
39+
40+
{$IFDEF VER130} // Delphi 5
41+
{$DEFINE VER_D}
42+
{$ENDIF}
43+
44+
{$IFDEF VER125} // CBuilder 4
45+
{$DEFINE VER_CB}
46+
{$ENDIF}
47+
48+
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
{*******************************************************}
2+
{ }
3+
{ Delphi Visual Component Library }
4+
{ Custom Containers Pack (CCPack) }
5+
{ }
6+
{ Copyright (c) 1997-99, Sergey Orlik }
7+
{ }
8+
{ Written by: }
9+
{ Sergey Orlik }
10+
{ product manager }
11+
{ Russia, C.I.S. and Baltic States (former USSR) }
12+
{ Inprise Moscow office }
13+
{ e-mail: sorlik@inprise.ru }
14+
{ WWW: http://www.inprise.ru }
15+
{ }
16+
{ Personal Home Page: }
17+
{ www.geocities.com/SiliconValley/Way/9006/ }
18+
{ }
19+
{*******************************************************}
20+
{$I CCPDEF.INC}
21+
22+
{$IFDEF VER_CB}
23+
{$ObjExportAll On}
24+
{$ENDIF}
25+
26+
unit ccreg;
27+
28+
interface
29+
uses
30+
Windows, SysUtils, Classes, Graphics,
31+
Controls, Forms, Boxes;
32+
33+
type
34+
TRegisterCustomContainerProc = procedure (AClass: TComponentClass);
35+
36+
procedure RegisterCustomContainer(AClass: TComponentClass);
37+
procedure UnRegisterCustomContainer(AClass: TComponentClass);
38+
39+
function GetCustomContainerClass(const AClassName: string): TComponentClass; overload;
40+
function FindCustomContainerClass(const AClassName: string): TComponentClass;
41+
function GetCustomContainerUnit(const AClassName: string): string;
42+
43+
function GetCustomContainerClass(const Index: integer): TComponentClass; overload;
44+
function GetCustomContainerClassListCount: integer;
45+
46+
var
47+
RegisterCustomContainerProc: TRegisterCustomContainerProc = nil;
48+
49+
const
50+
BaseContainerClassArray : array [0..5] of TComponentClass
51+
= (TForm, TDataModule, TFrame, TBox, TControlGroupBox, TControlScrollBox);
52+
53+
function IsBaseContainer(AClass: TComponentClass): integer;
54+
function GetBaseContainer(AClass: TComponentClass): integer;
55+
56+
implementation
57+
58+
uses
59+
Consts, TypInfo;
60+
61+
var
62+
CustomContainerClassList: TThreadList = nil;
63+
64+
function IsBaseContainer(AClass: TComponentClass): integer;
65+
var
66+
i :integer;
67+
begin
68+
Result:=-1;
69+
for i:=0 to High(BaseContainerClassArray) do
70+
if AClass=BaseContainerClassArray[i] then
71+
begin
72+
Result:=i;
73+
Break;
74+
end;
75+
end;
76+
77+
function GetBaseContainer(AClass: TComponentClass): integer;
78+
var
79+
i :integer;
80+
begin
81+
Result:=-1;
82+
for i:=0 to High(BaseContainerClassArray) do
83+
if AClass.InheritsFrom(BaseContainerClassArray[i]) then
84+
begin
85+
Result:=i;
86+
Break;
87+
end;
88+
end;
89+
90+
procedure ClassNotFound(const ClassName: string);
91+
begin
92+
raise EClassNotFound.CreateFmt(SClassNotFound, [ClassName]);
93+
end;
94+
95+
function GetCustomContainerClass(const AClassName: string): TComponentClass;
96+
var
97+
I: Integer;
98+
begin
99+
with CustomContainerClassList.LockList do
100+
try
101+
for I := 0 to Count - 1 do
102+
begin
103+
Result:=Items[I];
104+
if Result.ClassNameIs(AClassName) then Exit;
105+
end;
106+
Result := nil;
107+
finally
108+
CustomContainerClassList.UnLockList;
109+
end;
110+
end;
111+
112+
function FindCustomContainerClass(const AClassName: string): TComponentClass;
113+
begin
114+
Result := GetCustomContainerClass(AClassName);
115+
if Result = nil then ClassNotFound(AClassName);
116+
end;
117+
118+
function GetCustomContainerUnit(const AClassName: string): string;
119+
begin
120+
Result:=GetTypeData(PTypeInfo(GetCustomContainerClass(AClassName).ClassInfo))^.UnitName;
121+
end;
122+
123+
function GetCustomContainerClass(const Index: integer): TComponentClass;
124+
begin
125+
with CustomContainerClassList.LockList do
126+
try
127+
Result:=Items[Index];
128+
finally
129+
CustomContainerClassList.UnlockList;
130+
end;
131+
end;
132+
133+
function GetCustomContainerClassListCount: integer;
134+
begin
135+
with CustomContainerClassList.LockList do
136+
try
137+
Result:=Count;
138+
finally
139+
CustomContainerClassList.UnlockList;
140+
end;
141+
end;
142+
143+
{procedure RegisterCustomContainer(AClass: TComponentClass);
144+
var
145+
AClassName: string;
146+
begin
147+
with CustomContainerClassList.LockList do
148+
try
149+
while IndexOf(AClass) = -1 do
150+
begin
151+
AClassName := AClass.ClassName;
152+
if GetCustomContainerClass(AClassName) <> nil then
153+
raise EFilerError.CreateResFmt(@SDuplicateClass, [AClassName]);
154+
Add(AClass);
155+
if AClass = TPersistent then Break;
156+
AClass := TComponentClass(AClass.ClassParent);
157+
end;
158+
finally
159+
ClassList.UnlockList;
160+
end;
161+
end;
162+
}
163+
164+
procedure RegisterCustomContainer(AClass: TComponentClass);
165+
begin
166+
if Assigned(RegisterCustomContainerProc) then
167+
RegisterCustomContainerProc(AClass)
168+
else
169+
raise EComponentError.Create('Cannot register '+AClass.ClassName+' class.');
170+
with CustomContainerClassList.LockList do
171+
try
172+
Add(AClass);
173+
finally
174+
CustomContainerClassList.UnlockList;
175+
end;
176+
end;
177+
178+
procedure UnRegisterCustomContainer(AClass: TComponentClass);
179+
begin
180+
CustomContainerClassList.Remove(AClass);
181+
end;
182+
183+
procedure UnRegisterCustomContainerClasses(Module: HMODULE);
184+
var
185+
I: Integer;
186+
M: TMemoryBasicInformation;
187+
begin
188+
with CustomContainerClassList.LockList do
189+
try
190+
for I := Count - 1 downto 0 do
191+
begin
192+
VirtualQuery(Items[I], M, SizeOf(M));
193+
if (Module = 0) or (HMODULE(M.AllocationBase) = Module) then
194+
Delete(I);
195+
end;
196+
finally
197+
CustomContainerClassList.UnlockList;
198+
end;
199+
end;
200+
201+
procedure ModuleUnload(Instance: Longint);
202+
begin
203+
UnRegisterCustomContainerClasses(HMODULE(Instance));
204+
end;
205+
206+
initialization
207+
AddModuleUnloadProc(ModuleUnload);
208+
CustomContainerClassList:=TThreadList.Create;
209+
finalization
210+
UnRegisterCustomContainerClasses(HInstance);
211+
CustomContainerClassList.Free;
212+
RemoveModuleUnloadProc(ModuleUnload);
213+
end.
214+
215+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /