Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 14:30   #1
darkwellroad
Пользователь
 
Регистрация: 01.09.2013
Сообщений: 83
Восклицание Обращение к объекту по имени, взятому из String

Привет.. Есть несколько потоков разных типов. Вызываю их так
Код:
procedure CreateThread(Index: Byte);
begin
  case Index of
    0:
      Thread0.Create.FreeOnTerminate := True;
    1:
      Thread1.Create.FreeOnTerminate := True;
    2:
      Thread2.Create.FreeOnTerminate := True;
    3:
      Thread3.Create.FreeOnTerminate := True;
  end
end;
Создание объектов по индексу очень неудобно, т.к. количество типов потоков постоянно увеличивается. Хотелось бы хранить все типы в ini файле и обращаться к ним по имени.. Возможно ли такое?
darkwellroad вне форума Ответить с цитированием
Старый 27.11.2015, 14:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а чего нет?
Храни.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 14:38   #3
darkwellroad
Пользователь
 
Регистрация: 01.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну а чего нет?
Храни.
А как потом их создавать по имени из ini? Чтобы вы поняли, я имею ввиду что то типа "String.Create.FreeOnTerminate := True", где String - имя
darkwellroad вне форума Ответить с цитированием
Старый 27.11.2015, 15:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем именно фиксированное имя? Записывай в какой-нибудь List или ObjectList созданные объекты и не парься с их именами

Ой, не просек что разные типы Или тип одинаковый, а то вроде имен? Там тип впереди должен быть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.11.2015 в 15:08.
Аватар вне форума Ответить с цитированием
Старый 27.11.2015, 15:06   #5
darkwellroad
Пользователь
 
Регистрация: 01.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А зачем именно фиксированное имя? Записывай в какой-нибудь List или ObjectList созданные объекты и не парься с их именами
Тоже думал об этом, и если реализация обращения из String будет невозможна, то сделаю так, как вы сказали..

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ой, не просек что разные типы Или тип одинаковый, а то вроде имен? Там тип впереди должен быть
Код:
type
  Thread1 = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create;
    procedure DecThread(Sender: TObject);
    procedure Sync;
  end;

type
  Thread2 = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create;
    procedure DecThread(Sender: TObject);
    procedure Sync;
  end;

type
  Thread3 = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create;
    procedure DecThread(Sender: TObject);
    procedure Sync;
  end;
Каждый поток записан в свой Unit

Последний раз редактировалось Stilet; 27.11.2015 в 15:14.
darkwellroad вне форума Ответить с цитированием
Старый 27.11.2015, 15:29   #6
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Полиморфизм еще не изучали?
come-on вне форума Ответить с цитированием
Старый 27.11.2015, 15:43   #7
darkwellroad
Пользователь
 
Регистрация: 01.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Полиморфизм еще не изучали?
Приходило в голову, но потоки настолько разные, что на практике просто нет смысла объединять все в один с кучей разных параметров и т.п.
darkwellroad вне форума Ответить с цитированием
Старый 27.11.2015, 15:45   #8
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Полиморфизм это как раз наоборот.
come-on вне форума Ответить с цитированием
Старый 27.11.2015, 15:51   #9
darkwellroad
Пользователь
 
Регистрация: 01.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Полиморфизм это как раз наоборот.
Почитаю.. Может не совсем понял..
darkwellroad вне форума Ответить с цитированием
Старый 27.11.2015, 15:51   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
type 
  TClassThread =class of TThread;// такое наверняка должно УЖЕ быть  в недрах модуля threads или как он там (но с другим именем)

procedure CreateThread(cls: TClassThread)
begin
  cls.Create.FreeOnTerminame:=true;
end;

CreateThread(TTread0);
CreateThread(TTread1);
CreateThread(TTread2);
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.11.2015 в 15:56.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к выделенному объекту Алексей_2012 Общие вопросы Delphi 11 14.05.2013 09:01
Обращение к объекту по имени Kazak009 C++ Builder 3 05.05.2012 08:37
Обращение к объекту другой формы (WPF) RIO WPF, UWP, WinRT, XAML 2 26.11.2011 15:00
обращение к объекту из другой формы Darlee Общие вопросы Delphi 4 11.06.2011 14:27
(C#) обращение к объекту из другой формы megazz13 Помощь студентам 2 29.01.2011 07:44