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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Aleksandr N

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

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 10:08 23-12-2013 | Исправлено: Aleksandr N, 19:10 24-12-2013
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    под вечер мозги кипят. вот есть число 14123,56 и надо отобразить его с пробелом, отделив тысячу от рублей. не хочу велосипед изобретать. работаю без vcl, там есть в функциях формата такая фигня, а как тут. может есть готовое решение? чет в поиске забиваю и не могу найти нужное

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:18 12-01-2014
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    VCL использует FormatFloat.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:12 13-01-2014
    ShIvADeSt



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

    Цитата:
    под вечер мозги кипят. вот есть число 14123,56 и надо отобразить его с пробелом, отделив тысячу от рублей. не хочу велосипед изобретать. работаю без vcl, там есть в функциях формата такая фигня, а как тут.

    А чем не подходит функция Insert и проверка на длину строки? Делаем функцию, в которой от конца к началу вставляем пробелы, если длина строки подходит под условие, итпа
    if length(s)>6 // 3 символа на дробную часть и 3 символа на сотни
    then insert(s, ' ', 7)
    if length(s)>10 // 3 символа на дробную часть и 3 символа на сотни
    then insert(s, ' ', 11)
    и тд до триллионов например.
    Суть думаю понятна.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:01 15-01-2014
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приходит строка с сервера, как определить имеет ли она кодировку UTF-8?

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 08:49 07-03-2014
    exteris

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

    Цитата:
    Приходит строка с сервера, как определить имеет ли она кодировку UTF-8?

    В общем случае никак. Есть функция DetectUTF8Encoding, но она не гарантирует точность определения.

    Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 09:51 07-03-2014
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    exteris
    DetectUTF8Encoding в Delphi 7 есть эта функция?

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 10:32 07-03-2014
    exteris

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

    Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 11:37 07-03-2014
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    exteris
    По-моему можно использовать какое то АПИ от ИЕ, которое детектит кодировки. Но точность там далеко не 100%.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:59 07-03-2014
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не предполагал, что это может быть проблемно...

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 16:19 07-03-2014
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    на 100% продетектить, конечно, невозможно. тот же ИЕ определяет не по всей строке, а по первым скольки-то там символам (иначе тормоза начнутся). и даже скан всей строки 100% не даст

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 00:14 08-03-2014
    samz2000

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

    Цитата:
    под вечер мозги кипят. вот есть число 14123,56 и надо отобразить его с пробелом, отделив тысячу от рублей. не хочу велосипед изобретать. работаю без vcl, там есть в функциях формата такая фигня, а как тут. может есть готовое решение? чет в поиске забиваю и не могу найти нужное

     

    Код:
     
    // Форматирование строки по шаблону
    // http://www.cplusplus.com/reference/cstdio/printf/
    // http://ru.wikipedia.org/wiki/Printf
    function sprintf (Buffer : PChar; const Format : PChar) : Integer; cdecl varargs; external 'MSVCRT.DLL';
    function wsprintf(Buffer : PChar; const Format : PChar) : Integer; cdecl varargs; external 'USER32.DLL' name 'wsprintfA';
     

    Всего записей: 1 | Зарегистр. 26-08-2005 | Отправлено: 21:09 08-03-2014
    LadyOfWood

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

    Цитата:
    Приходит строка с сервера, как определить имеет ли она кодировку UTF-8?

    Можно посмотреть на наличие BOM в начале. Если BOM нет то задача немного усложляется.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 17:31 19-04-2014
    Hom0Sapiens

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ---del
    Разобрался сам.
    Спасибо!!!

    Всего записей: 87 | Зарегистр. 13-10-2007 | Отправлено: 16:16 15-06-2014 | Исправлено: Hom0Sapiens, 16:19 15-06-2014
    relictus

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Заказчик программы хочет, чтобы она запускалась при старте винды, затем разворачивалась на весь экран без возможности ее свернуть каким-либо способом, а также запретить запуск на компьютере чего-либо, кроме самой программы
    Ну, автозапуск сделать легко, а как насчет остального? Это вообще реализуемо на Delphi без использования сторонних специфических программ? Есть какие идеи?

    Всего записей: 3712 | Зарегистр. 19-04-2005 | Отправлено: 11:42 14-07-2014
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    relictus
    Поместите в автозагрузку ланчер, который запустит ваше приложение на новом десктопе: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=70742
    Плюс этого метода в том, что он позволяет сделать специальную админскую кнопку, которая даст возможность вернуться на нормальный десктоп после ввода пароля.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:22 14-07-2014 | Исправлено: Frodo_Torbins, 13:31 15-07-2014
    relictus

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Большое спасибо за интересную идею!

    Всего записей: 3712 | Зарегистр. 19-04-2005 | Отправлено: 16:50 14-07-2014
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    relictus
    Еще есть вариант подправить "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell", но тогда будут проблемы с возвратом к стандартной оболочке.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:37 15-07-2014
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у свойства SQL в ADOQuery тип TStrings
     
    Всегда всё было хорошо, но вот столкнулся с тем, что когда я добавляю в него запрос вида
    'select ........... where ' + sBuf, где
    sBuf - строка переменной длины
     
    при очень большой длине sBuf (например, 85000 символов) TStrings выдаёт какую-то невнятную ошибку
     
    отсюда вопрос: какова длина одного элемента типа TStrings ?
     
    Я знаю, как разбить запрос на элементы (SQL.add (часть запроса); SQL.add (часть запроса); и так далее), но интересно узнать предел TStrings, ведь у типа string в современных версиях делфи размер до 2 ГБ, я думал и у TSrings всё аналогично...

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 19:57 15-07-2014
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ESV1987
    а что именно за ошибка, и это точно ошибка именно TStrings, а не ADO?
    скорее всего, что выставлено ParamCheck = true и валится именно ADO на парсинге запроса

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 20:27 15-07-2014
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru