Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.96.146] |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
subj
|
Сообщ.
#2
,
|
|
|
А зачем? Создай форму без заголовка, сделай зону перетаскивания и кнопки свернуть-развернуть-выход...
Хотя, может есть и более простой способ, незнаю - я тем, что предложил пользуюсь:) |
Сообщ.
#3
,
|
|
|
Так я так и сделал! Но почему-то кажется, что это-кривое решение. Да и изменить размер формы нельзя мышкой..
|
Сообщ.
#4
,
|
|
|
Да, не очень прямое...
Про изменение размера мышкой - это да, мне для моих целей оно просто не требовалось... |
Сообщ.
#5
,
|
|
|
WM_NCPAINT
|
Сообщ.
#6
,
|
|
|
Ок, делаю так: <br>procedure TForm1.WM_NCPAINT(var m: tWMNCPAINT);<br>var<br>rgn1:hrgn;<br>PaintHandle:hdc;<br>canv:tcanvas;<br>begin<br>canv:=tcanvas.Create;<br>inherited;<br> PaintHandle:=GetWindowDC(m.RGN);<br> Canvas.Handle:= PaintHandle;<br> canv.Rectangle(0,0,11,11);<br> ReleaseDC (m.RGN,PaintedHandle);<br> canv.Free;<br> end;<br> Пишет, что canvas does not allow drawing |
Сообщ.
#7
,
|
|
|
Кто же присваивает дискрипторы? :
BitBlt() тебе в помошь... ;D |
Сообщ.
#8
,
|
|
|
Как это "дескрипторы присваивает"? Попроще можно, чтоб я понял, где лажаю? :)
|
Сообщ.
#9
,
|
|
|
Canvas.Handle:= PaintHandle; |
Сообщ.
#10
,
|
|
|
Так тоже не работает:
<br>procedure TForm1.WM_NCPAINT(var m: tWMNCPAINT);<br>var<br>PaintedHandle,Src:hdc;<br>canv:tcanvas;<br>begin<br>canv:=tcanvas.Create;<br> inherited;<br> PaintedHandle:=GetWindowDC(m.RGN);<br> Src:=GetDC(image1.Picture.Bitmap.Canvas.Handle);<br> Canvas.Handle:= PaintedHandle;<br> bitblt(paintedhandle,0,0,11,11,src,0,0,MERGECOPY);<br><br> ReleaseDC (m.RGN,PaintedHandle);<br> ReleaseDC (image1.Picture.Bitmap.Canvas.Handle,src);<br> canv.Free;<br> end;<br> Ошибок правда нет, но эффекта ноль. |
Сообщ.
#11
,
|
|
|
Цитата Testudo, 14.04.03, 08:49:40 Canvas.Handle:= PaintHandle; А это я взял из первого номера хакера, где на дельфе программить учили, года полтора назад. Там на рабочем столе рисовали, все работало. |
Сообщ.
#12
,
|
|
|
Извиняюсь за наезд. Держи рабочий сырец:
***<br>procedure WM_NCPAINTP(var msg:TMessage); message WM_NCPAINT;<br>***<br>procedure TForm1.WM_NCPAINTP(var msg:TMessage);<br>var tc:TCanvas;<br>begin<br>inherited;<br>tc:=TCanvas.Create;<br>tc.Handle:=GetWindowDC(Handle);<br>tc.Lock;<br>tc.Pen.Style:=psSolid;<br>tc.Pen.Color:=clRed;<br>tc.MoveTo(0,0);<br>tc.LineTo(Form1.Width,20);<br>tc.Unlock;<br>end; |
Сообщ.
#13
,
|
|
|
Вай, спасибо!
|
Сообщ.
#14
,
|
|
|
testudo, а зачем ты заменил tmwncpaint сообщение на обычное tmessage ?
|
Сообщ.
#15
,
|
|
|
Да просто procedure ***(var msg:TMessage); message ***; - стандартный вариант, работающий со всеми мессагами. Так зачем извращаться? ;D
|