Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для карандаш ТМ
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 80

"Пнуть" компонент при запуске программы

18.11.2017, 20:06. Показов 2874. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На форме есть TrackBar с предустановленным значением Position и есть Label, Caption которой принимает значение Position по событию Change
Delphi
1
2
3
4
procedure TForm1.TrBrZChange(Sender: TObject);
begin
  lb2.Caption := IntToStr(TrBrZ.Position)
end;
при запуске программы происходит событие OnAction главной формы.
Что туда (в обработчик события OnAction) можно записать, чтобы у TrackBar'a произошло событие Change?
Если присвоить позиции определённое значение, то оно произойдёт.
Но без явного присваивания значения как ещё можно пнуть один раз компонент, чтобы не нарушить значение, заданное изначально при написании программы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2017, 20:06
Ответы с готовыми решениями:

При запуске программы компонент panel делает кнопки и все остальные компоненты не активными
При запуске моей программы компонент panel делает кнопки и все остальные компоненты не активными, как это можно решить?(не убирая panel) ...

Что надо сделать, чтобы при запуске программы и при первом запуске SaveDialog открывался заданный по умолчанию каталог?
Здравствуйте ВСЕ ! Проблема следующая. 1) При первом запуске SaveDialog открывается каталог с файлами. 2) Изменяешь каталог,...

Компонент Image некорректно отображается при запуске на другом ПК
Компонент Image некорректно отображается, при запуске на другом ПК. То как отображается на моем ПК То как отображается на...

48
Айлурофил
 Аватар для Massaraksh7
518 / 451 / 112
Регистрация: 27.05.2017
Сообщений: 2,749
Записей в блоге: 7
16.12.2017, 01:06
Студворк — интернет-сервис помощи студентам
Объект надо создать.
0
 Аватар для карандаш ТМ
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 80
16.12.2017, 01:40  [ТС]
а как?
что нужно написать для этого?

насколько я понял из предыдущих комментариев, Create не нужен, т.к. там нечего писать.
все поля в классе указаны (так же как это делается для record) и, стало быть, при объявлении переменной указанного типа (record или class) память должна отвестись компилятором.
Не так?

Добавлено через 5 минут
в основном юните у меня написано

var
Ln: T_Line;

т.е. переменная объявлена. Тип указан. Ссылка на неё известна.
Но для record (и уж разных string) мы не пишем же создание и отведение памяти?
0
Айлурофил
 Аватар для Massaraksh7
518 / 451 / 112
Регистрация: 27.05.2017
Сообщений: 2,749
Записей в блоге: 7
16.12.2017, 01:43
Delphi
1
Ln:=T_Line.Create;
1
 Аватар для карандаш ТМ
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 80
16.12.2017, 02:30  [ТС]
а в каком месте?
в методе TForm.OnCreate
или позже? например, в TForm.OnActive ?

Добавлено через 2 минуты
еззз!!! помогло
спасибо
0
 Аватар для карандаш ТМ
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 80
17.12.2017, 21:37  [ТС]
Можно ещё доп.вопрос по этой же теме?
Тут говорилось, что record может содержать перечень переменных типа class
Например

Delphi
1
2
3
Dim = record
  l1, l2, l3 :T_Line;
end;
Но тогда мне ручками придётся писать
Delphi
1
2
3
Dim.l1 := T_Line.Create;
Dim.l2 := T_Line.Create;
Dim.l3 := T_Line.Create;
A если Dim сделать классом и у него будут переменные l1, l2, l3, то у него в конструкторе надо будет прописывать создание этих переменных?

это должно выглядеть как:

Delphi
1
2
3
4
5
6
7
constructor T_Dim.Create;
begin
  inherited;
  l1 := T_Line.Create;
  l2 := T_Line.Create;
  l3 := T_Line.Create;
end;
Правильно?
inherited нужен?

а деструктор для Dim тоже нужно прописывать?
0
Айлурофил
 Аватар для Massaraksh7
518 / 451 / 112
Регистрация: 27.05.2017
Сообщений: 2,749
Записей в блоге: 7
18.12.2017, 01:07
Да.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
18.12.2017, 07:04
правильно
еще правильнее
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses Contnrs, SysUtils;
 
...
  Lines:TObjectList; // для старших версий TObjectList<T_Line>
  constructor Create;
  destructor Destroy; override;
end;
 
constructor T_Dim.Create;
begin
  inherited;
  Lines:=TObjectList.Create(true);
  for i:=0 to 2 do
    Lines.Add( T_Line.Create);
end;
 
destructor T_Dim.Destroy;
begin
  FreeAndNil(Lines);
  inherited;
end;
0
 Аватар для карандаш ТМ
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 80
18.12.2017, 10:40  [ТС]
krapotkin, спасибо

Небольшое уточнение
В Dim лежит не только список (из 3 шт.) Line, но и пара общих для всех них параметров типа TPoint и integer

Если в дестрое надо убить список Lines (точнее, элементы-объекты, ссылки на которые содержит список), то TPoint убъётся сам по inherited?

p.s. Lines:TObjectList; // для старших версий TObjectList<T_Line>
т.е. правильно будет:

Delphi
1
  Lines:TObjectList<T_Line>;
так ?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
18.12.2017, 18:39
кладите туда что угодно)

версию делфи скажите. для >2010 так. только добавить в uses System.Generics.Collections;

Добавлено через 56 секунд
TPoint - это простая запись. ее не нужно ни создавать ни убивать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2017, 18:39

При запуске ОС устанавливаются сторонние программы,а при запуске браузера Chrome расширения
Здравствуйте, При запуске ОС устанавливаются сторонние программы,а при запуске браузера Chrome расширения

Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы?
Привет! Возник следующий вопрос. Программа состоит из основного окна Form1 и нескольких Unit. По таймеру в Form1 запускается один из...

При запуске любой программы MS Office происходит псевдо установка программы
Приветствую. Беда с пакетом. Он нелицензионный, поломаный, может оттого, но на других компах отлично работает. Дело в том, что...

Ошибки при запуске программы из другой программы - неверная рабочая директория
Вот у меня есть несколько программ написанных под VisualBasic.net. После чего, я создаю спец программу, которая по нажатию кнопок...

при запуске любой программы выскакивает окно ВЫБОР ПРОГРАММЫ
Что делать или как удалить вирус У меня при запуске любой программы выскакивает окно ВЫБОР ПРОГРАММЫ Я даже не могу установить...


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

Или воспользуйтесь поиском по форуму:
49
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru