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

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

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

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



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

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

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

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток. Есть модуль Dll с отчетами. Скины в DevExpress (v4.8) в рантайме не поддерживаются. В опциях выставляю галочку Run with runtime puckages, тогда поддерживаются. Вопрос1: можно ли только часть пакетов скомпилировать таким образом? Вопрос2: какие тогда нужны Dll'ки для поддержки скинов? И еще главная суть проблемы: моя dll скомпилирована под Delhi 2009, а exe под Delphi 5.  
     
    Добавлено:
    Второй вопрос не актуален, их нужно слишком много. Есть другой вопрос: можно ли указать экзешнику другую папку для этих bpl (devexpress), кроме как корневой каталог программы и system32. Например папку в корневом каталоге программы?
     
    Добавлено:
    Экзешник для которого нужно указать папку скопмилирован под Delphi 5

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 15:06 15-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Чтобы опция "Build with runtime puckages" работала, все должно быть скомпилено в одной версии делфей. По поводу остального - пакеты можно загружать и динамически, но понятное дело не все.
     
    Bonivur
    Все же приведу ссылку на один из своих прошлых постов:
    http://forum.ru-board.com/topic.cgi?forum=33&topic=9383&start=1400#18
     
    eddoc
    Цитата:
    а компонент С.Рощина ваапче ничего не отрисовывает.
    Примерчик плиз в студию.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 18:47 15-05-2010 | Исправлено: Frodo_Torbins, 19:06 15-05-2010
    eddoc



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

    Цитата:
    Примерчик плиз в студию.

    вот, делал по рекомендованному

    Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 01:27 17-05-2010
    Man_Without_Face



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

    Цитата:
    Чтобы опция "Build with runtime puckages" работала, все должно быть скомпилено в одной версии делфей.

    Уже пробовал, все нормально работает. Вопрос в другом:
    Цитата:
    можно ли указать экзешнику другую папку для этих bpl (devexpress), кроме как корневой каталог программы и system32. Например папку в корневом каталоге программы?

     
     

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:09 17-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Тогда встречный вопрос: можно ли указать экзешнику другую папку для используемых им dll? Ответ: конечно можно, если прописать ее в переменную окружения "Path".

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:01 17-05-2010 | Исправлено: Frodo_Torbins, 11:30 17-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Если можно, то поконкретней где, этих Path довольно много (и в Tools->Options, и в Project->Options). И можно ли это в Delphi 5 сделать?

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 11:17 17-05-2010
    Bonivur



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

    Цитата:
    Все же приведу ссылку на один из своих прошлых постов:  
    http://forum.ru-board.com/topic.cgi?forum=33&topic=9383&start=1400#18

    Спасибо, но меня интересует использование в Delphi 7 возможности работы с символьными множествами и строками WideString. Возможно есть какой-то другой способ сохранить символы юникода в Memo после обработки? То есть, допустим, пользователь вставляет в Memo текст в формате юникод и он отображается верно, но после обработки (замены символов, обрезание строк, и .т.д.) он становится уже НЕ-юникодным Как быть?

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 11:30 17-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    eddoc
    У меня его примеры прекрасно работают.
     
    Man_Without_Face
    Я про системные. Приблизительно: Мой Компьютер -> Свойства -> Дополнительно -> Переменные окружения.
     
    Bonivur
    А у вас мемо юникодный?

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:34 17-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    А по другому можно как-нибудь, а то так не пойдет? Пока пользователю объясниш...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 11:49 17-05-2010
    psa1974



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

    Цитата:
    можно ли указать экзешнику другую папку для этих bpl  

    Хм... А если тупо сделать экзешнику ярлык и прописать в его свойствах нужное значение в "рабочая папка"?

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 13:24 17-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    psa1974
    Мне нужно пользователю,  у которого стоит экзешник, просто скинуть DLL (через нет) и все. Или же папку, в которой будут DLL и bpl'ки девок.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 14:01 17-05-2010
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Ну ты хоть попробуй. Если получится - можно за 5 минут наваять элементарный инсталлятор в том же InnoSetup или что больше нравится, который сам скинет куда надо твою ДЛЛ и сделает ярлыки какие надо и где надо... Это вообще не проблема. Если что - помогу с инсталлятором...

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 15:10 17-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    psa1974
    В том то все и дело, что моя только DLL, экзешник ведущего программиста. Он сказал только одну Dll или на крайний случай папку с ней. Я хочу чтобы была поддержка скинов, а для этого нужно собирать динамически. И bpl'ки кидать в папку с Dll, а экзешнику как то нужно туда прописать путь.  

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 15:57 17-05-2010
    Bonivur



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

    Цитата:
    А у вас мемо юникодный?

    Обычный мемо. А какая разница? Изначаль при вставке в него текста он отображает все символы правильно. Да и был бы он юникодным - редактирование "убивает" всю юникодность. У меня временная переменная, куда я помещаю текст Мемо. Обрабатываю, потом помещаю обратно.

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 16:03 17-05-2010
    psa1974



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

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 19:27 17-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Цитата:
    А по другому можно как-нибудь, а то так не пойдет? Пока пользователю объясниш...  
    Зачем пользователю объяснять? Надо всего лишь чтобы экзешник вызвал функции GetEnvironmentVariable/SetEnvironmentVariable.
    Хотя если какой то из пакетов используется лишь вашей DLL, то почему бы не скомпилить ее с этим пакетом?
     
    Bonivur
    Для работы с сетами в D2009+ можно использовать несколько библиотек. Попробуйте, может одна из них вам подойдет. А по поводу юникодного мемо гляньте TNTControls.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:41 17-05-2010
    Bonivur



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

    Цитата:
    Для работы с сетами в D2009+ можно использовать несколько библиотек. Попробуйте, может одна из них вам подойдет. А по поводу юникодного мемо гляньте TNTControls.

    Мне нужно для D7 - работа WideString с символьными сетами. То есть, пишу
    var
     ws: WideString;
    ...
      ws:=Memo1.Text;
      if ws[1] in ['a'..'z'] then...  //ошибка Incopatible types
    Возможно ли как-то заставить работать сеты с WideString?

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 09:01 18-05-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    DLL плохо работает с VCL. Поэтому я не могу скомпилить вместе с ней эти пакеты. В дезайн скины вешаются нормально, но в рантайм они пропадают.
     
     
    Добавлено:
    Frodo_Torbins

    Цитата:
    Надо всего лишь чтобы экзешник вызвал функции GetEnvironmentVariable/SetEnvironmentVariable.

    Вот попробовал, только ничего не возвращает функция, может что не так делаю?
    Подробнее...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:05 18-05-2010
    AviDen



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

    Цитата:
    Возможно есть какой-то другой способ сохранить символы юникода в Memo после обработки?

    Да, используя сообщение EM_GETTEXTEX. Подробности в MSDN.
     

    Цитата:
    Возможно ли как-то заставить работать сеты с WideString?

    Нет. Но конкретно в этом примере:

    Код:
    var  
     ws: WideString;  
    ...  
      ws:=Memo1.Text;  
      if ws[1] in ['a'..'z'] then...  //ошибка Incopatible types

    можно поступить одним из след. способов:

    Код:
     
    if AnsiChar(ws[1]) in ['a'..'z'] then... // будет правильно работать только для латиницы и базовых знаков препинания
     

    или

    Код:
    if (ws[1] >= 'a') and (ws[1] <= 'z') then... // будет правильно работать только для непрерывных диапазонов  

     
    + учтите, что т.к. у Вас неюникодная версия Delphi, то все строковые константы, включённые непосредственно в код, будут в кодовой странице ansi, а не unicode.
     
    А вообще, научить стандартные VCL-контролы в D7 или младше корректно работать с юникодом - задача, строго говоря, невыполнимая, всё из-за той же ansi-ориентированности как компилятора, так и VCL. Для 100% качественного результата либо пишите свои контролы, либо переходите на более старшие версии delphi. Ну, или может есть юникодные библиотки контролов под D7 (я про такие не слышал).

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 11:55 18-05-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bonivur
    AviDen
     
    Ну, или может есть юникодные библиотки контролов под D7 (я про такие не слышал).
     
    Ну как же - Tnt Unicode Controls, впоследствии купленные TMS и ставшие платными - но на просторах сети все еще можно найти opensource-вариант (это, правда, модифицированная версия - с добавленной поддержкой unicode-сообщений в exception'ы; если надо оргиниальный исходный пакет - могу залить на какой-нить файлообменник).

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 12:46 18-05-2010
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru