![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет!
Запрашивать имя пользователя и сохранять конфигурацию программы для каждого пользователя при завершении работы. При повторной работе того же пользователя восстанавливать конфигурацию программы. Как можно это сделать? Если можно поподробней пожалуйста... ![]() |
#2
|
||||
|
||||
![]() Можно хранить конфигурацию в файле с именем ИмяПользователя.cfg.
Использовать можно стандартный текстовый файл. Пишешь там любые конфигурации в любом виде, например так: Код:
Sleep=10; Width=150; Height=400; ... jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() В дельфи есть TRegistry
В нем есть возможность сохранять нужные параметры. Есть готовый компонент FormPlacement из библиотеки RXLIB Позволяет сохранять размеры и положение основного окна. (Для одного пользователя) Последний раз редактировалось CodeNameHawk, 19.12.2010 в 22:34. |
#4
|
|||
|
|||
![]() а как сделать так, чтобы в RichView оставался тот же открытый rtf файл?
что нужно вписать в конфигах? да и вообще я всёравно как не очень понял%) |
#5
|
||||
|
||||
![]() Чтобы оставался тот же открытый файл, сохраняй путь к тому самому rtf файлу.
Если не знаешь как свой тип файлов писать, пиши в ИНИ файлы и читай оттуда же. Помогаю за Спасибо ![]() |
#6
|
|||
|
|||
![]() а можно этот код сохраняющий rtf файл в richview?
|
#7
|
||||
|
||||
![]() Тут всё просто. Сначала объявляем переменные:
Код:
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
|
|||
|
|||
![]() у меня вот в чём проблема та) мне ничего не надо открывать нужно чтобы это автоматически происходило, т.е.:
в программе 3 формы: 1)Главная в форма в которой находяться только Button's и richview 2)Форма "О программе", но она не имеет значение. 3)Форма входа в ней есть Edit и Button так вот мне нужно сделать так чтобы в 3 форме в компоненте edit вводилось имя и это имя сохранялось как пользователь, после ввода имени открывалась 1 форма, и после закрытия формы сохранялось конкретно для этого пользователями то что было последним открытым в RichView. ну и если же имя пользователя другое , то в RichView пустое. |
#9
|
||||
|
||||
![]() 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
|
|||
|
|||
![]() EvilRussian - ответь в личке.
|
#11
|
||||
|
||||
![]() Mont1k - а у Вас хоть строчка кода в проекте уже есть?
Или как раз здесь Вам это и должны написать ? И если Вам ничего не надо открывать - то как ваши пользователи открывают файлы? |