2016-11-15 4 views
-3

Я использую этот код для опорожнения заполнить форму:Безопасный очищающий компонент?

var 
i: integer; 

for i:=0 to componentcounts-1 do 
    begin 
    if component[i] is TEdit then 
     (component[i] as Tedit).text:=''; 
    .....another component also include 
    end; 

, но я предпочитаю использовать этот код вне формы, так что можно использовать другую форму

тогда я создать процедуру

procedure emptyForm(f:Tform) 
var 
    i:integer; 
begin 
with f do 
    begin 
    for i:=0 to componentcounts-1 do 
     begin 
     if component[i] is TEdit then 
      (component[i] as Tedit).text:=''; 
      //.....another component also include 
     end; 
    end; 
end; 

его сохранить сделать так?

+1

Вы имели в виду 'Safe'? также, 'componentcounts'? - отредактируйте свой вопрос и используйте реальный код. – kobik

+1

Это настолько безопасно, что программа, которая не компилируется, не может работать. Возможно, было бы интереснее увидеть настоящую программу. –

+0

Извините @kobik, спасибо David Heffernan –

ответ

-1

Это нормально. Я полагаю, но использование «с» немного опасно. Чтобы понять, почему, помните, что TForm происходит от TComponent и имеет многие свойства, такие как Component [i], что приводит к потенциальной путанице и ошибкам. Я предпочитаю следующие

procedure emptyForm(f:Tform); 
var 
    i:integer; 
    iComponent : TComponent; 
begin 
    for i:=0 to f.componentcount-1 do 
    begin 
     iComponent := f.Components[ I ]; 
     if iComponent is TEdit then 
     begin 
      (iComponent as Tedit).text:=''; 
     end; 
      //.....another component also include 
    end; 
end; 
+0

Имя метода _ComponentCount_. Это не _componentcounts_. – nolaspeaker

+1

Спасибо за ваши комментарии. Вы правы - я должен был проверить, а не просто вырезать и вставить. Теперь исправлено. – Dsm