Форум: "KOL";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизПытаюсь убрать у окна иконку в заголовке (ну это как тип Dialog Найти похожие ветки
← →
Alexander (2002-09-22 16:14) [0]в VCL). Но похоже что-то не так делаю:
SetWindowLong (Form.Handle, GWL_STYLE,
GetWindowLong (Form.Handle, GWL_STYLE) and not SS_ICON);
← →
SPeller (2002-09-22 17:20) [1]а что за константа SS_ICON ?
← →
Alexander (2002-09-22 18:44) [2]Это из MSDN (я и пример где-то там нашёл):
SS_ICON Designates an icon displayed in the dialog box. The given text is the name of an icon (not a filename) defined elsewhere in the resource file. The nWidth and nHeight parameters are ignored; the icon automatically sizes itself.
Константа определена в модуле Windows:
SS_ICON = 3;
← →
BorisMor (2002-09-23 10:35) [3]А почему просто Style окна не менять.
← →
SPeller (2002-09-23 11:23) [4]Может константа эта именно для ДИАЛОГОВЫХ окон?
> The given text is the name of an icon (not a filename) defined
> elsewhere in the resource file
И где же ты в SetWindowLong передаёшь имя иконки в ресурсе?
А где параметры nWidth и nHeight? По-моему, эта константа совсем из другой оперы, тоже самое что SendMessage( SWP_TOPMOST...
← →
Alexander (2002-09-23 13:31) [5]Так я на правильность и не претендовал. Я просто спросил - правильно ли я делаю.
А как надо сделать?
← →
SPeller (2002-09-23 14:40) [6]По-моему, где-то в доках на kol.mastak.ru были описания соответствующих стилей. Посмотри.
← →
Gandalf (2002-09-23 15:31) [7]Почему Form.Style не используешь, реализованно через ...WindowLong.
SS_* - это из нашей оперы, тебе надо типа WS_* ( скажем WS_DLGFRAME). Не ручаюсь что все это можно менять на лету, т.е. после создания формы.
← →
Vladimir Kladov (2002-09-23 17:10) [8]Form.ExStyle := Form.ExStyle or WS_EX_DLGMODALFRAME;
Все можно, все работает. Через SetWindowLong может и не работать,
требуется вызов SetWindowPos:
If you have changed certain window data using SetWindowLong, you must call SetWindowPos to have the changes take effect. Use the following combination for uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
(MSDN)
Собственно, присваивание свойства ExStyle этот вызов беспечивает.
← →
Alexander (2002-09-25 14:09) [9]что-то не получается, попутно баг? нашел:
procedure TForm1.KOLForm1Click(Sender: PObj);
begin
Form.ExStyle := Form.ExStyle or WS_EX_DLGMODALFRAME;
end;
У меня сюда при клике на форме сюда даже не заходит. Делал ещё так:
procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
Form.ExStyle := Form.ExStyle or WS_EX_DLGMODALFRAME;
end;
Стиль окна не меняется.
← →
SPeller (2002-09-25 16:27) [10]Может там просто присутствуют уже другие стили рамки окна? Сначала их убрать надо.
← →
HekTo (2002-09-29 23:15) [11]FWindow.ExStyle:=WS_EX_DLGMODALFRAME;
Так тоже не пашет. Раньше работало, теперь - нет.
Правда я делал это не на последней версии, а на 1.4?
← →
Gandalf (2002-09-30 08:43) [12]Значит так - это возможно часть нового KOL но пока не отлажено, так что качество НЕ гарантирую - могут пропасть кнопки из полоски окна и иконка, но вот! Во всяком случаи эффект дублирующий аналогичное свойство VCL.
type
TBorderStyle=(bsNone,bsSingle,bsToolWindow,bsSizeable,bsSizeToolWin,bsDialog);
var
CreateStyle:TBorderStyle;
begin
CreateStyle:=bsSingle;
with Form1.Form^ do
begin
if (Parent = nil) and (ParentWindow = 0) then
begin
Style := Style and not (WS_CHILD or WS_GROUP or WS_TABSTOP);
end;
begin
case CreateStyle of
bsNone:
begin
if (Parent = nil) and (ParentWindow = 0) then
Style := Style or WS_POPUP;
end;
bsSingle, bsToolWindow:
Style := Style or (WS_CAPTION or WS_BORDER);
bsSizeable, bsSizeToolWin:
begin
Style := Style or (WS_CAPTION or WS_THICKFRAME);
end;
bsDialog:
begin
Style := Style or WS_POPUP or WS_CAPTION;
ExStyle := WS_EX_DLGMODALFRAME or WS_EX_WINDOWEDGE;
Style := Style or WS_DLGFRAME or DS_MODALFRAME;
end;
end;
if CreateStyle in [bsToolWindow, bsSizeToolWin] then
begin
ExStyle := WS_EX_TOOLWINDOW;
end;
if CreateStyle in [bsSingle, bsSizeable, bsNone] then
begin
end;
end;
end;
SendMessage(Form1.Form.Handle, WM_SETICON, 1, 0);
end;
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.026 c