2013-03-04 2 views
2

У меня есть компоненты на форме и ищите любые, которые есть TMachine Тип Затем, когда я нахожу его, я хочу получить информацию от компонента. Мой вопрос: я объявляю m как TMachine Тогда попробуйте назначить m := Components[i] Но не позволит мне из-за m быть типом TMachine и компонентами, являющимися типом Component. Любая помощь в том, как исправить это, поэтому я могу использовать найденный компонент как TMachine?Объявить компонент [x] Тип

procedure TfDeptLayout.bSaveClick(Sender: TObject); 
var 
    i: Integer; 
    m : TMachine; 
    Number,Zone,Dept,Name,Asset,IsPanel,BasicName,FinalLocation,Left,Top : String; 
begin 
bSave.Visible := false; 
for i := ComponentCount -1 downto 0 do 
    begin 
    if(Components[I] is TMachine) then 
     begin 
     M := Components[I]; 
     Number := m.mnNumber; 
     Name := m.mnName; 
     Asset := m.mnAsset; 
     IsPanel := m.mnIsPanel; 
     BasicName := m.mnBasicName; 
     if checkbox1.Checked then 
      FinalLocation := 'shop' 
     else 
      FinalLocation := 'w'; 
     Left := inttostr(m.Left); 
     top := inttostr(m.Top); 
     Zone := myZone; 
     Dept := myDept; 
     Showmessage('Zone: '+Zone+' Dept: '+Dept 
      +'Name : '+Name+' Number: '+Number+' Asset: '+Asset 
      +'IsPanel: '+Ispanel+' BasicName: '+BasicName+ 
      ' FinalLocation : '+FinalLocation+' Left: '+Left+ 
      +' Top: '+Top); 
     end; 
    end; 
+0

В методах форме, я бы не использовать имена локальных переменных, таких как '' name', Left' или ' Top'. –

+2

@Wouter: Это не проблема: вы можете использовать 'with Self do', где вам нужен доступ к свойствам формы.

+1

@UliGerhardt: вы можете назвать форму «self», добавить кнопку «self» и создать единицу, называемую self, с некоторыми глобальными переменными, такими как «name» и «left», и добавить это в предложение uses. Русская рулетка с компилятором :) –

ответ

4

Вы должны решить тип неправильного спичку с помощью: приведение типа

if(Components[I] is TMachine) then 
    begin 
    M := TMachine(Components[I]); 
Смежные вопросы