Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Код исключения / 25 сообщений из 32, страница 1 из 2
29.03.2007, 15:11
    #34424902
Код исключения
При пролистывании столбцов грида(т.е. во время события Scrolled), либо при нажатии "->", либо с помощью линейки просмотра при достижении последнего столбца грида, грид "рушится", т.е. на его месте белый прямоугольник.
Причём при использовании линейки просмотра возникает сообщение "Код исключения=С0000005.......", а при нажатии кливиши "->" такого сообщения нет - просто белый прямоугольник.
И ещё, если столбцов 30, то всё нормально, а фигня такая возникает после добавления 31 столбца. Ну и ещё добавлю, что столбцы в грид добавляются "налету" в событии int формы, среда VFP8.

Что за баг?
...
Рейтинг: 0 / 0
29.03.2007, 15:22
    #34424958
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
Код в студию.
...
Рейтинг: 0 / 0
29.03.2007, 15:29
    #34424986
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
Случайно индекса нет и тип ControlSource столбца не менятеся от строки к строке?
С уважением, Алексей
...
Рейтинг: 0 / 0
29.03.2007, 15:44
    #34425034
Код исключения
2Sergey Sizov
какой именно код интересует?
в скролде НИЧЕГО нет.

2Aleksey-K
индексов нет, а ControlSource для какждого столбца свой, соответственно и тип данных для каждого столбца свой....

вот метод, который добавляет столбцы в грид
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
*!* вызов AppendColumn(tcControlSource, tcHeaderCaption, tnColumnWidth, tnAlignment, tcToolTipText, tlEdit, tcComment, tlMovable, tcInputMask)

LPARAMETERS tcControlSource, tcHeaderCaption, tnColumnWidth, tnAlignment, tcToolTipText, tlEdit, tcComment, tlMovable, tcInputMask

WITH THIS

	.AddObject('Column' + ALLTRIM(STR(.ColumnCount +  1 )), 'Column')

	WITH .Columns(.ColumnCount)
		.ControlSource = tcControlSource
		.FontSize = .Parent.FontSize

		WITH .Header1
			.Caption = tcHeaderCaption
			.Alignment =  6 
			.FontBold = .T.
			.FontSize = .Parent.FontSize
		ENDWITH

		.Text1.FontSize = .Parent.FontSize
		.Alignment = tnAlignment
		.Width = tnColumnWidth
		.Visible = .T.
		.ReadOnly = tlEdit
		.ToolTipText = tcToolTipText
		.Comment = tcComment
		.Movable = tlMovable
		.InputMask = tcInputMask
		
	ENDWITH

ENDWITH

...
Рейтинг: 0 / 0
29.03.2007, 15:54
    #34425078
Код исключения
у меня есть подозрения на код метода Refresh грида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF _SCREEN.ActiveForm.ActiveControl.Name = "Grid1"
    IF INLIST(THISFORM.Grid1.Columns(THISFORM.Grid1.ActiveColumn).Header1.Caption, "Заголовок1", "Заголовок2") AND EMPTY(THISFORM.Grid1.Columns(THISFORM.Grid1.ActiveColumn).Comment)
        THISFORM.Grid1.StatusBarText = 'бла-бла-бла'
    ELSE
        THISFORM.Grid1.StatusBarText = ' '
    ENDIF
ENDIF	

там возникала ошибка "Columns is not an object", но я подавил в этом методе сообщения об ошибках, вставив в самое начало ON ERROR NOTE и всё работало нормально пока не понадобилось добавить ещё пару столбцов в грид... один добавляю-всё нормально, а как добавлю второй так получаю Код исключения....
...
Рейтинг: 0 / 0
29.03.2007, 16:14
    #34425153
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
времени нет разбираться,
но глаз мне режет, как Вы ищите акт.колонку

я делаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	* Ищем колонку в коллекции перебором, т.к буду глюки если поменять их местами
	local loColumn
	for each loColumn in this.Columns
	    if loColumn.ColumnORDER=this.ActiveColumn
	    	exit
	    endif
	endfor

и вообще мне
непонятно
зачем Вы в методе объекта снова чего-то ищите
через скрин

в методе родного объекта это this
...
Рейтинг: 0 / 0
29.03.2007, 16:17
    #34425167
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
чтобы метод
срабатывал или только на перемещения по строкам
или только наперемещение по колонкам
щупайте свойство RowColChange
...
Рейтинг: 0 / 0
29.03.2007, 16:48
    #34425280
Код исключения
Да хер с ним, с этим методом рефреш....
попробовал и оказывается эта байда с кодом исключения вылазит и тогда, когда в этом методе вообще ничего нет....
...
Рейтинг: 0 / 0
29.03.2007, 16:53
    #34425299
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
ну раз так,то
ищите проблемы в кривости своих рук

пишите, как бык пописял, вот и проблемы
...
Рейтинг: 0 / 0
29.03.2007, 16:55
    #34425312
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
авторподавил в этом методе сообщения об ошибках

интересно, сами придумали
или кто научил? так лечить ошибки
...
Рейтинг: 0 / 0
29.03.2007, 17:45
    #34425517
Код исключения
Это не лечение ошибок, а подавление сообщений о них, игнорирование их... Представьте себе, бывают такие случаи, когда надо что называется "пропустить мимо ушей" их. Например, повторная модификация таблиц на удалённом компьютере при последующих запусках программы.

ЗЫ. Указать на указтель THIS это всё на что сил (или знаний) хватило?
...
Рейтинг: 0 / 0
29.03.2007, 17:51
    #34425543
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
вот на уши теперь и наматывайте

да ... уж ...

try
catch
endtry


еще раз покажу как перебрать колонки, если не дошло
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	* Ищем колонку в коллекции перебором, т.к буду глюки если поменять их местами
	local loColumn
	for each loColumn in this.Columns
	    if loColumn.ColumnORDER=this.ActiveColumn
	    	exit
	    endif
	endfor
...
Рейтинг: 0 / 0
29.03.2007, 17:52
    #34425551
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
вот такие ... зы ...
...
Рейтинг: 0 / 0
29.03.2007, 17:56
    #34425573
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
если так умен, то объясни тупому смысл этого шаманизма
Код: plaintext
1.
IF _SCREEN.ActiveForm.ActiveControl.Name = "Grid1"

нельзя гриду
какое-то свойство написать
grid.обрабатыватьКод = .t. или .f.

и если уж у Вас хитрый класс, то писать

if this.обрабатыватьКод
.....
endif
...
Рейтинг: 0 / 0
29.03.2007, 18:05
    #34425618
Код исключения
да ёпт... покоя не даёт этот рефреш грида? забудьте про него! там вообще ничего нет!!!
...
Рейтинг: 0 / 0
29.03.2007, 18:17
    #34425651
Код исключения
да и не надо мне вообще колонки грида перебирать!!!

эта сообщение возникает при достижении последнего столбца грида... не важно как.... по нажатию кнопки "вправо" или по нажатию на стрелку линейки просмотра... ещё раз замечу, что в Refresh и Scrolled вообще ничего нет....

причём, если я например после создания формы перейду на этот последний столбец в обратную сторону, т.е. по нажатию "<-", то потом сколько бы я не нажимал стрелки кливиш "вправо/влево" или полосы линеки просмотра, то никаких "исключений" не возникает...

и при чём здесь конструкция TRY? я говорю об сообщении "Код исключения=С0000005.........."
...
Рейтинг: 0 / 0
29.03.2007, 18:19
    #34425653
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
а что Вы ждете, какого ответа???

из того кода, что дали, я показал где

хорошо, забыли, дальше будем смотреть???
от того, что Вы добавляете колонки
лис не упадет


забыли все, все напрочь забыли ...
а дальше, что ответить
не видя ни кода, ни примера

авторЧто за баг?

ошибка в коде, чудес не бывает
...
Рейтинг: 0 / 0
29.03.2007, 18:22
    #34425656
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
при чем трай???

а при чем
ON ERROR NOTE

кто Вас этому научил???
...
Рейтинг: 0 / 0
29.03.2007, 18:24
    #34425661
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
автор
там возникала ошибка "Columns is not an object", но я подавил в этом методе сообщения об ошибках



давить ничего не нужно,
и лису на рога ставить,
тогда и работать ровно все будет
...
Рейтинг: 0 / 0
29.03.2007, 18:25
    #34425667
Код исключения
та я и спрашиваю какой код интересует?
всё, что связано с гридом - это в коде метода инит формы в грид добавляются столбцы
THIS.Grid1.AppendColumn()

код метода AppendColumn() приведён выше.... больше ничего нет!
...
Рейтинг: 0 / 0
29.03.2007, 18:28
    #34425675
Код исключения
Код: plaintext
1.
2.
3.
4.
5.
6.
при чем трай???

а при чем
ON ERROR NOTE 

кто Вас этому научил???

просто старая привычка, ещё с 2.5, где никаких трэев не было....

или так ON ERROR DO ERR.PRG, где ERR.PRG "пустой" файл....
...
Рейтинг: 0 / 0
29.03.2007, 18:29
    #34425677
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
set step поможет
...
Рейтинг: 0 / 0
29.03.2007, 18:30
    #34425681
Код исключения
ну тогда уж вопрос и по поводу "Columns is not an object"....

почему "Columns is not an object", если добавляется он AddObject('Column' + ALLTRIM(STR(.ColumnCount + 1)), 'Column')
...
Рейтинг: 0 / 0
29.03.2007, 18:30
    #34425683
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
авторпросто старая привычка

ну раз привычка, и привычек не меняете, то
советовать нечего
...
Рейтинг: 0 / 0
29.03.2007, 18:34
    #34425701
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код исключения
Columns(nnn)

а сколько ColumnCount???

Вы смотрели???
значение nnn Вы смотрели???

функцию вартайп Вас учили костылем ставить???

нет

лучше ломиком по монику и всего делов
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Код исключения / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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