![]() |
|
|
#31
|
|||
|
|||
|
так это обработчик с кнопки на второй форме! выходит оба убирать? или я не допонимаю..)
вобщем убрав оба цикла во втром обработчике, оставив только цикл в первом он выводит в таблице только одну строку результатов!! если n=2 то вторую строку первую пропускает!! Последний раз редактировалось glorx, 15.12.2010 в 00:29. |
|
#32
|
|||
|
|||
|
ааааа мозг кипит))нужно спать идти, спс за помощь, если не против завтра продолжим!!
|
|
#33
|
|||
|
|||
|
итак что имеем:
кнопка второй формы: Код:
procedure TEnterFrm.btn10Click(Sender: TObject);
var i,n,D:Integer;
Lt,Ld,Zt,Zd,Ft,Fd,U,E,H,fod,fi1,e1,n1:real;
begin
n:=StrToInt(Form1.lbledt23.text);
//============запускаем цикл====================
//for d:=1 to n do
// begin
//===============================
fod:=strtofloat(Form1.lbledt20.Text);
//for i:=1 to n do
// begin
// EnterFrm.ShowModal;
// EnterFrm.lbl2.Caption:=IntToStr(i);
Lt:=StrTofloat(EnterFrm.lbledt21.text);
Ld:=StrTofloat(EnterFrm.lbledt22.text);
Zt:=StrTofloat(EnterFrm.lbledt28.text);
Zd:=StrTofloat(EnterFrm.lbledt29.text);
Ft:=Lt*165; //усилие тормоза
Fd:=Ld*195; // усилие двигателя
U:=Ft/2*fod; // коэф.тяги
E:=(1-(Zt/Zd))*100; // скольжение
H:=((Ft*Zt)/(Fd/Zd))*100; // КПД
Form1.strngrd1.Cells[1,count]:=floatToStr(Ft);
Form1.strngrd1.Cells[2,count]:=floatToStr(Fd);
Form1.strngrd1.Cells[3,count]:=floatToStr(U);
Form1.strngrd1.Cells[4,count]:=floatToStr(E);
Form1.strngrd1.Cells[5,count]:=floatToStr(H);
Close;
//end;
// end;
end;Код:
procedure TForm1.btn6Click(Sender: TObject);
var n:integer;
Lt,Ld,Zt,Zd,Ft,Fd,U,E,H,fod,fi1,e1,n1:real;
begin
n:=StrToInt(Form1.lbledt23.text);
for i := 1 to n do
begin
EnterFrm.Caption:='Введите данные '+IntToStr(i)+' режима';
EnterFrm.lbledt21.Text:='';
EnterFrm.lbledt22.Text:='';
EnterFrm.lbledt28.Text:='';
EnterFrm.lbledt29.Text:='';
count:=n;
EnterFrm.ShowModal;
end;
end;В итоге в таблицу сохраняется только последний расчет!! Например если n=3 то в таблицу только 3 строка и запишется, первые 2 пустые будут! Как исправить помогите, что не так в коде? может где в цикле ошибка или опрераторные скобки не так стоят! |
|
#34
|
||||
|
||||
|
Плять. В первой форме нужно:
Код:
count := i; |
|
#35
|
|||
|
|||
|
Цитата:
|
|
#36
|
|||
|
|||
|
Все получилось, осталось только построить график по данным из StringGrid!!
Как это сделать? |
|
#37
|
|||
|
|||
|
вот обработчик на кнопку для построения графика, но ошибка при нажатии!!что не так??
Код:
procedure TForm1.btn10Click(Sender: TObject);
var
i: integer;
begin
with strngrd1 do
for i:=1 to RowCount-1 do
cht4.Series[1].AddXY(StrToFloat(strngrd1.Cells[3,i]),StrTofloat(strngrd1.Cells[4,i]),'',clTeeColor);
cht4.Series[2].AddXY(StrToFloat(strngrd1.Cells[3,i]),StrTofloat(strngrd1.Cells[5,i]),'',clTeeColor);
lnsrsSeries1.XValues.Order:=LoNone;
end; |