Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22

Как сделать удаление объекта?

28.07.2017, 09:32. Показов 5234. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать удаление объекта? Допустим, я хочу, чтобы летящий квадрат удалился сам через 5 секунд после запуска программы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2017, 09:32
Ответы с готовыми решениями:

Как сделать наклон объекта на определенный градус?
к примеру имеется изображение его надо наклонить на 90 градусов uses GraphABC; Var x, y, r: Integer; var b:Picture; begin ...

Как сделать так, что при совпадении одного объекта с другим происходило удаление одного из них
Подскажите, как сделать так, что при совпадении одного объекта с другим происходило удаление одного из них. Вкратце. Есть несколько...

Как сделать закачку и удаление файлов, создание и удаление каталогов?
Как сделать закачку и удаление файлов, создание и удаление каталогов?

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
28.07.2017, 10:03
Ключевое слово - таймер
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 10:56  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Ключевое слово - таймер
Ну, он уже был до вопроса. Просто не могу понять как удалить сам объект по истечению времени.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
28.07.2017, 11:33
Телепатия - не мой профиль. Сколько раз повторять: другие не видят твой код, а свой код никому выкладывать неинтересно, потому что опять начнется "у меня не так, мне это не подходит". Будет код - будет разговор дальше.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 11:38  [ТС]
Класс Particle - нужно сделать удаление частицы в тот момент, как либо размер ширина или длина станет равной 0 или время жизни истечет. Строка 763.
Вложения
Тип файла: rar GameEngine2DS.rar (9.6 Кб, 6 просмотров)
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 11:41  [ТС]
Код примера:
Pascal
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
34
35
36
37
38
39
40
41
42
uses GameEngine2Ds, GraphABC;
var
  scn: Scene;
 
procedure NewParticles();
begin
  ParticleSystem.ParticlesBorderColor := clRed;
  ParticleSystem.ParticlesFillColor := clRandom;
  ParticleSystem.Radius := Random(30);
  ParticleSystem.SpeedCoeff := Random(10);
  ParticleSystem.NewParticleSystem();
end;
 
