AGB  ·  Datenschutz  ·  Impressum  







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

EAccessViolation

Ein Thema von JannesDKS · begonnen am 13. Feb 2009 · letzter Beitrag vom 13. Feb 2009
Antwort Antwort
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#1

EAccessViolation

  Alt 13. Feb 2009, 12:20
hey, ich mach grad ein paar kleine Übungen mit gemacht. Unter anderem auch folgendes Beispiel: ich berechne das Zylindervolumen mittels radius und höhe, erzeuge dann ein editfeld und schreib das ergebnis rein. Anschließend kann man das Feld wieder löschen und das formular schließen. Funzt auch alles aber anschließend haut er mir die angehängten Fehlermeldungen raus. Kann mir jemand erklären, was ich falsch gemacht habe?

Danke schonmal

Delphi-Quellcode:
unit FunctionErzeugungEdit;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);


  private
    procedure EditFeld;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  edFeld:TEdit;

implementation
{$R *.dfm}
var v: Double;

function zylinder(r,h:Double):Double;
begin
  Result:=pi*sqr(r) * h
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.EditFeld;
  try
   v:=zylinder(strtofloat(edit1.Text), strtofloat(edit2.Text));
   edfeld.Text:=floattostr(v)
  except
    edfeld.Text:='Fehler, nur Zahlen eingeben'
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  edfeld.text:='';
  edfeld.Free;

end;

procedure tform1.EditFeld;
begin
  edFeld:=tedit.Create(form1);
  edFeld.Create(form1);
  edFeld.Parent:=form1;
  edFeld.name:='DOOOOOOF';
  edFeld.SetBounds(200,200,80,20);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  close
end;

end.

[edit=Matze][delphi]-Tags eingefügt. Zukünftig bitte selbst daran denken. MfG, Matze[/edit]
Miniaturansicht angehängter Grafiken
debuggerviolation_129.jpg   accessviolation_112.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: EAccessViolation

  Alt 13. Feb 2009, 12:23
Schließe bitte künftig Deinen Code in Delphi-Tags ein, dann ist er leichter zu lesen. Und mir ist diese Stelle aufgefallen:
Zitat:
Delphi-Quellcode:
edFeld:=tedit.Create(form1);
edFeld.Create(form1);
Die 2. Zeile ist vollkommen überflüssig, da das Feld ja bereits erzeugt wurde. Außerdem ist sie syntaktisch falsch. Lass sie mal weg und schau, ob Du das Problem dann immer noch hast.
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
Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: EAccessViolation

  Alt 13. Feb 2009, 12:25
Hi,
zwei Sachen:
1. Gewöhne dir bitte an, Quellcode in Delphi-Tags zu setzen. Das erhöht die Lesbarkeit...
2. Eine Zugriffsverletzung bei der Adresse 00000000 deutet meist auf ein noch nicht erzeugtes Objekt hin.
Ich verstehe auch noch nicht so ganz, warum du das Edit-Feld überhaupt dynamisch erzeugst.
  Mit Zitat antworten Zitat
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#4

Re: EAccessViolation

  Alt 13. Feb 2009, 12:27
hey, danke, stimmt. jetzt gehts das forum ist für einsteiger echt klasse, mus ich mal sagen. So schnelle qualifizierte antworten zu bekommen macht echt freude
  Mit Zitat antworten Zitat
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#5

Re: EAccessViolation

  Alt 13. Feb 2009, 12:28
das erzeugen mach ich nur so aus übungszwecken da mangelts mir ein wenig an phantasie. ich misch das einfach immer ein bisschen ineinander
  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 06:59 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