powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обьект???
16 сообщений из 16, страница 1 из 1
обьект???
    #34020665
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
как в форме создать обьект, например TEXT?

т.е. форма запустилась и необходимо в ней создать новый обьект по ходу работы программы, это возможно?
...
Рейтинг: 0 / 0
обьект???
    #34020747
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно возможно.
В Init формы пишем:

This.AddObject("MyText", "TextBox")
This.MyText.Left = 12
This.MyText.Top = 12
This.MyText.Visible = .T.
...
Рейтинг: 0 / 0
обьект???
    #34020753
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно возможно! В любой контейнер в Run-Time можно добавить объект. Посмотрите справку по команде AddObject.
Например, для добавления в форму объекта класса textbox надо:
Код: plaintext
THISFORM.AddObject("txtMytextbox1", "textbox")
Далее, вы можете обращаться к объекту так:

Код: plaintext
1.
2.
THISFORM.txtMytextbox1.Visible = .T.
THISFORM.txtMytextbox1.Value = 'Текст'
....
С уважением, Алексей
...
Рейтинг: 0 / 0
обьект???
    #34020756
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
т.е. нужно использовать не createobject а addobject,
понятно,
только где описаны параметры:
("txtMytextbox1", "textbox") или ("MyText", "TextBox") ??

если нужно будет грид вставить или комбобокс?
...
Рейтинг: 0 / 0
обьект???
    #34020760
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?т.е. нужно использовать не createobject а addobject,
понятно,
только где описаны параметры:
("txtMytextbox1", "textbox") или ("MyText", "TextBox") ??

если нужно будет грид вставить или комбобокс?
Ну почитайте вы HELP наконец!!!
Все там параметры описаны и подробно с примерами!!!
С уважением, Алексей
...
Рейтинг: 0 / 0
обьект???
    #34020784
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ок. спасибо.
...
Рейтинг: 0 / 0
обьект???
    #34027418
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
И снова вопрос...

обьект создал, со свойствами работаю, а вот как в click программу затолкать, не знаю, не получается, т.е. создал кнопку и хочу по клику выполнение программы, как ее эту программу туда затолкать? не подскажете?
...
Рейтинг: 0 / 0
обьект???
    #34027480
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри метод Click() этой кнопки
т.е. добавляешь код в этот метод
Если кнопка тоже создается программно то нужно создать класс кнопки
и в методе Click() этого класса прописать свой код.
Хотя лучше всего в данном методе сделать вызов другого метода, в котором и будет храниться твой код
Можно сделать и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DEFINE CLASS frmtest AS form
	Top =  0 
	Left =  0 
	Height =  87 
	Width =  241 
	DoCreate = .T.
	Caption = "Форма"
	Name = "frmTest"

	ADD OBJECT cmbstart AS commandbutton WITH ;
		Top =  12 , ;
		Left =  12 , ;
		Height =  27 , ;
		Width =  84 , ;
		Caption = "Запуск", ;
		Name = "cmbStart"
	PROCEDURE mycmbclick
		MESSAGEBOX('Нажали кнопку')
	ENDPROC
	PROCEDURE cmbstart.Click
		thisform.MyCmbClick()
	ENDPROC
ENDDEFINE
...
Рейтинг: 0 / 0
обьект???
    #34027560
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
обязательно создавать класс??

а если обьект создан : This.AddObject("MyText", "TextBox")

то уже доступа к клику нет??
...
Рейтинг: 0 / 0
обьект???
    #34027646
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?обязательно создавать класс??
а если обьект создан : This.AddObject("MyText", "TextBox")
то уже доступа к клику нет??

Что то я не пойму какой клик ты хочешь отлавливать ?
В текстбоксе или на кнопке?

Тут вроде бы пишешь что хочешь отловить событие нажатие на кнопку
?обьект создал, со свойствами работаю, а вот как в click программу затолкать, не знаю, не получается, т.е. создал кнопку и хочу по клику выполнение программы, как ее эту программу туда затолкать? не подскажете?
Ну тогда и ставь вызов своей программы в метод Click() самой кнопки
Можно, даже на дизайнере форм это сделать:
открываешь метод click кнопки и пишешь свой код или вызов программы
например DO myProc

А если хочешь отлавливать click() в текстбоксе который добавляется программно то надо писать класс

Код: plaintext
1.
2.
3.
4.
5.
DEFINE CLASS mytextbox AS textbox
	Name = "mytextbox"
	PROCEDURE Click
		DO myProc
	ENDPROC
ENDDEFINE

И добавлять новый Textbox на основе этого класса

Код: plaintext
This.AddObject("MyText", "myTextBox")
...
Рейтинг: 0 / 0
обьект???
    #34027803
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
извиняюсь...
кнопку конечно создаю
пример не тот шлепнул...

делаю так:
This.AddObject('com1', "CommandButton")
This.com1.Left=1
This.com1.top=17*n+(n-1)*20
This.com1.height=20
This.com1.caption='Сохранить'
This.com1.visible=.t.
This.com1.specialeffect=0

это происходит в init формы..
вот хотел еще
This.com1.click="....."
но не работает..
...
Рейтинг: 0 / 0
обьект???
    #34027810
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
методы только реадонли

Вам нужно начать заниматься классами
Ваша проблема решается оборачиванием классов
...
Рейтинг: 0 / 0
обьект???
    #34028290
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда только так
объявляем класс

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DEFINE CLASS myCommandButton AS commandbutton
	Height =  20 
	Width =  84 
	Caption = "Сохранить"
	Name = "myCommandButton"
             SpecialEffect =  0 
	PROCEDURE Click
		MESSAGEBOX("Нажатие кнопки сохранить")
	ENDPROC
ENDDEFINE
потом добавляем кнопку на основе объявленного класса

Код: plaintext
1.
2.
3.
This.AddObject("com1", "myCommandButton")
This.com1.Left= 1 
This.com1.top= 17 *n+(n- 1 )* 20 
This.com1.visible=.t.
класс можно сформировать как визуально на конструкторе, так и в процедуре
...
Рейтинг: 0 / 0
обьект???
    #34030317
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ок. спасибо!
...
Рейтинг: 0 / 0
обьект???
    #34030335
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
все бы хорошо, да вот такое сообщение появляется при попытке сохранить определение класса (в клик кнопки)
methods and events cannot contain nested procedures or class definitions

тоесть нельзя определять класс в методе...

как же его тогда определить?

смысл то идеи был таков,
нажимаем кнопку на форме и програмно генерим н.форму нужного размера, с соответствующими полями и кнопками.

н.форму создавал в дизайнере, с целью сохранения как класса. на базе которого и будут создаваться формы...

и так нельзя и эдак..

как же сделать универсальную форму под конкретную ситауцию чтобы в процессе работы она сама генерилась??
...
Рейтинг: 0 / 0
обьект???
    #34030365
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?все бы хорошо, да вот такое сообщение появляется при попытке сохранить определение класса (в клик кнопки)
methods and events cannot contain nested procedures or class definitions
тоесть нельзя определять класс в методе...
Конечно нельзя
Класс надо определить отдельно
а потом использовать
This.AddObject("com1", "myCommandButton")
Пришли твою форму я посмотрю
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обьект???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]