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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2016, 14:00   #1
hudrogen
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию Сохранить результат DragAndDrop визуальных компонентов (Delphi 6)

Здравствуйте! Использую Delphi 6.
Я создаю одну форму, в нее кидаю Panel и PageControl. Делаю их параметры DockSite := true;
Также создаю 2 формы, в которых расположен Memo. У этих двух форм параметры DragKind := dkDock и DragMode := dmAutomatic.
1.jpg
В процессе выполнения программы я могу перекинуть эти 2 форму на панель или пейджконтрол на главной форме при помощи DragAndDrop.
2.jpg
Мне надо чтобы после того как я запущу проект на выполнение во второй раз, расположение перетасканных элементов было таким же, как при закрытии выполняющейся программы в предыдущий раз, т.е. вид только что запущенной программы должен быть таким же как скрин выше

Тестовый проект
Draganddrop.zip
hudrogen вне форума Ответить с цитированием
Старый 11.02.2016, 15:25   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По выходу сохраняй в инишке или реестре данные о состоянии, при следующем входе читай и программно делай состояние в соответствии с прочитанным
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.02.2016, 15:33   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

запоминайте и записывайте в файл куда у вас закреплена/не закреплена форма
и при открытии указывайте тот объект какой нужен

Код:
  f: file of TWinControl;
  tip:TWinControl
.......
assignFile(f,'C:\dd.ini');
reset(f);
read(f,tip);
...........
 Forma2.ManualDock(tip, nil, alNone);

........
assignFile(f,'C:\dd.ini');
rewrite(f);
tip:= Forma2.Parent;
Write(f, tip);
........
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 11.02.2016 в 15:53.
Dvoishnik вне форума Ответить с цитированием
Старый 11.02.2016, 15:42   #4
hudrogen
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По выходу сохраняй в инишке или реестре данные о состоянии, при следующем входе читай и программно делай состояние в соответствии с прочитанным
Под данными о состоянии вы имеете в виду Properties Главной формы?
hudrogen вне форума Ответить с цитированием
Старый 11.02.2016, 15:51   #5
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от hudrogen Посмотреть сообщение
Под данными о состоянии вы имеете в виду Properties Главной формы?
я же вам написал.
П.С. родителя зависимой формы в файл записывайте.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 11.02.2016, 16:09   #6
hudrogen
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
я же вам написал.
П.С. родителя зависимой формы в файл записывайте.
Спасибо, щас гляну, не увидел сразу ваше сообщение
hudrogen вне форума Ответить с цитированием
Старый 11.02.2016, 17:02   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем здесь сериализация, тем более так? А если инишка удалена или попорчена? Здесь просто можно сохранять позицию, размеры и признаки того встроены или нет формы, и куда. При восстановлении анализировать корректность данных инишки и, если что ни так, то просто воспользоваться умолчаниями
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.02.2016, 17:31   #8
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

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

П.С. немного не понял что у меня не так.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 11.02.2016, 17:47   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну делфи все таки
https://rsdn.ru/article/delphi/serialization.xml
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.02.2016, 17:59   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

использование только стандартных классов является обязательным?
а то это вам не это! есть более другие компонентики...

205.jpg

сохранение и загрузка - 2 строки кода.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перемещение визуальных компонентов. Dvoishnik Общие вопросы Delphi 6 26.01.2016 14:35
Как сохранить результат команды ipconfig в текстовый файл ? adaptive person Общие вопросы Delphi 3 31.03.2012 23:03
Повернуть изображение и сохранить результат new player Мультимедиа в Delphi 2 03.11.2011 12:57
Лабораторная в Delphi по теме: Использование визуальных компонент Ilepekyp Помощь студентам 2 18.05.2010 21:50
ListBox в C# DragandDrop MightyElephant Общие вопросы .NET 1 08.12.2008 11:04