Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизИспользование модулей Найти похожие ветки
← →
Лана Розанова (2002-09-23 16:38) [0]Почему при подключении чужого модуля и использовании его
типов переменных, у меня программа, на первой же строке
модуля выдает "Ошибка доступа к адресу памяти ......"
СПАСИБО!!!
← →
qube (2002-09-23 16:43) [1]При обращении к переменным ошибок доступа к памяти не бывает. А вот при обращении к объекту, который не был создан, очень даже бывают. Например, в обработчике OnCreate форма обращается к форме, которая создается позже. Приведи текст, где ошибка возникает.
← →
Лана Розанова (2002-09-24 09:50) [2]Это модуль...
unit ComPort_Class;
interface
uses
Classes,Windows,Sysutils,Head_Class;
{$define USD_NEW_CRC}
{$ASSERTIONS ON}
type
TMyComPort = class(TObject)
private
iTypeInter : integer; // 1 - RS232; 2-Прямой модем 3 - Телефонный модем; 4 - Радио модем.
iTypeTel : integer; // 1 - тоновый; 2 - импульсный
sNumber_Tel : string; // номер телефона для модема
sInicial : string; // строка модемной инициализации
sPozivnoy : string; // позывной для радиомодема
sComName : string; // наименование ком порта
iComRate : integer; // скорость обмена
hComPort : THandle; // хендл порта
bFlagEnable : boolean; // true - порт занят false - порт свободен
dcb : TDCB;
ct : TCommTimeouts;
public
constructor Create(ComName : string;
ComRate : integer;
TypeInter : integer;
TypeTel : integer;
TelNumber : string;
InicStr : string;
Pozivnoy : string;
var res : integer);
implementation
//---------------------------------------------------------------// Конструктор
//---------------------------------------------------------------constructor TMyComPort.Create(ComName : string;
ComRate : integer;
TypeInter : integer;
TypeTel : integer;
TelNumber : string;
InicStr : string;
Pozivnoy : string;
var res : integer);
begin
hComPort := 0; //Здесь и возникает ошибка
iTypeInter := TypeInter;
iTypeTel := TypeTel;
sNumber_Tel := TelNumber;
sInicial := InicStr;
sPozivnoy := Pozivnoy;
sComName := ComName;
iComRate := ComRate;
res := TestPort;
IniPort;
end;
end;
Это моя программка...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComPort_Class, Head_Class, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Port:TMyComPort;
tmp:integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
tmp:=0;
Port.Create("COM1",9600,1,1,"","","",tmp);
end;
end.
← →
Внук (2002-09-24 09:52) [3]Это кто ж такой модуль написал, а где Inherited в конструкторе?
← →
Лана Розанова (2002-09-24 09:55) [4]>Внук
На него компилятор жалуется. Несовместимость типов.
← →
Лана Розанова (2002-09-24 09:57) [5]Действительно, ошибка возникает как будто объект не создан.
А как это исправить?
← →
Внук (2002-09-24 09:59) [6]Правильно, потому что список параметров разный, нужно писать не просто Inherited, а Inherited Create; :)
← →
Лана Розанова (2002-09-24 10:07) [7]>Внук
Поставила в конструкторе inherited create; но все равно выдает ошибку.
← →
Внук (2002-09-24 10:08) [8]У меня не выдает
← →
Внук (2002-09-24 10:10) [9]Вместо Port.Create("COM1",9600,1,1,"","","",tmp);
Port:=TMyComPort.Create("COM1",9600,1,1,"","","",tmp);
← →
Лана Розанова (2002-09-24 10:20) [10]Чмоки тебя Внучок. Спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c