Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 14.12.2010, 21:46
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
В StringGrid'е второе не n, а i должно быть
спс это исправил, а что насчет обработчика для кнопки второй формы!!
Это кнопка на которую нажимаем (ОК)после ввода значений, при ее нажатии либо опять вводим значения если n>1 либо форма пропадает и данные записываются в таблицу..

Последний раз редактировалось glorx, 14.12.2010 в 21:55.
Ответить с цитированием
  #17  
Старый 14.12.2010, 21:55
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Цитата:
Это кнопка на которую нажимаем (ОК)после ввода значений, при ее нажатии либо опять вводим значения если n>1 либо форма пропадает и только одна строяка значений запишется в таблицу..
Ответить с цитированием
А что с ней не так? Ошибка может быть наверное только из-за входных данных.
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #18  
Старый 14.12.2010, 22:01
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
А что с ней не так? Ошибка может быть наверное только из-за входных данных.
ну смотри по сути выше указаный обработчик был написан на одну кнопку, т.е первую на первой форме!!
а для второй что прописать?? ну например при нажатии на нее нужно чтобы поля очищались для ввода новых данных, менялся заголовок с номером опыта! и при завершении цикла N-Ого она закрывалась!!
вот этого хочется добится..
что скажешь? может нужно код для первой кнопки разбить на 2е части? я не могу допетрить сам(
Ответить с цитированием
  #19  
Старый 14.12.2010, 22:15
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

А этого у тебя разве нет, у тебя кажется что-то такое и реализованно.
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #20  
Старый 14.12.2010, 22:24
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
этого у тебя разве нет, у тебя кажется что-то такое и реализованно.
эмммм...вроде как обработчик на одну кнопку писался..
я вот вспомнил что кнопки то 2е а обработчик один..
Ответить с цитированием
  #21  
Старый 14.12.2010, 22:29
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Цитата:
Сообщение от glorx
эмммм...вроде как обработчик на одну кнопку писался..
я вот вспомнил что кнопки то 2е а обработчик один..
С главной формы в цикле очищай поля второй и запускай его на ввод, во второй по кнопке идёт вся математика и вывод в стринггрид и закрытие формы. Кажется самый оптимальный вариант.
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #22  
Старый 14.12.2010, 22:37
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от BoRoV
С главной формы в цикле очищай поля второй и запускай его на ввод, во второй по кнопке идёт вся математика и вывод в стринггрид и закрытие формы. Кажется самый оптимальный вариант.
Если честно не очень понял...
если время есть у тибя помоги с кодом пажалста, запутался совсем=(
может я не до конца объяснил, но первая кнопка по сути используется для вызова второй формы, а все остальное должно быть на второй кнопке

Последний раз редактировалось glorx, 14.12.2010 в 22:44.
Ответить с цитированием
  #23  
Старый 14.12.2010, 22:58
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Код:
var // глобальная
  i: integer;
Код:
proc Form1.ButtonClick()
begin
  for i := 1 to n do
  begin
    Form2.Edit1.Text := '';
    // и также для остальных эдитов
    i := n;
    Form2.ShowModal;
  end;
end;

Код:
proc Form2.ButtonClick()
begin
  // математика
  Form1.StringGrid[1, i] := значение
  // также для остальных ячеек
  Close;
end;

Как-то так...
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #24  
Старый 14.12.2010, 23:08
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

ругается на i:=n;
Ответить с цитированием
  #25  
Старый 14.12.2010, 23:29
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

если убрать i:=n;
то в результате например 3х опытов в таблицу записываются одн и те же знаечния, вероятно расчеты для последних введенных данных!!!
может ошибка в цикле? в операторных скобках где то? выложу код помогите найти пажалста:
для первой кнопки:
Код:
procedure TForm1.btn6Click(Sender: TObject);
var n:integer;
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:='';
   // i:=n;
    EnterFrm.ShowModal;
  end;
end;
для второй:
Код:
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

      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,i]:=floatToStr(Ft);
     Form1.strngrd1.Cells[2,i]:=floatToStr(Fd);
     Form1.strngrd1.Cells[3,i]:=floatToStr(U);
     Form1.strngrd1.Cells[4,i]:=floatToStr(E);
     Form1.strngrd1.Cells[5,i]:=floatToStr(H);
     Close;
    end;
 end;
end;
где ошибка?
Ответить с цитированием
  #26  
Старый 14.12.2010, 23:44
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Первая:
Код:
var
  count: integer;
...
procedure TForm1.btn6Click(Sender: TObject);
var n:integer;
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;
Вторая (не пойму зачем тебе тут цикл, если он есть в первой):
Код:
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

      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,TForm1.count]:=floatToStr(Ft);
     Form1.strngrd1.Cells[2,TForm1.count]:=floatToStr(Fd);
     Form1.strngrd1.Cells[3,TForm1.count]:=floatToStr(U);
     Form1.strngrd1.Cells[4,TForm1.count]:=floatToStr(E);
     Form1.strngrd1.Cells[5,TForm1.count]:=floatToStr(H);
     Close;
    end;
 end;
end;
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #27  
Старый 15.12.2010, 00:03
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

ругается на Count, что то с идентификатором
Цитата:
Form1.strngrd1.Cells[1,TForm1.count]:=floatToStr(Ft);
он и не находит count с Tform1


Если просто count оставить, убрав оба цикла с этой кнопки, то он в таблицу записывает только последний расчет!! предыдущие ячейки пустые он их как бы считает но не записывает результат

Последний раз редактировалось glorx, 15.12.2010 в 00:10.
Ответить с цитированием
  #28  
Старый 15.12.2010, 00:10
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Убери тформ1, то я немного тупанул просто коунт.
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #29  
Старый 15.12.2010, 00:16
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

вот что получится:
Цитата:
Если просто count оставить, убрав оба цикла с этой кнопки, то он в таблицу записывает только последний расчет!! предыдущие ячейки пустые он их как бы считает но не записывает результат

тут оба цикла убираем???
Код:
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

      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,TForm1.count]:=floatToStr(Ft);
     Form1.strngrd1.Cells[2,TForm1.count]:=floatToStr(Fd);
     Form1.strngrd1.Cells[3,TForm1.count]:=floatToStr(U);
     Form1.strngrd1.Cells[4,TForm1.count]:=floatToStr(E);
     Form1.strngrd1.Cells[5,TForm1.count]:=floatToStr(H);
     Close;
    end;
 end;
end;

Последний раз редактировалось glorx, 15.12.2010 в 00:18.
Ответить с цитированием
  #30  
Старый 15.12.2010, 00:18
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Не нужно оба, только со врой формы.
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter