|
|
|||||
Регистрация: Feb 2007
Сообщений: 13
|
У меня все получилось. Там все намного прощее:
Во Flash В Delphi Вот и все! Всем спасибо за советы. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Ладно, разобрались и славно. |
|
|||||
[+3 29.01.08]
Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
|
На форме имеется компонент ShockwaveFlash1:
[IMG]http://i040.***********/0802/f1/4e00ae53a282.gif[/IMG] Не получается сделать перемещение форму по экрану за оранжевую область в ShockwaveFlash1. Есть такой код: private procedure WMLButtonDown(var Msg: TMessage); message WM_LBUTTONDOWN; procedure TForm1.WMLButtonDown(var Msg: TMessage); begin Perform(WM_NCLBUTTONDOWN, HTCAPTION, Msg.LParam); end; В Гугле дырку проделал, ничё не нашёл, помогите please кто в курсе. |
|
|||||
[+3 29.01.08]
Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
|
Кто нибудь знает, на Delphi можно в компоненте ShockwaveFlash убрать вызов меню, которое выходит при нажатии правой кнопки, типа аналог getURL("FSCommand:showmenu", false) на флеш.
|
|
|||||
listener
|
на Delphi не программил, но идея, думаю, должна сработать.
нужно перехватывать события мыши в оболочке. либо хуком, либо оконную процедуру указанного компонента подменять на свою. или вставить компонент в специальный контейнер и ловить мышь в нем. или готовый ехе пощупать резхакером или чем-то подобным. и не забывайте про кнопку "Меню" на клаве, по ней тоже меню вываливается. как-то так. сам интересуюсь этим вопросом. отпишитесь, если не трудно по результатам. |
|
|||||
[+3 29.01.08]
Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
|
Вот перехват правой кнопки мыши, на форму кидаеш компонент ApplicationEvents, который на вкладе Additional:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, AppEvnts; type TForm1 = class(TForm) ShockwaveFlash1: TShockwaveFlash; ApplicationEvents1: TApplicationEvents; procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var FlashPlayerClass: array[0..MAX_PATH-1] of Char; begin Case Msg.message OF WM_RBUTTONDOWN: begin GetClassName(Msg.hwnd,FlashPlayerClass,MAX_PATH); if (FlashPlayerClass = 'MacromediaFlashPlayerActiveX') then Handled:= True; end; end; end; end. Видишь WM_RBUTTONDOWN, нужно типа такого же для этой кнопки. |
|
|||||
listener
|
LRESULT CALLBACK GetMsgProc(HWND hWnd,UINT nMsg,WPARAM wParam,LPARAM lParam){ switch (nMsg) { case WM_KEYDOWN: switch (wParam) { case 93: // handler return 1; break; } .... VK_MENU = 93 вроде. Последний раз редактировалось alexcon314; 11.02.2008 в 17:39. |
|
|||||
[+3 29.01.08]
Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
|
Разобрался, internet+google forever.
Вообщем на форму кидаем компонент ApplicationEvents. И пишем такой код: const FlashPlayerClassName: String = 'MacromediaFlashPlayerActiveX'; WM_WINMENUKEY = $100; implementation {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var TempClass: array [0..49] of Char; begin With Msg Do Begin Case message Of WM_RBUTTONDOWN: Begin GetClassName(hwnd,TempClass,50); if (StrPas(TempClass) = FlashPlayerClassName) then Handled:= True; End; // WM_RBUTTONDOWN WM_WINMENUKEY: Handled:= True; End; // Case End; //With end; |
|
|||||
[+3 29.01.08]
Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
|
в предыдущем примере кнопка меню в приложении вообще не будет работать, теперь только на нашей флешке:
const FlashPlayerClassName: String = 'MacromediaFlashPlayerActiveX'; WM_WINMENUKEY = $100; implementation {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var TempClass: array [0..49] of Char; begin With Msg Do Begin Case message Of WM_RBUTTONDOWN, WM_WINMENUKEY: Begin GetClassName(hwnd,TempClass,50); if (StrPas(TempClass) = FlashPlayerClassName) then Handled:= True; End; end; //Case End; //With end; |
|
|||||
listener
|
гуд. спасибо. не пересесть ли мне на дэлфи?
а вы часом не знаете как упаковать флаш-компонент в екзе, чтоб стандалоне плеер получился, точнее прожектор? или в дэлфи это подразумевается само-собой? Последний раз редактировалось alexcon314; 12.02.2008 в 18:06. |
Часовой пояс GMT +4, время: 20:04. |
|
« Предыдущая тема | Следующая тема » |
|
|