Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigene Objekte erstellen (https://www.delphipraxis.net/94450-eigene-objekte-erstellen.html)

qb-tim 21. Jun 2007 15:43


Eigene Objekte erstellen
 
Hi,

ich versuche gerade ein Programm zu schreiben in dem ich eine eigene "class" erstellt habe... Mein Problem ist, dass beim Aufrufen von MeinObjekt.Create; ein Error unter "Application.Run" erscheint.

Mein Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure A(Sender: TObject);
    procedure B();
    procedure C(x: Integer; y: Integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

TMeinObjekt = class
  private
    va: Integer;
    vb: Integer;
    vc: Integer;
    vd: String;
    ve: String;
    vf: String;
    vg: Real;
    vh: String;
    vi: Integer;
    vj: Integer;
    vk: Integer;
end;

var
  Form1: TForm1;
  MeinObjekt: Array[0..148, 0..95] of TMeinObjekt;

implementation

{$R *.dfm}

procedure TForm1.A(Sender: TObject); //Form.OnActivate
begin
  B();
end;

procedure TForm1.B();
var x, y: Integer;
begin
  for y := 0 to 95 do
    case y of
      0: for x := 1 to 1 do
           C(x, y);
      1: for x := 0 to 3 do
           C(x, y);
      2: for x := 1 to 6 do
           C(x, y);
      // usw.
    end;
end;

procedure TForm1.C(x: Integer; y: Integer);
begin
  MeinObjekt[x, y].Create;
  MeinObjekt[x, y].va := y;
  MeinObjekt[x, y].vb := x;
  MeinObjekt[x, y].vc := y + x;
  // usw.
end;

end.
Ich habe herausgefunden, dass das Programm in der Zeile mit "MeinObjekt[x, y].Create;" einen Fehler meldet, aber ich weiß nicht wieso... :cry:

Vielleicht habe ich meine "class" falsch definiert oder MeinObjekt.Create ist nicht der richtige Befehl... :pale:

Kann mir jemand vielleicht helfen?

rwachtel 21. Jun 2007 15:45

Re: Eigene Objekte erstellen
 
Delphi-Quellcode:
[...]
  MeinObjekt[x, y] := TMeinObjekt.Create;
[...]

qb-tim 21. Jun 2007 15:46

Re: Eigene Objekte erstellen
 
Das ging ja schnell!!!

Danke, jetzt funzt's!

:dp: :spin2: :dp:

Das hätte ich doch eigentlich selber wissen müssen :oops:

sirius 21. Jun 2007 17:16

Re: Eigene Objekte erstellen
 
Allerdings hast du ja alles unter private. :gruebel: Also kommst du von außen da gar nicht ran.

Neutral General 21. Jun 2007 17:24

Re: Eigene Objekte erstellen
 
Zitat:

Zitat von sirius
Allerdings hast du ja alles unter private. :gruebel: Also kommst du von außen da gar nicht ran.

Er hat Glück. Da die Klasse in derselben Unit deklariert wurde kann man auch außerhalb der Klasse auf deren private-Bereich zugreifen.

Gruß
Neutral General

dajuhsa 21. Jun 2007 17:28

Re: Eigene Objekte erstellen
 
wenn er
Delphi-Quellcode:
strict private
genommen hätte, käme er nich ran :mrgreen:

rwachtel 21. Jun 2007 19:35

Re: Eigene Objekte erstellen
 
Zitat:

Zitat von dajuhsa
wenn er
Delphi-Quellcode:
strict private
genommen hätte, käme er nich ran :mrgreen:

Mit Delphi 6?

qb-tim 22. Jun 2007 12:44

Re: Eigene Objekte erstellen
 
Zitat:

Zitat von sirius
Allerdings hast du ja alles unter private. :gruebel: Also kommst du von außen da gar nicht ran.

Ich hab ja nur ein Unit :cyclops:

dajuhsa 22. Jun 2007 22:14

Re: Eigene Objekte erstellen
 
obs auf delphi 6 geht weiß ich nich aber auf 2005.
bei strict private kann man halt nur von der gleichen klasse aus zugreifen und
bei strict protected auch bei abgeleiteten

rwachtel 22. Jun 2007 23:21

Re: Eigene Objekte erstellen
 
Meine Frage war nur rein rhetorischer Natur...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.
Seite 1 von 2  1 2      

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