![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение ранее введенных значений в TEdit
Pcrepair © (2011-01-07 12:05:00)Добрый день
Есть следующее:
Контрол типа Edit1, изначально пустой (в свойствах text = пусто) и кнопка Button1 на форме
суть проблемы:
нужно после ввода значения в Edit1 нажать на кнопку и запомнить веденное значение таким образом, что бы после перезапуска программы ранее введенное значение отобразилость в контроле и было доступно для других обработчиков событий (по сути это страница настройки параметров программы )
Вопрос:
При помощи каких методов это делается?
- запись значения из контрола в реестр с последующим чтением из реестра при перезапуске программы
- запись в файл.ини
- запись где то в самой программе?
sniknik (2011-01-08 19:57:00) [1]> кроме драйверов.
драйвер тоже, с извратами правда. а если бы не происки мелкософта, то и их бы не было.
Юрий Зотов (2011-01-08 15:31:00) [2]
> Pcrepair © (08.01.11 14:53) [18]
Тогда слепое копирование кода без попытки его понять тем более неверно.
PS
А возможности Delphi почти безграничны. По крайней мере, на платформе Widows на Delphi можно написать все, кроме драйверов.
Pcrepair (2011-01-08 14:53:00) [3]нет никакой программы
это просто процесс изучения возможностей Делфи
Юрий Зотов (2011-01-08 10:48:00) [4]> Pcrepair © (08.01.11 10:02) [16]
> вовсе не бред поскольку все работает
Дело Ваше, но очень советую раз и навсегда понять, что "все работает" еще ничего не значит.
> все вопросы к "Королевству ДЕльфи", код оттуда
Дело Ваше, но очень советую раз и навсегда понять, что:
а). и здесь, и на Королевстве, и на любых других форумах хватает чайников, считающих себя знатоками и дающих неверные советы и примеры ужасного кода;
б). слепое копирование кода без его понимания - это ОЧЕНЬ плохо;
в). все вопросы ВСЕГДА к АВТОРУ программы.
Pcrepair (2011-01-08 10:02:00) [5]вовсе не бред поскольку все работает
все вопросы к "Королевству ДЕльфи", код оттуда
но подумаем, спасибо за подсказку
Германн (2011-01-08 02:17:00) [6]
> Pcrepair © (07.01.11 19:22) [12]
>
> реальный код такой:
> Юрий Зотов © (08.01.11 00:16) [14]
>
> 1. Что делает этот цикл?
> for i := 0 to Names.Count - 1 do
> names.Destroy;
> Это явная ошибка.
>
Это не "реальный код". Это бред какой-то.
Юрий Зотов (2011-01-08 00:16:00) [7]1. Что делает этот цикл?
for i := 0 to Names.Count - 1 do
names.Destroy;
Это явная ошибка.
2. Вызывать деструкторы напрямую не рекомендуется, используйте Free.
3. Везде не хватает try-finally:
создали объект
try
работаем с объектом
finally
объект.Free
end
Pcrepair (2011-01-07 19:52:00) [8]уже нашел
всем спасибо за подсказки
Pcrepair (2011-01-07 19:22:00) [9]реальный код такой:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
F: TIniFile;
names: TStringList;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'rdp.ini');
Edit1.Text := F.ReadString('tools', 'edit1', 'no text');
names := TStringList.Create;
F.ReadSection('files', names);
for i := 0 to Names.Count - 1 do
names.Destroy;
F.Destroy;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
F: TIniFile;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'rdp.ini');
F.WriteString('tools', 'edit1', Edit1.Text);
F.Free;
end;
end.
но есть еще один вопрос: при перезапуске программы сохраненное значение выводится в "синем фоне", как от этого избавится?
RWolf (2011-01-07 16:12:00) [10]
> Pcrepair © (07.01.11 13:01) [5]
хинт: на каждыйраздел реестра устанавливаются свои права доступа.
Anatoly Podgoretsky (2011-01-07 13:23:00) [11]
> (4)в данном случае программа это форма с полем ввода и кнопкой,
> потом еще что нибуть можно прикрутить
В таком случае сохраняй в "сама программ"
Anatoly Podgoretsky (2011-01-07 13:21:00) [12]> Pcrepair (07.01.2011 13:16:08) [8]
Что значит "в том же каталоге", Технические термины ТОР, ЭТОТ не немут
инфррмации.
Pcrepair (2011-01-07 13:16:00) [13](6) ини-файл можно хранить в том же каталоге, это не принципиально, пока
а какой код будет проще - запись-чтение из реестра, или запись -чтение из файла. пока не то не другое не разбирал, надо для начала что попроще
Anatoly Podgoretsky (2011-01-07 13:11:00) [14]> Pcrepair (07.01.2011 13:01:05) [5]
Странные у тебя представление о реестре.
_Юрий (2011-01-07 13:11:00) [15]
> что бы записывать что то в реестр пользователь должен иметь
> права админа, иначе программа не будет иметь доступа к реестру
смотря куда. В CurrentUser можно и без админа.
С ини-файлом главный вопрос - где он будет храниться.
И легко ли будет его потом найти.
Pcrepair (2011-01-07 13:01:00) [16](4)в данном случае программа это форма с полем ввода и кнопкой, потом еще что нибуть можно прикрутить
(3)что бы записывать что то в реестр пользователь должен иметь права админа, иначе программа не будет иметь доступа к реестру
получается что более правильный метод - записать в файл.ини и потом , при перезапуске программы, считать из него
Anatoly Podgoretsky (2011-01-07 12:52:00) [17]
> запись где то в самой программе?
Что такое сама программ?
_Юрий (2011-01-07 12:42:00) [18]
> а какой способ правильный? или наиболее применяемый
Это тема для холивара.
На мой взгляд, лучше в реестр
Pcrepair (2011-01-07 12:32:00) [19]а какой способ правильный? или наиболее применяемый
_Юрий (2011-01-07 12:21:00) [20]> При помощи каких методов это делается?
> из реестра при перезапуске программы
Можно так
> - запись в файл.ини
Или так
> - запись где то в самой программе?
а это врядли