Hirdetés

2024. május 17., péntek

Gyorskeresés

Hozzászólások

(#1700) Fire/SOUL/CD válasza #95904256 (#1698) üzenetére


Fire/SOUL/CD
félisten

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.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

Copyright © 2000-2024 PROHARDVER Informatikai Kft.