控件写法(app2001兄等领分),请指教 ( 积分: 200 )

  • 主题发起人 主题发起人 gameboyda
  • 开始时间 开始时间
G

gameboyda

Unregistered / Unconfirmed
GUEST, unregistred user!
关于新组件的写法,欢迎前来讨论
 
关于新组件的写法,欢迎前来讨论
 
嘿,谢谢
 
能不能整理一把,贴上来啊。
 
这个问题太广泛流,不过必须具备 oop 的知识。
 
combobox控件,只需要实现:输入A的时候,下拉框中只出现第一位是A(或者含有A)的ITEM,其他的都不显示,重新输入B的时候,同理只出现有B的。
我自己改的代码,不报错,但是不能实现筛选,各位帮忙看看,指出错误,谢谢。
unit myComBox;

interface

uses
SysUtils, Classes, Controls, StdCtrls;

type
TmyselComBox = class(TComboBox)
private

protected

public
//constructor create(aowner:tcomponent);override;
procedure change;override;
published
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('System', [TmyselComBox]);
end;

//constructor TmyselComboBox.create(aowner:tcomponent);
//begin
// inherited create(aowner);
//end;

procedure TmyselComBox.change;
var
i:integer;
stringlist1:tstrings;
stringlist2:tstrings;
begin
stringlist1:=tstringlist.Create;
stringlist2:=tstringlist.Create;
stringlist1:=Items;
for i:=0 to stringlist1.Count-1 do
if Text=stringlist1[1] then
stringlist2.Add(stringlist1);
items.AddStrings(stringlist2);
DroppedDown:=true;
inherited ;
end;

end.
 
帮你改了下,你再完善完善
unit sortComboBox;

interface

uses
SysUtils, Classes, Controls, StdCtrls;

type
TsortComboBox = class(TComboBox)
private
{ Private declarations }
FoldItems: TStrings;
protected
{ Protected declarations }
procedure change; override;
public
{ Public declarations }
constructor Create(Aowner: TComponent); override;
destructor Destroy; override;
procedure loaded; override;
published
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('system', [TsortComboBox]);
end;

{ TsortComboBox }

procedure TsortComboBox.change;
var
i: integer;
stringlist1:tstrings;
stringlist2:tstrings;
begin
// inherited;
try
stringlist1:=tstringlist.Create;
stringlist2:=tstringlist.Create;
stringlist1.Assign(FoldItems);
for i:=0 to stringlist1.Count-1 do
if Text=stringlist1[1] then
stringlist2.Add(stringlist1);

items.Assign(StringList2);
DroppedDown:=true;
finally
stringList1.Free;
stringList2.Free;
end;

end;


constructor TsortComboBox.Create(Aowner: TComponent);
begin
inherited;
FoldItems:=TStringList.Create;
end;

destructor TsortComboBox.Destroy;
begin
FoldItems.Free;
inherited;
end;

procedure TsortComboBox.loaded;
begin
inherited loaded;
FoldItems.Assign(items);
end;

end.
 
总之,改写 Change 不是个好方法,我建议 从 TEdit 继承,加一个下拉 List, 这样代码会多,但不受限制。
 
问题:请问在cxGrid1TableView1中如何动态加载图片。

来自:gameboyda, 时间:2005-12-26 8:49:42, ID:3308395
下个使用手册吧,下不到的话,我这有个手册,不过东西比较少,介绍的很简单

to gameboyda:
能不能发一个给我呀,传一个也可以,我的邮箱是:willing66@163.com,MSN:willing66@163.com。
 

Similar threads

D
回复
0
查看
744
DelphiTeacher的专栏
D
D
回复
0
查看
718
DelphiTeacher的专栏
D
D
回复
0
查看
672
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部