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

Вниз

Форма формы...   Найти похожие ветки 

 
Sam Stone   (2002-10-02 18:37) [0]

У меня такой вот вопрос: как проще нарисовать форму нестандартной формы(такой вот каламбур)? Я облазил много ресурсов, но там ничего особенного нет. Все через Create<что-нить>Rgn(). Но для создания чего-то сложного(ну, например, форма в виде кляксы...) приходится помучиться. Если кто знает способ попроще - поможите, пожалуйста!!!


 
MBo ©   (2002-10-02 18:52) [1]

в любом случае придется создать регион с формой кляксы.


 
Peter Gluhiy ©   (2002-10-02 19:03) [2]

Положи на форму картинку с кляксой, а саму форму сделай невидимой.


 
Peter Gluhiy ©   (2002-10-02 19:29) [3]

Sorry. Все равно регионы нужны


 
Sam Stone   (2002-10-02 19:59) [4]


> Положи на форму картинку с кляксой, а саму форму сделай
> невидимой


> Sorry. Все равно регионы нужны

а можно как-нить в программе пройтись по рисунку и создать форму с помощью CreatePolygonRgn? Я одну прогу такую скачал(в нее грузишь бмп и она, судя по всему, просто берет координаты всех точек на границе рисунка. Данная прога зовется Shaper, качнул с download.ru->программрование->Delphi), но там описывается массив array [1..1000000] of TPoint и дельфя это не полюбила. Что-нить аналогичное сообразить мона?


 
MBo ©   (2002-10-02 20:07) [5]

delphi.vitpc.com
FormRgn А.Григорьева


 
Sam Stone   (2002-10-03 15:41) [6]

Ну и намучался я с этой FormRgn. Дельфя то у меня 6ая - пришлось кой-чего подправить. На delphi.vitpc.com, кстати, есть LogoMaker - тоже хорошая вещь


 
Manulo ©   (2002-10-04 14:04) [7]

http://ssu5.sumdu.edu.ua/~op/

Делали с год назад сайт... Тама есть реальный пример проги, работающей с полигонами и рисующее окно в форме звезды, да ещё и с дыркой посредине + довольно неплохой фак по теме


 
Sapersky_   (2002-10-05 18:25) [8]

Можно через paths. Это такая штука для записи всех GDI команд. Так что кляксу можно нарисовать гораздо проще, чем вручную регионами.
Вот, например, такой пример (rgn - регион (HRgn), handle - handle окна, оно должно быть достаточно большого размера, где-то 640*480).

Var
DC : HDC;
Font : HFont;
begin
DC:=GetDC(Handle);
Font:=CreateFont
(150,0,0,0,0,0,0,0,0,0,0,0,0,PChar("Comic Sans MS"));
DeleteObject(SelectObject(DC,Font));
SetBkMode(DC,1);
BeginPath(DC);
TextOut(DC, 0, 0, PChar("Hello world!"), 12);
EndPath(DC);
rgn:=PathtoRegion(DC); // одним изящным движением
// брюки превращаются... :)
SetWindowRgn(Handle,rgn,True);
If (Font<>0) then DeleteObject(Font);
ReleaseDC(Handle,DC);
end;

Ещё желательно в обработчик сообщений добавить

WM_LBUTTONDOWN : begin
ReleaseCapture;
WindowProc(Handle,WM_SysCommand, SC_DragMove, 0);
end;

- дабы полученное... хм... окно :) можно было таскать по экрану.



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-72180
NewGuest
2003-01-13 17:09
2003.01.23
Есть Form1 и Form2, у первой стоит StayOnTop, на 2-й тоже самое


1-72340
Beginer1
2003-01-11 10:41
2003.01.23
сортировка в listBox


3-72137
Mic_2000
2003-01-02 12:50
2003.01.23
Пример IBUpdateSQL бросьте кто-нибудь


3-72089
VS2002
2002-12-29 06:32
2003.01.23
Поле со списком в DBGrid


1-72207
Beginer1
2003-01-14 10:42
2003.01.23
как сделать быструю сортировку строк справо на налево