Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Дизайн формы   Найти похожие ветки 

 
Hawk2   (2003-07-02 17:30) [0]

Народ разъясните как сделать или подскажите где почитать, а интересует следующее: Как на форму наложить рисунок чтобы он накрывал и строку заголовка, ну как в играх например, или в Winamp-е?


 
Urvin ©   (2003-07-02 17:31) [1]

В винампе картинка не перекрывает заголовок - этог растягивается элемент, за который форму тащят. Делается через АПИ.


 
INCOGNITO ©   (2003-07-02 19:56) [2]

У формы чтавишь св-во Border = bsNone, добавляешь на форму компонент TImage, его св-ву Align присваиваешь alClient и пихаешь туды картинку.

Если хочешь, чтоб твою форму можно было таскать, то у этого Image-а в событии OnKeyDown пишешь:

procedure TForm1.ImgBgMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const SC_DragMove = $F012; { a magic number }
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;


 
Думкин ©   (2003-07-03 05:07) [3]

Смотря что надо, но я делал так:

при креате
inherited;
SetWindowLong(Handle, GWL_STYLE,GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);

Даблебуфер - лучше в фальш, а то потом могут тормоза повылазить.

В ресайзе - подгоняешь рисуемую картинку под нужные размеры.

А в паинте:
procedure TMyForm.WMPaint;
var
ps : TPaintStruct;
DC : HDC;
begin
inherited;
if not(hasPicture) then Exit;
DC := BeginPaint(Handle, ps);
FillRect(DC,BoundsRect,Canvas.Brush.Handle);
BitBlt(
Canvas.Handle,
0,0,FBMM1.Width,FBMM1.Height,
FBMM1.Canvas.Handle,
0,0,
SRCCOPY);
EndPaint(Handle, ps)
end;


Правда один недостаток есть - но тебе я думаю хватит. Про то как таскать - тебе сказали.


 
Hawk2   (2003-07-03 09:52) [4]

Спасибо попробую.


 
Flint ©   (2003-07-03 10:22) [5]

Перетаскивание лучше сделать через WM_NCHITTEST. Так и правильнее и удобнее, можно выбирать за какую именно часть формы ты хочешь таскать :)



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-55751
Катерина
2003-07-03 10:07
2003.07.17
CMYK


4-55890
Stas
2003-05-15 15:56
2003.07.17
CreateMutex


11-55492
bartov
2002-11-13 21:04
2003.07.17
Перерисовка.


7-55868
alexus
2003-05-07 19:03
2003.07.17
Как программно ребутнуть компьютер


1-55569
Mishenka
2003-06-30 21:33
2003.07.17
Как в MaskEdit обработать исключение EDBEditError???