Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 11:25   #1
SPD
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 41
По умолчанию Зануление параметров

Вот возникла такая проблемка при открытии прога все правильно делает. Но как только я второй раз загружаю данные у меня выскакивает ошыбка... Вот даже не могу понять в чем ошибка...Подскажите пож...
Мож чтото гдето нужно занулять или может можно както все параметры занулить одним махом тип что бы они были такимиже как бы форма только нарисовалась...
SPD вне форума Ответить с цитированием
Старый 27.02.2012, 11:53   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Код покажите. Что за ошибка то выходит? Какие данные получаете?
FaTaL вне форума Ответить с цитированием
Старый 27.02.2012, 11:59   #3
SPD
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 41
По умолчанию

основной код:

Код:
procedure TForm2.Button1Click(Sender: TObject);
 var
  i, n, n1: integer;
  hmax, hmin, hmax1, hmin1, qmin, qmax, qmin1, qmax1, qc1,mis1,norma1: real;
  dt,dt1: string[35];
  mis,norma:string[35];
  ds,ds1:string[2];
  j, temp, max, k: integer;
begin
  if OpenDialog1.Execute then
  if Opendialog1.FileName<>'' then
  begin
xls_to_stringgrid(Form1.stringgrid1, Opendialog1.FileName);
  end;
Form1.Show;
// end;

begin
k:=1;
for i:=1 to Form1.StringGrid1.RowCount-1 do
begin
mis:=Form1.stringgrid1.Cells[0,i];
if mis<>'' then
begin
  n:=Pos(' 8:00:00', mis);
  n1:= Pos(' 20:00:00', mis);
  if (n<>0) or (n1<>0) then
    begin
        for j:=0 to 2 do
        begin
          Form1.stringgrid2.Cells[j,k]:=Form1.stringgrid1.Cells[j,i];
        end;
        k:=k+1;
        Form1.stringgrid2.RowCount:=Form1.stringgrid2.RowCount+1;
        end;
    end
    else end;
hmax:=strtofloat(Form1.stringgrid2.Cells[1,1]);
hmin:=strtofloat(Form1.stringgrid2.Cells[1,1]);
qmax:=strtofloat(Form1.stringgrid2.Cells[2,1]);
qmin:=strtofloat(Form1.stringgrid2.Cells[2,1]);
for i:=2 to Form1.stringgrid2.RowCount-1 do
      begin
      if Form1.stringgrid2.Cells[1,i]<>'' then
      Begin
      hmax1:=strtofloat(Form1.stringgrid2.Cells[1,i]);
      hmin1:=strtofloat(Form1.stringgrid2.Cells[1,i]);
      qmax1:=strtofloat(Form1.stringgrid2.Cells[2,i]);
      qmin1:=strtofloat(Form1.stringgrid2.Cells[2,i]);
      if hmax<hmax1 then hmax:=hmax1;
      if hmin>hmin1 then hmin:=hmin1;
      if qmin>qmin1 then qmin:=qmin1;
      if qmax<qmax1 then qmax:=qmax1;
      end;
      end;
      for i:=2 to Form1.stringgrid2.RowCount-1 do begin
      if floattostr(hmax)=Form1.stringgrid2.Cells[1,i] then
            Begin
              ds:=Form1.stringgrid2.Cells[0,i];
              dt:=dt+ds;
            end;
      if floattostr(hmin)=Form1.stringgrid2.Cells[1,i] then
            begin
              ds1:=Form1.stringgrid2.Cells[0,i];
              mis:=Form1.stringgrid2.Cells[0,i];
              dt1:=dt1+ds1;
            end;
      end;
      dt1:=dt1+'.'+mis[4]+mis[5];
      dt:=dt+'.'+mis[4]+mis[5];
      qc1:=0;
      k:=form1.StringGrid2.RowCount-1;
             for i:=1 to k do
                begin
                  qc1:=qc1+strtofloat(Form1.stringgrid2.Cells[2,i]);
                  end;

                  mis1:=qc1/k;
                  norma1:=mis1*100/(strtofloat(Form2.edit1.Text));
             Form1.stringgrid2.Cells[0,0]:='Дата Час';
    Form1.stringgrid2.Cells[1,0]:='Рівень';
     Form1.stringgrid2.Cells[2,0]:='Витрата';
      Form1.memo1.Lines.Strings[0]:=Form1.memo1.Lines.Strings[0]+' '+'='+' '+floattostr(norma1)+'%'+'норми' ;
      Form1.memo1.Lines.Add('Qнорм='+Form2.edit1.Text+' м3/с;');
      Form1.memo1.Lines.Add('Qсер='+floattostr(mis1)+' м3/с;');
      Form1.memo1.Lines.Add('Hmin='+floattostr(hmin)+' см     '+'Qmin='+floattostr(qmin)+' м3/с;'+'     ('+dt1+')');
      Form1.memo1.Lines.Add('Hmax='+floattostr(hmax)+' см     '+'Qmax='+floattostr(qmax)+' м3/с;'+'     ('+dt+')');
   for i := 0 to Form1.StringGrid2.colcount - 1 do
  begin
    max := 0;
    for j := 0 to Form1.StringGrid2.rowcount - 1 do
    begin
      temp := Form1.StringGrid2.canvas.textWidth(Form1.StringGrid2.cells[i, j]);
      if temp > max then
        max := temp;
    end;
   Form1.StringGrid2.colWidths[i] := max + Form1.StringGrid2.gridLineWidth + 10;
  end;


end;

end;
ошыбка на скрине:
данные загружаю с екселя там три колонки
Дата Уровень Расход
Изображения
Тип файла: jpg 11.JPG (15.6 Кб, 121 просмотров)
SPD вне форума Ответить с цитированием
Старый 27.02.2012, 12:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ошибка все и говорит - strtofloat где-то пытается кавычку преобразовать в real
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.02.2012, 12:07   #5
SPD
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 41
По умолчанию

Но в том прикол что первый раз прога все делает правильно...а второй раз загружая даже те данные что и первый прода дает ошибку...
SPD вне форума Ответить с цитированием
Старый 27.02.2012, 12:10   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Пошаговая трассировка и вперед
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.02.2012, 12:17   #7
SPD
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 41
По умолчанию

во нашел ошибочку.Вот тут:
Код:
 Form1.stringgrid2.RowCount:=Form1.stringgrid2.RowCount+1;
при повторном выполнении процедуры оно просто увеличивалось а нужно с нуля...
Биг спс...))
SPD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация параметров в *.com Studik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 01.03.2011 19:33
Преобразования параметров V2 Eros Общие вопросы C/C++ 1 13.05.2010 01:43
Окно параметров bbk_serg Общие вопросы Delphi 9 26.09.2009 18:12
Строка параметров Rus+ick Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2008 05:46
Передача параметров aesoem Общие вопросы Delphi 8 15.07.2008 21:51