Project RUNPROP
Project Structure
RUNPROP.DPR
program RunProp;
uses
Forms,
RunPropF in 'RunPropF.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
RUNPROPF.PAS
unit RunPropF;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Spin;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
ListBox1: TListBox;
RadioButton1: TRadioButton;
CheckBox1: TCheckBox;
ScrollBar1: TScrollBar;
SpinEdit1: TSpinEdit;
ComboBox1: TComboBox;
Bevel1: TBevel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
TypInfo;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
// PropInfo: PPropInfo;
Value: Variant;
begin
ListBox1.Clear;
for I := 0 to ComponentCount -1 do
begin
// Delphi 5 version
Value := GetPropValue (Components[I], Edit1.Text);
if Value <> NULL then
ListBox1.Items.Add (Components[I].Name + '.' +
Edit1.Text + ' = ' + string (Value))
else
ListBox1.Items.Add ('No ' + Components[I].Name + '.' +
Edit1.Text);
// pre-Delphi 5 version, limited to strings
{
// get property RTTI
PropInfo := GetPropInfo (
Components[I].ClassInfo, Edit1.Text);
if PropInfo = nil then
// if not found output a message
ListBox1.Items.Add (Descr + ' doesn''t exist')
else if PropInfo.PropType^.Kind <> tkLString then
// if not a strign output a message
ListBox1.Items.Add (Descr + ' is not a string')
else
// show the value
ListBox1.Items.Add (Descr + ' = [' +
GetStrProp (Components[I], PropInfo) + ']');
}
end;
end;
end.
RUNPROPF.DFM
object Form1: TForm1
Left = 200
Top = 107
Width = 391
Height = 280
Caption = 'RunProp'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 16
Top = 16
Width = 42
Height = 13
Caption = '&Property:'
FocusControl = Edit1
end
object Bevel1: TBevel
Left = 8
Top = 104
Width = 145
Height = 143
end
object Edit1: TEdit
Left = 16
Top = 32
Width = 121
Height = 21
TabOrder = 0
Text = 'Caption'
end
object Button1: TButton
Left = 16
Top = 64
Width = 121
Height = 25
Caption = '&Fill List'
TabOrder = 1
OnClick = Button1Click
end
object ListBox1: TListBox
Left = 160
Top = 16
Width = 209
Height = 225
ItemHeight = 13
TabOrder = 2
end
object RadioButton1: TRadioButton
Left = 16
Top = 112
Width = 113
Height = 17
Caption = 'RadioButton1'
TabOrder = 3
end
object CheckBox1: TCheckBox
Left = 16
Top = 136
Width = 97
Height = 17
Caption = 'CheckBox1'
TabOrder = 4
end
object ScrollBar1: TScrollBar
Left = 16
Top = 160
Width = 121
Height = 16
PageSize = 0
TabOrder = 5
end
object SpinEdit1: TSpinEdit
Left = 16
Top = 184
Width = 121
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 6
Value = 0
end
object ComboBox1: TComboBox
Left = 16
Top = 216
Width = 121
Height = 21
ItemHeight = 13
TabOrder = 7
Text = 'ComboBox1'
Items.Strings = (
'one'
'two'
'three'
'four'
'five')
end
end
|