begin
  scn := new Scene();
  scn.HorizonColor := clCyan;
  scn.ZenithColor := clBlue;
  
  ParticleSystem.ParticlesCount := integer.MaxValue;
  ParticleSystem.ParticlesAngleCount := 20;
  ParticleSystem.AngleCount := 4;
  ParticleSystem.RandomAngle := 45;
  ParticleSystem.CenterX := Window.Width div 2;
  ParticleSystem.CenterY := Window.Height div 2;
  ParticleSystem.MinLifeTime := 5;
  ParticleSystem.MaxLifeTime := 10;
  ParticleSystem.ParticlesMinWidth := 10;
  ParticleSystem.ParticlesMaxWidth := 20;
  ParticleSystem.ParticlesMinHeight := 10;
  ParticleSystem.ParticlesMaxHeight := 20;
  ParticleSystem.ParticlesList := scn.SceneParticles;
  ParticleSystem.MinDecSpeed := 1;
  ParticleSystem.MaxDecSpeed := 20;
  
  for var i := 0 to 3 do
    NewParticles();
  
  MainFunctions.SetCaption(1);
  GameStarter.ActiveScene := scn;
  
  GameStarter.Start();
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
28.07.2017, 11:56
Твой движок не компилируется:
() : Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRan geException(ExceptionArgument argument, ExceptionResource resource)
at PascalABCCompiler.TreeRealization.generi c_convertions.determine_type(Type t, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generi c_convertions.determine_type(Type t, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generi c_convertions.determine_type(type_node tn, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generi c_instance_type_node.make_parameters(par ameter_list orig_pl, common_function_node fn)
at PascalABCCompiler.TreeRealization.generi c_instance_type_node.make_method(functio n_node orig_fn, location loc)
at PascalABCCompiler.TreeRealization.generi c_instance_type_node.ConvertMember(defin ition_node orig_node)
at PascalABCCompiler.TreeRealization.generi c_instance_type_node.ConvertSymbolInfo(S ymbolInfo start)
at PascalABCCompiler.TreeRealization.generi c_instance_type_node.find_in_type(String name, Scope CurrentScope, Boolean no_search_in_extension_methods)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit_method_call(method_cal l _method_call)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(method_call _method_call)
at PascalABCCompiler.TreeConverter.returner .visit(expression expr)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(assign _assign)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.convert_strong(statement st)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(statement_list _statement_list)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.convert_strong(statement st)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit_program_code(statement _list program_code)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(block _block)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit_class_member_realizati ons(class_body _class_body)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(class_body _class_body)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(class_definition _class_definition)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(type_declaration _type_declaration)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(type_declarations _type_declarations)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(declarations _subprogram_definitions)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(interface_node _interface_node)
at PascalABCCompiler.TreeConverter.syntax_t ree_visitor.visit(unit_module _unit_module)
at PascalABCCompiler.TreeConverter.SyntaxTr eeToSemanticTreeConverter.CompileInterfa ce(compilation_unit SyntaxUnit, unit_node_list UsedUnits, List`1 ErrorsList, List`1 WarningsList, SyntaxError parser_error, Hashtable bad_nodes, using_namespace_list namespaces, Dictionary`2 docs, Boolean debug, Boolean debugging)
at PascalABCCompiler.Compiler.CompileUnit(u nit_node_list Units, unit_or_namespace SyntaxUsesUnit)
at PascalABCCompiler.Compiler.Compile()'
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 12:13  [ТС]
У меня компилируется.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 12:27  [ТС]
Попробуйте это
Вложения
Тип файла: rar Тест.rar (133.3 Кб, 2 просмотров)
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
28.07.2017, 12:30  [ТС]
Не знаю, но у меня все компилируется: 0 ошибок и 0 предупреждений.

Добавлено через 1 минуту

Не по теме:

Пример выложил другой в архиве с целью узнать заработает ли он вообще, потому что у меня все работает.

0
20 / 19 / 14
Регистрация: 25.03.2015
Сообщений: 68
28.07.2017, 12:39
Лучший ответ Сообщение было отмечено Volobuev Ilya как решение

Решение

Ну, насколько я помню, в справочнике написано, что объект удаляется присвоению ему nil-а. Дальше работает сборщик мусора и прочие advanced stuff. Соответственно, нужно, чтобы графический движок не ругнулся на "отсутствие экземпляра", а спокойно перестал рисовать твой квадрат. (движок не смотрел)

Добавлено через 3 минуты
Думаю, таймер можно прописать в конце конструктора, настроить его на 5 секунд, и процедуру задать (procedure -> self:=nil;) или как-то так.

На всякий случай, вот часть раздела справочника по таймерам, если нужно.
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
type 
  Timer = class
    constructor (ms: integer; TimerProc: procedure); 
    procedure Start;
    procedure Stop;
    property Enabled: boolean read write;
    property Interval: integer read write;
  end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2017, 12:39
Помогаю со студенческими работами здесь

Как правильно организовать удаление объекта по указателю?
Конечно тема избитая, и я находил много решений, но проверить удаляються ли объекты не могу. Есть массив указателей на объекты Record...

Удаление объектов из списка и удаление самого объекта
Здраствуйте! Возник такой вопрос, допустим имеется структура данных (неважно, будь то словарь или список, пусть в данном случае будет...

Как сделать копию объекта
Всем привет. Как сделать копию объекта так, чтобы копия могла существовать не зависимо от оригинала? Например как это сделать с...

Движение объекта по XY. Как сделать чтобы программа считала FaceUnit как градусы
Не пойму как сделать чтобы программа считала FaceUnit как градусы. При выводе на экран выдаёт подозрительные результаты. float...

Как сделать отступ от крайнего объекта?
Возникла такая проблема. Имеется элемент tabs из jQuery. Вставил в рамку картинку и параграф, который справа обтекает картинку. Но проблема...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru