Кнопки беру из FM20.DLL и вставляю во фрейм, взятый оттуда же.
(Там и кнопки и фреймы гораздо функциональнее нежели в VB - как раз мне этих свойств и не хватает).
- Код: Выделить всё
Dim myCmd(50) As Object
Private Sub Frame1_Click()
Set myCmd(1) = Frame1.Controls.Add "Forms.CommandButton.1", "cmdEdit", True)
End Sub
Все работает. После щелчка на форме появляется кнопка.
Пытаюсь поймать ее клик - заменяю первую строчку на
- Код: Выделить всё
Private WithEvents myCmd(50) As MSForms.CommandButton
она у меня махом меняется на
- Код: Выделить всё
Private WithEvents myCmd As MSForms.CommandButton
Т.е. с массивом контролов я сразу обломился

Ну ладно, думаю, хотя бы с одного Event поймать, а там будем кумекать дальше...
Запускаю... И получаю "Run-time error '13': Type mismatch" в строке
- Код: Выделить всё
Set myCmd = Frame1.Controls.Add("Forms.CommandButton.1", "cmdEdit", True)
т.е. MSForms.CommandButton он добавлять не хочет - только Object

(Control, кстати, тоже не хочет - только Object)
А Object эвентов не имеет!
И так - заколдованный круг

Перечитал несколько топиков на эту тему (нашел по поиску) - везде не то

То и дело приводится пример
- Код: Выделить всё
Dim ctlName As Control
Set ctlName = Form1.Controls.Add("VB.CommandButton", "Name", Form1)
который у меня вообще никак не работает.
"Run-time error '438': Object doesn't support this property or method"