Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler beim create von selbst Programmiertem Form (https://www.delphipraxis.net/96729-fehler-beim-create-von-selbst-programmiertem-form.html)

remie 30. Jul 2007 07:43


Fehler beim create von selbst Programmiertem Form
 
Hallo Leute wollte mal ein Form selber Programmieren, und habe ne neue unit gemacht ...
nen Konstruktor geschrieben, und wenn ich dann das create ausführe bekomme ich den tollen fehler
Lesen von adresse ...
Geht das nicht ohne eine dfm datei ???
Hier mal der code:
Delphi-Quellcode:
unit Unit2;

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



  type
    TimportForm = class (TForm)
      close     : TButton;
      data      : TStringGrid;
      data_menue : TPopupMenu;
  private

  public
    constructor create(AOwner : TComponent;typ : Integer);overload;
  end;
implementation

constructor TimportForm.create (AOwner : TComponent;typ : Integer);
begin
  inherited Create(AOwner);
  self.close := TButton.Create(self);
  self.Width := 200;
  self.Height := 200;
  self.Position := poMainFormCenter;
  self.close.Left := 150;
  self.close.Top := 150;
  self.close.Width := 30;
  self.close.Height := 15;
end;

end.

dataspider 30. Jul 2007 07:52

Re: Fehler beim create von selbst Programmiertem Form
 
Hi,

ohne DFM - Datei musst du den Constructor CreateNew aufrufen.

Frank

remie 30. Jul 2007 08:01

Re: Fehler beim create von selbst Programmiertem Form
 
HM da kommt die gleiche fehlermeldung ....
muss ich bei CreateNew was beachten ?
ich hab das mal so eingebunden:
Delphi-Quellcode:
unit Unit2;

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



  type
    TimportForm = class (TForm)
      close     : TButton;
      data      : TStringGrid;
      data_menue : TPopupMenu;
  private

  public
    constructor createNew(AOwner : TComponent;Dummy : Integer = 0;typ : Integer =0);overload;
  end;
implementation

constructor TimportForm.createNew (AOwner : TComponent;Dummy : Integer = 0 ;typ : Integer = 0);
begin
  inherited CreateNew(AOwner,Dummy);
  self.close := TButton.Create(self);
  self.Width := 200;
  self.Height := 200;
  self.Position := poMainFormCenter;
  self.close.Left := 150;
  self.close.Top := 150;
  self.close.Width := 30;
  self.close.Height := 15;
end;

end.

RavenIV 30. Jul 2007 08:10

Re: Fehler beim create von selbst Programmiertem Form
 
Folgende Tips kann ich Dir geben:
- lesen in der Delphi-Hilfe, was CreateNew eigentlich macht
- das Programm durchdebuggen mit F7 / F8 und schauen, wo genau der Fehler auftritt
- hier im Forum nach CreateNew suchen und die Beiträge durchlesen

DeddyH 30. Jul 2007 08:17

Re: Fehler beim create von selbst Programmiertem Form
 
Außerdem ist es ungeschickt, einen Button genauso wie eine vorhandene Methode zu benennen.

TBx 30. Jul 2007 08:43

Re: Fehler beim create von selbst Programmiertem Form
 
Hallo!

Mir fällt folgendes auf:
  • Du hast vergessen, den Parent des Buttons zu setzen, so wird der niemals sichtbar
  • Einen Overload mit optionalen Parametern zu bauen ist ziemlich unsinnig und auch gefährlich. Selbst wenn man weiß, wie der aktuelle Compiler dies behandelt, so kann man sich nicht sicher sein, wie der nächste Compiler es macht.
  • Die Zugriffsverletzung kommt nicht aus dem geposteten Code. Wie ruftst DU denn Dein Form auf?

Gruß

Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 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