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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.06.2010, 11:30
valenina valenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 14
Репутация: 10
По умолчанию Как исправить ошибку?

Пишу программу БД в Делфи надо в ней кое-что подсчитать... формула такова
DBEdit1.Text:=floattostr((1.1*(DataModule3.Kod_DTa ble1.FieldByName('D_Ёмкости').AsFloat*3.14*DataMod ule3.Kod_BTable1.FieldByName('B_Стенки').AsFloat*D ataModule3.Kod_HTable1.FieldByName('H_Ёмкости').As Float+2*(3.14*DataModule3.Kod_DTable1.FieldByName( 'D_Ёмкости').AsFloat*DataModule3.Kod_DTable1.Field ByName('D_Ёмкости').AsFloat)/4*DataModule3.Kod_BTable1.FieldByName('B_Стенки'). AsFloat)*1.6*DataModule3.Kod_STable1.FieldByName(' S_Стеклопластика').AsFloat))+(floattostr(Edit2.Tex t*2))+(floattostr(Edit4.Text)};

Формула работала пока не вставила последние слогаемые +(floattostr(Edit2.Text*2))+(floattostr(Edit4.Text )};
При компл. выдается ошибка
1.[Error] Unit11.pas(71): Incompatible types: 'String' and 'Integer'
[2.Error] Unit11.pas(71): There is no overloaded version of 'FloatToStr' that can be called with these arguments
3.[Fatal Error] Project1.dpr(15): Could not compile used unit 'Unit11.pas'

Как исправить эту ошибку?
Ответить с цитированием
  #2  
Старый 08.06.2010, 11:53
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Код:
+(floattostr(Edit2.Text*2))+(floattostr(Edit4.Text );

у Editа свойство Text -string
т.е. в вашем случае:
+(strtofloat(Edit2.Text)*2)+(strtofloat(Edit4.Text ))

Последний раз редактировалось Black Raider, 08.06.2010 в 11:55.
Ответить с цитированием
  #3  
Старый 08.06.2010, 11:54
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

ну во-первых за такой код стрелять надо
а в вообще ошибка в том что к вещественному типу ты добавляешь строку.
последние слагаемые должны быть такими:
Код:
(strtofloat(Edit2.Text*2))+(strtofloat(Edit4.Text)
и не забудь их взять под общую скобку!
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #4  
Старый 08.06.2010, 12:23
valenina valenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 14
Репутация: 10
Печаль

AsFloat))+((strtofloat(Edit2.Text)*2)+(strtofloat( Edit4.Text )));
Вот я так и сделала как вы говорите... в итоге ошибка:
[Error] Unit11.pas(71): Incompatible types: 'String' and 'Extended' и программа не компел..
Ответить с цитированием
  #5  
Старый 08.06.2010, 12:24
valenina valenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 14
Репутация: 10
По умолчанию

procedure TForm11.Button1Click(Sender: TObject);
begin
DBEdit1.Text:=floattostr((1.1*(DataModule3.Kod_DTa ble1.FieldByName('D_Ёмкости').AsFloat*3.14*DataMod ule3.Kod_BTable1.FieldByName('B_Стенки').AsFloat*D ataModule3.Kod_HTable1.FieldByName('H_Ёмкости').As Float+2*(3.14*DataModule3.Kod_DTable1.FieldByName( 'D_Ёмкости').AsFloat*DataModule3.Kod_DTable1.Field ByName('D_Ёмкости').AsFloat)/4*DataModule3.Kod_BTable1.FieldByName('B_Стенки'). AsFloat)*1.6*DataModule3.Kod_STable1.FieldByName(' S_Стеклопластика').AsFloat))+((strtofloat(Edit2.Te xt)*2)+(strtofloat(Edit4.Text )));
end;

Это вся процедура
Ответить с цитированием
  #6  
Старый 08.06.2010, 12:26
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от friz
Код:
(strtofloat(Edit2.Text*2))+(strtofloat(Edit4.Text)
string*integer?)

м.б. так
Код:
floattostr((strtofloat(Edit2.Text)*2)+strtofloat(Edit4.Text))
Ответить с цитированием
  #7  
Старый 08.06.2010, 12:33
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Код:
floattostr(
 (1.1*
  (DataModule3.Kod_DTable1.FieldByName('D_Ёмкости').AsFloat*3.14*
   DataModule3.Kod_BTable1.FieldByName('B_Стенки').AsFloat*
   DataModule3.Kod_HTable1.FieldByName('H_Ёмкости').AsFloat
   +2*
   (3.14*DataModule3.Kod_DTable1.FieldByName( 'D_Ёмкости').AsFloat*
    DataModule3.Kod_DTable1.Field ByName('D_Ёмкости').AsFloat
   )
   /4*DataModule3.Kod_BTable1.FieldByName('B_Стенки'). AsFloat
  )
  *1.6*DataModule3.Kod_STable1.FieldByName(' S_Стеклопластика').AsFloat
 )
 +((strtofloat(Edit2.Te xt)*2)+(strtofloat(Edit4.Text ))));
скобка функции floattostr не брала всю вашу формулу за скобкой оставалось :+((strtofloat(Edit2.Te xt)*2)+(strtofloat(Edit4.Text )))
Ответить с цитированием
  #8  
Старый 08.06.2010, 12:35
valenina valenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 14
Репутация: 10
По умолчанию

все сработало.. спасибо..
Ответить с цитированием
  #9  
Старый 08.06.2010, 12:47
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

я же русским языком написал:
Цитата:
и не забудь их взять под общую скобку!

вот из-за такой невнимательности и рушиться мир на земле
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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