Keresés

Új hozzászólás Aktív témák

  • Fire/SOUL/CD

    félisten

    válasz #95904256 #1698 üzenetére

    Hali!

    Megoldható emígyen:

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ListBox1: TListBox;
    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;
    begin
    with Form1, ListBox1 do begin
    Clear;
    Items.Add('A form1-en található komponensek száma: '+IntToStr(Form1.ComponentCount));
    for i:=0 to Form1.ComponentCount-1 do begin
    Items.Add(Form1.Components[i].Name);
    with Form1.Components[i] do begin
    if GetPropInfo(ClassInfo, 'WordWrap')<>nil then Items.Add('VAN WordWrap tulajdonsága')
    else Items.Add('NINCS WordWrap tulajdonsága');
    end;
    end;
    end;
    end;

    end.

    Delphi 7 ben íródott.

    Kell egy TButton(Button1), TEdit(Edit1) és TListBox(ListBox1) a Formra(Form1).
    Ami végülis a lényeg, az a GetPropInfo() függvény
    A ComponentCount függvénnyel lekérjük a Form1-en lévő komponensek számát, majd egyenként végigmegyünk rajtuk egy ciklussal, és lekérjük az infót az adott tulajdonságról. Itt a WordWrap tulajdonságot ellenőriztem, ha a GetPropInfo nil értékkel tér vissza, akkor nincs ilyen tulajdonsága az adott komponensnek.
    (Itt csak a Button-nak van ilyen tulajdonsága)
    Ahhoz hogy használni tudd, kell ez a Unit: Uses TypInfo;

    A kód szerintem érthető, tisztán látszik hogy kell használni, ha mégsem akkor persze írj nyugodtan.

    Fire.

  • Prego

    senior tag

    válasz #95904256 #1698 üzenetére

    nincs valami olyan hogy NOT NULL, vagy pl if Edit1.Text<>'' then

Új hozzászólás Aktív témák