Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.04.03;
Скачать: [xml.tar.bz2];

Вниз

Сохранение ранее введенных значений в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.003 c
2-1293992229
v_a_belousov
2011-01-02 21:17
2011.04.03
Работа с изображением


15-1292399951
Jeer
2010-12-15 10:59
2011.04.03
Внедрение ГЛОНАСС полным ходом..


2-1294420329
vnutr
2011-01-07 20:12
2011.04.03
Помогите со stringgrid ом


1-1251709470
Franzy
2009-08-31 13:04
2011.04.03
Как организовать такую штуку?..


2-1294216275
zd
2011-01-05 11:31
2011.04.03
модальное окно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский