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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    Избавляйтесь от глобавльных переменных, TIdTCPClient должен принадлежать потоку, а не быть глобальной переменной, ибо вся синхронизация в данном случае идет лесом. Хотя у вас она вообще отсутствует, потоэтому непредсказуемые ошибки и вылеты гарантированы.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 16:59 25-02-2012
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Подвисает на Client1.Connect; Торент-клиентов нет, но есть другие проги опрашивающие контроллеры, в них несколько потоков работают нормально(просматривал снифером)
    ant0ni02004
    Я пробывал как в нутри потока, так и в нутри класса прописывать, проблема остаётся...
    LadyOfWood
    избавился от всех глобальных переменных, даже привязки убрал к основному потоку, ничего не помогает....
    Теперь ещё одна проблема появилась, когда запускаю только один работает как часики, когда 2 и более виден старт последнего, потом встаёт  так-же на конекте...
    Может мне в другой версии делфи откампилить проект....

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 07:40 27-02-2012
    usatiypolosatiy



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вопрос по работе с word
     
    Немогу сделать поиск текста в документе. Причем надо найти все случаи совпадения по документу и отметить их цветом. Подскажите кто встречался.

    Всего записей: 4 | Зарегистр. 10-02-2012 | Отправлено: 11:54 27-02-2012
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    usatiypolosatiy
    Запись и просмотр исходного кода макроса?
     
    sammozg
    Выложите обновленный код без глобальных переменных.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:52 27-02-2012
    usatiypolosatiy



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Не получается из макроса получить работоспособный код. на VBA получается но не могу перенести в delphi.

    Всего записей: 4 | Зарегистр. 10-02-2012 | Отправлено: 13:07 27-02-2012
    LadyOfWood

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

    Цитата:
    избавился от всех глобальных переменных, даже привязки убрал к основному потоку, ничего не помогает....  

    Код в студию. Новая версия Delphi вряд ли поможет.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 16:01 27-02-2012
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    LadyOfWood
    Благодарю за помощь, я решил проблему иначе, создал новый проект и дописывал его кодом из предыдущего, все заработало на ура, единственное количество форм и компонентов уменьшилось, Я когда создавал предыдущий проект присоединял к проекту много различных форм, некоторые позже удолялись, может в этом была проблема, сейчас оставил одну форму и один поток, В итоге код потока стал таким

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 09:25 29-02-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    delphi 2006
    народ, подскажите как сделать post запрос на сервер через HTTPS, используя при этом установленный в windows хранилище клиентский сертификат (рабочий пример очень нужен). Indy не умеет обращаться с виндовым хранилищем сертификатов, а secureblackbox (7 версия) плюется на совершенно корректный сертификат (invalid key material). голову уже сломал в поисках решения. нужно работать именно с виндовым хранилищем, т.к. сертификаты генерятся виндовым сервисом

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 22:36 29-02-2012
    LadyOfWood

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

    Цитата:
    а secureblackbox (7 версия) плюется на совершенно корректный сертификат

    Secure Blackbox действительно хорошее решения и достаточно всеядное, может просто флаги указаны неверно или что в этом роде, лучше взглянуть под отладчиком.

    Цитата:
    Indy не умеет обращаться

    Indy тут сама ничего не умеет, к ней обычно прикручивают OpenSSL. Можно и SecureBlackbox прикрутить, там есть необходимые файлы.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 22:26 01-03-2012
    ArtSnegirev



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

    Цитата:
    Secure Blackbox действительно хорошее решения и достаточно всеядное, может просто флаги указаны неверно или что в этом роде, лучше взглянуть под отладчиком.  

    Нет, код правильный. Это та версия, на которой я проверял оказалось кривой, об написали на сайте тех. поддержки. С тем же кодом без ошибок отработала 9-я версия, но на нее у меня не ключа.
     

    Цитата:
    Indy тут сама ничего не умеет, к ней обычно прикручивают OpenSSL. Можно и SecureBlackbox прикрутить, там есть необходимые файлы.

    OpenSSL не понимает виндовые сертификаты, и не умеет обращаться к виндовому хранилищу.
     
    Нашел в сети старую (5) версию SecureBlackbox, с ней вроде все работает.

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 00:42 02-03-2012
    StalkerSoftware



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет
     
    Есть небольшой вопрос по Delphi:
    Хочу сделать рамку вокруг TEdit.  
     
    Делаю наследника от TEdit и прописываю ему WMPaint
     
    Это код обработчика
     
    Рамка не рисуется.
     
    Хотя если заменить
       oCanvas.Control := Self;
       oCanvas.Font := Self.Font;
    на
       oCanvas.Control := Self.Parent;
       oCanvas.Font := Self.Font;
    то все рисуется нормально.
     
    Вопрос: Почему так ?
    Я хочу понять, почему рамка рисуется только на родителе (Parent), а на самом компоненте (Self) не хочет ...

    Всего записей: 682 | Зарегистр. 23-06-2008 | Отправлено: 19:36 02-03-2012 | Исправлено: StalkerSoftware, 19:40 02-03-2012
    LadyOfWood

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

    Цитата:
    Вопрос: Почему так ?  

    Ну так посмотрите как вы рисуете,
    Код:
    psRect.Left := Left - 1;
    это находится  вне прямоугольнока едита и еще в неправильных координатах (в координтах едита должно быть -1, но это все равно не поможет). Во втором случае вы нормально рисуете на канве родительского окна, в правильных координатах.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 19:43 02-03-2012
    StalkerSoftware



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

    Цитата:
    это находится  вне прямоугольнока едита и еще в неправильных координатах (в координтах едита должно быть -1, но это все равно не поможет).

    Хорошо, а какие тогда я должен указать координаты, что бы рамка рисовалась внутри, по краям самого TEdit ?
     
    Попробовал вариант с координатами
     
         psRect.Left := 0;
         psRect.Right := Left + Width;
         psRect.Top := 0;
         psRect.Bottom := Top + Height;
     
    Теперь оно рисуется, но как то криво.
    Или может лучше рисовать его на родителе ?

    Всего записей: 682 | Зарегистр. 23-06-2008 | Отправлено: 21:48 02-03-2012
    LadyOfWood

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

    Код:
     
    psRect.Left := 0;  
    psRect.Right := Width;  
    psRect.Top := 0;  
    psRect.Bottom := Height;  
     

    Хотя криво будет в любом случае, ибо контрол рисуется полностью, а потом поверх рамка. Можно еще отключить системный бордюр WS_BORDER, но тогда надо нормально установить прямоугольник вывода текста EM_SETRECT и работает это только для многострочного едита ES_MULTILINE.  

    Цитата:
    Или может лучше рисовать его на родителе ?

    Если устраивает то почему нет, но выглядит не очень хорошо.

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 22:08 02-03-2012 | Исправлено: LadyOfWood, 22:12 02-03-2012
    Ichigo2



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как можно сделать, чтобы при старте Делфи открывался юнит из проекта, а не проект?

    Всего записей: 153 | Зарегистр. 01-05-2011 | Отправлено: 13:03 04-03-2012 | Исправлено: Ichigo2, 13:03 04-03-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ichigo2
    Скорее всего имеется в виду - чтобы открывался юнит при открытии проекта!?
    Можно поставить в настройках галку "Autosave project desktop", тогда при повторном открытии проекта все ранее открытые файлы также будут открыты.

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 14:45 04-03-2012
    Ichigo2



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArtSnegirev
    Вы меня поняли. Отлично, все работает!

    Всего записей: 153 | Зарегистр. 01-05-2011 | Отправлено: 17:08 04-03-2012
    Ichigo2



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не пойму, как засунуть ListView во вкладку TabControl или TabSet. Почему-то нельзя просто взять и перетащить его. Как правильно?

    Всего записей: 153 | Зарегистр. 01-05-2011 | Отправлено: 11:27 05-03-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    попробуй Ctrl-X, потом выдели контрол куда вставить и Ctrl-V

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 12:14 05-03-2012
    salexn1



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

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 12:45 05-03-2012
    Открыть новую тему     Написать ответ в эту тему

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