Главная страница
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
7-55870
nik
2003-04-28 12:52
2003.07.17
COM порт (NT)


1-55641
Andrey V.
2003-07-04 08:42
2003.07.17
Подчеркивание в репорте


1-55589
Сушняк
2003-07-03 12:23
2003.07.17
Проблема с написанием компонента.


14-55710
Думкин
2003-06-26 07:26
2003.07.17
Флеш


4-55911
Петр
2003-04-23 13:40
2003.07.17
Application.MessageBox