![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IProperty bag [D6]
PVR © (2002-07-02 23:35:00)procedure TForm1.Button1Click(Sender: TObject);
type
Tgetpropfunc=function(a:pointer):integer of object;
var d:TDesignerSelections;
ds:IDesignerSelections;
l:TList;
pp:Tgetpropfunc;
i:integer;
ip:IProperty;
s:string;
begin
RegisterClass(TButton);
RegisterPropertyEditor(typeinfo(integer),nil,"",TIntegerProperty);
l:=TList.Create;
ds:=TDesignerSelections.Create;
try
pp:=l.add;
ds.Add(Button1);
GetComponentProperties(ds,[tkinteger],nil,tgetpropproc(pp));
Caption:=inttostr(l.Count);
for i:=0 to l.Count do
begin
ip:=Iproperty(l[i]);
s:=ip.GetValue;//acess violation
listbox1.items.add(s);
end;
finally
// tdesignerselections(ds).Free;
l.Free;
end;
end;
Глюк понять не могу поможите может знает кто
PVR (2002-07-03 18:34:00) [1]Да поднапрягся я с ентим багом но всеж нашел таки его причину проблема состояла в том что типы процедур передачи параметра немного не совпадали TGetPropProc( const... и просто параметр в процедуре TList.Add(parameter) короче говоря адрес IProperty я получал не правильный исправил создав процедуру по точному подобию TGetPropProc с чем себя и поздравляю.
Спасибо тем кто читал и хотел подмогти PVR