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

Вниз

Form Shape Aka Bitmap   Найти похожие ветки 

 
real_dimedrol   (2003-02-18 16:24) [0]

Недавно родилась идея: рисуем форму в графическом редакторе, а программа отбрасывает в рисунке фон, а все остальное - новый вид формы (очертания (Shape) и заливка(aka Background)). Я уже видел приложение, которое это делает, но не знаю, как так сделать самому. У кого есть идеи - на бочку.


 
MBo   (2003-02-18 16:28) [1]

>У кого есть идеи - на бочку.
Как-то не вдохновляет...


 
real_dimedrol   (2003-02-18 18:03) [2]

2 MBo:
Вдохновляться нужно в других местах. А конференция нужна для тех, кому есть что рассказать и посоветовать другим. Правда это уже похоже на флейм.


 
Mihey   (2003-02-18 21:34) [3]

Используем компонент TPlasma. Блин, а как ты думал скины делаются???

Качаем отсюда:
www.hot.ee/mvps3/plasma.rar

И прежде чем предлагаешь идею - проверяй, может она уже предложена и реализована. А то я вчера, сидя за компом с фонариком, электричество открыл, только сейчас вспомнил, что уже есть такое.


 
real_dimedrol   (2003-02-18 23:58) [4]

2 Mihey:
Это делается ручками, родной. И я хочу узнать, есть ли люди, которые умеют это делать ручками. Но за участие спасибо.


 
MBo   (2003-02-19 06:17) [5]

Да уж, поведение не вполне адекватное...


 
real_dimedrol   (2003-02-19 19:08) [6]

2 MBo
Не будь я сам флеймером, я бы сказал тебе, что ты флеймер. В этом форуме обсуждают Delphi, а не мое поведение.
А то что я написал, это вполне адекватно. Анализируй:
R:Я уже видел приложение, которое это делает
M:И прежде чем предлагаешь идею - проверяй, может она уже предложена и реализована
Это сарказм?
И еще:
R:но не знаю, как так сделать самому
M:Используем компонент TPlasma. Блин, а как ты думал скины делаются???
Ты думаешь, что создатели Winamp использовали компонент TPlaza? Я тоже так не думаю. И явно указал, что САМ ХОЧУ ЭТО СДЕЛАТЬ.

ЗЫ Повторюсь, я не хотел флеймить, но ты меня вынудил. И хватит на этом.


 
Mihey   (2003-02-19 21:25) [7]

real-dimedrol! Суть в том, что твоя идея не нова и скины такого типа уже устаревают. А реализовать это очень просто на регионах. Например:

procedure CropWindow( Handle: HWnd; Picture : TPicture );
var
hrgn, hrgn1 : integer;
hdc : integer;
x, y : integer;
Color : TColor;
begin
// Color := Picture.Bitmap.Canvas.Pixels[ 0, 0 ];
Color := clWhite;
hdc := GetDC( Handle );
hrgn := CreateRectRgn( 0, 0, Picture.Graphic.Width, Picture.Graphic.Height );
for x := 1 to Picture.Graphic.Width do
for y := 1 to Picture.Graphic.Height do
if Picture.Bitmap.Canvas.Pixels[ x - 1, y - 1 ] = Color then begin
hrgn1 := CreateRectRgn( x - 1, y - 1, x, y);
CombineRgn( hrgn, hrgn, hrgn1, RGN_DIFF );
DeleteObject( hrgn1 );
end;
SetWindowRgn( Handle, hrgn, true );
//DeleteObject( hrgn );
ReleaseDC( Handle, hdc);
end;

Это делает по рисунку. Далее при перерисовке формы мы просто выводим изображение (функцией BitBlt).

Зачем изобретать велосипед? Программно делать маску, изменять отрисовку формы??? Зачем? Суть программирований нынешнего, огромный скачок за счёт ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ КОДОВ, что в самой большйо чатсности должно проявляться в оформлении ИНТЕРФЕЙСА! Чтобы он не занимал 90% кода, как это было в процедурном программировнаии.


 
Mihey   (2003-02-19 21:32) [8]

Анализируем seine гнилой:

>R:Я уже видел приложение, которое это делает
>M:И прежде чем предлагаешь идею - проверяй, может она уже >предложена и реализована
>Это сарказм?

- Нет, сэр. Ты выдал использование изображения в качестве формы за свою идею и в своём же постинге сказал, что уже видел. Вот и всё (да не придирайся).

