Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klasse besitzt keine Standardeigenschaft (https://www.delphipraxis.net/164805-klasse-besitzt-keine-standardeigenschaft.html)

Marcel2906 30. Nov 2011 13:59

Delphi-Version: 2010

Klasse besitzt keine Standardeigenschaft
 
Hey,
erstmal Code (ohne die proceduren):

Delphi-Quellcode:
Type
   TArray = Class
   private
      fData: Array[0..8] Of Array[0..8] Of integer;
   public
      Procedure IndasArrayEintragen(x, y, Wert: integer);
   End;

Type
   tSolver = Class
   private
      aSudoku: TArray;
      aHilfsSudoku: TArray;

   public
      Constructor Create;// override;
      Destructor Destroy; override;
   End;
warum kann ich nicht aSudoku[x,y] benutzen.
Fehler:
Code:
[DCC Fehler] Sudoku_Unit.pas(71): E2149 Klasse besitzt keine Standardeigenschaft

mkinzler 30. Nov 2011 14:06

AW: Klasse besitzt keine Standardeigenschaft
 
Warum eine Klasse für einen Array?
Du benötigst eine indexed property

Marcel2906 30. Nov 2011 14:08

AW: Klasse besitzt keine Standardeigenschaft
 
Weiß ich auch nicht genau.
Mein Ausbilder hat mir alles umschrieben und gesagt ich soll das so machen

mkinzler 30. Nov 2011 14:14

AW: Klasse besitzt keine Standardeigenschaft
 
Mit der Methode geht es so
Delphi-Quellcode:
aSudoku.IndasArrayEintragen( x,y, <WERT>);

Marcel2906 30. Nov 2011 14:21

AW: Klasse besitzt keine Standardeigenschaft
 
ahh, jetzt versteh ich es..also darf ich mein ganzen code durchsuchen und ändern....dann hab ich ja was zu tun -.-

vielen dank für die hilfe

TiGü 30. Nov 2011 14:24

AW: Klasse besitzt keine Standardeigenschaft
 
Zitat:

Zitat von Marcel2906 (Beitrag 1138622)
ahh, jetzt versteh ich es..also darf ich mein ganzen code durchsuchen und ändern....dann hab ich ja was zu tun -.-

vielen dank für die hilfe

Shift + Strg + F
und
Strg + R sind deine Freunde!

mkinzler 30. Nov 2011 14:24

AW: Klasse besitzt keine Standardeigenschaft
 
Oder eine indexed property dafür erstellen.

Bummi 30. Nov 2011 14:37

AW: Klasse besitzt keine Standardeigenschaft
 
ich habe die krude Namensvergabe mal beigbehalten
Delphi-Quellcode:
   TArray = Class
   private
      fData: Array[0..8] Of Array[0..8] Of integer;
    function GetIndasArrayEintragen(x, y: Integer): Integer;
    procedure SetIndasArrayEintragen(x, y: Integer; const Value: Integer);
   public
      Property IndasArrayEintragen[x, y:Integer]:Integer Read GetIndasArrayEintragen write SetIndasArrayEintragen; default;
   End;

implementation

{ TArray }

function TArray.GetIndasArrayEintragen(x, y: Integer): Integer;
begin
   Result := fData[x,y]
end;

procedure TArray.SetIndasArrayEintragen(x, y: Integer; const Value: Integer);
begin
   if (x>=Low(fData)) and (x<=High(fData)) and (y>=Low(fData[0])) and (y<=High(fData[0])) then
   fData[x,y] := Value;
end;


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