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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 12:09   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Стрелка Непонятное Acces Violation при вызове Create у формы из Avaliable forms

Привет всем!
Возникла проблема с созданием формы которая находится в списке Avaliable Forms:
Код:
procedure TMainForm.AppsAddBtnClick(Sender: TObject);
var
  AppAddForm:TAddAppForm;
begin
  AddAppForm := TAddAppForm.Create(self); // <<= Acces Violation at Addres 0054E7B8 in module 'Someapp.exe' Read of addres 000000099
  with AddAppForm do
  try
{some code}
  finally
    Free;
  end;
end;
При вызове Create(Self); (Пробовал ещё Create(nil)), выскакивает Acces Violation.

Помогите как это решить?

Последний раз редактировалось Человек_Борща; 26.08.2010 в 12:12.
Человек_Борща вне форума Ответить с цитированием
Старый 26.08.2010, 12:11   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

OnCreate покажи.
точно при Create ошибка?(малоли про трассировку не слышал(пошаговая отладка))
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 12:45   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
procedure TAddAppForm.FormCreate(Sender: TObject);
begin
  case SettingsForm.ShowHintsChk.Checked of
    True: AddAppForm.ShowHint := True;
    False: AddAppForm.ShowHint := False;
  end;
end;
Вот..

а именно AV при Create(Self)
Человек_Борща вне форума Ответить с цитированием
Старый 26.08.2010, 12:51   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

SettingsForm существует?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 12:52   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Человек_Борща
Странный код...
Не проще ли
Код:
procedure TAddAppForm.FormCreate(Sender: TObject);
begin
    ShowHint := SettingsForm.ShowHintsChk.Checked;
end;
И потом. Прикрепи сюда архив с проектом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.08.2010, 12:59   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Пепел Феникса:
Да существует:
Код:
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TSettingsForm, SettingsForm);
  Application.CreateForm(TSelfUpdatingForm, SelfUpdatingForm);
  Application.CreateForm(TAboutForm, AboutForm);

Stilet:

спасибо за упрощение моего велосипеда=)
Человек_Борща вне форума Ответить с цитированием
Старый 26.08.2010, 13:10   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Код:
procedure TAddAppForm.FormCreate(Sender: TObject);
begin
  case SettingsForm.ShowHintsChk.Checked of
    True: AddAppForm.ShowHint := True;
    False: AddAppForm.ShowHint := False;
  end;
end;
Вот..

а именно AV при Create(Self)
А чему, по-вашему, равна переменная AddAppForm в этом коде, если форма ещё в процессе создания, а значение переменной AddAppForm будет присвоено тут:

Код:
AddAppForm := TAddAppForm.Create(self);
Избавляйтесь от глобальных переменных. Они - зло.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 26.08.2010, 13:15   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в дополнение:
нужно как написал Виталий

GunSmoker, там она и локальная тоже есть, но толку не меняет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 13:44   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

т.е. так?:
Код:
procedure TMainForm.AppsAddBtnClick(Sender: TObject);
var
  AppForm:TAddAppForm;
begin
  AddAppForm:=AddAppForm.Create(Self);
  with AppForm do
  begin
    try
код
    end;
    except
    Free;
    end;
  end;
end;
Код:
procedure TAddAppForm.FormCreate(Sender: TObject);
begin
 ShowHint:=SettingsForm.ShowHintsChk.Checked;
end;
Всеравно выскакивает AV
Человек_Борща вне форума Ответить с цитированием
Старый 26.08.2010, 14:10   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Человек_Борща
Думаю что тебе никто не скажет не пощупав проект.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить Acces Violation при загрузке файла Человек_Борща Общие вопросы Delphi 2 01.08.2010 14:50
Ругается(Acces Violation) при чтении DAT-файла Человек_Борща Общие вопросы Delphi 5 25.05.2010 19:42
Ошибка "Acces violation" в чем может быть причина TRIZER Общие вопросы Delphi 2 02.05.2010 12:10
ошибки при вызове формы из потока пауэрлифтинг Общие вопросы Delphi 0 24.03.2010 23:04
потеря параметров при вызове формы из dll... Roof Общие вопросы Delphi 4 22.08.2008 22:08