powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не отображается динамически созданный объект
5 сообщений из 5, страница 1 из 1
Не отображается динамически созданный объект
    #34139137
DeepProg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select * from common_list into cursor cursSearchRes
	thisform.AddObject('gRes','Grid')
	thisform.width =  800 
	WITH thisform.gRes
		.Left = thisform.Left + thisform.Width
		.Top =  10 
		.Height = thisform.height -  20 
		.Width = int(thisform.Width /  2 )
		.ColumnCount =  6 
		.RecordSourceType =  0 
		.RecordSource = 'cursSearchRes'
		.Visible = .T.
		.Refresh
	ENDWITH
Форма увеличивается. В дебаге видно, что грид создан. Но на форме его не видно. Курсор cursSearchRes не пустой. Специально загнал несколько строк в таблицу.

Если сделать форму с нуля в новом или отдельно от проекта, пустую и с одной кнопкой, в Click которой прописан вышеуказанный код - Грид отрисуется.

Что мешает гриду отрисовываться когда форма "нагружена" другим набором контролов (пока их 24)?
...
Рейтинг: 0 / 0
Не отображается динамически созданный объект
    #34139183
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Thisform.refresh() после указанного кода пробовал?
...
Рейтинг: 0 / 0
Не отображается динамически созданный объект
    #34139185
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй еще перенести на него фокус. Хотябы временно. Он и прорисуется
...
Рейтинг: 0 / 0
Не отображается динамически созданный объект
    #34139193
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот эта команда и мешает

.Left = thisform.Left + thisform.Width

Координата Left объекта Grid - это расстояние от левой границы объекта-контейнера, в котором расположен Grid. В данном случае, от левой границы формы.

А координата Left формы - это расстояние от левой границы основного окна FoxPro (_SCREEN) до левой границы формы.

Другими словами, созданный объект Grid "уедет" за правый край формы.

Тут уже одного thisform.Width слишком много, а ты еще и ThisForm.Left добавляешь.

Добавь в твоем форме свойство ThisForm.ScroolBars = 3 - увидишь ГДЕ создался твой объект.

Да, до версии VFP9 существовало ограничение на предельный размер формы. Он равен удвоенному значению текущего разрешения экрана. Если разрешение 640х480, то форма не может иметь ширину больше, чем 640*2=1280. Если объект оказывается за пределами этого значения, то его, разумеется, вообще невозможно увидеть.
...
Рейтинг: 0 / 0
Не отображается динамически созданный объект
    #34139242
DeepProg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
АААА!!! Спасибо, что ткнули. Я под столом! А ведь казалось, что так тщательно продумал сколько и куда отсупить, где места добавить под грид. :D
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не отображается динамически созданный объект
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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