къде е грешката ?

6 отговора 182 прегледа
#1

къде е грешката ?

LocForm.microLine(frmWorkspace.List1.ItemData(frmWorkspace.List1.ListIndex)).X1 = selector1.Left
LocForm.microLine(frmWorkspace.List1.ItemData(frmWorkspace.List1.ListIndex)).Y1 = selector1.Top


Къде съм сгрешил? Дава ми Invalid property array index.
Пътя си е верен, сигурен съм.

Don't hate the player, hate the game.
Отговор
в отговор на Flashman #2

Re: къде е грешката ?

Пътя може и да е верен, но дали свойството е разрешено за писане, и дали данните са подходящи. Първо изведи тези selector1.Left и .Top към някакъв Label, или трасирай през F8, за да им видиш стойностите, и дали могат да бъдат записани в LocForm.

Всъщност от тези два реда не ми стана ясно какви са обектите ти, и какво искаш да правят те. Хайде напиши по-подробно.

Отговор
в отговор на Щиpлиц #3

Re: къде е грешката ?

LocForm.microLine(frmWorkspace.List1.ItemData(frmWorkspace.List1.ListIndex)).X1 = selector1.Left

Значи, LocForm е текущия диалогов прозорец, microLine е Line обект, frmWorkspace е друг диалогов прозорец, List1 е ListBox. Нататъка мисля, че е ясно кое какво е.

selector1.Left и Top са си ОК. Мисля, че проблема е някъде тук: (frmWorkspace.List1.ListIndex)

Мерси за помоща.

Don't hate the player, hate the game.
Отговор
в отговор на Flashman #4

Re: къде е грешката ?

Формата frmWorkspace заредена ли ти е преди да направиш обръщението към нея, и ако е - каква е стойността на frmWorkspace.List1.ListIndex ?

Да не би пък стойността на ItemData да е такава, че да нямаш Line с такъв индекс ?

Отговор
в отговор на Гeoprи #5

Re: къде е грешката ?

frmWorkspace е заредена, а стойноста на frmWorkspace.List1.ListIndex от начало е -1, демек е празна. След това се създава линията и List1.ListIndex е вече 1.

Имам Line с такъв индекс. Като напиша microLine(1).Left всичко си бачка.

Don't hate the player, hate the game.
Отговор
в отговор на Flashman #6

Re: къде е грешката ?

Ако изрично не се укаже, ListIndex винаги е -1. Добавянето на елементи в листа не променя стойността, ако изрично не се укаже: List1.ListIndex=едиквоси. А най-добре си е да трасираш и да видиш кое каква стойност има по време на греешката. Моето мнение е, че ЛистИндекс ти е -1, но защо да се гадае, като може да се провери?

Отговор
в отговор на Пaлячo #7

Re: къде е грешката ?

Ако изрично не си избрал нищо в съответната контрола дето подържа листиндекс, то той е винаги -1, ако исбереш нещо, листиндекс става равен на този на избрания елемент!!!

Наведи главата защото прелитам ниско с асконата !!!
Отговор