Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.03;
Скачать: CL | DM;

Вниз

Сохранение ранее введенных значений в TEdit   Найти похожие ветки 

 
Pcrepair ©   (2011-01-07 12:05) [0]

Добрый день
Есть следующее:
Контрол типа Edit1, изначально пустой (в свойствах text = пусто) и кнопка Button1  на форме
суть проблемы:
нужно после ввода значения в Edit1 нажать на кнопку и запомнить веденное значение таким образом, что бы после перезапуска программы ранее введенное значение отобразилость в контроле и было доступно для других обработчиков событий (по сути это страница настройки параметров программы )
Вопрос:
При помощи каких методов это делается?
- запись значения из контрола в реестр с последующим чтением из реестра при перезапуске программы
- запись в файл.ини
- запись где то в самой программе?


 
_Юрий   (2011-01-07 12:21) [1]

> При помощи каких методов это делается?
> из реестра при перезапуске программы
Можно так

> - запись в файл.ини
Или так

> - запись где то в самой программе?
а это врядли


 
Pcrepair ©   (2011-01-07 12:32) [2]

а какой способ правильный? или наиболее применяемый


 
_Юрий   (2011-01-07 12:42) [3]


> а какой способ правильный? или наиболее применяемый


Это тема для холивара.
На мой взгляд, лучше в реестр


 
Anatoly Podgoretsky ©   (2011-01-07 12:52) [4]


> запись где то в самой программе?

Что такое сама программ?


 
Pcrepair ©   (2011-01-07 13:01) [5]

(4)в данном случае программа это форма с полем ввода и кнопкой, потом еще что нибуть можно прикрутить

(3)что бы записывать что то в реестр пользователь должен иметь права админа, иначе программа не будет иметь доступа к реестру
получается что более правильный метод - записать в файл.ини и потом , при перезапуске программы, считать из него


 
_Юрий   (2011-01-07 13:11) [6]


> что бы записывать что то в реестр пользователь должен иметь
> права админа, иначе программа не будет иметь доступа к реестру


смотря куда. В CurrentUser можно и без админа.
С ини-файлом главный вопрос - где он будет храниться.
И легко ли будет его потом найти.


 
Anatoly Podgoretsky ©   (2011-01-07 13:11) [7]

> Pcrepair  (07.01.2011 13:01:05)  [5]

Странные у тебя представление о реестре.


 
Pcrepair ©   (2011-01-07 13:16) [8]

(6) ини-файл можно хранить в том же каталоге, это не принципиально, пока
а какой код будет проще - запись-чтение из реестра, или запись -чтение из файла. пока не то не другое не разбирал, надо для начала что попроще


 
Anatoly Podgoretsky ©   (2011-01-07 13:21) [9]

> Pcrepair  (07.01.2011 13:16:08)  [8]

Что значит "в том же каталоге", Технические термины ТОР, ЭТОТ не немут
инфррмации.


 
Anatoly Podgoretsky ©   (2011-01-07 13:23) [10]


> (4)в данном случае программа это форма с полем ввода и кнопкой,
>  потом еще что нибуть можно прикрутить

В таком случае сохраняй в "сама программ"


 
RWolf ©   (2011-01-07 16:12) [11]


> Pcrepair ©   (07.01.11 13:01) [5]

хинт: на каждый раздел реестра устанавливаются свои права доступа.


 
Pcrepair ©   (2011-01-07 19:22) [12]

реальный код такой:
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.

но есть еще один вопрос: при перезапуске программы сохраненное значение выводится в "синем фоне", как от этого избавится?


 
Pcrepair ©   (2011-01-07 19:52) [13]

уже нашел
всем спасибо за подсказки


 
Юрий Зотов ©   (2011-01-08 00:16) [14]

1. Что делает этот цикл?
for i := 0 to Names.Count - 1 do
 names.Destroy;

Это явная ошибка.

2. Вызывать деструкторы напрямую не рекомендуется, используйте Free.

3. Везде не хватает try-finally:
создали объект
try
 работаем с объектом
finally
 объект.Free
end


 
Германн ©   (2011-01-08 02:17) [15]


> Pcrepair ©   (07.01.11 19:22) [12]
>
> реальный код такой:


> Юрий Зотов ©   (08.01.11 00:16) [14]
>
> 1. Что делает этот цикл?
> for i := 0 to Names.Count - 1 do
>  names.Destroy;
> Это явная ошибка.
>

Это не "реальный код". Это бред какой-то.


 
Pcrepair ©   (2011-01-08 10:02) [16]

вовсе не бред поскольку все работает
все вопросы к "Королевству ДЕльфи", код оттуда
но подумаем, спасибо за подсказку


 
Юрий Зотов ©   (2011-01-08 10:48) [17]

> Pcrepair ©   (08.01.11 10:02) [16]

> вовсе не бред поскольку все работает

Дело Ваше, но очень советую раз и навсегда понять, что "все работает" еще ничего не значит.

> все вопросы к "Королевству ДЕльфи", код оттуда

Дело Ваше, но очень советую раз и навсегда понять, что:

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

б). слепое копирование кода без его понимания - это ОЧЕНЬ плохо;

в). все вопросы ВСЕГДА к АВТОРУ программы.


 
Pcrepair ©   (2011-01-08 14:53) [18]

нет никакой программы
это просто процесс изучения возможностей Делфи


 
Юрий Зотов ©   (2011-01-08 15:31) [19]


> Pcrepair ©   (08.01.11 14:53) [18]

Тогда слепое копирование кода без попытки его понять тем более неверно.

PS
А возможности Delphi почти безграничны. По крайней мере, на платформе Widows на Delphi можно написать все, кроме драйверов.


 
sniknik ©   (2011-01-08 19:57) [20]

> кроме драйверов.
драйвер тоже, с извратами правда. а если бы не происки мелкософта, то и их бы не было.



Страницы: 1 вся ветка

Текущий архив: 2011.04.03;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.01 c
15-1292493434
Kerk
2010-12-16 12:57
2011.04.03
Полное дорожное видео трассы «Москва - Владивосток»


15-1292771326
НЕКТО
2010-12-19 18:08
2011.04.03
Символ пробела в регулярном выражении


15-1289887840
dm
2010-11-16 09:10
2011.04.03
борьба с вирусом


2-1294224905
Unknown_user
2011-01-05 13:55
2011.04.03
SQL запрос


2-1294130488
Pcrepair
2011-01-04 11:41
2011.04.03
Вопрос по преобразованию типов переменных (TImage и FILE)