подписка



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.





Установка Target атрибута для SiteMapNode

clock февраля 1, 2010 07:28 by author cya-st

Здравствуйте дорогие читатели. Давненько не писал в этом блоге, на то были свои причины: праздники, выходные, да и если честно, то небыло о чем писать.

Сегодня хочу поделится с вами как можно установить атрибут Target для SiteMapNode, в моем случае надо было запускать ссылку в новом окне. Для этого использовался контрол asp:Menu. Надо определить событие MenuItemDataBound контрола asp:Menu:

1: protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)//Target For Menu Forum
2: {
3:       if(e.Item.NavigateUrl == "http://forum.cya-st.com/")
4:           e.Item.Target = "_blank";
5: }

На сегодня все. Надеюсь статейка была вам полезна.