Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array neue Function zuweisen (https://www.delphipraxis.net/64240-array-neue-function-zuweisen.html)

Sascha_OW 1. Mär 2006 10:39


Array neue Function zuweisen
 
Hallo,

ich habe da gerade ein Programm das ich nicht alleine gelöst bekomme.
Ich würde gerne einem Array eine neue Function zuweisen und zwar das ich das denn so machen, das ich da einfach einschreiben kann:

MeinArray.MeineFunction und ich habe keine Vorstellung wie ich das mache, kann mir da einer einen tipp geben?

Luckie 1. Mär 2006 10:48

Re: Array neue Function zuweisen
 
Ein Array ist ein Datentyp. Und diese haben keine Funktionen bzw besser ausgedrückt Methoden.

Sascha_OW 1. Mär 2006 10:59

Re: Array neue Function zuweisen
 
alles klar auch ok dann würde ich gerne eine methode hinzufügen

Klaus01 1. Mär 2006 11:03

Re: Array neue Function zuweisen
 
wie Luckie schon geschrieben hat, Array ist ein Datentyp und hat keine Methoden.

Du könntest Dir vielleicht ein eigenes Object dazu erstellen:

Delphi-Quellcode:
    TMyArray = class(TObject)
      private
         data: Array[0..123] of Integer;
      public
         function getData:String;
         procedure setData();
    end;
Grüße
Klaus

mkinzler 1. Mär 2006 11:08

Re: Array neue Function zuweisen
 
Du kannst dir aber eine Klasse schreiben ;-)

JasonDX 1. Mär 2006 11:13

Re: Array neue Function zuweisen
 
Zitat:

Zitat von mkinzler
Du kannst dir aber eine Klasse schreiben ;-)

Wozu das Rad neu erfinen? Delphi-Referenz durchsuchenTList und Delphi-Referenz durchsuchenTObjectList :zwinker:

greetz
Mike

Sascha_OW 1. Mär 2006 11:15

Re: Array neue Function zuweisen
 
Zitat:

Wozu das Rad neuerfinden?
Ist eine TList nicht langsamer als ein Array von den Zugriffszeiten?

JasonDX 1. Mär 2006 11:20

Re: Array neue Function zuweisen
 
Bei TObjectList kommen 2 Funktionsaufrufe dazu (Bei TList nur einer), aber am Ende wirds intern auch nur als Array gespeichert. Insofern macht der Geschwindigkeitsunterschied nur minimal was aus.

greetz
Mike

Sascha_OW 1. Mär 2006 12:08

Re: Array neue Function zuweisen
 
aber in einer TList kann man da nicht nur StringsSpeichern, dann hat man bei integern immer das nervige Strtoint

TeronG 1. Mär 2006 12:28

Re: Array neue Function zuweisen
 
Zitat:

Zitat von Sascha_OW
aber in einer TList kann man da nicht nur StringsSpeichern,

nope
du meintest wohl die TStringList verwaltet eine Liste, die Strings enthält und nicht die TList speichert ein Array mit Zeigern.

JasonDX 1. Mär 2006 12:29

Re: Array neue Function zuweisen
 
Zitat:

Zitat von Sascha_OW
aber in einer TList kann man da nicht nur StringsSpeichern, dann hat man bei integern immer das nervige Strtoint

StrToInt wirst du nie verwenden müssen, wenn du keine Strings darin Speicherst ;)
In TList werden lediglich Pointer gespeichert. Wenn du dies ändern möchtest, kannst du die Klasse ableiten und die Benötigten Funktionen überschreiben:
Delphi-Quellcode:
TMyIntegerList = class(TList)
protected
  function Get(Index: Integer): Integer;
  procedure Put(Index: Integer; Item: Integer);
public
  function Add(Item: Integer): Integer;
  function IndexOf(Item: Integer): Integer;
  procedure Insert(Index: Integer; Item: Integer);
  function Remove(Item: Integer): Integer;
  property Items[Index: Integer]: Integer read Get write Put; default;
end;

//...

function TMyIntegerList.Get(Index: Integer): Integer;
begin
  result := Integer(inherited Get(Index));
end;
Nachdem das ganze ziemlich nur aus inherited-Aufrufen und Typecasts besteht haste mit wenig Schreibarbeit deine eigene Liste mit relativ hoher Funktionalität.

greetz
Mike

alcaeus 1. Mär 2006 12:38

Re: Array neue Function zuweisen
 
Zitat:

Zitat von JasonDX
Wenn du dies ändern möchtest, kannst du die Klasse ableiten und die Benötigten Funktionen überschreiben

Ach menno....keine Fantasie diese Jugend von Heute. Warum soll ich mir selbst die Arbeit machen, wenn sie auch der Compiler erledigen kann?

Ich empfehle dir mal einen Blick auf die TList-Templates: http://www.delphipraxis.net/internal...ct.php?t=56879

Wenn du Delphi nicht sehr gut kannst, dann belasse es bei der Verwendung der Templates, und versuche nicht, den Rest dahinter zu verstehn. Es sind einfach nur jede Menge Compilerswitches, die es dir ersparen, die Klasse selbst abzuleiten. Einfach den Listentypen definieren, die Datei einbinden, und gut is :)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz