AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei Adresse

Ein Thema von hum4n0id3 · begonnen am 28. Sep 2018 · letzter Beitrag vom 3. Okt 2018
Antwort Antwort
hum4n0id3

Registriert seit: 28. Sep 2018
5 Beiträge
 
#1

Zugriffsverletzung bei Adresse

  Alt 28. Sep 2018, 22:20
Delphi-Version: 10.2 Tokyo
Servus.

Erstmals bitte ich um Entschuldigung, falsch ich das Thema falsch reingestellt habe.

Ich schaue mir Delphi an und habe eine Klasse erstellt.

Code:
unit Unit1;

interface

type
  TUser = class
    private
      fName: string;
      procedure SetName(aName: string);
      function GetName(): string;
    public
      property Name: string read GetName write SetName;
  end;

implementation

procedure TUser.SetName(aName: string);
begin
  fName:=aName;
end;

function TUser.GetName(): string;
begin
  GetName:=fName;
end;
end.
Wenn ich die Klasse in SDIMAIN aufrufen möchte, bekomme ich eine "Zugriffsverletzung bei Adresse"-Fehler.

Code:
uses ..., Unit1

...

var
  SDIAppForm: TSDIAppForm;
  User: TUser;

implementation

uses About;

{$R *.dfm}

...

procedure TSDIAppForm.Button1Click(Sender: TObject);
begin
  User.Name:=Edit2.Text; //<-Fehler passiert bereits hier :-(
  //ShowMessage(User.Name);
end;
Also ich habe eine Klasse in Unit1 und möchte das in der SDIMAIN aufrufen.
Was mache ich falsch?

mfg
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Zugriffsverletzung bei Adresse

  Alt 28. Sep 2018, 22:26
Eventuell erst nal mit Create ein Objekt der Klasse erstellen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hum4n0id3

Registriert seit: 28. Sep 2018
5 Beiträge
 
#3

AW: Zugriffsverletzung bei Adresse

  Alt 29. Sep 2018, 05:44
Wunderbar! Danke jetzt funktioniert es.

Ich erlag dem Irrtum das ich es bereits im var-Bereich mit User: TUser; erledigt habe.

Code:
procedure TSDIAppForm.FormCreate(Sender: TObject);
begin
  User:=TUser.Create;
end;
Ich habe das jetzt so gemacht und es funktioniert endlich.

Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zugriffsverletzung bei Adresse

  Alt 29. Sep 2018, 10:41
Nur die Controls die du in der IDE per Drag&Drop auf das Formular legst werden automatisch erzeugt.
Alles andere das du in deinem Formular als Member-Variable anlegst musst du selbste erzeugen und i.d.R. auch wieder freigeben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Zugriffsverletzung bei Adresse

  Alt 29. Sep 2018, 12:10
Wunderbar! Danke jetzt funktioniert es.

Ich erlag dem Irrtum das ich es bereits im var-Bereich mit User: TUser; erledigt habe.

Code:
procedure TSDIAppForm.FormCreate(Sender: TObject);
begin
  User:=TUser.Create;
end;
Ich habe das jetzt so gemacht und es funktioniert endlich.

Vielen Dank!
Vergiss das Freigeben des Objekts mit .Free bei Programmende oder wann immer nötig nicht.
  Mit Zitat antworten Zitat
hum4n0id3

Registriert seit: 28. Sep 2018
5 Beiträge
 
#6

AW: Zugriffsverletzung bei Adresse

  Alt 3. Okt 2018, 12:01
Danke für die Antworten. Ich werde diese Beherzigen
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz