Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

SergeyReutov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь сталкивался с такой проблемой? :
 
Когда создаешь базу данных на Access-е, то там у чисел типа Real целая часть от дробной отделяется запятой, а в Delphi целая часть от дробной отделяется точкой.
Поэтому при попытке доступа из Delphi к числам базы данных Access-а возникает ошибка.
Как можно решить эту проблему?

Всего записей: 171 | Зарегистр. 23-01-2003 | Отправлено: 17:11 05-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergeyReutov

Цитата:
Delphi целая часть от дробной отделяется точкой

Всё зависит от функций, которыми пользуешся. val всегда даст точку в строковом представлении, а Floattostr в зависимости от установок Винды(Узнать можно в переменной DecimalSeparator). Access пользуется настройками винды.
Так как для перевода чисел скорее всего используется Strtofloat, то думаю, что ошибок быть не может. Вариант возникновения ошибок -в строковой записи есть лишний пробел.
Уточни, в какой именно конструкции появляется ошибка

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:38 05-05-2005
djelektronik

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как получить параметры передаваемые при запуске проги
типа -a 1 -b 2
 
нашел че надо но там не описано как с конкретными цифрами
типа когда задаеш порт или ип адрес или еще че
 
вот пример
http://www.delphibasics.co.uk/RTL.asp?Name=FindCmdLineSwitch

Всего записей: 2530 | Зарегистр. 28-06-2001 | Отправлено: 18:14 05-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
djelektronik
а не проще ручками?
Количество параметров ParamCount
Достучаться к конкретному параметру - Paramstr(номер).  
Приятная фича Paramstr(0) возвратит имя exe с полным путём

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 18:35 05-05-2005
mr_eoi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Функции ParamCount и ParamStr(номер) накладывают определённые требования на синтаксис командной строки, к примеру, если написать -a-b, встроенный парсер определит, что это один параметр,  
а писать -a -b всех не заставишь.

----------
Per Aspera Ad Astra...

Всего записей: 2203 | Зарегистр. 10-08-2003 | Отправлено: 23:07 05-05-2005 | Исправлено: mr_eoi, 23:13 05-05-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну тады ручками получаем всю командную строку, через ParamStr(0) потом режем из нее Application.ExeName с самого начала и начинаем парсить ручками.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:25 06-05-2005
evle



1 + int rand(100);
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mr_eoi
04:07 06-05-2005
Цитата:
а писать -a -b всех не заставишь.

Лучше заставлять, а то привыкнут, что так можно, а это неверно.

----------
For every complex problem, there is a solution that is simple, neat, and wrong.

Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 04:39 06-05-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
ParamStr(0) вернет только полное имя ехешника, а вся командная строка будет  
ченить типа for i:=1 to ParamCount do PrmStr:=PrmStr+ParamStr(i);

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 06:35 06-05-2005
mr_eoi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evle
04:39 06-05-2005
Цитата:
Лучше заставлять, а то привыкнут, что так можно, а это неверно.

Очень многие программы разрешают не разделять флаги в командной строке пробелами, поэтому, IMHO, для сохранения общности, следует предусмотреть и такую возможность, тем более, что командная строка всегда доступна через функцию API GetCommandLine.

----------
Per Aspera Ad Astra...

Всего записей: 2203 | Зарегистр. 10-08-2003 | Отправлено: 07:48 06-05-2005
evle



1 + int rand(100);
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mr_eoi
12:48 06-05-2005
Цитата:
Очень многие программы разрешают не разделять флаги в командной строке  

Ни одной не встречал. Да и неправильно это.

Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 08:10 06-05-2005
SergeyReutov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim

Цитата:
Уточни, в какой именно конструкции появляется ошибка

 
Ошибка возникает при попытке записи числа в базу данных.  
Т.к. в базе данных Access целая часть от дробной разделяется запятой, а в Delphi точкой, поэтому Access-ная база требует именно запятую в числе.

Всего записей: 171 | Зарегистр. 23-01-2003 | Отправлено: 08:31 06-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergeyReutov
Ну пишу, что в Делфи целая часть от дробной отделяется тем, чем укажеш (тоесть какая функция + национальные настройки).

Цитата:
 при попытке записи

как идёт запись? Если через SQL запрос, то всё понятно - форматируй корректно строку.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 10:56 06-05-2005
SergeyReutov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
 
А где можно посмотреть переменную DecimalSeparator ?

Всего записей: 171 | Зарегистр. 23-01-2003 | Отправлено: 12:05 06-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergeyReutov
можно в начтройках винды, а можно так

Код:
 
ShowMessage(DecimalSeparator);
 

На заметку, её можно изменять

Код:
 
DecimalSeparator:='.';
 

Тогда в твоей проге будет другой разделитель...

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 12:08 06-05-2005
abv



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergeyReutov
 Все переменные региональных настроек находятся в SysUtils.
Как я понял, тебе нужно сделать что-то вроде:
 
OldDecSeparator := DecimalSeparator;
DecimalSeparator := ',';
try
  // наполняем базу Access
finally  
  DecimalSeparator := OldDecSeparator;
end;

Всего записей: 268 | Зарегистр. 23-08-2001 | Отправлено: 12:11 06-05-2005
ViktorSila

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evle

Цитата:
 События - это свойства типа TNotifyEvent. Подробности проще всего понять, почитав исходники VCL.

А где их взять??????

Всего записей: 54 | Зарегистр. 04-02-2005 | Отправлено: 12:51 06-05-2005
YurikGL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
>А где их взять??????
 
Набираешь то, чей исходник тебе нужен в редакторе, нажимаешь ctrl + click на набранное слово...

Всего записей: 308 | Зарегистр. 02-09-2004 | Отправлено: 12:53 06-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ViktorSila
либо нажимаеш Ctrl и мышей щёлкаеш по нужных словах

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 12:59 06-05-2005
Aliber

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет. Подскажите пожалуйста как изменить размер фото (точнее подогнать под нужный размер сохраняя пропорции) в TImage. Я только учусь и немного запутался - с каждым разом меняется сам размер TImage, а фото нет. Далее эта фотка будет с данными записываться в БД и в дальнейшем отображаться в DBImage. Заранее благодарю за помощь.

Всего записей: 6 | Зарегистр. 18-04-2005 | Отправлено: 17:29 06-05-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
stretch:=true;// чтобы растягнуть
Proportional:=true;//Чтобы пропорционально
center:=true;// чтобы поцентру

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:51 06-05-2005
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru