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

Вопрос вот в чём - хочу создать простой билдер моей формы, однако возникают вопросы.

Что делаю сначала:
1. Создаю подкласс класса формы и называю myForm
2. Создаю у него свойство Builder, и заполняю его Library, Class
3. Создаю подкласс класса BulderForm
4. Помещаю на нам 2 элемента BuilderTextBox

Чего хочу (для примера):
1. Если ввожу 1 (в первый builderTextBox) - создавать на форме, для которой и создается билдер, textbox, а если 2, то label.
2. Во втором builderTextBox пишу "messagebox('aaa')", то этот текст помещался в init данной формы.

Подскажите как это можно сделать и можно ли вообще можно или подскажите какую-нибудь ссылку.
...
Рейтинг: 0 / 0
Помогите создать простенький билдер
    #33569560
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кусок кода для создания формы на основе класса. заполнение DE и добавления в проект. Вставлять код в методы не пробовал.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	
lpara tcMainTable,tcChildTable
Create Form ('form\b'+tcMainTable) as bform from forms NoWait
	if aSelObj(laCtrl, 1 ) >  0 
		if aSelObj(laDE, 2 )>  0 
			loDe=laDE[ 1 ]
			with loDE
				.AddObject('Cursor1','Cursor')
				with .Cursor1
					.Alias=tcMainTable
					.CursorSource=tcMainTable+'.dbf'
				endwith
			endwith
		endif
	endif
	keyboard '{ctrl+w}'
	doevent
	_vfp.activeproject.files.add('form\b'+tcMainTable+'.scx')
...
Рейтинг: 0 / 0
Помогите создать простенький билдер
    #33569584
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы писать методы формы нужно ее открыть в режиме конструирования.
Для примера введи в командном окне:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE FORM test as 'form'
ox = SYS( 1270 ) 
*--набери эту строчку, оставь курсор на этой строчке в командном окне, 
*--установи курсор мыши над формой но не кликай по ней, нажми "Enter". 
*--Теперь ox - сылка на форму 'test'. 
*--Далее пишешь код методов Init и Show:

ox.WriteMethod ("Init", [MESSAGEBOX('Init')])
ox.WriteMethod ("Show", [MESSAGEBOX('Show')])

DO FORM test.scx

Сохранишь внесеные изменения - и увидиш два messagebox в Init и Show событиях.

Ссылка на статью Дуга Хенига о билдерах:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfoxtk04/html/ft04l6.asp
...
Рейтинг: 0 / 0
Помогите создать простенький билдер
    #33569887
foll-fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо получилось.

ТОлько вот ошибки в билдере выскакивают различные, например, по нажатию на Cancel вылезает предложение о закритие билдера и с примерно следуеющим текстом function argument value, type or count is invalid
method - copypems, а если повторно пытаюсь занести код в метод, кричит, что такой объект уже существует.

И еще при запуске билдера для моей формы, билдер открывается вместе с запуском самой формы, для которой он предназначен, как этого можно избежать.
...
Рейтинг: 0 / 0
Помогите создать простенький билдер
    #33578626
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi foll-fill!

Тема это достаточно сложная, а ещё сложнее будет если ты собрался плясать от
того "шаблона" билдера от которого построены MS-овские (тогда его придётся
хорошенько изучать, смотреть что к чему и как предполагается с ним
работать)... Я у себя поступил предельно просто - соорудил prg-ку и прописал
её в свойстве Builder своего класса. "Шаблон" этой prg-ки такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LPARAMETERS p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, 
p14, p15, p16
IF UPPER(PROGRAM( 0 )) == "GRDACTBUILDER" && Это имя prg-ки
 * Прямой вызов
 MESSAGEBOX("Этот построитель не может быть вызван непосредственно. Выберите 
пункт Builder контекстного меню для запуска")
 RETURN .F.
ENDIF
LOCAL loBuilder
loBuilder = CREATEOBJECT("frmBuilder_GrdActBuilder", m.p1, m.wboform) && сам 
класс формы и контролов описан ниже в этой-же prg
IF TYPE("m.loBuilder.Name") = "C"
 m.loBuilder.Show( 1 )
ENDIF
RETURN .T.

Можешь поставить SET STEP ON и посмотреть что находится в каждом параметре
при вызове билдера фоксовым Builder.app, какие доступны Private переменые и
т.п. В частности первый параметр (p1) это ссылка на объект для которого
вызван билдер, а wboform - ссылка на всю форму для которой он вызван.
Создать новый объект на форме можно по ContainerControl.AddObject() -
удалить по ContainerControl.RemoveObject(), прописать код - по
Control.WriteMethod(), забить некоторое выражение в свойство (именно как
выражение а не резултат его вычисления!) через Control.WriteExpression() -
есть и полезный метод ResetToDefault()...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите создать простенький билдер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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