Member
Статус: Не в сети Регистрация: 16.08.2006 Откуда: Пермь
Hi, All!
Имеется проблемка: юзается TWebBrowser, в него из переменной грузится страница, затем скроллится вниз, но почему-то текст местами не прорисовывается, а если прокрутить вверх-вниз то всё Ок что это может быть?
Member
Статус: Не в сети Регистрация: 16.04.2006 Откуда: d3d9.dll Фото: 7
_SGK, благодарю. Как я сам не додумался там посмотреть.
Но тут возник ещё один ламерский вопрос. Есть ли какая-нибудь API функция, которая выполняла бы перезагрузку системы? Типа выдаю сообщение о том что "Для принятия новых настроек требуется перезагрузить систему. Хотите выполнить перезагрузку сейчас?" И варианты ответа "Yes", "No". И типа чтобы перезагрузка пошла автоматом после нажатия кнопки "Yes".
Выключить монитор - это классно, но можно сделать ещё круче - программно завершить работу компьютера. Выглядеть это будет примерно так, с использованием различных режимов выключения:
Код:
ExitWindowsEx(EWX_LOGOFF or ewx_force,0);
завершает работу всех запущенных в системе процессов, сохраняя данные приложения, вызвавшего эту функцию
Код:
ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);
останавливает работу системы в безопасный момент времени. Все буферы очищаются с сохранением данных на диске, все процессы останавливаются
Код:
ExitWindowsEx(EWX_REBOOT or ewx_force,0);
перезагрузка системы
Код:
ExitWindowsEx(EWX_FORCE or ewx_force,0);
завершает работу всех запущенных в системе приложений, не посылая им сообщения WM_QUERYENDSESSION и WM_ENDSESSIO. Это может вызвать потерю не сохраненных данных
Код:
ExitWindowsEx(EWX_POWEROFF or ewx_force,0);
завершает работу компьютера с выключением питания, если система поддерживает автоуправление питанием
Код:
ExitWindowsEx(EWX_FORCEIFHUNG or ewx_force,0);
завершает работу всех запущенных в системе приложений если система висит Ещё вариант перезагрузки:
Выключить монитор - это классно, но можно сделать ещё круче - программно завершить работу компьютера. Выглядеть это будет примерно так, с использованием различных режимов выключения:
Примерно так это будет выглядеть для Win9x , а под NT не следует забывать о необходимости получения определенных привилегий.
function SetPrivilege(aPrivilegeName: string; aEnabled: boolean): boolean; var TPPrev, TP: TTokenPrivileges; Token: THandle; dwRetLen: DWord; begin Result := False; OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, @Token);
TP.PrivilegeCount := 1; if (LookupPrivilegeValue(nil, PChar(aPrivilegeName), TP.Privileges[0].LUID)) then begin if (aEnabled) then TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED else TP.Privileges[0].Attributes := 0;
function WinExit(iFlags: integer): boolean; // возможные флаги: // EWX_LOGOFF // EWX_REBOOT // EWX_SHUTDOWN begin Result := True; if (SetPrivilege('SeShutdownPrivilege', true)) then begin if (not ExitWindowsEx(iFlags, 0)) then begin Result := False; end; SetPrivilege('SeShutdownPrivilege', False) end else begin Result := False; end; end;
Кстати, _SGK, у меня есть пара вопросов к тебе 1.
Есть RichEdit, есть Image.
У последнего присутствуют свойства AlphaBlend и AlphaValue - изменение степени прозрачности.
Вот только если положить на RichEdit полупрозрачный Image, буквы совершенно невидны Надо как-то засандалить Image на фон RichEdit
2.
Почему когда идет изменение размеров чего-либо то все дико моргает?
3.
Как мануально установить длину заголовка формы?
У меня он "особый" Dynamic Skin Form Так вот, он криво изменяет свой размер если попытаться сделать форму уже чем задано в поле констант размеров (MinWidth).
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
Xupyp1 По поводу того, что моргает. Когда ты изменяешь размер чего либо, то у тебя сразу посылается repaint к handle этого объекта. Если у тебя на нем еще что-то "лежит", то после repaint твоего объекта автоматом пошлется все тоже самое и ко всем объектам, которые своими областями так или иначе задевают области первичного объекта или их предка.
Вообщем примерно так, если на панели лежит два имаджа, то после репаинта панели перерисуются и два имаджа.
Правда сразу есть одна хитрость - если мастдай будет считать, что они не изменились, то он просто скажет что перерисовал, но перерисовывать ничего не будет. Для объектов с прозрачностью перерисовка идет всегда при первом же запросе перерисовки, даже если ничего не менялось.
_________________ Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, @Token);
на:
Код:
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
Собаку (addr) –> @ перед Token убрать!
1.Понял что хочешь, х.з. как , никогда не интересовался подобными моментами, терпеть не могу делать пользовательские интерфейсы, сразу после написания логики теряю к задаче интерес и стараюсь соскочить с интерфейса всеми доступными способами. Но то, что не: "Image на фон RichEdit" это точно! Так не делают. 2. Перерисовка! Макс уже написал. 3. Не понял вопрос! Что значит длину заголовка формы? А тебе что реально дает установить Width меньше чем Constraints.MinWidth?
Member
Статус: Не в сети Регистрация: 16.04.2006 Откуда: d3d9.dll Фото: 7
Xupyp1, спасибо, но я чёто никак недогоню куда вставлять эти полученные привилегии. Кстати ExitWindowsEx(EWX_LOGOFF or ewx_force,0) работает и без привилегий, в отличие от ExitWindowsEx(EWX_REBOOT or ewx_force,0) (которая как раз и нужна). Что-то это слишком сложно. Пожалуй ограничусь сообщением "Для принятия новых настроек перезагрузите систему".
Member
Статус: Не в сети Регистрация: 16.08.2006 Откуда: Пермь
Xupyp1
Xupyp1 писал(а):
Там есть что-то типо рефреша?
Точно, есть refresh! Спасибо за наводку В хэлпе написано что refresh обновляет загруженую страницу, тоесть заново грузит с сервера, а уменя-то страница грузися из переменной, по этому этот метод я не рассматривал
Максим_SGK 2-й день бьюсь с PNG, все идет к тому, что я проиграю Народ, помогите подключить этот самый PNG, плиз Добавлено спустя 1 час, 24 минуты, 23 секунды Забыл написать
во время выполения нет никаких проблем загрузить картинку *.png (pngimage.pas в uses)
Вот только на стадии разработки этого не сделать Ругается на формат.
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
Xupyp1 А тебе обязательно png сразу в exe включать или как? На этапе выполнения не подойдет? А так, попробуй подсоединить твой pngimage.pas к пользовательскому пакаджу и откомпилируй, тогда дельфя у тебя должна узнать о таком формате. А в процессе дезайна без такого финта ессно дельфя не знает о этом формате.
Хотя я бы на твоем месте грузил уже на этапе выполения - нефига экзешник грязнить. Хотя если ты прогу поставляешь только в виде экзе, а не инсталлера, то тогда можно и так
_________________ Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!
Место на форме под картинку выдели и все, во время выполнения ведь рисует нормально, чи шо?
У меня использются не пара и даже не тройка картинок На весь проект несколько десятков. Как-то напряжно их все во время выполнения грузить Да и чтоб понимать, что делаеш лучше сразу видеть все. Максим
Максим писал(а):
А так, попробуй подсоединить твой pngimage.pas к пользовательскому пакаджу и откомпилируй
Спасибо, все получилось!
А как бы теперь научить кнопки от DynamicSkinForm принимать в свойство Glyph png картинки?
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
Xupyp1 Ты бы лучше расказал, что у тебя такой за проект?!
А по поводу DynamicSkinForm - навскидку не помню, но если в добавлении имаджей в глифы нет All Files, то без исходников наверное никак (можно конечно переименовать файлы в bmp или jpg, если понимает и попробовать. А вот будет ли толк от этого ты сам и проверишь).
Кстати, вышли плиз на почту твой pngimage.pas, а то такой штуки у меня нет (можно конечно написать, но просто времени нет. Хотя в свое время, когда было это самое время, считыватель jpeg и gif файлов написал сам).
_________________ Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!
_________
И так, между делом.
BDS 2006 Update 2 страдает жесткой утечкой памяти Оперативы у меня не такуж много, потому через пару часов работы Делфи начинает тупить.
Как бы вылечить её Добавлено спустя 3 минуты, 51 секунду Максим Мыло ушло. Размер файла ~280 КБ Добавлено спустя 7 часов, 7 минут, 8 секунд Ура!!!
Поставил hotfix rollup, удалил CPB и все прочее кроме Delphi for Win32
... ииии.... нету больше никаких сообщений об ошибках :):)
+ ко всему прочему грузится теперь быстрее чем D7
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения