Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Immer wieder EAccessViolation Fehler (https://www.delphipraxis.net/9754-immer-wieder-eaccessviolation-fehler.html)

E-Razor 3. Okt 2003 11:10


Immer wieder EAccessViolation Fehler
 
Hi Leute
bin noch frisch hier.
Bin aus verzweiflung hierhin gekommen.
Also mein Problem liegt darin dass ich unter Delphi 4 ein voll funktionsfähiges Programm geschrieben hab der eine Art Kuehlschrank Simulator darstellt. Jetzt habe ich das selbe Programm unter Delphi 7 geschrieben und es tut nicht. Ich krieg immer Exception:EAccessViolation als Fehler ausgespuckt. Aber wie gesagt nur unter Delphi 7. Unter Delphi 4 läuft es einwandfrei.
Bitte Bitte Bitte helft mir!!!!!

Delphi-Quellcode:
unit UKuehlschrank;

interface

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

type
  TForm1 = class(TForm)
    btSollerhoehen: TButton;
    btTuerauf: TButton;
    btSollerniedrigen: TButton;
    btTuerzu: TButton;
    btTemperatur: TButton;
    LbIst: TLabel;
    LbSoll: TLabel;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure btTemperaturClick(Sender: TObject);
    procedure btSollerhoehenClick(Sender: TObject);
    procedure btSollerniedrigenClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure btTueraufClick(Sender: TObject);
    procedure btTuerzuClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

CKuehlschrank = Class(TObject)
  zSolltemperatur, zIsttemperatur : Integer;
  zTuerauf : Boolean;
  Constructor Create;
  Procedure Tuer_schliessen;
  Procedure Tuer_oeffnen;
  Procedure sTemp_erhoehen;
  Procedure sTemp_erniedrigen;
  Procedure Temp_anpassen;
  Function Ist_Temp : Integer;
  Function Soll_Temp : Integer;
  End;
var
  Form1: TForm1;
  Kuehlschrank : CKuehlschrank;
implementation

Constructor CKuehlschrank.Create;
 Begin
  Inherited Create;
  zSolltemperatur := 4;
  zIsttemperatur := 20;
  zTuerauf := True;
 End;

Procedure CKuehlschrank.Tuer_schliessen;
 Begin
  zTuerauf := false;
 End;

Procedure CKuehlschrank.Tuer_oeffnen;
 Begin
  zTuerauf := True;
 End;

Procedure CKuehlschrank.sTemp_erhoehen;
 Begin
  If zSolltemperatur < 15
  Then zSolltemperatur := zSolltemperatur + 1;
 End;

Procedure CKuehlschrank.sTemp_erniedrigen;
 Begin
  If zSolltemperatur > 0
  Then zSolltemperatur := zSolltemperatur - 1;
 End;

Procedure CKuehlschrank.Temp_anpassen;
 Begin
  If zTuerauf
    Then if zIsttemperatur < 20
     Then zIsttemperatur := zIsttemperatur +1
     Else
  Else if zIsttemperatur > zSolltemperatur
   Then zIsttemperatur := zIsttemperatur - 1;
 End;

Function Ckuehlschrank.Ist_Temp;
 Begin
  Result := zIsttemperatur;
 End;

Function CKuehlschrank.Soll_Temp;
 Begin
  Result := zSolltemperatur;
 End;
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Kuehlschrank := Ckuehlschrank.Create;
end;

procedure TForm1.btTemperaturClick(Sender: TObject);
begin
 LbIst.Caption := inttostr(kuehlschrank.ist_Temp);
 LbSoll.Caption := inttostr(kuehlschrank.Soll_Temp);
end;

procedure TForm1.btSollerhoehenClick(Sender: TObject);
begin
 Kuehlschrank.sTemp_erhoehen;
end;

procedure TForm1.btSollerniedrigenClick(Sender: TObject);
begin
 Kuehlschrank.sTemp_erniedrigen;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Kuehlschrank.Temp_anpassen;
 LbIst.Caption := inttostr(kuehlschrank.ist_Temp);
 LbSoll.Caption := inttostr(kuehlschrank.Soll_Temp);
end;

procedure TForm1.btTueraufClick(Sender: TObject);
begin
Kuehlschrank.Tuer_oeffnen;
end;

procedure TForm1.btTuerzuClick(Sender: TObject);
begin
Kuehlschrank.Tuer_schliessen;
end;

end.

sakura 3. Okt 2003 11:11

Re: Immer wieder EAccessViolation Fehler
 
An welcher Stelle tritt den der Fehler auf. So auf Anhieb kann ich keinen Fehler erkennen :|

...:cat:...

E-Razor 3. Okt 2003 11:15

Re: Immer wieder EAccessViolation Fehler
 
Also
Es kommt sobald ich auf nen Button Klick oder der Timer Process ausgeführt wird.
Mit anderen Worten:
Immer *heul* *verzweifel*

E-Razor 3. Okt 2003 11:19

Re: Immer wieder EAccessViolation Fehler
 
Wäre voll nett wenn ihr das selber mal ausprobieren würdet.

sakura 3. Okt 2003 11:20

Re: Immer wieder EAccessViolation Fehler
 
Gegenvorschlag, hänge mal das Programm als ZIP an, dann kann man es am besten testen ;-)

...:cat:...

E-Razor 3. Okt 2003 11:23

Re: Immer wieder EAccessViolation Fehler
 
Ok
Mach ich.
Und danke schonmal im Vorraus

E-Razor 3. Okt 2003 11:26

Re: Immer wieder EAccessViolation Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist die Zip-Datei mit hoffentlich allen nötigen Klamotten

sakura 3. Okt 2003 11:40

Re: Immer wieder EAccessViolation Fehler
 
Also, in Delphi 4 lässt es sich nicht öffnen, da Delphi 7 ein anderes Format nutzt :shock: Aber in Delphi 7 ist ein Ereignishandler verloren gegangen...

Wähle das Form aus, gehe in den Objekt Inspektor auf den Reiter Ereignisse und tätige einen DoppelKlick für das OnCreate-Ereignis, damit dieses wieder zugewiesen wird. Anschließend kompilieren und erfreuen ;-)

...:cat:...

E-Razor 3. Okt 2003 11:43

Re: Immer wieder EAccessViolation Fehler
 
DANKE
Oh man du hast mir den Tag gerettet.
THX THX THX

sakura 3. Okt 2003 11:46

Re: Immer wieder EAccessViolation Fehler
 
Kein Problem ;-) Das sind soi die Tücken - der Code war halt komplett korrekt ;-)

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz