AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Fehlermeldung

Ein Thema von Landfloh · begonnen am 12. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
Landfloh

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

Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16: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
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:33
Form4 wird schlicht und ergreifend nil sein weil es noch nicht erzeugt wurde. Am besten kommst du wenn du Form4 im FormCreate von Form1 erzeugst und Form4 eine membervariable von Form1 ist. Somit bekommst du keine Probleme wenn irgendwann mal die globale Variable umbenannt wurde (was ja automatisch beim benennen der Formularklasse passiert)

Könntest du dem Beitrag bitte einen aussagekräftigen Titel geben? "Fehlermeldung" sagt so gut wie nichts aus und das es sich um ein problem handelt besagt bereits die Sparte in der du gepostet hast.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Landfloh

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

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:38
Das versteh ich noch nicht mit dem membervariable und mit dem Form1.
Kannst du es villeicht noch etwas genauer erklären?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:40
Du hast mehrere Forms. Form1 bis FormX. Innerhalb von Form1 versuchst du Form4 anzuezeigen. Form4 wird aber nach Form1 erzeugt. Und anhand der Fehlermeldung vermute ich einfach mal das Form4 noch nicht erzeugt wurde zu dem Zeitpuntk wo du es anzeigen lassen willst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Landfloh

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

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:43
Zitat von SirThornberry:
Du hast mehrere Forms. Form1 bis FormX. Innerhalb von Form1 versuchst du Form4 anzuezeigen. Form4 wird aber nach Form1 erzeugt. Und anhand der Fehlermeldung vermute ich einfach mal das Form4 noch nicht erzeugt wurde zu dem Zeitpuntk wo du es anzeigen lassen willst.
Aso so?

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form4.Show;
end;
Dann zeigt er noch befor das Programm überhaupt läuft die Fehlermeldung an.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.984 Beiträge
 
Delphi 7 Professional
 
#6

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:52
Moin, Moin,
denke auch, dass Form4 noch nicht existiert.
Da die Formulare aber offenbar alle erst nach Betätigunmg eines Buttons geöffnet werden (?!) ist m.E. die Reihenfolge der Erzeugung wohl nicht relevant - schau mal in den Projektoptionen nach, ob die Formulare auch alle automatisch erzeugt werden. Wenn dieses sicher gestellt ist, dürfte der Fehler eigentlich nicht mehr auftreten.
Ralph
  Mit Zitat antworten Zitat
Landfloh

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

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 16:54
Ich habs jetzt schon geschafft ich hab einfach alles noch mal neu gemacht und jetzt fungtionirt es.

Ich finds super
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.804 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 17:00
Du solltest dich trotzdem mal an die Grundlagen machen
Markus Kinzler
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 21:18
Zitat von Landfloh:
Ich habs jetzt schon geschafft ich hab einfach alles noch mal neu gemacht und jetzt fungtionirt es.
"Fungitioniert". Ja, manchmal schießen Geistesblitze wie Pilze aus dem Boden.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.315 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Problem mit Fehlermeldung

  Alt 12. Mär 2008, 21:30
[OT] Geile Wortschöpfung, fast so schön wie "Partionieren, Formieren und Defragmieren" [/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf