Форум: "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.043 c