Jump to content

Обращение из ClientEvents к Panel и Frame


nimarufa

Recommended Posts

Непонятно как в JS обращаться ко фрейму (TUniFrame). У него нет JSName и описанный в документации метод обращения через MainForm.MyFrame1… для него тоже не работает. Пример прилагаю.

На форму положил панель и фрейм. В конструкторе формы для обоих добавляю обработчик на click. Для панели код работает, для фрейма нет. Обращение в обоих случая однотипное. Для фрейма есть ещё закомментированный код, он работает, но интересует именно не закомментированный код, очень нужно чтобы он заработал.

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  UniPanel1.ClientEvents.ExtEvents.Add(
    'click=function function click(sender, eOpts) ' +
    '{ ' +
    '  MainForm.UniPanel1.setPosition(MainForm.UniPanel1.x,MainForm.UniPanel1.y+50); ' + // works for panel
    '}'
  );

  MyFrame1.ClientEvents.ExtEvents.Add(
    'click=function function click(sender, eOpts) ' +
    '{ ' +
    '  MainForm.MyFrame1.setPosition(MainForm.MyFrame1.x,MainForm.MyFrame1.y+50); ' +  // not works for frame
//    '  sender.setPosition(sender.x,sender.y+50); ' +                                 // works for frame  
    '}'
  );
end;

 

FrameTest.zip

Link to comment
Share on other sites

7 minutes ago, nimarufa said:

Для фрейма есть ещё закомментированный код, он работает, но интересует именно не закомментированный код, очень нужно чтобы он заработал.

MainForm.MyFrame1, используйте без MainForm:

MyFrame1.setPosition...

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...