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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.12.2010, 21:46
Mont1k Mont1k вне форума
Прохожий
 
Регистрация: 24.10.2010
Сообщения: 8
Репутация: 10
По умолчанию Сохранение конфигурации пользователя

Привет!

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

Как можно это сделать?

Если можно поподробней пожалуйста...
Ответить с цитированием
  #2  
Старый 19.12.2010, 22:24
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Можно хранить конфигурацию в файле с именем ИмяПользователя.cfg.
Использовать можно стандартный текстовый файл. Пишешь там любые конфигурации в любом виде, например так:
Код:
Sleep=10;
Width=150;
Height=400;
...
Когда включается юзер, ищешь файл с соответствующим именем, читаешь его по строкам и восстанавливаешь конфигурацию.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 19.12.2010, 22:30
CodeNameHawk CodeNameHawk вне форума
Прохожий
 
Регистрация: 13.07.2010
Сообщения: 5
Репутация: 10
По умолчанию

В дельфи есть TRegistry
В нем есть возможность сохранять нужные параметры.

Есть готовый компонент FormPlacement из библиотеки RXLIB
Позволяет сохранять размеры и положение основного окна. (Для одного пользователя)

Последний раз редактировалось CodeNameHawk, 19.12.2010 в 22:34.
Ответить с цитированием
  #4  
Старый 26.12.2010, 21:28
Mont1k Mont1k вне форума
Прохожий
 
Регистрация: 24.10.2010
Сообщения: 8
Репутация: 10
По умолчанию

а как сделать так, чтобы в RichView оставался тот же открытый rtf файл?
что нужно вписать в конфигах?

да и вообще я всёравно как не очень понял%)
Ответить с цитированием
  #5  
Старый 26.12.2010, 22:20
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Чтобы оставался тот же открытый файл, сохраняй путь к тому самому rtf файлу.
Если не знаешь как свой тип файлов писать, пиши в ИНИ файлы и читай оттуда же.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #6  
Старый 27.12.2010, 00:08
Mont1k Mont1k вне форума
Прохожий
 
Регистрация: 24.10.2010
Сообщения: 8
Репутация: 10
По умолчанию

а можно этот код сохраняющий rtf файл в richview?
Ответить с цитированием
  #7  
Старый 27.12.2010, 09:38
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Тут всё просто. Сначала объявляем переменные:
Код:
LastOpened, path, username: string;
I: TIniFile;

Потом пишем в OnClose главного окна:
Код:
I:=TIniFile.Create(path+'settings');
I.WriteString(username,'LastOpened',LastOpened);
//Здесь можно написать ещё настроек для пользователя username

И в событии OnShow формы с RichView:
Код:
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\';

I:=TIniFile.Create(path+'settings');
LastOpened:=I.ReadString(username,'LastOpened',path+'readme.txt');
//И опачки! Вот у нас есть путь до последнего открытого файла!
//Теперь можешь его открывать.

Ну и в конце события, в котором ты открываешь файл (ты же через OpenDialog открываешь, да?):
Код:
LastOpened:=OpenDialog1.FileName;

Итого получаем:
LastOpened - переменная содержит строку с путём к последнему открытому тобой файлу. Если такой пользователь ещё не открывал никаких файлов, то она содержит путь к файлу "readme.txt", лежащему в папке с программой.
path - адрес папки, в которой лежит программа.
username - имя текущего пользователя. Получается заранее.
I - линк на INI файл.

I.WriteString([название раздела],[имя переменной],[значение]);
Можно писать все основные типы по образцу - I.WriteInteger, I.WriteReal...

[Имя переменной]:=I.ReadString([раздел],[переменная],[значение по умолчанию]);

Вопросы?
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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