С хламом и сформированным архивом полностью согласен, копия не к месту забралась туда. (спасибо, на будующее учтено).
Рыться в файлах не стоит файл там один - MKE.dpr, Unit1.pas, строка 1944
Код:
procedure TMain.N9Click(Sender: TObject);
Вся часть работы с экселем 1944-1956
Выкладываю процедуру, которая за все отвечает. На первом вводе данных все останавливается.
Код:
...
var Excel: Variant;
...
procedure TMain.N9Click(Sender: TObject);
var address:string;
begin
dlgOpen1.Title := 'Загрузить результаты расчета';
dlgOpen1.InitialDir := GetCurrentDir;
dlgOpen1.Filter := 'XLS file|*.xls';
dlgOpen1.DefaultExt := 'xls';
dlgOpen1.FilterIndex := 1;
if dlgOpen1.Execute then
begin
address:=dlgOpen1.FileName;
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open[address];
//Импорт данных
N_U:=Round(Excel.cells(2,20));
N_ELEMENT:=Round(Excel.cells(2,21));
for i:=1 to N_U do
begin
S_UZL[i].X:=StrToFloat(Excel.cells(1+i,2));
S_UZL[i].y:=StrToFloat(Excel.cells(1+i,3));
S_UZL[i].u:=StrToFloat(Excel.cells(1+i,4));
S_UZL[i].V:=StrToFloat(Excel.cells(1+i,5));
S_UZL[i].Sx:=StrToFloat(Excel.cells(1+i,6));
S_UZL[i].Sy:=StrToFloat(Excel.cells(1+i,7));
S_UZL[i].Sxy:=StrToFloat(Excel.cells(1+i,8));
S_UZL[i].S1:=StrToFloat(Excel.cells(1+i,9));
S_UZL[i].S2:=StrToFloat(Excel.cells(1+i,10));
S_UZL[i].k:=StrToFloat(Excel.cells(1+i,11));
end;
for i:=1 to N_ELEMENT do
begin
S_ELEM[i].Sx:=StrToFloat(Excel.cells(1+i,13));
S_ELEM[i].Sy:=StrToFloat(Excel.cells(1+i,14));
S_ELEM[i].Sxy:=StrToFloat(Excel.cells(1+i,15));
S_ELEM[i].S1:=StrToFloat(Excel.cells(1+i,16));
S_ELEM[i].S2:=StrToFloat(Excel.cells(1+i,17));
S_ELEM[i].k:=StrToFloat(Excel.cells(1+i,18));
S_ELEM[i].S:=StrToFloat(Excel.cells(1+i,19));
end;
Excel.Application.Quit;
end;
end;
Проблема решена, самому не ловко. Тему можно закрывать. Ячейки задавались круглыми скобками. С квадратными все начало работать. Всем спасибо.
Одного понять не могу: сохраняются данные в эксель обращась к ячейкам через круглые скобки и проблем нет, а при вводе данных появляются трудности.