home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / INFO / DI9806CJ.ZIP / PROPLSTU.PAS < prev   
Pascal/Delphi Source File  |  1998-03-17  |  1KB  |  64 lines

  1. unit proplstu;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, typInfo;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     ListBox1: TListBox;
  12.     ComboBox1: TComboBox;
  13.     Label1: TLabel;
  14.     Label2: TLabel;
  15.     procedure FormCreate(Sender: TObject);
  16.     procedure ComboBox1Change(Sender: TObject);
  17.   private
  18.     { Private declarations }
  19.   public
  20.     { Public declarations }
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.DFM}
  29.  
  30. procedure TForm1.FormCreate(Sender: TObject);
  31. var
  32.   i: Integer;
  33. begin
  34. ComboBox1.Items.Clear;
  35. for i := 0 to Form1.ComponentCount -1 do
  36.   ComboBox1.Items.Add(Form1.Components[i].Name);
  37. ComboBox1.Text := '';
  38. end;
  39.  
  40. procedure TForm1.ComboBox1Change(Sender: TObject);
  41. var
  42.   PropList: PPropList;
  43.   i: integer;
  44.   CompName: String;
  45. begin
  46.   PropList := AllocMem(SizeOf(PropList^));
  47.   i := 0;
  48.   CompName := ComboBox1.Items[ComboBox1.ItemIndex];
  49.   ListBox1.Items.Clear;
  50.   try
  51.     GetPropList(FindComponent(CompName).ClassInfo,
  52.       tkProperties + [tkMethod], PropList);
  53.     while (PropList^[i] <> Nil) and (i < High(PropList^)) do
  54.     begin
  55.       ListBox1.Items.Add(PropList^[i].Name);
  56.       Inc(i);
  57.     end;
  58.   finally
  59.     FreeMem(PropList);
  60.   end;
  61. end;
  62.  
  63. end.
  64.