kami

Пользователи
  • Публикации

    446
  • Зарегистрирован

  • Посещение

  • Days Won

    15

kami last won the day on 12 марта

kami had the most liked content!

4 подписчика

О kami

  • Звание
    Продвинутый пользователь
  • День рождения 16.06.1981

Информация

  • Пол
    Не определился
  • Город
    Санкт-Петербург

Контакты

  • StackOverflow
    http://ru.stackoverflow.com/users/192901/kami

Посетители профиля

469 просмотров профиля
  1. Комбобокс отсылает сообщение о создании своего окна выпадающего списка.
  2. А оно и будет хорошо до тех пор, пока хендл формы не пересоздастся.
  3. просто закомментировать пересоздание нативного браузера - не самая хорошая идея. Иногда оно действительно необходимо.
  4. LibraryPath для выбранной платформы в норме?
  5. а это не дедлок. Это, грубо говоря, while true do sleep(maxint); т.е просто засыпаем текущий поток, не влияя при этом на остальные. Дедлок - это когда один поток ждет реакции от другого потока, который ждет реакции от первого потока. Возможно - даже через третьи, четвертые... руки. Получается кольцо ожидания. В приведенном примере никакой зависимости от другого потока, у которого зависимость от этого потока - нет.
  6. не-а. В пределах одного потока можно хоть MaxInt раз входить в критическую секцию, ничего от этого не замерзнет. А вот CS.Enter; myThread.Start; // и внутри execute тоже CS.Enter myThread.WaitFor; Главный поток вошел в критическую секцию, запустил доп.поток и ожидает, пока тот завершится (надуманный пример, не надо делать поток ради делания потока). Доп.поток тоже вошел в критическую секцию и оказался заблокирован, потому что главный поток уже занял ее "под себя". Итого - главный поток висит, ожидая пока завершится доп., а доп.висит, ожидая пока освободится секция.
  7. Да. И иногда очень удобно. Сразу получаешь полный набор консистентных данных (главных и зависимых), выполнив всего один запрос к базе.
  8. ADO? Работаем с первым. Потом: myADOStoredProc.Recordset := myADOStoredProc.NextRecordset(i); // здесь i - фейковая Integer переменная, она не понадобится далее И продолжаем работать с первым, но теперь там уже сидит второй Возможно, прокатит и такой финт ушами: myADOStoredProc.open; tmpQuery.Recordset:=myADOStoredProc.NextRecordset(i); // и пробуем использовать StoredProc как первый набор данных, а tmpQuery - как второй. Но не факт, что такое получится, // возможно - для правильного подтягивания рекордсета в сторонний квери потребуется сперва открыть его фейковым запросом, например /// `Select 1`
  9. Вы подменяете понятия. Озвученное - это (возможно) "самое разумное решение", если "надо сделать быстро, а дальше трава не расти" (вспоминаем картинку быстро-качественно-дорого), а никак не самое правильное. У индейцев есть как минимум одна плохая черта - они очень любят покушать ресурсы системы, особенно - посоздавать потоков. Посему система, построенная на тетеринге будет не очень масштабируемой в условиях интенсивного обмена. Небольшая ремарка - еще в первой версии появления нативных http компонентов официальные представители Embarcadero настоятельно стали рекомендовать отказаться от Indy. Самое правильное решение должно удовлетворять всем требованиям, предъявляемым к приложению, обладать хорошей способностью к модификации/устранению ошибок/надстраиваемостью функционала и быть легко масштабируемым. У тетеринга есть одно неоспоримое преимущество - это кроссплатформенность. В остальном правильность выбора его в качестве решения зависит от задачи.
  10. не соглашусь. Тетеринг основан на Indy, а это уже автоматически означает "не самое правильное".
  11. и однобокая. Далеко не всегда есть необходимость парсить гигабайтные джейсоны. Чаще (имхо) бывает нужно обработать много достаточно маленьких, но с какой-нибудь структурой а-ля "массив объектов в объекте, который в...". Или быстро сформировать свой (много своих). И вот тут картина может поменяться.
  12. В описании русским по экрану написано: " Классы-обертки над TClient|TServerSocket, работоспособны Delphi 2009 и выше "
  13. Ну, из всех вопросов - важен только первый. Остальное уже есть неоднократно. Пропиарю себя: https://github.com/kami-soft/SimpleTCPComponents
  14. Ну, чукча не читатель, чукча писатель Не посмотрел что обсуждалось ранее, полез сразу в исходники TreeView. Ну, тогда только рекурсия остается...