![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов функций класса
Podarok © (2008-03-18 13:20:00)НУжна помощь, решил изучать делфи, возникла проблемма, у меня есть форма Form1:TForm
я создаю класс
TPropEnumForm=class(TForm1)
procedure EnumPropValues;
procedure EnumPropertyes;
end;
затем
в implementations
procedure TPropEnumForm.EnumPropertyes;
var
i:integer;
Result:variant;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TListBox then
ListBox1.Items.Clear();
end;
for i:= 0 to ComponentCount - 1 do
begin
Result:=GetPropValue(Components[i],'Name');
ListBox1.Items.Add(Result);
end;
end;
теперь мне надо по клику по кнопке, расположенной на Form1
вызвать метод EnumPropertyes
как это правильно сделать?Заранее спасибо
ЦУП (2008-03-18 14:03:00) [1]
> Podarok (18.03.08 13:37) [6]
> у него он есть по той причине, что класс наследует его от
> формы
ListBox есть у Form1.
Свой экземпляр формы ты же не создаешь.
ЦУП (2008-03-18 14:01:00) [2]
> теперь мне надо по клику по кнопке, расположенной на Form1вызвать
> метод EnumPropertyesкак это правильно сделать?Заранее спасибо
А зачем для этого тебе наследовать класс от TForm1?
Тебе еще одна форма нужна?
Podarok (2008-03-18 13:39:00) [3]то есть я должен воспользоваться конструктором?
Johnmen (2008-03-18 13:37:00) [4]
> Podarok (18.03.08 13:31) [2]
> создаётся
В какой строке [3]?
Иди учебники читать.
Podarok (2008-03-18 13:37:00) [5]у него он есть по той причине, что класс наследует его от формы
Johnmen (2008-03-18 13:35:00) [6]А ListBox1 у класса есть?
Podarok (2008-03-18 13:34:00) [7]могу привести полный код
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, ExtCtrls,TypInfo;
type
TForm1 = class(TForm)
Label1: Tlabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
RadioButton1: TRadioButton;
CheckBox1: TCheckBox;
ComboBox1: TComboBox;
ScrollBar1: TScrollBar;
Bevel1: TBevel;
SpinEdit1: TSpinEdit;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TPropEnumForm=class(TForm1)
procedure EnumPropValues;
procedure EnumPropertyes;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TPropEnumForm.EnumPropValues;
Var
i:integer;
Result:variant;
Result1:variant;
Result2:variant;
PropInfo: PPropInfo;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TListBox then
ListBox1.Items.Clear();
if Components[i] is TEdit then
Result:=GetPropValue(Components[i],'Text');
end;
for i:=0 to ComponentCount-1 do
begin
Result2:=GetPropValue(Components[i],'Name');
PropInfo := GetPropInfo( Components[i].ClassInfo,Result );
if PropInfo <> nil then
begin
Result1:=GetPropValue(Components[i],Result);
Result1:=VarToStr(Result1);
ListBox1.Items.Add(Result2+'.'+Result+'='+Result1);
end
else
ListBox1.Items.Add('no '+Result2+'.'+Result)
end;
end;
procedure TPropEnumForm.EnumPropertyes;
var
i:integer;
Result:variant;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TListBox then
ListBox1.Items.Clear();
end;
for i:= 0 to ComponentCount - 1 do
begin
Result:=GetPropValue(Components[i],'Name');
ListBox1.Items.Add(Result);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//вызов TPropEnumForm.EnumPropValues;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//вызов TPropEnumForm.EnumPropertyes;
end;
end.
Podarok (2008-03-18 13:31:00) [8]создаётся
Рамиль (2008-03-18 13:23:00) [9]А объект класса TPropEnumForm создается?