git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.CCPack@3 73320520-ad2b-af49-a243-66a9ea96b125
127 lines
3.4 KiB
ObjectPascal
127 lines
3.4 KiB
ObjectPascal
{*******************************************************}
|
|
{ }
|
|
{ Delphi Visual Component Library }
|
|
{ Custom Containers Pack (CCPack) }
|
|
{ }
|
|
{ Copyright (c) 1997-99, Sergey Orlik }
|
|
{ }
|
|
{ Written by: }
|
|
{ Sergey Orlik }
|
|
{ product manager }
|
|
{ Russia, C.I.S. and Baltic States (former USSR) }
|
|
{ Inprise Moscow office }
|
|
{ e-mail: sorlik@inprise.ru }
|
|
{ WWW: http://www.inprise.ru }
|
|
{ }
|
|
{ Personal Home Page: }
|
|
{ www.geocities.com/SiliconValley/Way/9006/ }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit ccwdlg;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
ExtCtrls, ComCtrls, StdCtrls, Buttons, ImgList;
|
|
|
|
type
|
|
TCCWDialog = class(TForm)
|
|
CCtree: TTreeView;
|
|
CCtext: TStaticText;
|
|
CCimage: TImage;
|
|
CCimagelist: TImageList;
|
|
Bevel1: TBevel;
|
|
CCradio: TRadioGroup;
|
|
CClabel: TLabel;
|
|
CCfinish: TBitBtn;
|
|
CCcancel: TBitBtn;
|
|
CCstatus: TStatusBar;
|
|
CCeditClassName: TEdit;
|
|
CClabel2: TLabel;
|
|
procedure CCtreeChange(Sender: TObject; Node: TTreeNode);
|
|
procedure CCradioClick(Sender: TObject);
|
|
private
|
|
function GetContainerNode(AClassName:string):TTreeNode;
|
|
procedure SelectImage;
|
|
procedure LoadNodes;
|
|
protected
|
|
procedure Loaded; override;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
CCWDialog: TCCWDialog;
|
|
|
|
implementation
|
|
|
|
uses
|
|
ccreg;
|
|
|
|
{$R *.DFM}
|
|
|
|
function TCCWDialog.GetContainerNode(AClassName:string):TTreeNode;
|
|
begin
|
|
Result := CCtree.Items.GetFirstNode;
|
|
while (Result <> nil) do
|
|
begin
|
|
if AnsiCompareText(Result.Text,AClassName)=0 then Break;
|
|
Result:=Result.GetNext;
|
|
end;
|
|
end;
|
|
|
|
procedure TCCWDialog.SelectImage;
|
|
var
|
|
BMP: TBitmap;
|
|
Index: integer;
|
|
begin
|
|
Index:=GetBaseContainer(TComponentClass(CCtree.Selected.Data));
|
|
if Index=-1 then
|
|
Exit;
|
|
BMP:=TBitmap.Create;
|
|
CCtext.Caption:=CCtree.Selected.Text;
|
|
CCimagelist.GetBitmap(Index+6*CCradio.ItemIndex,BMP);
|
|
CCimage.Picture.Bitmap.Assign(BMP);
|
|
BMP.Free;
|
|
end;
|
|
|
|
procedure TCCWDialog.CCtreeChange(Sender: TObject; Node: TTreeNode);
|
|
begin
|
|
SelectImage;
|
|
end;
|
|
|
|
procedure TCCWDialog.CCradioClick(Sender: TObject);
|
|
begin
|
|
SelectImage;
|
|
end;
|
|
|
|
procedure TCCWDialog.LoadNodes;
|
|
var
|
|
I: integer;
|
|
AClass : TComponentClass;
|
|
begin
|
|
with CCTree.Items do
|
|
for I:=0 to GetCustomContainerClassListCount-1 do
|
|
begin
|
|
AClass:=GetCustomContainerClass(I);
|
|
if IsBaseContainer(AClass)<>-1 then
|
|
AddObject(nil,AClass.ClassName,AClass)
|
|
else
|
|
AddChildObject(GetContainerNode(AClass.ClassParent.ClassName),AClass.ClassName,AClass);
|
|
end;
|
|
end;
|
|
|
|
procedure TCCWDialog.Loaded;
|
|
begin
|
|
inherited;
|
|
with CCtree.Items do
|
|
begin
|
|
LoadNodes;
|
|
GetFirstNode.Selected:=True;
|
|
end;
|
|
end;
|
|
|
|
end.
|