-
мануал? с пакетом? обратиться в Adobe и купить custom-версию flash player, в которой что надо — оставлено, что не надо — вырезано.
-
> мануал? с пакетом? обратиться в Adobe и купить custom-версию > flash player, в которой что надо — оставлено, что не надо > — вырезано
SWF та что в проекте, питается от ActiveX (Flash.OCX) установленой в системе конечного пользователя... никакие дополнительные не подразумевают принудительную установку с нашего диска, а в случае отсутствия данного OCX? ему предлагается его скачать с офсайта ADOBE...
Вообщем это опять философия не в тему.... мне никто так и не ответил...
возможен ли или невозможен глобалный хук, на правую кнопку мыши, если да, то какими методами...
_____
ДА ИЛИ НЕТ - это более чем адвекватный и вменямый ответ на поставленный вопрос, а не рассусоливание отвлеченных косвенных суждений.
_____
С НОВЫМ ГОДОМ:)
-
Имхо ненадо так, но вот D7 WinXP unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, ShockwaveFlashObjects_TLB{или как его назвали}, Menus;
type
TShockwaveFlash = class(ShockwaveFlashObjects_TLB.TShockwaveFlash)
private
procedure WMPopupMenu(var Message: TWMMouse); message WM_RBUTTONDOWN;
end;
type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
PopupMenu1: TPopupMenu;
mnuTest1: TMenuItem;
procedure mnuTest1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
procedure TShockwaveFlash.WMPopupMenu(var Message: TWMMouse);
var
CurPos: TPoint;
begin
GetCursorPos(CurPos);
Form1.PopupMenu1.Popup(CurPos.X, CurPos.Y);
end;
procedure TForm1.mnuTest1Click(Sender: TObject);
begin
ShowMessage('Test');
end;
end.
С Новым Годом :-)
-
@ Царев Евгений
Спасибо... буду пробовать уже в Новом Году:))) ___
Всех кто принял участие в обсуждении данной темы... желаю... в Новом, Новых начинаний, озарений и гениальных работ! Благополоучия и Здоровья..
Мир вашему Дому!
Гумир:)
-
А через перехват сообщений от мыши нельзя? И кнопку трогать не нало. Просто просматриваешь сообщение, через ApplicationEvent. Ну и несли там что-то не нравится Handled := True. Только не знаю, как это с флешроликом будет работать.
-
> TStas © (04.01.08 22:16) [24]
Да работает. И того варварства что я написал ненадо было :)
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
public
end;
var
Form1: TForm1;
implementation
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. Я-то никак не мог вспомнить, ну вот как выловить, что правая :)
-
не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.
-
не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.
-
> Существуют ли методы (включая системные команды Windows) > отключать правую клавишу манипулятора (мышь, тач-пад, трек- > бол и т.д.) во время исполнения вашего приложения,
На такое зверство даже Микрософт не решилась.
-
> arreke © (11.02.08 14:00) [28] не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.
Больше как зверством точно это не назавешь :(
const
FlashPlayerClassName: String = 'MacromediaFlashPlayerActiveX';
WM_WINMENUKEY = $100;
implementation
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_WINMENUKEY: Handled:= True;
End; End;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShockwaveFlash1.Movie:= WideString(IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + '01.swf');
end;
-
СПС, Евгений. Всё работает.
-
"Нетрадиционалы" уже и сюда пролезли, блин. :)
-
> arreke © (12.02.08 01:32) [31] > СПС, Евгений.Всё работает.
Не всё, клавиша меню в твоем приложении не работает :)
Case message Of
WM_RBUTTONDOWN, WM_WINMENUKEY:
Begin
GetClassName(hwnd,TempClass,50);
if (StrPas(TempClass) = FlashPlayerClassName) then Handled:= True;
End; так сделай.
-
СПС, и так тоже работает. Слушай, Евгений, вопрос немного не по этой теме, глянь сюда - http://www.appcontrols.com/components.htmlтут есть интересный компонет, который создаёт анимационный эффект открытия и закрытия формы, но он платный. Сюществует бесплатный аналог, или может руками можно написать, или легче всё же денежку заплатить и не заморачиваться ?
-
> arreke © (12.02.08 14:18) [34]
> Слушай, Евгений, вопрос немного не по этой теме, глянь сюда > - http://www.appcontrols.com/components.html
Ветка не по теме, открой свою, но я комментировать не буду по твоему вопросу, так как знаком с автором, и имею у себя эту библиотеку.
|