kami

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

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

  • Посещение

  • Days Won

    18

kami last won the day on 24 мая

kami had the most liked content!

4 подписчика

О kami

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

Информация

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

Контакты

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

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

498 просмотров профиля
  1. А точно нужно дожидаться, пока все потоки отработают? Это не асинхронные задачи? В качестве еще одного варианта - воспользуйтесь interlocked-функциями. Главный поток определяет, сколько вторичных потоков он запустит. И выставляет нужное значение в integer-переменной. Каждый поток, завершив виток просчета вызывает InterlockedDecrement(ThreadCounter); При достижении нуля - из последнего вторичного потока вызывается TThread.Queue для сообщения главному потоку "все просчеты завершены". Ну и - потоки входят в спячку, например - на ожидании TEvent. А получив очередную порцию данных для просчета - выходят из ожидания события. Даже лучше не так: каждый поток при запуске делает InterlockedIncrement(ThreadCounter), не стоит главному потоку выставлять начальное значение, хватит с него и запуска вторичных потоков. А вот всё остальное - да, остается в силе.
  2. Если Windows - то это WaitForMultipleObjects в остальных случаях - см. TTask.WaitForAll
  3. лень было писать полностью, первая часть там копи-паст приведенного мной
  4. AND ((FieldDate<=D2) OR (D2 IS NULL))
  5. определена. Начало потока + 6 байт + количество байт, ушедших в строку. Правильнее будет сделать mm.CopyFrom(InStream, InStream.Size - InStream.Position); , но не суть. А вот с путаницей байты-символы это да, это печалька.
  6. один из комментов, остальное мусор: I also experienced this exception. I had to delete two glowanimations and then it did not except anymore (which is not really a solution).
  7. В первую очередь - ошибка в месте вызова Log.d Где производится запись в лог? Правильно, в конструкторе компонента. А где выставляются позиция и габариты? Да, после завершения работы конструктора. Когда Log.D уже отработал.
  8. userSelectedRowIndex:=grid.Selected; Или использовать OnSelectCell, там Row и Col выбранной ячейки доступны напрямую. Всё, строка (возможно - и колонка) получены, дальше дело за вашим кодом.
  9. Этот глюк идет в делфи с незапамятных времен. Я выхожу из ситуации так: если что-то нужно подправить визуально: 1 меняю предка на TFrame. 2 сохраняю модуль, заново его открываю (теперь дизайнер будет работать нормально, но естественно - не скомпилируется). 3 кидаю все что нужно на фрейм, настраиваю свойства и события 4 сохраняю 5 меняю предка опять на нужного и работаю с кодом (теперь компилироваться будет, но дизайнер опять недоступен). Иногда получается после п.2 выполнить 5 и дизайнер продолжает быть доступным. До закрытия вкладки с модулем.
  10. Вы слишком категоричны. 90% глюков, на которые разработчик отвечает "ну у меня же работает" все-таки связаны с недочетами в коде. Да, в этом недочете принимает участие конфигурация оборудования, установленного ПО, объема ОЗУ и т.д. и т.п. Но именно Вам придется "обходить" эту ситуацию, а не пользователю - менять конфигурацию. И стартом в этом направлении могут послужить рекомендации ENRGY.
  11. Нормативная документация (устав, цели, программа) Актуальные вопросы на предстоящую повестку дня на какой-нибудь сессии Обращения от граждан (хотя они гораздо чаще идут на конкретного представителя) "Внутреннее" голосование по какому-нибудь разрабатываемому документу / согласование уполномоченными должностными лицами А вообще - лучше всего уточнить у заказчика. Не "какой функционал должен быть у приложения" , "дайте ТЗ", а "давайте вместе подумаем / пофантазируем - вот у нас есть мобильное приложение. И мы будем его использовать для / чтобы ...". Причем это лучше делать не в письменной форме, а при личной встрече (при наличии такой возможности).
  12. Видимо, они были не универсальны, а расширяемы. То есть - заточены под текущую задачу с большим заделом "на будущее". Справедливости ради надо сказать, что у меня тоже http-обмен всегда затачивался под конкретную задачу, без использования чего-то универсализированного. В отличие от некоторых других областей.
  13. Комбобокс отсылает сообщение о создании своего окна выпадающего списка.
  14. А оно и будет хорошо до тех пор, пока хендл формы не пересоздастся.