Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.07.2010, 12:04
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию Запоминание в программе

В общем, нужно чтобы программа запоминала строки, которые написаны в едитах и мемо. Как это организовать? Какой код нужен? Можно без ini, а просто сохранять в ткстовик на каждой строчке. При создании формы закружать из текстовика, при закрытии заполнять. Очень прошу помощи.
Ответить с цитированием
  #2  
Старый 06.07.2010, 12:42
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

лови!
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
сохранение
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var f: textfile;
    i:byte;
begin
  AssignFile(f,'yo.txt');
  rewrite(f);// или append(f) смотря что тебе надо
  writeln(f,edit1.text);
  writeln(f,edit2.text);
  for i:=0 to memo1.Lines.Count-1 do
  writeln(f,memo1.lines[i]);
 
  closefile(f);
end;
 
загрузка
procedure TForm1.FormCreate(Sender: TObject);
var f: textfile;
    i:byte;
    s:string;
begin
  AssignFile(f,'yo.txt');
  reset(f);
  readln(f,edit1.text);
  readln(f,edit2.text);
  closefile(f)
end;
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #3  
Старый 06.07.2010, 14:32
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию

не получается..
Ответить с цитированием
  #4  
Старый 06.07.2010, 14:44
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от arach
не получается..
Что именно не получается?
Ответить с цитированием
  #5  
Старый 06.07.2010, 17:36
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию Вновь огромная проблема!

Значит, сделал вот так:

PHP код:
procedure TForm1.FormClose(SenderTObject; var ActionTCloseAction);
begin
Sett
:=tstringlist.create;
Sett.add (labeledEdit1.Text);
Sett.add (LabeledEdit2.Text);
Sett.add (labeledEdit4.Text);
Sett.add (labeledEdit5.Text);
Sett.add (labeledEdit6.Text);
Sett.add (labeledEdit7.Text);
Sett.add (labeledEdit8.Text);
Sett.add (Edit1.Text);
Sett.add (Edit2.Text);
Sett.add (Edit3.Text);
Sett.add (Edit4.Text);
Sett.add (Edit5.Text);
Sett.Add (form2.Memo1.text);
Sett.Add (form2.Memo2.text);
Sett.Add (form2.Memo3.text);
Sett.Add (form2.Memo4.text);
Sett.Add (form2.Memo5.text);
Sett.Add (form2.Memo6.text);
Sett.Add (form2.Memo7.text);
Sett.Add (form2.Memo8.text);
Sett.Add (form2.Memo9.text);
Sett.Add (form2.Memo10.text);
Sett.savetofile ('settings.txt');
Sett.free;
end

PHP код:
procedure TForm1.FormCreate(SenderTObject);
 
begin
 Sett
:=tstringlist.create;
Sett.loadfromfile ('settings.txt');
LabeledEdit1.Text:=Sett[0];
labeledEdit2.Text:=Sett[1];
labeledEdit4.Text:=Sett[2];
labeledEdit5.Text:=Sett[3];
labeledEdit6.Text:=Sett[4];
labeledEdit7.Text:=Sett[5];
labeledEdit8.Text:=Sett[6];
Edit1.Text:=Sett[7];
Edit2.Text:=Sett[8];
Edit3.Text:=Sett[9];
Edit4.Text:=Sett[10];
Edit5.Text:=Sett[11];
form2.memo1.Text:=Sett[12];
form2.memo2.Text:=Sett[13];
form2.memo3.Text:=Sett[14];
form2.memo4.Text:=Sett[15];
form2.memo5.Text:=Sett[16];
form2.memo6.Text:=Sett[17];
form2.memo7.Text:=Sett[18];
form2.memo8.Text:=Sett[19];
form2.memo9.Text:=Sett[20];
form2.memo10.Text:=Sett[21];
sett.free

Но при таком раскладе, если settings.txt пустой, То при запуске возникнет ошибка, что-то типа "Index is bounds" 0. При Повторном открытии все нормально.. Сделал вот так:

PHP код:
procedure TForm1.FormCreate(SenderTObject);
 
begin
 Sett
:=tstringlist.create;
 try
Sett.loadfromfile ('settings.txt');
except
LabeledEdit1
.Text:=Sett[0];
labeledEdit2.Text:=Sett[1];
labeledEdit4.Text:=Sett[2];
labeledEdit5.Text:=Sett[3];
labeledEdit6.Text:=Sett[4];
labeledEdit7.Text:=Sett[5];
labeledEdit8.Text:=Sett[6];
Edit1.Text:=Sett[7];
Edit2.Text:=Sett[8];
Edit3.Text:=Sett[9];
Edit4.Text:=Sett[10];
Edit5.Text:=Sett[11];
form2.memo1.Text:=Sett[12];
form2.memo2.Text:=Sett[13];
form2.memo3.Text:=Sett[14];
form2.memo4.Text:=Sett[15];
form2.memo5.Text:=Sett[16];
form2.memo6.Text:=Sett[17];
form2.memo7.Text:=Sett[18];
form2.memo8.Text:=Sett[19];
form2.memo9.Text:=Sett[20];
form2.memo10.Text:=Sett[21];
sett.free;
end

Ошибка не возникает, программа запоминает настройки, но при открытии не открывает! Что делать!
Ответить с цитированием
  #6  
Старый 06.07.2010, 17:47
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

except вынести за присвоение как минимум
а лучше проверять кол-во строк в стринг гриде и присваивать только те что есть не выходя за приделы.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:08.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025