Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
ВнизВызов функций класса Найти похожие ветки
← →
Podarok (2008-03-18 13:20) [0]НУжна помощь, решил изучать делфи, возникла проблемма, у меня есть форма 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 13:23) [1]А объект класса TPropEnumForm создается?
← →
Podarok (2008-03-18 13:31) [2]создаётся
← →
Podarok (2008-03-18 13:34) [3]могу привести полный код
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.
← →
Johnmen © (2008-03-18 13:35) [4]А ListBox1 у класса есть?
← →
Johnmen © (2008-03-18 13:37) [5]
> Podarok (18.03.08 13:31) [2]
> создаётся
В какой строке [3]?
Иди учебники читать.
← →
Podarok (2008-03-18 13:37) [6]у него он есть по той причине, что класс наследует его от формы
← →
Podarok (2008-03-18 13:39) [7]то есть я должен воспользоваться конструктором?
← →
ЦУП © (2008-03-18 14:01) [8]
> теперь мне надо по клику по кнопке, расположенной на Form1вызвать
> метод EnumPropertyesкак это правильно сделать?Заранее спасибо
А зачем для этого тебе наследовать класс от TForm1?
Тебе еще одна форма нужна?
← →
ЦУП © (2008-03-18 14:03) [9]
> Podarok (18.03.08 13:37) [6]
> у него он есть по той причине, что класс наследует его от
> формы
ListBox есть у Form1.
Свой экземпляр формы ты же не создаешь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c