![]() |
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? |
Re: Array neue Function zuweisen
Ein Array ist ein Datentyp. Und diese haben keine Funktionen bzw besser ausgedrückt Methoden.
|
Re: Array neue Function zuweisen
alles klar auch ok dann würde ich gerne eine methode hinzufügen
|
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:
Grüße
TMyArray = class(TObject)
private data: Array[0..123] of Integer; public function getData:String; procedure setData(); end; Klaus |
Re: Array neue Function zuweisen
Du kannst dir aber eine Klasse schreiben ;-)
|
Re: Array neue Function zuweisen
Zitat:
![]() ![]() greetz Mike |
Re: Array neue Function zuweisen
Zitat:
|
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 |
Re: Array neue Function zuweisen
aber in einer TList kann man da nicht nur StringsSpeichern, dann hat man bei integern immer das nervige Strtoint
|
Re: Array neue Function zuweisen
Zitat:
du meintest wohl die TStringList verwaltet eine Liste, die Strings enthält und nicht die TList speichert ein Array mit Zeigern. |
Re: Array neue Function zuweisen
Zitat:
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:
Nachdem das ganze ziemlich nur aus inherited-Aufrufen und Typecasts besteht haste mit wenig Schreibarbeit deine eigene Liste mit relativ hoher Funktionalität.
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; greetz Mike |
Re: Array neue Function zuweisen
Zitat:
Ich empfehle dir mal einen Blick auf die TList-Templates: ![]() 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