Форум по 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([раздел],[переменная],[значение по умолчанию]);

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

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #8  
Старый 28.12.2010, 12:09
Mont1k Mont1k вне форума
Прохожий
 
Регистрация: 24.10.2010
Сообщения: 8
Репутация: 10
По умолчанию

у меня вот в чём проблема та) мне ничего не надо открывать нужно чтобы это автоматически происходило, т.е.:

в программе 3 формы:
1)Главная в форма в которой находяться только Button's и richview
2)Форма "О программе", но она не имеет значение.
3)Форма входа в ней есть Edit и Button

так вот мне нужно сделать так чтобы в 3 форме в компоненте edit вводилось имя и это имя сохранялось как пользователь, после ввода имени открывалась 1 форма, и после закрытия формы сохранялось конкретно для этого пользователями то что было последним открытым в RichView.
ну и если же имя пользователя другое , то в RichView пустое.
Ответить с цитированием
  #9  
Старый 28.12.2010, 13:04
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Facepalm...
Ты что, сообщение по диагонали читал?!
Я тебе что, не то что ли пихаю?

У тебя какая процедура загрузки текста в TRichView? Давай её сюда.

Изменение по пользователю тут уже реализовано. Всё грузится на автомате, только функцию открытия давай.

Если, не хочешь, чтобы у нового юзера открывался readme.txt, измени код так:
Код:
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\';

I:=TIniFile.Create(path+'settings');
LastOpened:=I.ReadString(username,'LastOpened',''); //вот тут изменение
if LastOpened<>'' then
begin
  //Тут процедура открытия файла в RichEdit
end

И откуда ты берёшь путь к файлу, который открываешь?

З.Ы. Сначала почитай код, потом задавай вопросы.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #10  
Старый 29.12.2010, 19:43
Mont1k Mont1k вне форума
Прохожий
 
Регистрация: 24.10.2010
Сообщения: 8
Репутация: 10
По умолчанию

EvilRussian - ответь в личке.
Ответить с цитированием
  #11  
Старый 29.12.2010, 20:07
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Mont1k - а у Вас хоть строчка кода в проекте уже есть?
Или как раз здесь Вам это и должны написать ?
И если Вам ничего не надо открывать - то как ваши пользователи открывают файлы?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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