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

Вниз

Расскажите пожалуйта, что такое Applet   Найти похожие ветки 

 
Galkov ©   (2006-12-27 14:36) [0]

И как с ним бороться....

Потому что сами мы не местные :(( приехали на лечение....
А если серьезно: не профессиональный программист я, а так - по вечерам, в выходные.... :(

Вот пример:

Program test;
uses  windows,messages,kol;

const
 WS_EX_LAYERED=$00080000;
 LWA_COLORKEY=$00000001;

function SetLayeredWindowAttributes(h:Integer;c:TColor;A:Byte;F:DWORD): Boolean; stdcall; external "user32.dll";

type TMainForm=object
 Control:PControl;
 function _OnMes(var Msg: tagMSG; var Rslt: Integer ): Boolean;
end;

function TMainForm._OnMes;
begin
 Result := False;
 if (Msg.message = WM_MOVE) or (Msg.message = WM_SIZE) then
   Applet.BoundsRect := Control.BoundsRect;
end;

var MainForm:TMainForm;

begin
 Applet := NewApplet("Хи-Хи-Хи");
 with MainForm do begin
   Control := NewForm(Applet,"Test").SetSize(200,100);
   Control.onMessage := _OnMes;
   with NewLabel(Control,"Привет участникам автопробега !!!").SetSize(100,20)^ do begin
     Color := clSilver;
     TextAlign := taCenter;
     Align := caBottom;
     Ctl3D := true;
   end;
   Control.ExStyle := Control.ExStyle or WS_EX_LAYERED;
   SetLayeredWindowAttributes(Control.handle, clSilver, 0, LWA_COLORKEY);
 end;
 Run(Applet);
end.


Вопросов, почему прозрачность кривая - не возникает. Возникает: почему Applet видимый ???
И как с этим бороться...

И хочется, конечно, базовую философию этого вопроса освоить, а из исходников это как-то не очень просто :(.
Вот про Align Владимир очень хорошо написал (как есть - за что ему ОГРОМНОЕ спасибо)....


 
Vladimir Kladov   (2006-12-27 21:59) [1]

Кнопка на таск баре. Читайте книгу, там написано.


 
Galkov ©   (2006-12-27 22:54) [2]

Прочитал.
Потому и не пытаюсь делать Applet.visible:=false;

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

А как ?????


 
Galkov ©   (2006-12-27 22:56) [3]

Может я чего недообъяснил....
В примере поста [1] этого аплета ВИДНО - и это не радует


 
[e]Bu$ter ©   (2006-12-28 00:34) [4]


> Вопросов, почему прозрачность кривая - не возникает.

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


 
Galkov ©   (2006-12-28 08:52) [5]


> А вот я бы хотел знать почему она такая, и как её сделать
> нормальной

Дык нормальная она...
В дырочку - ты Аплета видишь.
Вот я и спрашиваю, как сделать его невидимым, но чтобы кнопа в таскбаре осталась....


 
Galkov ©   (2006-12-28 11:14) [6]

Ну может так наглядней будет....

Program test;
uses  windows,messages,kol;

const
 WS_EX_LAYERED=$00080000;
 LWA_COLORKEY=$00000001;

function SetLayeredWindowAttributes(h:Integer;c:TColor;A:Byte;F:DWORD): Boolean; stdcall; external "user32.dll";

type TMainForm=object
 Control,Check:PControl;
 function _OnMes(var Msg: tagMSG; var Rslt: Integer ): Boolean;
end;

function TMainForm._OnMes;
begin
 Result := False;
 if ((Msg.message = WM_MOVE)or(Msg.message = WM_SIZE))and(not Check.Checked) then
   Applet.BoundsRect := Control.BoundsRect;
end;

var MainForm:TMainForm;

begin
 Applet := NewApplet("Хи-Хи-Хи");
 with MainForm do begin
   Control := NewForm(Applet,"Test").SetSize(200,120);
   Control.onMessage := _OnMes;
   Check := NewCheckBox(Control,"Lock").SetPosition(10,10);
   with NewLabel(Control,"Привет участникам автопробега !!!").SetSize(100,40)^ do begin
     Color := clSilver;
     TextAlign := taCenter;
     Align := caBottom;
     Ctl3D := true;
   end;
   Control.ExStyle := Control.ExStyle or WS_EX_LAYERED;
   SetLayeredWindowAttributes(Control.handle, clSilver, 0, LWA_COLORKEY);
 end;
 Run(Applet);
end.


 
GR   (2006-12-28 12:40) [7]

MainForm.Control.Brush.BrushStyle := bsClear;


 
[e]Bu$ter ©   (2006-12-28 12:49) [8]

Ага, так наглядней :)

Но всё же не понятно, как можно что-то рисовать (в обработчкике onPaint) на прозрачной форме, и чтоб оно не размазывалось...


 
Galkov ©   (2006-12-28 13:45) [9]


> GR   (28.12.06 12:40) [7]
> MainForm.Control.Brush.BrushStyle := bsClear;

И чего будет ??? Не понял, в общем ... :(


 
GR   (2006-12-28 15:04) [10]

Вставь в код и увидишь!!!


 
Galkov ©   (2006-12-28 17:17) [11]

Ну ясно, я - тупой, вставить не догадался.
GR, сам-то вставлял, или совет "вслепую" ???


 
GR   (2006-12-28 21:51) [12]

Вопрос по теме: что делает это строка??,??
====-----------------------------------------====
       Applet.BoundsRect := Control.BoundsRect;
====-----------------------------------------====


 
Galkov ©   (2006-12-28 22:22) [13]


> GR   (28.12.06 21:51) [12]
> Вопрос по теме: что делает это строка??,??

Если честно, то мне показалось совсем наоборот: НЕ по теме
Зачем эта строка - это один развор, для FAQ-а, к примеру (не читали часом? - там и возможный ответ)

А заявленная тема топика - совершенно другой, ИМХО


 
GR   (2007-01-05 14:01) [14]

> Если честно, то мне показалось совсем наоборот: НЕ по теме
Из за этой строки твой проект как раз и "не выдает то, что тебе надо"!
*
Читал "часом"!! И тебе следует еще раз почитать!
В конце строка предлогают "...или, воспользоваться ... MinimizeNormalAnimated"
Это более подойдет к твоему: "И как с ним бороться...."
Уважаемый Galkov!!!


 
Galkov ©   (2007-01-05 15:18) [15]

Видите ли, уважаемый GR...
Если бы меня интересовал вопрос, как правильно делать анимацию, я именно так и поставил бы вопрос в заголовке топика.
Кстати говоря, анимация после MinimizeNormalAnimated не совсем адекватна, если у некого чела TaskBar вертикален.

Вопрос в том, что теоретически возможны причины для придания Applet-у не нулевых размеров.
Или Ваше утверждение заключается в том, что таковых причин НИКОГДА не возникнет ????
Но тогда ссылки на MinimizeNormalAnimated совершенно недостаточно для аргументации такового.

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


 
GR   (2007-01-05 22:05) [16]

Я добавлю:
Ха-Ха!


 
GR   (2007-01-05 22:19) [17]

Да, хотелось помочь человеку не знающему, "что такое applet", программирующему "по вечерам и в выходные" и утверждающему что "беседа могла бы быть более продуктивной, если предполагать, что собеседник в состоянии думать более чем на один ход вперед"!
Человек этот от помощи отказался!
Ну ладно, извинения приняты!!!


 
Galkov ©   (2007-01-05 23:40) [18]

Ну чтобы помочь, необходимо умение понимать о чем спрашивают, ИМХО
Не думал, что для понимания вопроса требуется столь огромное напряжение...

Например, что значительно более интересно: зачем делается постоянным WS_EX_APPWINDOW и меняется по жизни WS_VISIBLE, а не наоборот... И т.п..

Возможно, для такого понимания следует снизить градус снобизма (руководствуюсь содержанием Вашего последнего поста) - не знаю....

Видите ли, мы хоть и из Сибири, но базовое образование нам дают по-лучше многих (если не сказать - ВСЕХ) московских вузов...

Похоже, на этом форуме в базовых вопросах вообще мало кто разбирается :((



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

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

Наверх





Память: 0.49 MB
Время: 0.036 c
3-1177672039
DelphiLexx
2007-04-27 15:07
2007.08.12
DBGridEh1.SumList.RecalcAll приводит к блокировке DBGridEh2


15-1184238631
Zagaevskiy
2007-07-12 15:10
2007.08.12
SMS


15-1184594904
Галинка
2007-07-16 18:08
2007.08.12
Тангента к двум окружностям


15-1184312367
Romkin
2007-07-13 11:39
2007.08.12
Принтер с двухсторонней печатью


15-1184260431
Alarm
2007-07-12 21:13
2007.08.12
Посьба к app





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