Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.07.2011, 12:40
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
Вопрос Объедиднение наследуемой и младшей формы в одну - как?

Есть форма 1 и форма 2 которая основана на форме 1 (наследует).

а) Есть ли какая то простая функция в Delphi XE, позволяющая находясь в форме 2 сделать её автономной, то есть подклеить в форму 2 всё, что унаследовано из формы 1 ?
УЖЕ ЕСТЬ 2 формы. Хочу сделать, чтобы форма 2 стала независимой от формы 1, но при этом сохранила в себе всё из формы 1 ! То есть в форму 2 как бы подклеить всё (объекты, компоненты, код) из формы 1.

б) Можно как-то находясь в форме 2.dfm сбросить настройки и положение некоторых объектов, которые были унаследованы из формы 1 ? Например в родительской форме 1 есть Tlabel, в форме 2 его случайно подвинули и он сразу прописался в 2.dfm. Как убрать его повторное описание из 2.dfm (таким образом вернув ему положение как в родительской форме 1)? ------------ нашёл правая кнопка мышки на объекте - "Revert to inherited".

Последний раз редактировалось delphicoding, 21.07.2011 в 15:00.
Ответить с цитированием
  #2  
Старый 23.07.2011, 16:14
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

Так есть ли в Delphi XE функция для "а)" ?
Ответить с цитированием
  #3  
Старый 23.07.2011, 16:26
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

inherited;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 23.07.2011, 18:31
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

УЖЕ ЕСТЬ 2 формы - 1 родительская и 2 дочерняя. Хочу сделать, чтобы форма 2 стала независимой от формы 1, но при этом сохранила в себе всё из формы 1 ! То есть в форму 2 как бы подклеить всё наследуемое (объекты, компоненты, код) из формы 1.
Ответить с цитированием
  #5  
Старый 23.07.2011, 19:04
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Сделай у них общего предка.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 23.07.2011, 21:12
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

ты прочти ещё раз чтобы понять о чём речь вообще
Ответить с цитированием
  #7  
Старый 25.07.2011, 10:33
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Насколько я понял форма2 не должна быть наследуемой, но содержать то же что и форма1, тогда её проще скопировать, по моему
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #8  
Старый 25.07.2011, 12:16
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

Viajero
Всё правильно понял. Скопировать понятно, но это как-то очень тупо, особенно когда каждая из форм содержит по 100объектов и по 1000-2000строк... надеялся что хоть это в Delphi автоматизировали... видимо нет...
Ответить с цитированием
  #9  
Старый 25.07.2011, 12:42
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Цитата:
особенно когда каждая из форм содержит по 100объектов и по 1000-2000строк..
Что тебе мешает скопировать сами файлы формы. Не скажу со 100% уверенности за др версии, а в Delphi7 (6, 5) я делаю так:
есть Forma1
делаю File/Save as ... Forma2
При этом создаются файлы для Forma2 (название юнита меняется а имя формы в свойствах надо самому поменять), а файлы для Forma1 не стираются, но остаются не подключенными.
Далее Project/Add Forma1
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #10  
Старый 25.07.2011, 18:36
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

Delphi конечно порой поражает тупизной... много конечно различных удобств и заведомо проще в работе чем C++, но иногда всё же Delphi бесит...

В общем после длительного ковыряния самый удобный вариант склеивания наследуемых форм такой:
1. Берём форму самую последнюю из наследуемых (самую сложную), создаём новую пустую, копируем на новую форму сначала все невизуальные объекты (тк объекты класса DataSource и DataSet будут нужны при копировании объектов визуальных), затем копируем все визуальные компоненты. Ура, в новой форме уже есть ВСЕ объекты из ВСЕХ многочисленных родительских форм (от первой родительской до последней дочерней)!
2. Вот тут сильный приступ тупизны случился у разработчиков Delphi и не менее сильный приступ ненависти у писателя - увы Delphi не умеет копировать вместе с объектом назначенный на его события код типа OnButtonClick итп. Теперь нужно вручную прописать назначения кода на события и перенести код... (тут возникает второй приступ ненависти к Delphi, тк когда смотришь на последнюю дочернюю форму и видишь назначенный код - никаким образом нельзя понять в какой поколении родительской формы этот код написан... приходится перебирать каждый родительский юнит, млять!)
3. Чистка и склейка кода, тк опять (приступ ненависти) в Delphi нет автосклейки наследуемого кода - это когда находится две одинаково называющиеся процедуры и от дочернего к первому родителю происходит совмещение/наложение кода в местах где указано inherited/override/итд.

В общей сложности склейка сложной формы с сотней полей, тремя родителями и множество данных - заняло около целого дня.
(приступ бешенства) А могло бы занять 10-30минут, если бы Embarcadero не бежало за C++, а продолжало дорабатывать Delphi...

Последний раз редактировалось delphicoding, 25.07.2011 в 18:42.
Ответить с цитированием
  #11  
Старый 25.07.2011, 21:34
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Offtop
Ядом, вы брызгаться научились, а вот учиться программировать желания нет. Отсюда и все проблемы.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 25.07.2011, 21:56
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

вы путаете "уметь разговаривать" и "уметь разговаривать на диалекте тумба-юмба"
Ответить с цитированием
  #13  
Старый 25.07.2011, 22:12
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

в итоге нихрена форма не пашет после объединения... когда открывается для редактирования - всё ок, но когда открывается пустая для ввоад новых данных - все поля как бы неработают - списки создаваемые из данных БД пустые... итд. блин, фигли не сделали автосклейку наследуемых форм?! в авторежиме это задача простейшая!! а вручную охренеть...
Ответить с цитированием
  #14  
Старый 25.07.2011, 22:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Чтобы что то получилось, нужно знать возможности языка, а не кричать:
Цитата:
Delphi конечно порой поражает тупизной
но кричать проще, а учить долго. Да и на форуме, вот неблагодарные , не хотят всё сделать за вас.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 26.07.2011, 12:44
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

Да ладно, я понимаю Ваши чувства, но некоторые моменты в Delphi всё же сделаны неудобно или просто ещё не сделаны, хотя за такой срок всё должно было быть уже на своих местах...
Учить (читать книги) по каждому языку с которым сейчас сталкиваешься (программы 4шт, БД 3шт, интернет 4шт, спецязыки 2шт) уже просто нереально
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025