Einzelnen Beitrag anzeigen

Landfloh

Registriert seit: 17. Feb 2008
75 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit Fehlermeldung

  Alt 12. Mär 2008, 15:29
Hallo

Ich habe ein Problem mit einer Fehlermeldung die immer kommt wenn ich in meinem Programm diesen Formular öffne.

Hir die Fehlermeldung:
Zugriffsverletzung bei Adresse 00466A67 in Modul 'LPT_PORT_EIN_AUS_P_2.exe'. Lesen von Adresse 00000000.

Hier ist der Quelltext von der "Ausdangsunit":
Delphi-Quellcode:
unit LPT_PORT_NEU;

interface

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

type
  TForm1 = class(TForm)
    GroupBox2: TGroupBox;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    MainMenu1: TMainMenu;
    Extras1: TMenuItem;
    Datenanzeigen1: TMenuItem;
    Direckteingabe1: TMenuItem;
    Aus1: TMenuItem;
    N2MRechts1: TMenuItem;
    Aus01: TMenuItem;
    Navigatioon1: TMenuItem;
    procedure Button2Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Alle1Click(Sender: TObject);
    procedure Keine1Click(Sender: TObject);
    procedure Datenanzeigen1Click(Sender: TObject);
    procedure Direckteingabe1Click(Sender: TObject);
    procedure Aus1Click(Sender: TObject);
    procedure N2MRechts1Click(Sender: TObject);
    procedure Aus01Click(Sender: TObject);
    procedure Navigatioon1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  BasAdr: Integer = $378;
// ComHandle: THandle;
  gelesen: Integer;
implementation

uses LPT_PORT_NEU_3, LPT_PORT_NEU_P, TEST; // Test ist die Unit die herforgerufen werden soll

{$R *.dfm}

procedure Out32 ( Addresse: Integer; Wert: byte ); stdcall; export; external 'INPOUT32.DLL';
function Inp32 ( Addresse: Integer ): Byte; stdcall; export; external 'INPOUT32.DLL';


procedure TForm1.Button2Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1 + 4);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  Out32 ( BasAdr, 2 + 8);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Out32 ( BasAdr, 4);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Out32 ( BasAdr, 0);
end;

procedure TForm1.Alle1Click(Sender: TObject);
begin
  Out32 ( BasAdr, 255);
end;

procedure TForm1.Keine1Click(Sender: TObject);
begin
  Out32 ( BasAdr, 0);
end;

procedure TForm1.Datenanzeigen1Click(Sender: TObject);
begin
  Form2.ShowModal;
end;

procedure TForm1.Direckteingabe1Click(Sender: TObject);
begin
  Form3.ShowModal;
end;

procedure TForm1.Aus1Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1 + 8);
end;

procedure TForm1.N2MRechts1Click(Sender: TObject);
begin
  Out32 ( BasAdr, 2 + 4);
end;

procedure TForm1.Aus01Click(Sender: TObject);
begin
  Out32 (BasAdr, 0);
end;

procedure TForm1.Navigatioon1Click(Sender: TObject);
begin
  Form4.ShowModal; // Hier ist der Befehl der die Unit hervorrufen soll
end;

end.
und hier der von dem Formular was herforgerufen werden soll:
Delphi-Quellcode:
unit TEST;

interface

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

type
  TForm4 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;
  BasAdr: Integer = $378;
implementation

{$R *.dfm}
procedure Out32 ( Addresse: Integer; Wert: byte ); stdcall; export; external 'INPOUT32.DLL';
function Inp32 ( Addresse: Integer ): Byte; stdcall; export; external 'INPOUT32.DLL';




procedure TForm4.Button3Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1 + 4);
  sleep (1700);
  Out32 ( BasAdr, 2 + 4);
  sleep (480);
  Out32 ( BasAdr, 1 + 4);
  sleep (4000);
  Out32 (BasAdr, 0);
end;

procedure TForm4.Button1Click(Sender: TObject);
begin
  Out32 ( BasAdr, 0);
end;

procedure TForm4.Button5Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1 + 4);
  sleep (5000);
  Out32 ( BasAdr, 0);
end;

procedure TForm4.Button4Click(Sender: TObject);
begin
  Out32 ( BasAdr, 1 + 4);
  sleep (5000);
  Out32 ( BasAdr, 2 + 4);
  sleep (500);
  Out32 ( BasAdr, 1 + 4);
  sleep (3000);
  Out32 (BasAdr, 0);
end;

end.
Kann mir jemand helfen?
Ich hatte diesen Problem schon mal aber diesens Mal kann ich den Fehler vom letzten Mal nicht finden.

Gruß Landfloh
  Mit Zitat antworten Zitat