Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Полосы прокрутки на форме.


novice_man ©   (2006-02-24 08:45:00) 

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


novice_man   (2006-02-24 13:41:00) [1]

Спасибо.


sniknik   (2006-02-24 13:29:00) [2]

...

implementation

{$R *.dfm}

function ClientWindowProc(wnd: HWND; msg: Cardinal; wparam, lparam: Integer ): Integer; stdcall;
var
 f: Pointer;
begin
 f:= Pointer(GetWindowLong(wnd, GWL_USERDATA));
 case msg of
   WM_NCCALCSIZE: if (GetWindowLong(wnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL)) <> 0 then
                     SetWindowLong(wnd, GWL_STYLE, GetWindowLong( wnd, GWL_STYLE) and not (WS_HSCROLL or WS_VSCROLL));
 end;
 Result:= CallWindowProc(f, wnd, msg, wparam, lparam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if ClientHandle <> 0 then begin
    if GetWindowLong(ClientHandle, GWL_USERDATA) = 0 then {cannot subclass client window, userdata already in use}
    SetWindowLong(ClientHandle, GWL_USERDATA, SetWindowLong(ClientHandle,
                                GWL_WNDPROC, integer(@ClientWindowProc)));
  end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо