подписка



RSS  Подписатся на блог



Follow me!  Follow me!

комментарии

поиск

статистика



 

ProcessMessages в Delphi

clock лютого 16, 2010 10:36 by author cya-st

Многии начинающие програмисты не знают о методе Application.ProcessMessage() и сталкиваются с проблемами, которых не могут объяснить. Например, мы хотим написать что-то на форме и через 5 секунд стереть. Нужно сделать так:

1: procedure TForm1.Button1Click(Sender: TObject);
2: begin
3:    Label1.Caption:='Started';
4:    Application.ProcessMessage;
5:    Sleep(5000);
6:    Label1.Caption:='Finished';
7: end;

Попробуйте убрать Application.ProcessMessage(), и вы никогда не увидете слова "Started". Это связано с тем, что Windows ждет, пока накопятся сообщения в очереди, а не обрабатывает их сразу. Application.ProcessMessage() заставляет обработать все сообщения, которые накопились в данный момент. Подробности можно найти в файлах справки.

Еще это можно применить так:

1: procedure TForm1.Button1Click(Sender: TObject);
2: var
3:    i:integer;
4: begin
5:    for i:=1 to 100000 do
6:    begin
7:      ProgressBar1.Position:=i;
8:      Application.ProcessMessage;
9:    end;
10: end;

Если убрать  Application.ProcessMessage(), то, пока выполняетсяцикл, мы не сможем сдвинуть, свернуть форму, вывести ProgressBar1.





Qt Creator - ошибка доступа к документации

clock лютого 14, 2010 17:08 by author cya-st

Сегодня краткая статья. Сталкивался с этой проблемой, пишу для того что-бы запомнить и конечно для моих читателей. Иногда после обновления  Qt/Qt Creator, в Qt Creator возникает ошибка доступа к документации. Простое лечение: в Qt Creator заходим в пункт меню "Tools->Options", далее переходим на вкладку "Help->Documentation", в "Registered Documentation" удаляем все записи, и добавляем все файлы с расширением *.qch из папки QTDIR/doc/qch на жестком диске. После этого переходим на вкладку "Qt4->Qt Versions" и проверяем правильность указания путей к QMake и MinGW, нажимаем кнопку Rebuild. Перегружаем программу Qt Creator (на вякий случай), и радуемся работе справки Assistant. Если что не понятно, прошу в комменты.





VS2010 / .NET Framework RC4

clock лютого 9, 2010 06:09 by author cya-st

Вышел очередной релиз кандидат VS2010. Всем будет доступен для скачивания гдето 11 февраля, до 11 феврвля только для подписчиков MSDN.





1C Предприятие и Visual C++

clock грудня 24, 2009 12:23 by author cya-st

В данной статье показано, как можно работать с 1С Предприятием из С++ с помощью OLE DB. Дело в том, что 1С не предоставляет для своих пользователей библиотеки импорта (*.tlb), поэтому единственный способ работы (если не использовать какие либо обёртки) - это позднее связывание.

Мы организуем всю необходимую работу с 1С в виде отдельной экспортируемой функции глобального модуля (я надеюсь, Вы уже научились открывать в 1С Глобальный модуль и добавлять в него экспортируемые функции). Мы будем вызывать нужную функцию глобального модуля, которая будет возвращать нужное значение. Для многих практических приложений этого вполне достаточно.

Більше...





S/N винчестера

clock грудня 16, 2009 16:58 by author cya-st

Сейчас я вам покажу как с помощью Windows API получить типа носителя и/или его серийный номер. Использоваться это может в системе контроля например, или в средствах защиты ПЗ использующих привязку к железу.

Нам понадобится всего 2 API - функции:

  • GetDriveType - определяет и возвращает тип носителя;
  • GetVolumeInformation - определяет информацию о носителе, среди которой содержится серийный номер.

Рассмотрим описание этих функций для С++. Первой будет функция GetDriveType, она очень простая и использует всего один параметр - указатель на том. Например "c:\","a:\" и т.д. Функция возвращает одно из следующих значений:

Більше...





Добро пожаловать.

clock грудня 16, 2009 11:46 by author cya-st

Блог посвящен программированию на C++, QT, Delphi, C#. А так же прочим темам связанным с программированием. Ну и конечно темам интересным мне.

Если кому-то еще интересна писанина с моего старого блога, тогда прошу по ссылке http://cyast-cat.blogspot.com/