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

Вниз

Рисование на border   Найти похожие ветки 

 
Grinder ©   (2004-01-30 23:13) [0]

кто паодскажет как рисовать на border формы? у меня border = 1px. Через canvas не получается. А надо сделать обрамление черного цвета для формы.


 
YuRock ©   (2004-01-30 23:18) [1]

Можно вообще убрать бордер, а затем нарисовать его вручную


 
Grinder ©   (2004-01-30 23:28) [2]

Это как?


 
YuRock ©   (2004-01-30 23:43) [3]

Например, Form1.BorderStyle := bsNone, а в OnPaint рисовать чёрный квадрат


 
Grinder ©   (2004-01-31 00:41) [4]

Так у меня на форме панель alClient. Если border 0 сделать, то на чем рисовать? Не видно формы.


 
Guest   (2004-01-31 02:01) [5]

Убери alClient,а в FormResize пропиши:

with panel1 do
begin
left:=1;
top:=1
width:=Form1.width-1;
height:=Form1.height-1;
end;

В FormCreate:

FormResize(Sender);


Получится бордюр в один пиксель со всех сторон, и Form1.canvas.pen в твоих руках!


 
Grinder ©   (2004-01-31 03:02) [6]

Тогда всё усложняется. От этой формы зависит расположение компонентов. А так прийдется заниматься расположением более 20 компонентов. Это не годится.


 
Chlavik ©   (2004-01-31 04:07) [7]

Может надо юзать не GetDC а GetWindowDC Я просто не знаю помойму Canvas рисует по клиентской области .... и ловить WM_NCPAINT


 
Grinder ©   (2004-02-01 00:32) [8]

Это как?


 
Passer-by   (2004-02-01 00:46) [9]

Если нужно практическое решение, то может положить эти 20 компонентов на TPanel, как на форму, а с компонентом TPanel (с одним) поступить так, как предлагалось выше.


 
Mihey ©   (2004-02-01 01:33) [10]

>От этой формы зависит расположение компонентов.

А от панели зависеть не может?


 
wnew   (2004-02-01 05:02) [11]

http://www.codenet.ru/progr/delphi/vcl_faq/058.php

Это, как рисовать на рамке. А если хочешь стандартную рамку удалить - то добавь:

var FRegion: hRgn;
FRegion := CreateRectRgn(3,3,Width-3,Height-3);
SetWindowRgn(Handle,FRegion,True);</
B>
Потом в Destroy нужно востановить Region:
SetWindowRgn(Handle,0,True);
DeleteObject(FRegion);


 
Grinder ©   (2004-02-01 14:45) [12]

Спасибо. Получилось


 
DVM ©   (2004-02-01 15:14) [13]

Не только WM_NCPAINT, а еще WM_NCACTIVATE


 
Grinder ©   (2004-02-01 23:59) [14]

Я сделал просто form.paint доделал и всё.



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
1-29370
Андрей Р
2004-01-29 01:53
2004.02.10
Сохранение Memo в txt


6-29506
abyss
2003-11-26 22:05
2004.02.10
Програмно изменить локальный IP адрес


3-29269
SnapIn
2004-01-17 12:09
2004.02.10
Поместить результат селекта в переменную


14-29588
Ig
2004-01-20 00:20
2004.02.10
Как в строковом массиве определить длину?


8-29477
AndreySoft
2003-10-07 11:30
2004.02.10
Сжатие звуковых сигналов