Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 12:30   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию Сохранение ранее введенных значений в TEdit

Добрый день
Есть следующее:
Контрол типа Edit1, изначально пустой (в свойствах text = пусто) и кнопка Button1 на форме
суть проблемы:
нужно после ввода значения в Edit1 нажать на кнопку и запомнить веденное значение таким образом, что бы после перезапуска программы ранее введенное значение отобразилость в контроле и было доступно для других обработчиков событий (по сути это страница настройки параметров программы )
Вопрос:
При помощи каких методов это делается?
- запись значения из контрола в реестр с последующим чтением из реестра при перезапуске программы
- запись в файл.ини
- запись где то в самой программе?
Pcrepair вне форума Ответить с цитированием
Старый 07.01.2011, 12:41   #2
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Не пойму, а в чем собственно проблемы?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Stroka: String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Stroka:= Edit1.Text;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Stroka:= '';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if Stroka<> '' then
    Edit1.Text:= Stroka;
end;

end.
Ну или через реестр, или переменную...

Последний раз редактировалось Stilet; 07.01.2011 в 14:29.
vasek123 вне форума Ответить с цитированием
Старый 07.01.2011, 13:15   #3
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

vasek123, стремный какой-то ответ... А где сохранение значения?
Pcrepair, храните в *.ini - TStringList (Методы LoadFromFile и SaveToFile)
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 07.01.2011, 13:20   #4
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от AlDelta Посмотреть сообщение
vasek123, стремный какой-то ответ... А где сохранение значения?
Pcrepair, храните в *.ini - TStringList (Методы LoadFromFile и SaveToFile)
Упс... Совсем забыл, что, значения глобальных переменных очищается при выходе из программы.

Последний раз редактировалось vasek123; 07.01.2011 в 13:29.
vasek123 вне форума Ответить с цитированием
Старый 07.01.2011, 13:20   #5
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

vasek123, скомпилируй программу, введи значение, закрой ее. Открой заново. Там уже твоих данных не будет. А автору именно это и нужно.

Цитата:
vasek123, стремный какой-то ответ... А где сохранение значения?
Pcrepair, храните в *.ini - TStringList (Методы LoadFromFile и SaveToFile)
Это не интересно Слышал что-то про такую штуку как Файл Мэппинг, по моему это то, что автору нужно, только я не разбирался в этом даже...
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 07.01.2011, 13:38   #6
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Файл Мэппинг это не то.
Более простых вариантов чуть более чем достаточно.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 07.01.2011, 14:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да тут INIFiles самое оно.http://www.programmersforum.ru/showthread.php?t=14551
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 15:29   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Мне бы TStringList'a и Values хватило бы))
psycho-coder вне форума Ответить с цитированием
Старый 07.01.2011, 19:20   #9
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию а вот и реальный код

Код:
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.
но есть еще один вопрос: при перезапуске программы сохраненное значение выводится в "синем фоне", как от этого избавится?

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.01.2011 в 20:02.
Pcrepair вне форума Ответить с цитированием
Старый 07.01.2011, 19:36   #10
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Как понять в "синем фоне"? Скрин приложите
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение и загрузка в файл текстовых значений и значений типа Boolean krikaved Общие вопросы Delphi 1 16.03.2010 07:53
Сохранение значений checkbox DjRusya Помощь студентам 0 11.03.2010 16:48
сохранение значений прямо в exe Roof Общие вопросы Delphi 37 04.12.2008 09:37
TEdit сохранение в файл и чтение при загрузке Casper-SC Помощь студентам 7 05.07.2007 03:16