|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.02.2008, 18:27 | #1 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Проверьте код !
Есть вот такой код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,IniFiles, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Ini:TiniFile; pass:String; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Ini:= TIniFile.Create(ChangeFileExt(Param Str(0),'Super.INI')); end; procedure TForm1.Button1Click(Sender: TObject); begin pass:=Edit1.Text; ini.WriteString('Stop','Password',p ass); ini.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit2.Text:=ini.ReadString('Stop',' Password','Ошибка'); ini.Free; end; end. Когда нажимаю на первую кнопку,информация из Edit1 записывается в ini-файл,а когда нажимаю кнопку2 вылетает окно с ошибкой,и если нажать на первую кнопку два раза тоже вылетает ошибка. Помогите понять в чем дело?
За частые поиски был забанен во всех известных
поисковых системах! |
07.02.2008, 18:37 | #2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Ты ведь убил объект ini.Free; и пытаешься в него писать или из него читать
|
07.02.2008, 19:17 | #3 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Подскажите что значит убил, и где это исправить.Второй день как
начал изучать эту тему,пока понять тяжело.
За частые поиски был забанен во всех известных
поисковых системах! |
07.02.2008, 19:32 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вот это зачем?
procedure TForm1.Button1Click(Sender: TObject); begin pass:=Edit1.Text; ini.WriteString('Stop','Password',p ass); ini.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit2.Text:=ini.ReadString('Stop',' Password','Ошиб ка'); ini.Free; end; |
07.02.2008, 19:37 | #5 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Этот код: Ini:=TIniFile.Create(ChangeFileExt( ParamStr(0),'Super.INI')); создает объект ini для работы с ini файлом.
Этот код: ini.Free; объект ini уничтожает. |
07.02.2008, 19:51 | #6 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
А где лучше поставить ini.Free? Может быть в OnClose?
Это как я правильно понимая освобождает ресурсы.
За частые поиски был забанен во всех известных
поисковых системах! |
07.02.2008, 19:57 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Если объект создается в FormCreate, то логично уничтожать его в FormDestroy
|
08.02.2008, 09:32 | #8 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Да просто цепляй ini и убивай в каждой процедуре, тогда не будет ошибок. А то цепляется он у тебя при создании формы. Как-то неудобно. Пока висит программа, будет и висеть ini файл. Лучше сделай так:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверьте на правильность плиз | Agent[PNZ] | Помощь студентам | 3 | 11.06.2014 19:50 |
Проверьте задачку | {StaN} | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 04.07.2008 13:20 |
Помогите переделать и проверьте | Mokriy | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 22.05.2008 17:26 |
Проверьте пожалуйста код | forumu | Помощь студентам | 1 | 27.12.2007 21:49 |
Проверьте ошибки пожалуйста в задачах. | velgelmina | Помощь студентам | 3 | 09.06.2007 22:10 |