Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-72067
Rule
2003-01-06 12:35
2003.01.23
Уважаемые Мастера не могу разобраться с TIBQuery


1-72275
Paul M. Olexenco
2003-01-15 11:12
2003.01.23
Существование объекта


3-72108
sanilo
2002-12-28 21:20
2003.01.23
Доступ к Базе Данных


3-72057
Alex Eroshenko
2002-12-27 19:00
2003.01.23
Соотношение многие-к-многим


1-72375
koly01
2003-01-13 10:24
2003.01.23
Подскажите идею ...!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский