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

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



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

    Цитата:
    А какой максимум?

    Максимум пока не определил, так-как работаю с тестовыми данными, но предположительно раза в 4 больше, но если оно больше 200-300 мб расти не будет этого бы хватило, но оно же не останавливается, а программа должна непрерывно работать,

    Цитата:
    P.S. И сюда еще загляните: https://support.microsoft.com/ru-ru/kb/978155  

    Спасибо за информацию, я тестировал на WinXP, попробую на ночь оставить на Win7x64, посмотрю может всё-таки в винде дело...
     

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 14:57 27-08-2015
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По тестировал на разных ОС эффекта нет, залез в TADO дошел до ole32.dll, на этом ступор, и у меня созрел вполне логичный вопрос, можно ли её как нибудь выгрузить принудительно, так как в конструкторе:
    constructor TADOCommand.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      FCommandObject := CreateADOObject(CLASS_Command) as _Command;
      FParameters := TParameters.Create(Self, TParameter);
      FParamCheck := True;
      CommandType := cmdText;
      CommandTextAlias := 'CommandText'; { Do not localize }
      ComponentRef := Self;
    end;
     
     Self - означает что компонент самостоятельный....

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 09:44 03-09-2015
    ant0ni02004

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

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 10:38 03-09-2015
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ant0ni02004
    Если я  правильно понимаю то под DLL выделяется две памяти, в одной хранится сама DLL в другой данные которые использует, но вот как очистить эту область с данными я пока не нашел, поэтому и пытаюсь удалить из памяти всю DLL, а так как она вызывается не через loadLibrery, а как external, то не получается её выгрузить стандартным FreeLibrery. Может знаешь как кэш почистить?

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 10:58 03-09-2015
    SuPriTo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    Реализуй свою собственную DLL и там реализуй всю работу с ADO

    Всего записей: 1474 | Зарегистр. 24-03-2009 | Отправлено: 11:12 03-09-2015
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    а почистить никак.  
    только сервис перестартовывать время от времени.
    SuPriTo
    DLL не поможет, а вот отдельный процесс - да. но это сколько же заморачиваться с ним...

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 11:33 03-09-2015
    SuPriTo



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

    Цитата:
    вот отдельный процесс - да. но это сколько же заморачиваться с ним...  

    А что с ним заморачиваться, данные по pipe или filemapping передаешь и усе.
    Есть под это готовые компаненты. _http://www.cromis.net/blog/downloads/
    "Cromis IPC" - это как пример готового решения для обмена данными через Pipe.
     

    Всего записей: 1474 | Зарегистр. 24-03-2009 | Отправлено: 11:41 03-09-2015
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    ADO не даст гибко себя настроить. Нужно либо от него отказаться, либо запускать взаимодействие с БД в отдельном процессе, и периодически его убивать.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:56 03-09-2015
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SuPriTo
    благодарю за совет но всё-же заморачиватся придётся много, что-бы получить в режиме реального времени
    Frodo_Torbins
    кроме ADO я нисчем не работал и описания не видел (в книгах по программированию БД все про ADO пишут)... видимо придётся DBE изучать...

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 12:43 03-09-2015
    SuPriTo



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

    Цитата:
    видимо придётся DBE изучать...  

    BDE уже старая технология в новых версиях уже не поддерживается. FireDac надо изучать и переходить на новую версию.

    Всего записей: 1474 | Зарегистр. 24-03-2009 | Отправлено: 13:07 03-09-2015
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    Боже упаси через BDE работать. Этот нафталин пострашнее АДО будет. Компоненты прямого доступа пробуйте.  

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 13:58 03-09-2015
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Благодарю за совет, из всего выше сказанного напрашивается один вывод: от delphi 7 придётся отказаться, тогда какую лучше использовать? я как-то пытался на 2010 делать, но что-то очень много изменений было в компонентах сетевого обмена..., с ХЕ5 пробовал работать но не сильно углублялся в разницу с 7

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 14:53 03-09-2015
    SuPriTo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sammozg
    Если не нужен Unicode тогда переходи на xe7 или попробуй новую 10 версию. Если нужен уникод, то могут возникнуть проблемы со стоками действительно надо будет переделывать.

    Всего записей: 1474 | Зарегистр. 24-03-2009 | Отправлено: 15:28 03-09-2015 | Исправлено: SuPriTo, 15:29 03-09-2015
    sammozg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всех благодарю за помощь

    Всего записей: 90 | Зарегистр. 30-06-2011 | Отправлено: 05:51 04-09-2015
    jFobos



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно построить относительно сложное дерево (TreeView). В котором есть много одинаковых элементов (на скрине Sub_node2).  
    Вся загвоздка в том, что при вставке нового элемента Sub_node2 нужно также вставлять все входящие в него элементы. Также при вставке нового входящего элемента (на скрине Sub_node2.1 или Sub_node2.2) в Sub_node2 нужно также вставить их во все остальные (уже существующие) Sub_node2. Надеюсь нормально изложил идею...
     
       
     
    Подскажите пожалуйста как проще всего реализовать выше сказанное

    Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 12:46 10-09-2015
    protoror



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jFobos
    почитай про virtualtreeview он бесплатный и с кучей примеров.

    Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 15:20 10-09-2015
    NeoAnomaly

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jFobos в чём именно сложность? В работе с TreeView? В создании модели, которая реализовывала бы требуемую логику?
     
    Upd
    Скорее всего у тебя сложность в том, что ты работаешь напрямую с TreeView, не имея никакой абстракции и из-за этого не знаешь, как после добавления какой либо ноды найти все подобные и модифицировать их соотв. образом.
    Отделяй модель от представления и не будет никаких проблем

    Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 14:10 11-09-2015 | Исправлено: NeoAnomaly, 14:15 11-09-2015
    asutp2

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jFobos, действительно, используй virtualtreeview, твоя задача решается элементарно.
     
    Для начала, узлы в VirtualTreeView имеют возможность хранения необходимого набора данных (смотри свойства NodeDataSize и GetNodeData у дерева), т.е. в узлах дерева ты можешь хранить любые нужные данные, включая идентификаторы, ссылки и т.д.
     
    Далее, чтобы вставить одинаковые данные в повторяющиеся узлы, просто проходишь по дереву (можно рекурсивно, можно через свой стек) и вставляешь

    Всего записей: 785 | Зарегистр. 22-10-2004 | Отправлено: 19:24 11-09-2015
    jFobos



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    protoror
    NeoAnomaly
    asutp2
     
    Спасибо. Все получилось как надо

    Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 15:01 13-09-2015
    XenoZ



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как в D7 сформировать запрос(ы) на Гисметео для получения данных на:
    1. текущий момент;
    2. конкретный день?
     
    Пошарив по сети, нашел такой вариант:

    Код:
    a:=IdHTTP1.Get('http://informer.gismeteo.ru/xml/26063.xml');

    , но он возвращает прогноз на весь день (утро, день, вечер).

    ----------
    А оно мне надо?..

    Всего записей: 5438 | Зарегистр. 29-03-2006 | Отправлено: 17:04 26-12-2015 | Исправлено: XenoZ, 17:05 26-12-2015
    Открыть новую тему     Написать ответ в эту тему

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