Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> описание компонентов в отдельном файле, возможно? на форме много компонент, как спрятать? 
:(
    Опции темы
casusnur
Дата 19.5.2017, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.5.2017

Репутация: нет
Всего: нет



Всем добра. Пишу грандиозную программу, и поместил на форму более 250 компонент. При таком количестве навигация по листингу проблематичная. Возник вопрос, а можно ли описание компонентов класса формы поместить в отдельный файл, ибо жутко неудобно.
Код

  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    StatusBar1: TStatusBar;
    TabSheet4: TTabSheet;
    SpeedButton1: TSpeedButton;
    GroupBox2: TGroupBox;
    ListBox2: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    StringGrid1: TStringGrid;
    GroupBox5: TGroupBox;
    Edit11: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    Edit12: TEdit;
    GroupBox6: TGroupBox;
    CheckBox1: TCheckBox;
    Label12: TLabel;
    Edit7: TEdit;
    Label13: TLabel;
    Edit8: TEdit;
    Label14: TLabel;
    Edit9: TEdit;
    Label15: TLabel;
    Edit10: TEdit;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Edit15: TEdit;
    Label24: TLabel;
    Panel4: TPanel;
    Panel5: TPanel;
    Label25: TLabel;
    Panel6: TPanel;
    Label26: TLabel;
    StringGrid2: TStringGrid;
    Label27: TLabel;
    GroupBox8: TGroupBox;
    Label28: TLabel;
    Label11: TLabel;
    TrackBar1: TTrackBar;
    Button3: TButton;
    Button4: TButton;
    Button6: TButton;
    Button7: TButton;
    Label29: TLabel;
    GroupBox7: TGroupBox;
    ComboBox1: TComboBox;
    Label30: TLabel;
    RadioButton25: TRadioButton;
    RadioButton26: TRadioButton;
    RadioButton27: TRadioButton;
    RadioButton28: TRadioButton;
    RadioButton29: TRadioButton;
    Label19: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Button5: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    ComboBox5: TComboBox;
    ComboBox6: TComboBox;
    ComboBox9: TComboBox;
    ComboBox10: TComboBox;
    ComboBox11: TComboBox;
    ComboBox12: TComboBox;
    ComboBox13: TComboBox;
    ComboBox14: TComboBox;
    ComboBox17: TComboBox;
    ComboBox18: TComboBox;
    ComboBox19: TComboBox;
    ComboBox20: TComboBox;
    ComboBox21: TComboBox;
    ComboBox22: TComboBox;
    ComboBox25: TComboBox;
    ComboBox26: TComboBox;
    ComboBox27: TComboBox;
    ComboBox28: TComboBox;
    ComboBox29: TComboBox;
    ComboBox30: TComboBox;
    ComboBox33: TComboBox;
    Label34: TLabel;
    Edit6: TEdit;
    Label38: TLabel;
    Label37: TLabel;
    Label36: TLabel;
    Label35: TLabel;
    RadioButton33: TRadioButton;
    RadioButton34: TRadioButton;
    RadioButton35: TRadioButton;
    ComboBox7: TComboBox;
    ComboBox8: TComboBox;
    ComboBox15: TComboBox;
    ComboBox16: TComboBox;
    ComboBox23: TComboBox;
    ComboBox24: TComboBox;
    ComboBox31: TComboBox;
    ComboBox32: TComboBox;
    ComboBox34: TComboBox;
    ComboBox35: TComboBox;
    ComboBox36: TComboBox;
    ComboBox37: TComboBox;
    RadioButton36: TRadioButton;
    RadioButton37: TRadioButton;
    RadioButton38: TRadioButton;
    ComboBox38: TComboBox;
    ComboBox39: TComboBox;
    ComboBox40: TComboBox;
    ComboBox41: TComboBox;
    ComboBox42: TComboBox;
    ComboBox43: TComboBox;
    ComboBox44: TComboBox;
    ComboBox45: TComboBox;
    ComboBox46: TComboBox;
    ComboBox47: TComboBox;
    ComboBox48: TComboBox;
    ComboBox49: TComboBox;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    GroupBox9: TGroupBox;
    RadioButton30: TRadioButton;
    Button12: TButton;
    Button13: TButton;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Label43: TLabel;
    Label44: TLabel;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    TrackBar2: TTrackBar;
    TrackBar3: TTrackBar;
    Label45: TLabel;
    Label46: TLabel;
    Label47: TLabel;
    Edit14: TEdit;
    Edit16: TEdit;
    GroupBox10: TGroupBox;
    StringGrid3: TStringGrid;
    RadioButton31: TRadioButton;
    Label48: TLabel;
    Label49: TLabel;
    Edit17: TEdit;
    Label50: TLabel;
    CheckBox7: TCheckBox;
    Edit18: TEdit;
    Edit19: TEdit;
    Label51: TLabel;
    Label52: TLabel;
    GroupBox11: TGroupBox;
    RadioButton32: TRadioButton;
    Edit20: TEdit;
    Edit21: TEdit;
    Label53: TLabel;
    Label54: TLabel;
    CheckBox8: TCheckBox;
    Edit22: TEdit;
    Edit23: TEdit;
    Label55: TLabel;
    Edit24: TEdit;
    Edit25: TEdit;
    Label56: TLabel;
    Label57: TLabel;
    Edit26: TEdit;
    Edit27: TEdit;
    Label58: TLabel;
    Label59: TLabel;
    Label60: TLabel;
    Edit13: TEdit;
    Label18: TLabel;
    CheckBox9: TCheckBox;
    CheckBox10: TCheckBox;
    CheckBox11: TCheckBox;
    CheckBox12: TCheckBox;
    CheckBox13: TCheckBox;
    CheckBox14: TCheckBox;
    CheckBox15: TCheckBox;
    CheckBox16: TCheckBox;
    CheckBox17: TCheckBox;
    CheckBox18: TCheckBox;
    CheckBox19: TCheckBox;
    CheckBox20: TCheckBox;
    CheckBox21: TCheckBox;
    CheckBox22: TCheckBox;
    CheckBox23: TCheckBox;
    CheckBox24: TCheckBox;
    CheckBox25: TCheckBox;
    CheckBox26: TCheckBox;
    CheckBox27: TCheckBox;
    CheckBox28: TCheckBox;
    CheckBox29: TCheckBox;
    CheckBox30: TCheckBox;
    CheckBox31: TCheckBox;
    CheckBox32: TCheckBox;
    Edit28: TEdit;
    Edit29: TEdit;
    Edit30: TEdit;
    Edit31: TEdit;
    Edit32: TEdit;
    Edit33: TEdit;
    Edit34: TEdit;
    Edit35: TEdit;
    ProgressBar1: TProgressBar;
    ProgressBar2: TProgressBar;
    ProgressBar3: TProgressBar;
    ProgressBar4: TProgressBar;
    ProgressBar5: TProgressBar;
    ProgressBar6: TProgressBar;
    ProgressBar7: TProgressBar;
    ProgressBar8: TProgressBar;
    ProgressBar9: TProgressBar;
    ProgressBar10: TProgressBar;
    ComboBox50: TComboBox;
    StringGrid4: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button14: TButton;
    Edit36: TEdit;
    Button15: TButton;
    StringGrid5: TStringGrid;
    Edit37: TEdit;

PM MAIL   Вверх
drkot
Дата 20.5.2017, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Используй TFrame.
На отдельных фрэймах делаешь части твоей формы, а потом в Run-Time собираешь форму воедино.

PS: такое количество компонентов будет тормозить при работе


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
casusnur
Дата 21.5.2017, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.5.2017

Репутация: нет
Всего: нет



да оно уже во время пополнения кода тормозит, но надо. лишнего ничего нет, это минимум.
пишу твикер для одной железяки на микроконтроллере.
PM MAIL   Вверх
drkot
Дата 21.5.2017, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Рационально было бы пересмотреть концепцию построения формы:
- динамические константы лучше отрисовывать "ручками" на TPaintBox
- элементы управления вынести на отдельные формы типа ToolWindow
- Формы создавать в Run-Time и по необходимости
- включить DoubleBuffered
- для декорирования использовать TBevel, а не TPanel




--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Beltar
Дата 18.8.2017, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



А не проще сделать один красивый ListView, например, и в него выводить все параметры, а через кнопочку "редактировать" показывать окошечко ввода? И не страдать ерундой. Любой крупный программный пакет, в том числе и сама Delphi с бесчисленным количество настроек, делает примерно так.

А еще есть компонент для редактирования списков "параметр"="значение".


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Gwire
Дата 30.1.2018, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4



Можно.
Код

TForm1 = class(TForm)
{$INCLUDE TForm1_comps.inc}
// все объявления компонентов засунуть в TForm1_comps.inc
Но лучше так не делать.

Или если среда поддерживает директиву {$REGION}, то
Код

TForm1 = class(TForm)
{$REGION 'Компоненты'}
// объявления компонентов
{$ENDREGION}


Это сообщение отредактировал(а) Gwire - 30.1.2018, 16:22
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1382 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.