хочу создавать динамический масив объектов типа TImage и при этом что-бы каждому созданому объекту присваивалось своё имя (image0,image1,...), но ткт то и возникает проблема : матерится setlenght, пишет что несоответствие типов. Как это можно обойти? Code: var i:integer; image:array of TImage; number:integer; : procedure ...... : : : setlength(image,number); for i:=0 to number-1 do begin [\CODE]
сам не пробовал. но по-моему у setlength второй параметр число типа byte(ибо <=255!!!, что не очень удобно)
в хэлпе - так шо там чики пуки .... а так не вижу в чём проблема ... вроде всё просто .... у мя работает .. только патом надо их как создал - так и уничтожить ... а то ругацца будет =))
Та вроде бы всё просто только вот a должно быть TImage а при таких раскладах матерится setlemght мол несоответствие типов
(то что было до того шо я писал выше) всё работает ... глюк ведать в другом месте ... опиши в чём проблема по полней (сорц,еррор).... потомучто массив 1. создаёться 2. динамический 3. и имена ставяться ............
2RevenAnt я имел ввиду что NewLength<=255 просто. возможно там задавалась в каком то месте длинна массива больше чем 256
NewLength: Integer пробовал созадть и пятсот и тыщу ТИмэйдж ... работает .... только не получилось обратиться как к "my_image1", но куда проще и удобней (имхо) обратиться как "a[1]" =)
да ты код свой покажи SetLength ваще по барабану какого типа элментов у тебя масив этой фе надо тока переадать масив и новую длинну! SetLength(a,100); - правильно а то что ты написал типа "а ведь a:timage а 100:integer;" - лол =) тут тока надо начинать не с 1 а с 0 тк элементы нумеруются с нуля при таком раскладе )
кстате проверь строчку у себя ДО setlength =)) ведь дэльфи как и паскаль после ошибки ставит курсор на следующую строчку (символ) ЗА ошибкой пример тому точка с запятой, пропускаеш а оно на следующую пишет ... ну и в том духе .... авось .......