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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2009, 15:48   #1
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию работа с фалами ini

Приветствую! помогите! в чем косяк?
Form1:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, inifiles, XPMan, ImgList, ActnList, ToolWin, ActnMan, ActnCtrls,
  ActnMenus, XPStyleActnCtrls, ComCtrls, Menus, TypInfo, StdCtrls;

type
  TForm1 = class(TForm)
    XPManifest1: TXPManifest;
    ActionManager1: TActionManager;
    ActionMainMenuBar1: TActionMainMenuBar;
    Action1: TAction;
    Action2: TAction;
    Action3: TAction;
    Action4: TAction;
    Action5: TAction;
    Action6: TAction;
    Action7: TAction;
    ImageList1: TImageList;
    Action8: TAction;
    Action9: TAction;
    Action10: TAction;
    Action11: TAction;
    Action12: TAction;
    Action13: TAction;
    Action14: TAction;
    Action15: TAction;
    Action16: TAction;
    Action17: TAction;
    Action18: TAction;
    Action19: TAction;
    Action20: TAction;
    Action21: TAction;
    StatusBar1: TStatusBar;
    CoolBar1: TCoolBar;
    ImageList2: TImageList;
    ImageList3: TImageList;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    PopupMenu1: TPopupMenu;
    N11: TMenuItem;
    N21: TMenuItem;
    ToolBar2: TToolBar;
    ToolButton15: TToolButton;
    CheckBox1: TCheckBox;
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Action7Execute(Sender: TObject);
    procedure Action14Execute(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Action21Execute(Sender: TObject);
    procedure Action12Execute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  IniFile: TIniFile;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}



procedure TForm1.FormDestroy(Sender: TObject);
var
Ini: Tinifile; //необходимо создать объект, чтоб потом с ним работать
begin
//создали файл в директории программы
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'options.ini');
Ini.WriteInteger('Size','Width',form1.width);
Ini.WriteInteger('Size','Height',form1.height);
Ini.WriteInteger('Position','X',form1.left);
Ini.WriteInteger('Position','Y',form1.top);
Ini.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
Ini: Tinifile;
begin       
//открываем файл
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'options.ini');
Form1.Width:=Ini.ReadInteger('Size','Width',600);
//последнее значение (100) это значение по умолчанию (default)
Form1.Height:=Ini.ReadInteger('Size','Height',600) ;
Form1.Left:=Ini.ReadInteger('Position','X',10);
Form1.Top:=Ini.ReadInteger('Position','Y',10);
Form2.CheckBox1.Checked:=IniFile.ReadBool('TEST','CheckBox1Checked',Form2.CheckBox1.Checked); // состояние CheckBox1
Ini.Free;
end;

procedure TForm1.Action7Execute(Sender: TObject);
begin
Close;
end;

procedure TForm1.Action14Execute(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
if form2.CheckBox1.checked = true then form2.showmodal
end;

procedure TForm1.Action21Execute(Sender: TObject);
begin
About.ShowModal;
end;

procedure TForm1.Action12Execute(Sender: TObject);
begin
Options.ShowModal;
end;

end.
Form2:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, Buttons, inifiles;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Image1: TImage;
    Panel2: TPanel;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    CheckBox1: TCheckBox;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
    IniFile: TIniFile;

implementation

uses Unit1;

{$R *.dfm}





procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Form2.Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
var
Ini: Tinifile;
begin
//открываем файл
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'options.ini');

Ini.Free;

end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
IniFile.WriteBool('TEST','CheckBox1Checked',form2.CheckBox1.Checked);
end;

end.
Error 404: Подпись not found

Последний раз редактировалось MaTBeu; 14.08.2009 в 21:03.
apocalypce вне форума Ответить с цитированием
Старый 14.08.2009, 15:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

эт все?
какие ошибки, или что не работает?

а то читать исходники чужие просто так..крайне не охота
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.08.2009, 15:59   #3
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
эт все?
какие ошибки, или что не работает?

а то читать исходники чужие просто так..крайне не охота
delphi ссылаеться на кривой проект !тут ошибку выводит
Цитата:
Form2.CheckBox1.Checked:=IniFile.Re adBool('TEST','CheckBox1Checked',Fo rm2.CheckBox1.Checked); // состояние CheckBox1
в unit2 тоже ошибка((
Error 404: Подпись not found

Последний раз редактировалось Stilet; 17.08.2009 в 08:45.
apocalypce вне форума Ответить с цитированием
Старый 14.08.2009, 17:38   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
эт все?
какие ошибки, или что не работает?

а то читать исходники чужие просто так..крайне не охота
Цитата:
Сообщение от apocalypce Посмотреть сообщение
delphi ссылаеться на кривой проект !тут ошибку выводит
так какая же все-таки ошибка?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.08.2009, 17:57   #5
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
так какая же все-таки ошибка?
вот скрин вложил к сообщению
Изображения
Тип файла: jpg error.jpg (50.6 Кб, 166 просмотров)
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 14.08.2009, 18:39   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

авторая форма автоматически создаётся?

ЭЭ не то спросил.. А вторая форма вперёд 1 создаётся? если нет, то вы обращветесь к компоненту которы находится на ещё не созданной форме.

Последний раз редактировалось vovk; 14.08.2009 в 18:46.
vovk вне форума Ответить с цитированием
Старый 14.08.2009, 20:00   #7
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
авторая форма автоматически создаётся?

ЭЭ не то спросил.. А вторая форма вперёд 1 создаётся? если нет, то вы обращветесь к компоненту которы находится на ещё не созданной форме.
смысл такой если на форме 2 стоит галочка в комбо бокс то она запускаеться сразу же после того как запуститься форма1. если галочка не стоит то орма 2 стартует только по нажатию кнопки!
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 14.08.2009, 20:22   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

в не поняли .. вы к ней обращаетесь ДО того как она создана..
тут
Код:
Form2.CheckBox1.Checked:=IniFile.Re adBool('TEST','CheckBox1Checked',Fo rm2.CheckBox1.Checked);
формы ещё нет а вы уже к её компонентам обратится хотите.
проверяйте на здоровье в ини и отображайте, но только после того как она создастся. Перенесите эту проверку на создание 2 формы, хотябы
в событие
Код:
procedure TForm2.FormCreate(Sender: TObject);
, а я бы вообще убрал форму 2 из списка автосоздаваемых, и создавал после проверки в ини
примерно так

Код:
if IniFile.Re adBool('TEST','CheckBox1Checked',Fo rm2.CheckBox1.Checked) then
Begin
Form2:=TForm2.Create(self);
form2.chekbox1.Checked:=True;
end;
ЗЫ Правда потом надо подумать об её уничтожении..

______________________

чтото тоже застыдился и ещё 2 строчки в теги завернул

Последний раз редактировалось vovk; 14.08.2009 в 21:23.
vovk вне форума Ответить с цитированием
Старый 14.08.2009, 21:04   #9
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

apocalypce
Косяк в том, что вы не включаете мозг, когда заходите на форум.
Для кого тэги с кодами сделаны?
MaTBeu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
си динамические массивы, работа с фалами. tanek Помощь студентам 0 19.04.2009 23:28
работа с ini фалами Llirik1984 Win Api 2 28.03.2009 16:15
работа с фалами на pascal world12_tk Помощь студентам 7 16.03.2009 21:13
Работа с ini файлами jocry Общие вопросы Delphi 4 14.01.2009 16:51
работа с .ini файлами PAVEL315 Общие вопросы Delphi 3 22.11.2006 22:28