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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2014, 16:51   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
Сообщение Положение форм в ini файлы

Всех с новым годом!!!
У меня такая маленькая проблема)
Есть программа, в которой есть 298 Form
например, Я открыл только 4 формы и все остальные я не трогал... и вот формы например такие
form2
form5
form232
form125
все у меня только эти формы) Я хотел бы на "OnClose" главной form1 сделать функцию такую,
Например выходит сообщение
showmeasage('Cохранить рабочий стол?') и если юзер нажал на кнопку "ок" или там "да" то программа сохранила те формы которые были открыты, и сохранила их положение в settings.ini чтоб при повторном открытии у меня открылись только те формы которые я оставлял активными, возожно ли так? Если да то можно примерчик?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 01.01.2014, 18:35   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Если у тебя в проекте столько форм - ищи пути от них избавится. Много компонент использовать - не хорошо.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 01.01.2014, 18:43   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Что-то меня терзают смутные сомнения, что есть необходимость в таком количестве форм... Если в них похожие данные, может есть смысл создавать их динамически? В любом случае, я не могу представить программу, в которой можно (не модально!!!) открыть 298 форм, потом перейти на главную и закрыть программу. Ужас!!!

По теме...
- Нужно узнать какие формы сейчас открыты
Код:
if Form2.Showing then
- и записать в ini-файл какой-то параметр (открывать эту форму после открытия главной формы или нет)

ИЛИ

- задать глобальную переменную, например
Код:
var
Write_Forms_Params: Boolean = False;
- А в OnClose всех форм написать
if Write_Form_Params then (записать в ini-файл какой-то параметр, что эту форму нужно открыть после открытия главной).

А в общем, бред... Дальше даже писать не хочется... Пересмотрите всю структуру программы. Не правильно она сделана изначально...
_SERGEYX_ вне форума Ответить с цитированием
Старый 01.01.2014, 19:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Нужно узнать какие формы сейчас открыты
Угу:
Код:
With Screen do begin
 for i:=0 to FormCount-1 do
  if Forms[i].Visible then begin
   With Ini do begin
    WriteInteger(Forms[i].name,'Top',Forms[i].Top);
    WriteInteger(Forms[i].name,'Left',Forms[i].LEft);
    WriteInteger(Forms[i].name,'Width',Forms[i].Width);
    WriteInteger(Forms[i].name,'Hwight',Forms[i].Height);
   end;
  end;
end;
Однако согласен - большое кол-во форм пугает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.01.2014, 19:10   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

ну вот такие окна у меня

просто я же не знаю какое именно нужно будет юзеру....

вот нашел пример

Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var IniFile:TIniFile;
begin
IniFile:=TIniFile.Create('project.ini');
IniFile.WriteInteger('FORM1','Form1Top',Form1.Top);
IniFile.WriteInteger('FORM1','Form1Left',Form1.Left);
IniFile.WriteInteger('FORM1','Form1Height',Form1.Height);
IniFile.WriteInteger('FORM1','Form1Width',Form1.Width);

IniFile.Free;
end;




procedure TForm1.FormCreate(Sender: TObject);
Var IniFile:TIniFile; // объявление переменной, через которую будут обрабатываться данные
begin
IniFile:=TIniFile.Create('project.ini'); // создаем переменную
Form1.Top:=IniFile.ReadInteger('FORM1','Form1Top',Form1.Top); // верхнее положение окна
Form1.Left:=IniFile.ReadInteger('FORM1','Form1Left',Form1.Left); // левое положение окна
Form1.Height:=IniFile.ReadInteger('FORM1','Form1Height',Form1.Height); // высота
Form1.Width:=IniFile.ReadInteger('FORM1','Form1Width',Form1.Width); // ширина
IniFile.Free; // если сами создаем, то сами уничтожаем.
end;
вроде норм все работает....
99% ошибок компьютера сидит в полуметре от монитора.

Последний раз редактировалось Fahman; 01.01.2014 в 19:12.
Fahman вне форума Ответить с цитированием
Старый 01.01.2014, 20:57   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
ну вот такие окна у меня
и чем они различаются? на сколько я могу разглядеть, то ничем
eval вне форума Ответить с цитированием
Старый 01.01.2014, 21:27   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
и чем они различаются? на сколько я могу разглядеть, то ничем
как ни чем? в каждом окне свой фьчерс свои акции и валютные пары ) только размер 1) ито не у всех акций
золото например чуток меньше по высоте
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 01.01.2014, 21:30   #8
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Но их же юзер не будет просматривать одновременно. Да и если одновременно - создавай динамически. http://www.cyberforum.ru/delphi-begi...read99806.html
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 01.01.2014 в 21:32.
alextrof94 вне форума Ответить с цитированием
Старый 01.01.2014, 21:37   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в каждом окне свой фьчерс свои акции и валютные пары )
Все равно овер 200 окон это перррребор...
Одновременно чтоб их просмотреть понадобится А-а-а-а-громнейший телевызер.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.01.2014, 21:46   #10
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Кажется я понял. Человек не рисует на форме графики, а имеет кучу имаджей с картинками, распиханными по формам, а о динамическом создании вообще ничего не знает, вот и накодил тучу бреда.
doktor255 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ini файлы King_Of_Arthur БД в Delphi 8 29.07.2013 14:35
ini файлы Умагаджи Общие вопросы Delphi 5 08.02.2011 16:09
ini-файлы KORT Общие вопросы C/C++ 1 07.07.2008 15:12
Ini файлы Airou Общие вопросы Delphi 23 07.05.2008 19:50
INI файлы aesoem Общие вопросы Delphi 3 24.12.2007 21:22