Показать сообщение отдельно
  #1  
Старый 27.09.2012, 09:32
Fenix1989 Fenix1989 вне форума
Прохожий
 
Регистрация: 26.09.2012
Сообщения: 11
Репутация: 10
По умолчанию Не видит индекс

Доброе утро. Пожалуйста, посмотрите кусок кода, который не совсем корректно работает:


В Unit1 :

Код:
procedure TForm1.Makro(Var U8, U5, MU8, MU5, O1, MO1, MU : TMasMin);
var  f: File of TElementi;
U8w, U5w, O1w : TElementi;
i, j: integer;
begin
..................

Form3.ComboBox4.Clear;
Form3.ComboBox4.Items.Add('U238');
Form3.ComboBox4.Items.Add('U235');
Form3.ComboBox4.Items.Add('U');
if Form3.RadioButton1.Checked = True  then
Form3.ComboBox4Change(Form3.ComboBox4 , 0, MU5, MU8, MO1, MU);

end;
........
end;

В Unit3 :

Код:
procedure TForm3.ComboBox4Change(Sender: TObject; k: integer; var MU5w, MU8w, MO1w, MUw: TMasMin);
var
i, j : integer;
begin
if k = 0 then
begin
case Form3.ComboBox4.ItemIndex  of
0: VivodMakr(MU8w);
1: VivodMakr(MU5w);
2:  begin
for i:=1 to 4 do
for j:=1 to 4 do
MUw[i, j]:=MU5w[i, j]+MU8w[i, j];

VivodMakr(MUw);
end;
end;
end;
end;

Процедура VivodMakr должна должна выводить предложенный ей массив TMasMin: array[1..4, 1..4] of real в таблицу StringGrid. И, собственно, без процедуры
Код:
procedure TForm3.ComboBox4Change(Sender: TObject; k: integer; var MU5w, MU8w, MO1w, MUw: TMasMin);
все работает прекрасно.Все ли я правильно сделал при её описании, потому что при запуске таблица пустует, ей не передается индекс и она просто не делает вычислений. И почему в процедуре
Код:
procedure TForm3.ComboBox4Change(Sender: TObject; k: integer; var MU5w, MU8w, MO1w, MUw: TMasMin);
end-ов больше, чем begin-ов , хотя, если один убрать -- ругается.
Ответить с цитированием