![]() |
Delphi-Version: XE7
Zugriffsverletzung bei Zugriff auf 2. Unit? Wo ist das Problem?
Hallo!
Ich programmiere mir grade einen sogenannten "Angriffsplaner" für ein Strategiespiel. Daher ist es wichtig "timen" zu können, weshalb ich in mein bisher laufendes Programm eine Uhr laufen lassen möchte, die die Zeit in Millisekunden genau angibt. Beim Klicken eines Feldes/Buttons im MainMenu-Bereich soll sich also eine Uhr mit eben diesen Anforderungen auf einem neuen Formular öffnen. Das alles habe ich bisher hingekriegt, nur jetzt scheitert mein Programm daran, dass es, wenn es den "Timer" (die Uhr mit den Millisekunden) über die MainMenu-Leiste öffnen soll eine Zugriffsverletzung als Fehler ausgibt... Vielleicht findet ihr ja den Fehler bzw. könnt mir sagen, was ich falsch gemacht habe. Die Hauptunit mit dem Angriffsplaner:
Delphi-Quellcode:
(unter implementation folgt natürlich was, doch da liegt 100% nicht der Fehler)
[CODE]unit UAngriffsplanerH;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.Menus, System.UITypes, UTimer; type TFAngriffsplaner = class(TForm) Panel1: TPanel; Panel2: TPanel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; BalloonHint1: TBalloonHint; Panel3: TPanel; Panel4: TPanel; DatePicker: TDateTimePicker; Button1: TButton; ListBox1: TListBox; TimePicker: TDateTimePicker; ComboBox1: TComboBox; NowTimer: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; MainMenu1: TMainMenu; Datei1: TMenuItem; Einstellungen1: TMenuItem; Bearbeiten1: TMenuItem; zurcksetzen1: TMenuItem; imer1: TMenuItem; Showmessages1: TMenuItem; An1: TMenuItem; Aus1: TMenuItem; procedure Button1Click(Sender: TObject); function GetRunTime(sx, sy, zx, zy:integer):real; procedure FormCreate(Sender: TObject); procedure NowTimerTimer(Sender: TObject); function SecondsToTime(Seconds: Integer): TDateTime; procedure zurcksetzen1Click(Sender: TObject); procedure An1Click(Sender: TObject); procedure Aus1Click(Sender: TObject); procedure imer1Click(Sender: TObject); private Datum,Zeit,DateTimeA,StartTime : TDateTime; combxi,Seconds,Minutes,Hours,Days,RunTime : Integer; unitspeed : Real; { Private-Deklarationen } public { Public-Deklarationen } end; var FAngriffsplaner: TFAngriffsplaner; FTimer: TFTimer; implementation {$R *.dfm}[/CODE] Meine Timer-Unit:
Delphi-Quellcode:
Vielen Dank, für jede Anregung!!!
[CODE]unit UTimer;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls; type TFTimer = class(TForm) Label1: TLabel; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var FTimer: TFTimer; implementation {$R *.dfm}[/CODE] |
AW: Zugriffsverletzung bei Zugriff auf 2. Unit? Wo ist das Problem?
Zitat:
|
AW: Zugriffsverletzung bei Zugriff auf 2. Unit? Wo ist das Problem?
Da gibt es in beiden Units die Globale Variable fTimer??
|
AW: Zugriffsverletzung bei Zugriff auf 2. Unit? Wo ist das Problem?
Oh mein Gott. :roll:
Du hast Recht, das war mein Fehler mit den Variablen.. Danke dir! |
AW: Zugriffsverletzung bei Zugriff auf 2. Unit? Wo ist das Problem?
:) Aber wieso benutzt Du globale Variablen? Die sollte man so weit es nur möglich ist vermeiden!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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