Текущий архив: 2006.07.23;
Скачать: CL | DM;
Вниз
Обход всех компонентов на форме Найти похожие ветки
← →
dim- (2006-06-07 09:09) [0]Когда делаю следующее:
For i:=0 to Child.ControlCount-1 do Begin
if Child.Controls[i].ClassName="TDBEdit" Then
Child.Controls[i].Enabled:=false;
if Child.Controls[i].ClassName="TDBDateEdit" Then
Child.Controls[i].Enabled:=false;
End;
Обходит компоненты которые находяться на форме, а те которые находяться на панелях или тулбарах не попадают.
Как сделать чтобы попадали все?
← →
Loginov Dmitry © (2006-06-07 09:17) [1]Выполнить рекурсивный обход
← →
Zeqfreed © (2006-06-07 09:27) [2]
type
TEnumControlsCallback = procedure(Control : TControl) of object;
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Panel1: TPanel;
CheckBox1: TCheckBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
procedure MyCallback(Control : TControl);
public
{ Public declarations }
end;
. . .
function EnumControls(Parent : TWinControl; Callback : TEnumControlsCallback) : Integer;
var
i : Integer;
begin
Result := 0;
for i := 0 to Parent.ControlCount - 1 do begin
if (Parent.Controls[i] is TWinControl) then
Result := Result + EnumControls(Parent.Controls[i] as TWinControl, Callback);
Callback(Parent.Controls[i]);
Inc(Result);
end;
end;
procedure TForm1.MyCallback(Control : TControl);
begin
Memo1.Lines.Add(Format("Class: %s; Name: %s", [Control.ClassName, Control.Name]));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
ShowMessage(Format("%d control(s) found", [EnumControls(Form1, MyCallback)]));
end;
← →
[email protected] © (2006-06-07 10:52) [3]> For i:=0 to Child.ControlCount-1 do Begin
>if Child.Controls[i].ClassName="TDBEdit" Then
>Обходит компоненты которые находяться на форме
Обманывать нехорошо. Не компоненты, а элементы управления (контролы то бишь).
← →
Игорь Шевченко © (2006-06-07 15:18) [4]for I:=0 to Pred(ComponentCount) do
if (Component[I].ClassName="TDBEdit") or (Component[I].ClassName = "TDBDateEdit") then
TControl(Components[I]).Enabled := false;
Страницы: 1 вся ветка
Текущий архив: 2006.07.23;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.046 c