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

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

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

Author24 — интернет-сервис помощи студентам
Как сделать удаление объекта? Допустим, я хочу, чтобы летящий квадрат удалился сам через 5 секунд после запуска программы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2017, 09:32
Ответы с готовыми решениями:

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

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

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

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

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
28.07.2017, 10:03 2
Ключевое слово - таймер
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 10:56  [ТС] 3
Цитата Сообщение от volvo Посмотреть сообщение
Ключевое слово - таймер
Ну, он уже был до вопроса. Просто не могу понять как удалить сам объект по истечению времени.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
28.07.2017, 11:33 4
Телепатия - не мой профиль. Сколько раз повторять: другие не видят твой код, а свой код никому выкладывать неинтересно, потому что опять начнется "у меня не так, мне это не подходит". Будет код - будет разговор дальше.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 11:38  [ТС] 5
Класс Particle - нужно сделать удаление частицы в тот момент, как либо размер ширина или длина станет равной 0 или время жизни истечет. Строка 763.
Вложения
Тип файла: rar GameEngine2DS.rar (9.6 Кб, 4 просмотров)
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 11:41  [ТС] 6
Код примера:
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
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
28.07.2017, 11:56 7
Твой движок не компилируется:
() : Внутренняя ошибка компилятора в модуле [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.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at PascalABCCompiler.TreeRealization.generic_convertions.determine_type(Type t, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generic_convertions.determine_type(Type t, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generic_convertions.determine_type(type_node tn, List`1 param_types, Boolean method_param_types)
at PascalABCCompiler.TreeRealization.generic_instance_type_node.make_parameters(par ameter_list orig_pl, common_function_node fn)
at PascalABCCompiler.TreeRealization.generic_instance_type_node.make_method(functio n_node orig_fn, location loc)
at PascalABCCompiler.TreeRealization.generic_instance_type_node.ConvertMember(defin ition_node orig_node)
at PascalABCCompiler.TreeRealization.generic_instance_type_node.ConvertSymbolInfo(S ymbolInfo start)
at PascalABCCompiler.TreeRealization.generic_instance_type_node.find_in_type(String name, Scope CurrentScope, Boolean no_search_in_extension_methods)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_method_call(method_cal l _method_call)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(method_call _method_call)
at PascalABCCompiler.TreeConverter.returner.visit(expression expr)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(assign _assign)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(statement_list _statement_list)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_program_code(statement _list program_code)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(block _block)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_class_member_realizati ons(class_body _class_body)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_body _class_body)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_definition _class_definition)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declaration _type_declaration)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declarations _type_declarations)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(declarations _subprogram_definitions)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(interface_node _interface_node)
at PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(unit_module _unit_module)
at PascalABCCompiler.TreeConverter.SyntaxTreeToSemanticTreeConverter.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(unit_node_list Units, unit_or_namespace SyntaxUsesUnit)
at PascalABCCompiler.Compiler.Compile()'
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 12:13  [ТС] 8
У меня компилируется.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 12:27  [ТС] 9
Попробуйте это
Вложения
Тип файла: rar Тест.rar (133.3 Кб, 0 просмотров)
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.07.2017, 12:30  [ТС] 10
Не знаю, но у меня все компилируется: 0 ошибок и 0 предупреждений.

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

Не по теме:

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

0
20 / 19 / 14
Регистрация: 25.03.2015
Сообщений: 68
28.07.2017, 12:39 11
Лучший ответ Сообщение было отмечено 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
28.07.2017, 12:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2017, 12:39
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru