Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.13;
Скачать: CL | DM;

Вниз

Вызов функций класса   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1205669366
NSer
2008-03-16 15:09
2008.04.13
Как присвоить DateTimePicker = 01.01.2008 ?


2-1205492680
webpauk
2008-03-14 14:04
2008.04.13
DBGrid.Columns


2-1203961886
Chorniy
2008-02-25 20:51
2008.04.13
Как послать WM_LBUTTONDOWN неактивному окну?


15-1203931152
Макс12345
2008-02-25 12:19
2008.04.13
Ударения в словах.


2-1205935938
Studios
2008-03-19 17:12
2008.04.13
TMemoryStream как превратиь в string?