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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите -такая задача есть ветка в реестре  
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}  
     
    В ней много подключей,(0001, 0002, 0003 и т.д) но в одном из них есть строковый параметр NetworkAddress с  значением 001635A790B9  
     
    Как его найти?

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 04:28 22-10-2011
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Цикл с перебором всех подключей основной ветки и попыткой считать Value NetworkAddress
    Чтобы получить все подключи
    GetKeyNames Возвращает в объекте TStnngs все подключи текущего ключа Вы можете использовать этот метод, если нужно выполнить итерацию всех под-ключей данного ключа
    А далее пробегаетесь по всем подключам и пытаетесь считать Value.
    ValueExists Возвращает True, если указанный элемент данных существует

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:41 22-10-2011
    kirnn



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ppkp
    IsWow64Process - определяет разрядность процесса в 64-битной ОС. Это тебе и надо. 64 разрядное приложение не запустится в в 32 разрядной ОС. Т.е. у тебя задача определить, что у тебя запущена 64 разрядная программа под 64-битной ОС - в остальных случаях будет 32 разрядное.
    Вот ссылка на пример: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1266740974&n=5

    Всего записей: 32 | Зарегистр. 10-12-2001 | Отправлено: 20:22 24-10-2011 | Исправлено: kirnn, 20:26 24-10-2011
    ppkp

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kirnn
    Да, конечно не запустится. Но IsWow64Process нужен для определения оси, на которой запускается приложение. Я же упоминал об определении разрядности приложения на стадии компиляции.

    Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 20:31 24-10-2011
    kirnn



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

    Цитата:
     Но IsWow64Process нужен для определения оси, на которой запускается приложение.
     

    IsWow64Process - служит для определения разрядности процесса в 64-битной ОС.
    В задаче которая была приведена выше, Переменную с версией программы можно определять и выводить на этапе выполнения, а не компиляции. Поэтому и предлагается определять в зависимости от результата функции.

    Всего записей: 32 | Зарегистр. 10-12-2001 | Отправлено: 20:52 24-10-2011 | Исправлено: kirnn, 20:54 24-10-2011
    ppkp

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kirnn
    Можно и так, но если есть переменные среды WIN32 и WIN64, то проще (ИМХО) поставить {$IFDEF WIN64.....Но, Вы правы, можно и через IsWow64Process

    Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 21:18 24-10-2011
    slonruboard



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите разобраться с кодировкой.
    Есть прога на Delphi7, данные сохраняет в mdb файл, использует TADOConnection.
    ConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=data.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123'
    Локально все работает. Но прога используется на нескольких компах с разными региональными настройками. И возникает проблема: Данные введенные в базу на компе с русскими настройками некорректно отображаются на компе с английскими настройками (сплошные "?????"). Хотя если вводить новые данные на английском компе по-русски - они сохраняются и отображаются уже нормально.  
    На русском компе данные сохраняются в mdb  в ANSII кодировке, а на английском - в Unicode кодировке.
    Как принудительно указать кодировку для работы с mdb?

    Всего записей: 32 | Зарегистр. 26-01-2009 | Отправлено: 23:51 25-10-2011 | Исправлено: slonruboard, 17:10 27-10-2011
    eddoc



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slonruboard
    Скорее всего, придется указывать чарсет коннекта в строке подключения. И, чтобы не было кракозябров, попробуйте чарсетом указать UTF-8 (что-то типа ... User ID=Admin; CHARSET = utf8;Data Source=data.mdb;...).
     
    И поскольку D7 не поддерживает юникод, то придется использовать поддерживающие юникод компоненты а-ля TMS Unicode Component Pack или TNT UnicodeComponents. Либо придется мигрировать на "юникодные" версии дельфей.
     
    зы. кстати, на "английской" винде разве данные не в кодировке win 1252 сохраняются ?

    Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 22:49 27-10-2011 | Исправлено: eddoc, 23:20 27-10-2011
    slonruboard



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Для английской XP помогает правка реестра  
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
    "1250"="c_1251.nls"
    "1251"="c_1251.nls"
    "1252"="c_1251.nls"
    или через AppLocate
    Но для Семерки или Висты это не прокатывает.
    Помогает замена в реестре  
    [HKEY_CURRENT_USER\Control Panel\International]
    "Locale"="00000419"
    но требуется перезагрузка и это , к сожалению, плохой вариант - неизвестно какой еще у них софт стоит.
    Немного не понятно что и когда поверяет этот ключ в реестре. Потому что, если после рестарта, еще ничего не запуская, сразу вернуть ключ обратно на "Locale"="00000409", то программа после этого будет работать нормально, без кракозяблов, до перезагрузки, конечно.  
    зы. нет, на "английской" винде данные сохраняются не в кодировке win 1252, а в Unicode.

    Всего записей: 32 | Зарегистр. 26-01-2009 | Отправлено: 12:49 31-10-2011
    Man_Without_Face



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

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 12:48 02-11-2011
    DmitryKz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, где можно найти пример реализации компонента наподобие ListView, но так как это сделано в Object Inspector, например. Т. е., две колонки, первая - имя параметра, вторая - его значение. И в зависимости от значения во второй колонке может быть либо выпадающий список значений, либо это просто похоже на строку редактирования.

    Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 11:43 07-11-2011
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryKz
    В DevExpress есть компаноид TcxVerticalGrid. Делает именно то, что нужно. В правой колонке для значений можно назначать любые редакторы значений.

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

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 11:57 07-11-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryKz
    http://www.delphikingdom.com/asp/itemq.asp?mode=1&itemid=279 И еще куча готовых реализаций существует, у джедаев к примеру.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:08 07-11-2011
    DmitryKz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    psa1974
    бесплатность имеет значение
    Frodo_Torbins
    Вау! Шикарно... Спасибо. Давно я в Королевство не заглядывал...

    Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 12:12 07-11-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryKz
    а VirtualTreeView видел?
     
    http://www.delphi-gems.com/

    Всего записей: 24112 | Зарегистр. 06-12-2002 | Отправлено: 16:37 07-11-2011
    yse

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос по исходнику при компиляции выкидывает на строку ошибки  for I:= 1to NumOfSections-1 do плиз помогите разобраться
     
    ссылка на исходный файл http://foldertools.ifolder.ru/26856334

    Всего записей: 36 | Зарегистр. 29-07-2011 | Отправлено: 12:09 10-11-2011
    volser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yse
    Лучше писать текст ошибки и кусок кода. Скорее всего ошибка в типе переменной.

    Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 12:43 10-11-2011
    YetiReal

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yse
     
    Объявление переменной I перенеси ниже, в функцию DlgFunc(). Пользоваться глобальными переменными как счетчиком цикла не принято. Тем не менее это не криминал, только варнинг (В Delphi5 во всяком случае - [Warning] Cryptor.dpr(139): For loop control variable must be simple local variable).

    Всего записей: 7 | Зарегистр. 24-05-2007 | Отправлено: 13:31 10-11-2011
    yse

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

    Всего записей: 36 | Зарегистр. 29-07-2011 | Отправлено: 14:55 10-11-2011
    Graach



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброго времени суток.
     
    Такой вот вопрос, может кто-то сталкивался: у меня не получается подключить HTML справку к проекту в Delphi 2007 (хотя я думаю версия делфи тут особого значения не имеет). Делала по примеру http_://www.gunsmoker.ru/2011/02/delphi.html. Если приложение с формой fsNormal, то все работает. Если переставить на fsMDIForm, то ничего не происходит. Пример проекта под # .
     
    Подсмотрела пример http_://www.hackchina.com/en/r/207849/MainUnit.pas__html, вроде тоже не работает, или я не совсем поняла что там еще надо сделать

    Всего записей: 111 | Зарегистр. 20-10-2007 | Отправлено: 17:02 10-11-2011
    Открыть новую тему     Написать ответ в эту тему

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