>R:но не знаю, как так сделать самому
>M:Используем компонент TPlasma. Блин, а как ты думал скины >делаются???
>Ты думаешь, что создатели Winamp использовали компонент TPlazмa? Я тоже так не думаю. И явно указал, что САМ ХОЧУ ЭТО >СДЕЛАТЬ.

- В WinAmp компания NullSoft написала свой компонент (!), очень похожий на TPlasma, только с более широким спектром натсроек. TPlasma поставляется с исходниками - разбирай их и анализируй.

И наконец, если ты САМ хочешь сделать, то зачем вопросы задаёшь. Клаву в руки и делай.


 
real_dimedrol   (2003-02-20 16:38) [9]

2 Mihey:
M:
Зачем изобретать велосипед? Программно делать маску, изменять отрисовку формы??? Зачем?
Хотя бы чтобы научится.
M:
Суть программирований нынешнего, огромный скачок за счёт ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ КОДОВ, что в самой большйо чатсности должно проявляться в оформлении ИНТЕРФЕЙСА! Чтобы он не занимал 90% кода, как это было в процедурном программировнаии.
Размер кода не имеет значения для пользователей. А от того, что мы используем чьи-то компоненты, мы просто прощаем себе свое незнание или отстутствие времени. Я не утверждаю, что садясь писать новую программу нужно начинать с нуля, но как минимум знать как устроено то, с чем ты работешь надо, иначе ты не программист, а фраер. Или ламер, что одно и то же, только в разных сферах. Мне просто надо знать. За код спасибо, проверю. А вот пускаться в оскорбления не стоит, потому что, когда за базар отвечать не придется, то это все тот-же фраеризм. Или ты фраер?


 
pasha676   (2003-02-20 16:53) [10]

2Mihey

Ты не прав. Если человек хочет уметь программить он должен программить и без использования компонентов. Это надо поддерживать. Эволюция программ конечно идет по пути повторного использования кода, но не только из-за этого. Надо чтоб еще люди были, которые напишут новый код. И это даже как то главнее
Димедрол ни в коем случае не претендовал на супер идею. Просто чел что-то хотел реализовать сам, ручками. Это надо приветствоать, а не заниматься бочкообкатыванием.


 
Mihey   (2003-02-20 22:32) [11]

2 real_dimedrol:

Вот и отлично, раз ты хочешь изучать. Взял компонент TPlazma и изучил. На его основе я составил эту хорошую процедурку CropWindow. Если ты хочешь написать свой компонент - возьми её за основу, вот и всё.

Ну а маску учатся делать совсем не в этой области.

Я знаю, как работает TPlazma. Я его изучал - специально, чтобы понять. Там простой код, эффективный. Некоторые моменты я уже использовал при создании скинов, но повторять этот компонент я не стану. Придёт время учится создавать маски - я научусь. Придёт ещё что-то - там разберёмся.

2 pasha676:

Ну это просто заявление. Умеющий программить как раз не должен заострять ньюансы на таком. Ты пойми, что интерфейс - это ничто. Это коробка от телевизора, сам телевизор тут не причём. Во всех крупных проектах интерфейсом занимаются дизайнеры - люди, довольно далёкие от программирования. Рисуют, оформляют. Но не программируют.

Гораздо хуже, когда программер-мастак пишет в лёгких участках кода всё своё, а в сложном прибегает к компоненту.

Ну про бочкообкатывание - такого не было. Если ты прочьтёшь всю конференцию от начала до конца, то поймёшь дух и настроение народа в разное время...

Я своё решение предложил - ввиде компонента для изучения и готовой процедуры, и этот спор больше не интересен.


 
pasha676   (2003-02-21 15:06) [12]


> Я своё решение предложил - ввиде компонента для изучения
> и готовой процедуры, и этот спор больше не интересен.

Ну так бы и написал сразу. И никаких вопросов и претензий к тебе не было бы.


 
Mihey   (2003-02-21 15:11) [13]

Собственно говоря, я сначала предложил, а потом и пустился в дискуссию.



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

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

Наверх





Память: 0.49 MB
Время: 0.009 c
1-13245
qwerty2
2003-05-23 14:15
2003.06.05
Еще раз про TThread


1-13145
Sandman25
2003-05-23 17:12
2003.06.05
TControl.Parent и DLL


8-13342
Dimon
2003-02-20 17:11
2003.06.05
MPlayer


1-13128
reticon
2003-05-25 17:15
2003.06.05
Подсет одинаковых символов в строке


14-13366
Dabadabiabo
2003-05-16 11:40
2003.06.05
Высота строки в DBGrid е





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский