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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 19:41   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Ошибка "Acess violation" и с чем её есть?

В проекте 2 формы. работал с одной проблем не было. писал Form1.hide, Form2.show, проблем не было. Подключил рес и длл, все нормально. Как только написал процедуру во второй форме появилось это:

1.jpg


И тычет мне красным маркером в последний end в Project.dpr
Изображения
Тип файла: jpg 1.jpg (21.2 Кб, 172 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.05.2009, 20:49   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Неверное обращение к процедуре из другой юниты. Покажите, как вы из одной юниты вызываете процедуру из другой...
Еще лучше - листинг обеих юнит (или хотя бы те куски, которые "общаются" между собой)...
mihali4 вне форума Ответить с цитированием
Старый 24.05.2009, 21:15   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

dpr:
Код:
program PROJECT;

uses
  Forms,
  UNITMenu in 'UNITMenu.pas' {FRMMenu},
  UNITIntr in 'UNITIntr.pas' {FRMIntr};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TFRMIntr, FRMIntr);
  Application.Run;
end.
Кусок в FRMIntr:

Код:
 FRMIntr.Hide;
       FRMIntr.TMRIntr.Enabled:= FALSE;
       FRMMenu.Show;

И

Код:
uses UNITMenu;

А это собственно FRMMenu:

Код:
unit UNITMenu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TFRMMenu = class(TForm)
    PNLMM: TPanel;
    PNLEG: TPanel;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FRMMenu: TFRMMenu;

implementation

{$R *.dfm}
{$R Resource\MRES.res}

Procedure DrawEGMenu;
 Var
  EGNoButton,EGYesButton:TBitMap;
 begin
  EGNoButton:=TBitMap.Create;
  EGYesButton:=TBitMap.Create;
  EGNoButton.LoadFromResourceName(HInstance,'EG001');
  EGYesButton.LoadFromResourceName(HInstance,'EG001');
  EGNoButton.Free;
  EGYesButton.Free;
 End;


procedure TFRMMenu.FormShow(Sender: TObject);
begin
 DrawEGMenu;
end;

end.

Та вставка в FRMIntr - единственный мостик, что их связывает.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.05.2009, 22:42   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Application.Initialize;
Application.CreateForm(TFRMIntr, FRMIntr);
Application.Run;
А у вас где-нибудь присутствует строка с TFRMMenu.Create ?
Например, в юните UNITIntr.pas...
А то получается, что вы к ней (FRMMenu) обращаетесь, а она еще не создана...
mihali4 вне форума Ответить с цитированием
Старый 25.05.2009, 10:06   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Точно нету! Щас попробую вписать.

А кого писать в Owner`e?

Все, нашел, нужно было вписать Application.CreateForm(TFRMMenu, FRMMenu);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 25.05.2009 в 10:42. Причина: Заработало!
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
Нет в русском языке "ложит", есть - "кладет". mihali4 Свободное общение 25 01.04.2008 11:19
Что такое "дескриптор" и с чем его едят? Snake_ua Win Api 3 30.10.2007 11:17
Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000. Fen1x Общие вопросы Delphi 8 13.10.2007 20:13
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27