powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает SetLength?
15 сообщений из 15, страница 1 из 1
Почему не работает SetLength?
    #39999000
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему не работает SetLength?
Короче говоря... У меня есть процедура обработчик, которая по нажатии на панель делает это :
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm7.md(Sender: TObject; Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
var obj : TSEOBJECT;
begin obj.tr.SY := 100; obj.tr.SX := 100; //разъяснение типов
obj.Color.R := 255; obj.tr.X := X; //я не считаю
obj.tr.Y := Y; // важным
obj.Color.A := 255; // догадывайтесь сами :D
SlimeEngine.ADD(obj,gamescene);
end;


Она выполняет процедуру в другом пространстве имён (SlimeEngine), куда посылает новый объект и массив, в который его надо запихнуть. Эта процедура выглядит так :
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure Add ( obj : TSEOBJECT; scene : TSEARRAY); //add object
var
l : integer;
begin
l := Length(scene);
SetLength(scene, l + 1);
scene[l] := obj;
end;


Так вот... Оказалось, что в процедуре ADD не работает процедура SetLength ( да и присваивание scene[l] := obj тоже) ... Я сам не пойму почему... Если я укажу на массив GAMESCENE напрямую, то всё заробит, а иначе не хочет... Вот так робит к примеру :
Код: pascal
1.
2.
3.
4.
5.
begin
l := Length(scene);
SetLength(gamescene, l + 1);
GameScene[l] := obj;
end;


Прошу помощи :) Я в ступоре блин... Придется тогда наверное через классы это как-то мутить... Но я этого пока не хочу...
З.Ы : Студия Embarcadero RAD Studio 10.3
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999006
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat,

Код: pascal
1.
procedure Add ( obj : TSEOBJECT; var scene : TSEARRAY);
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999009
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey, [dcc32 Error] slimeengine.pas(100): E2037 Declaration of 'ADD' differs from previous declaration

Нет. Дело не в этом
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999011
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat, Под словом не работает я подразумеваю не рантайм, а просто факт того, что в результате выполнения процедуры ничего не происходит... Даже не меняется размер. Если только я не укажу массив GAMESCENE напрямую опять же
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999012
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
Дело не в этом

Дело в этом. Исправляй декларацию в обоих местах.
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999014
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey,

В каком смысле?
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999016
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
В каком смысле?

Декларации в секциях interface и implementation должны быть одинаковыми. В таком смысле.
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999018
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey,
ааа.... понял... Спасибо... чёт сам не додумался
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999019
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat
Нет. Дело не в этом

А вникнуть в сообщение об ошибке не пробовали?
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999020
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zedxxx, так в этом и дело... уже 4 часа около монитора... 100 сайтов уже облазил... голова не пашет совсем :D.
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999022
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat, Хе, 4 часа за монитором это же всего-ничего, можно сказать только сел поработать.
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999025
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zedxxx,
так я ещё на работе напахался с 8 утра до 5 вечера :DD
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999031
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
UtoECat
zedxxx,
так я ещё на работе напахался с 8 утра до 5 вечера :DD


в макдональдсе аншлаг, не успевал мыть полы ?
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999171
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, злой ты и не толерантный
...
Рейтинг: 0 / 0
Почему не работает SetLength?
    #39999290
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator

в макдональдсе аншлаг, не успевал мыть полы ?

Это намёк на то, что я студент? :D
Вы не думайте.... Программирование - моё хобби, не связанное с основной профессией.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает SetLength?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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