imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 16.12.2003, 18:28     # 1
Duh
Member
 
Аватар для Duh
 
Регистрация: 08.04.2002
Адрес: Estonia
Сообщения: 258

Duh Известность не заставит себя ждать
Flash + Delphi (а точнее - передача параметров)

Вобщем....возник такой вопрос...в нете сколько не искал...никак не могу ничего найти....=\ одна-две статьи....не больше....только что по разным сайтам раскиданы...да и то не о том....
Вобщем...что собственно надо: передать параметры (при нажатии на кнопку во флэшке) в Дельфи...во Флэше есть какой-то оператор...вот я никак не могу найти его....=\
__________________
-Тут была реклама-
Duh вне форума  
Старый 16.12.2003, 18:40     # 2
Duh
Member
 
Аватар для Duh
 
Регистрация: 08.04.2002
Адрес: Estonia
Сообщения: 258

Duh Известность не заставит себя ждать
ну вот.....покопался ещё чуток и нашёл-таки кое-что...=)
Если, вдруг, у когонибудь возникнет подобный вопрос....ответ тут - http://spravkaweb.h1.ru/flash.php?ss=12
а точнее - функция fscommand
...=)сори, что поторопился с постом...=)
__________________
-Тут была реклама-
Duh вне форума  
Старый 14.12.2007, 16:58     # 3
m-AAA-d
Member
 
Регистрация: 21.07.2003
Адрес: AngelCITY
Сообщения: 209

m-AAA-d Путь к славе только начался
вопрос по использованию флеша в проектах дельфи.

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

пример:
- при создании формы компонент имеет размеры 44 на 44
- мувики размером 44 на 44 грузяцца и отображаюцца отлично
- надо подгрузить мувик 100 на 100: я меняю размер компонента на 100 на 100, назначаю мувик или делаю LoadMovie - а он всеравно ужимаецца (масштабируецца) до размера 44 на 44! и отображаецца по верхнему левому углу.....

как решить трабл7 надо чтобы при изменении размера компонента мувик масштабировался вслед за ним. он этого не делает - сохраняет размеры заданные при создании формы.

менял опции масштабирования - там есть ExactFit ShowAll NoResize NoBorder - все фигня, мувик крутицца и масштабируецца в первоначальных размерах.... ( хелп, надо на выхах уже решение.....
m-AAA-d вне форума  
Старый 14.12.2007, 19:18     # 4
m-AAA-d
Member
 
Регистрация: 21.07.2003
Адрес: AngelCITY
Сообщения: 209

m-AAA-d Путь к славе только начался
выяснил, мувик ресайзицца, но не сразу..... чтото с ним надо сделать - толи спрятать (сделать невидимым) толи перезапустить..... седня дома попробую...... )
m-AAA-d вне форума  
Старый 14.12.2007, 19:45     # 5
Novoross
Junior Member
 
Регистрация: 29.09.2005
Сообщения: 99

Novoross Путь к славе только начался
А может сначала загрузить мувик, а после менять размер компонента? свойство автосайз в истине стоит?
Novoross вне форума  
Старый 16.12.2007, 03:59     # 6
m-AAA-d
Member
 
Регистрация: 21.07.2003
Адрес: AngelCITY
Сообщения: 209

m-AAA-d Путь к славе только начался
попробовал - не помогает..... ((
повторюсь - мувик ресайзицца только после клика по нему....
вот код на всякий случай - может поможет что.... panButton - это контейнер для TShockWave компонента swfButton - простая панелька....
Код:
procedure TfmNitro.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var cp: TPoint; i: integer; s: string;
begin
  case msg.message of
    WM_LBUTTONUP : if FHover <> 0 then begin panButton.Visible:= false; swfButton.StopPlay;
      FCommand:= hextoint(leftstr(extractfilename(swfButton.Movie),8)) - hextoint(appset.sett[ 1]);
      if FCommand > 1 then begin appSet.State.Add(leftstr(extractfilename(swfButton.Movie),8));
      LoadFrame;
      end;
    end;
    WM_MOUSEMOVE : begin getcursorpos(cp); FHover:= 0;
      for i:= 1 to hextoint(appset.sett[ 4]) do
      if    (cp.X > hextoint(appset.sett[1+5*i]) + ScreenLeft)
        and (cp.X < hextoint(appset.sett[1+5*i]) + ScreenLeft + hextoint(appset.sett[1+5*i+2]))
        and (cp.Y > hextoint(appset.sett[2+5*i]) + ScreenTop)
        and (cp.Y < hextoint(appset.sett[2+5*i]) + ScreenTop + hextoint(appset.sett[2+5*i+2]))
        and (backSFW.CurrentFrame+1 = backSFW.TotalFrames)
      then FHover:= i; //swfButton.Perform(msg.message, VK_SELECT, msg.lParam); end;
    end;
  end;
end;
Код:
procedure TfmNitro.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
var cp: tpoint; j, k: cardinal; s, t: string;
begin
//-----------------------------------------------------------------------------
  j:= 0; for k:= 0 to AppSet.State.Count - 1 do j:= j + HexToInt(AppSet.State[ k]);
  j:= j - HexToInt(AppSet.State[ 0]); s:= IntToHex(j, 8); AppSet.State[ 0]:= AppSet.Sett[ 0]; t:= s;
//-----------------------------------------------------------------------------
  if FHover <> 0
  then begin
    getcursorpos(cp);
    with panButton do begin
      SendToBack; swfButton.StopPlay;
      width  := hextoint(appset.sett[1+5*FHover+2]);
      height := hextoint(appset.sett[2+5*FHover+2]);
      Left := hextoint(appset.sett[1+5*FHover]) + ScreenLeft;
      Top  := hextoint(appset.sett[2+5*FHover]) + ScreenTop;
      if FileExists(appSet.media + s + '\' + appset.sett[5*FHover] + '.swf') then s:= appset.media + s + '\' + appset.sett[5*FHover] + '.swf';
      if FileExists(appset.media + s + '\' + appset.sett[5*FHover] + '.jpg') then s:= appset.media + s + '\' + appset.sett[5*FHover] + '.jpg';
      swfButton.LoadMovie(0, s);
      swfButton.Play; Visible:= true; BringToFront; 
  end; end else begin swfButton.StopPlay; swfButton.FrameNum:= 0; end;
end;
попробовал пообкатывать на пустом примере - без обработчиков сообщений - результат аналагичный.... на ресайз компонента - мувик реагирует только после клика на нем....

добавлено через 2 минуты
в процедуре LoadFrame никаких действий по отношению к swfButton не производицца.....

насчет масштабирования - у этого компонента свои специфичные свойства - ScaleMode например. выставлено в ExactFit или ShowAll - те по идее - растягивать мувик забив на пропорции или умещать пропорционально по малой стороне компонента.... толку - ноль, автоматическое масштабирование не происходит.....

Последний раз редактировалось m-AAA-d; 16.12.2007 в 04:14.
m-AAA-d вне форума  
Старый 17.12.2007, 13:29     # 7
m-AAA-d
Member
 
Регистрация: 21.07.2003
Адрес: AngelCITY
Сообщения: 209

m-AAA-d Путь к славе только начался
все, нашел решение

Windows.SetFocus(ShockwavwFlash1.Handle);

и все.....

перепробовал postmessage, sendmessage, shockwaveflash.setfocus, shockwave.perform - ничего не срабатывало..... ))
m-AAA-d вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:14.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.