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

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

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

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

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

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

приветствую! возник косяк - при открытие программы возникает ошибка (см. скрин) если ее закрыть то прога запускаеться, если нет то ошибки все лузут и лезут.

вод код OnCreate:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  Top, Left: integer;
  Ini: TiniFile;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  if Reg.OpenKey('\Software\Soft\Data', false) then
  begin
    Form1.Height := Height;
    Form1.Width := Width;
    Width := Reg.ReadInteger('Width');
    Height := Reg.ReadInteger('Height');
    end;
    begin
    Gen := TGenerator.Create;
    end;
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Form1.Left:=Ini.ReadInteger('PositionForm','Position_X',10);
Form1.Top:=Ini.ReadInteger('PositionForm','Position_Y',10);
Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
Ini.Free;
end;
begin
Page3.TabVisible:=false;
Page4.TabVisible:=false;
N10.Visible:=false;
    TrayIcon1.HideMainForm;
    TrayIcon1.IconVisible := True;
    Memo2.ClearAll;
if Page.ActivePage=Page1 then N19.Visible:=True;
if Page.ActivePage=Page1 then N20.Visible:=True;
N1.Enabled:=False;
end;
end;
если убрать это:
Код:
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Form1.Left:=Ini.ReadInteger('PositionForm','Position_X',10);
Form1.Top:=Ini.ReadInteger('PositionForm','Position_Y',10);
Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
Ini.Free;
то все работате великолепно)))

сама делфи склоняеться на
Код:
Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
когда компилю проект
Изображения
Тип файла: jpg 12.jpg (31.4 Кб, 136 просмотров)
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 15.09.2009, 13:00   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Делфи иногда ругается на строчку выше чем указывает . Если ошибка возникает при компиляции, попробуйте следующий фокус: создайте новый проект и перенесите в него содержимое старого. У меня пару раз лечились непонятные ошибки именно таким образом.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.09.2009, 13:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сама делфи склоняеться на
Правильно склоняется. Эта форма еще не создана. Рекомендую такое:
Код:
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Left:=Ini.ReadInteger('PositionForm','Position_X',10);
Top:=Ini.ReadInteger('PositionForm','Position_Y',10);
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.09.2009, 13:29   #4
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Правильно склоняется. Эта форма еще не создана. Рекомендую такое:
Код:
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Left:=Ini.ReadInteger('PositionForm','Position_X',10);
Top:=Ini.ReadInteger('PositionForm','Position_Y',10);
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
ты гений!спасибо тебе большое а то я даже до такого не додумался бы)))
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 15.09.2009, 14:11   #5
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

ого опять проблемы думаю сам не решу (((( если добавить еще один checkbox выходит что надо при создании программы прописывать:
Код:
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
  If Form7<>nil then
   Form7.StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
а смысл такой на форме 7 есть настройки по закрытию формы 7 пишу:
Код:
var
Ini: Tinifile; 
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Ini.WriteInteger('PositionForm','Position_X',form1.left);
Ini.WriteInteger('PositionForm','Position_Y',form1.top);
 Ini.WriteBool('Options','Hint',Form7.Hint.Checked);
 Ini.WriteBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
Ini.Free;
при открытии формы 1:
Код:
var
  Top, Left: integer;
  Ini: TiniFile;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  if Reg.OpenKey('\Software\Soft\Data', false) then
  begin
    Form1.Height := Height;
    Form1.Width := Width;
    Width := Reg.ReadInteger('Width');
    Height := Reg.ReadInteger('Height');
    end;
    begin
    Gen := TGenerator.Create;
    end;
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini');
Left:=Ini.ReadInteger('PositionForm','Position_X',10);
Top:=Ini.ReadInteger('PositionForm','Position_Y',10);
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
  If Form7<>nil then
   Form7.StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
 If Form7<>nil then
 if Form7.Hint.Checked=true then
begin
    Application.ShowHint := True
     end
       else
         Application.ShowHint := False;
end;
begin
Page3.TabVisible:=false;
Page4.TabVisible:=false;
N10.Visible:=false;
    TrayIcon1.HideMainForm;
    TrayIcon1.IconVisible := True;
    Memo2.ClearAll;
if Page.ActivePage=Page1 then N19.Visible:=True;
if Page.ActivePage=Page1 then N20.Visible:=True;
N1.Enabled:=False;
end;
при закрытии формы 1
Код:
var
Ini: Tinifile; 
begin
 if Memo1.Modified then
 if MessageDlg('Файл '+ExtractFileName(EditFile)+' был изменён. Перед выходом он не будет сохранён '+#10#13'Подтвердить выход?',
   mtConfirmation,[mbYes,mbNo],0)=mrYes
   then Action:=caFree
   else Action:=caNone;
  if Memo2.Modified then
 if MessageDlg('Файл '+ExtractFileName(EditFile)+' был изменён. Перед выходом он не будет сохранён '+#10#13'Подтвердить выход?',
   mtConfirmation,[mbYes,mbNo],0)=mrYes
   then Action:=caFree
   else Action:=caNone;
   begin
      Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  if Reg.OpenKey('\Software\Soft\Data', true) then begin
    Reg.WriteInteger('Width', Form1.Width);
    Reg.WriteInteger('Height', Form1.Height);
end;
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'setup.ini'); 
Ini.WriteInteger('PositionForm','Position_X',form1.left);
Ini.WriteInteger('PositionForm','Position_Y',form1.top);
 Ini.WriteBool('Options','Hint',Form7.Hint.Checked);
 Ini.WriteBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
Ini.Free;
end;
 end;
При этом на форме 7 Hint и StatusBarVisible установленно checked=true
Hint и StatusBarVisible - компонент checkbox
Error 404: Подпись not found

Последний раз редактировалось apocalypce; 15.09.2009 в 15:04.
apocalypce вне форума Ответить с цитированием
Старый 15.09.2009, 14:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
apocalypce
Все действия касающиеся другой формы выноси в ее OnCreate.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.09.2009, 15:04   #7
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Все действия касающиеся другой формы выноси в ее OnCreate.
так я и пишу в OnCreate и почему то настройки все равно не работают т.е. не сохраняються!я правильно сделал?можешь сказать?

все заработало!

Код:
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
  If Form7<>nil then
   Form7.StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
а это надо писать вот так??или есть другой способ?
Error 404: Подпись not found

Последний раз редактировалось Stilet; 15.09.2009 в 15:12.
apocalypce вне форума Ответить с цитированием
Старый 15.09.2009, 15:16   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или есть другой способ?
Ну есть, конечно.
Один из них. описать это в OnCreate Form7, тогда проверка не понадобится.
Ну и конечно же если этот код ты пишешь вне юнита седьмой формы пиши проще:
Код:
If Form7<>nil then with Form7 do begin
 Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
 StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.09.2009, 15:41   #9
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

ок спасибо попробую
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 15.09.2009, 16:08   #10
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну есть, конечно.
Один из них. описать это в OnCreate Form7, тогда проверка не понадобится.
Ну и конечно же если этот код ты пишешь вне юнита седьмой формы пиши проще:
Код:
If Form7<>nil then with Form7 do begin
 Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
 StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
end;
для Form1 сделал так:
Код:
If Form7<>nil then
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked); //подсказки
  If Form7<>nil then
   Form7.StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);  //строка состояния
для form 7 так:
Код:
 Form7.Hint.Checked:=Ini.ReadBool('Options','Hint',Form7.Hint.Checked);
   Form7.StatusBarVisible.Checked:=Ini.ReadBool('Options','StatusBar',Form7.StatusBarVisible.Checked);
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне Askar_g Общие вопросы C/C++ 4 25.06.2011 20:00
Открытие игры во фрейме программы! sting Общие вопросы Delphi 9 14.01.2009 19:14
Открытие файла с помощью моей программы igroman Общие вопросы Delphi 3 09.06.2008 09:12
Открытие файла Veiron Общие вопросы Delphi 2 27.02.2008 03:12
как перехватить открытие чужого приложенияпытаюсь перехватить открытие любого приложе rpy3uH Win Api 2 02.12.2006 12:12