Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение ранее введенных значений в 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]

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

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо