несоответствие типов

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by eagle_ua, 6 Nov 2005.

  1. eagle_ua

    eagle_ua New Member

    Joined:
    6 Nov 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    хочу создавать динамический масив объектов типа 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]
     
  2. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    сам не пробовал. но по-моему у setlength второй параметр число типа byte(ибо <=255!!!, что не очень удобно)
     
  3. RevenAnt

    RevenAnt Elder - Старейшина

    Joined:
    8 Apr 2005
    Messages:
    60
    Likes Received:
    18
    Reputations:
    9
    в хэлпе -
    так шо там чики пуки .... а так не вижу в чём проблема ... вроде всё просто ....


    у мя работает .. только патом надо их как создал - так и уничтожить ... а то ругацца будет =))
     
  4. eagle_ua

    eagle_ua New Member

    Joined:
    6 Nov 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Та вроде бы всё просто только вот a должно быть TImage а при таких раскладах матерится setlemght мол несоответствие типов
     
  5. RevenAnt

    RevenAnt Elder - Старейшина

    Joined:
    8 Apr 2005
    Messages:
    60
    Likes Received:
    18
    Reputations:
    9
    (то что было до того шо я писал выше)
    всё работает ... глюк ведать в другом месте ... опиши в чём проблема по полней (сорц,еррор)....
    потомучто массив 1. создаёться 2. динамический 3. и имена ставяться ............
     
  6. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    2RevenAnt
    я имел ввиду что NewLength<=255 просто. возможно там задавалась в каком то месте длинна массива больше чем 256
     
  7. RevenAnt

    RevenAnt Elder - Старейшина

    Joined:
    8 Apr 2005
    Messages:
    60
    Likes Received:
    18
    Reputations:
    9
    NewLength: Integer
    пробовал созадть и пятсот и тыщу ТИмэйдж ... работает .... только не получилось обратиться как к "my_image1", но куда проще и удобней (имхо) обратиться как "a[1]" =)
     
  8. eagle_ua

    eagle_ua New Member

    Joined:
    6 Nov 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    всё равно матерится на setlength
    пишет
    ведь a:timage а 100:integer;
    чё можно сделать?
     
  9. FRAGNATIC

    FRAGNATIC Member

    Joined:
    11 Aug 2005
    Messages:
    16
    Likes Received:
    13
    Reputations:
    5
    да ты код свой покажи
    SetLength ваще по барабану какого типа элментов у тебя масив этой фе надо тока переадать масив и новую длинну!
    SetLength(a,100); - правильно а то что ты написал типа "а ведь a:timage а 100:integer;" - лол =)

    тут тока надо начинать не с 1 а с 0 тк элементы нумеруются с нуля при таком раскладе )
     
  10. RevenAnt

    RevenAnt Elder - Старейшина

    Joined:
    8 Apr 2005
    Messages:
    60
    Likes Received:
    18
    Reputations:
    9
    кстате ;)
    проверь строчку у себя ДО setlength =))
    ведь дэльфи как и паскаль после ошибки ставит курсор на следующую строчку (символ) ЗА ошибкой :) пример тому точка с запятой, пропускаеш а оно на следующую пишет ... ну и в том духе .... авось .......