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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 19:37   #1
resu654
 
Регистрация: 08.07.2008
Сообщений: 3
По умолчанию Проблема с COM объектом

Необходимо чтобы COM объект заполнял переданный ему StringGrid. Не могу понять в чем проблема, когда пишу:

Код:
procedure TComClass.FillGrid(a: TStringGrid);
begin
    a.cells[0,0] := 'Строка';
end;

То при закрытии программы вылетает ошибка Access Violation Read of Address #000000.

В чем может быть загвоздка??

Таже штука и с canvas:

Код:
procedure TMyCom.DrawDiagram(r:TCanvas);
begin
    r.Brush.Color := clRed;    
end;
Но когда вызываю методы канвы допустим Rectangle, то ошибка не вылетает.
и когда обращаюсь к свойству pen, допустим:
Код:
Pen.Color := clRed
то тоже все работает нормально.

Последний раз редактировалось resu654; 24.05.2009 в 20:17.
resu654 вне форума
Старый 25.05.2009, 13:46   #2
resu654
 
Регистрация: 08.07.2008
Сообщений: 3
По умолчанию

Проблема оказалась не в COM, а в DLL.

Вот код DLL:

Код:
library Project2;

uses
  SysUtils,
  Classes,
  Grids,
  Graphics;

{$R *.res}

procedure fillGrid(s: TStringGrid); stdcall; export;
begin
  s.cells[0,0] := 'TEXT';
end;

procedure fillCanvas(s: TCanvas); stdcall; export;
begin
  s.Brush.Color := clRed;
end;

exports
 fillGrid,
 fillCanvas;

begin
end.
Вызываю одну из процедур и по закрытии программы выводится ошибка:
Invalid Pointer Operation
resu654 вне форума
Старый 25.05.2009, 23:00   #3
resu654
 
Регистрация: 08.07.2008
Сообщений: 3
По умолчанию

Разобрался, помог ShareMem
resu654 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Освобождение памяти занимаемой объектом Oburec Общие вопросы Delphi 10 16.04.2009 10:54
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
проблема с глобальным объектом Selebro Общие вопросы C/C++ 3 26.11.2008 20:22
Задача про работу с некоторым конструктивным объектом (напр. матрицей, графом, и т. д.) ACE Valery Помощь студентам 2 03.05.2008 19:22