AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

list<datentyp> auch in Delphi möglich?

Ein Thema von Yakumo500 · begonnen am 7. Aug 2009 · letzter Beitrag vom 9. Aug 2009
Antwort Antwort
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#1

list<datentyp> auch in Delphi möglich?

  Alt 7. Aug 2009, 22:06
Hi,

Ich bin dabei einen C++ Code in Delphi zu übersetzen.
Jetzt habe ich das Problem, dass bei den Variablen der Typ List benutzt wird.

z.B.
Code:
list<NetMessage> mIncoming;   //NetMessage ist eine Struktur   
list<EVENT_MESSAGE> mOutgoing;   //EVENT_MESSAGE ist eine Struktur
Die Strukturen habe ich bereits in Delphi übersetzt; kein Problem.
Aber ich frage mich jetzt ob ich für jede Liste eine neue Klasse schreiben muss?

Geht es nicht einfacher?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.135 Beiträge
 
Delphi 12 Athens
 
#2

Re: list<datentyp> auch in Delphi möglich?

  Alt 7. Aug 2009, 22:19
in den neueren Delphi-Versionen ja

nennt sich Hier im Forum suchenGenerics

aber bislang hat es noch einige Macken (siehe einige Posts, auch von mir),
was sich aber mit dem letzen Update von Delphi2009 etwas gebessert hat
und SOLL sich angeblich in Delphi2010 (welches demnächst kommt) wesentlich verbessert haben ... mal sehn
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: list<datentyp> auch in Delphi möglich?

  Alt 7. Aug 2009, 22:20
Das scheinen typisierte Listen zu sein. Delphi unterstützt diese seit Version 2009, Stichwort "Generics".

Wenn es vorerst "nur" darum geht, weiter zu kommen, nimm doch eine klassische TList, die ist zwar nicht typisiert, aber als allgemeine Liste durchaus brauchbar und Du musst - sofern Du kein Delphi 2009 hast - keine neuen Klassen mit spezialisierten Gettern & Settern schreiben (oder zumindest nicht sofort).
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: list<datentyp> auch in Delphi möglich?

  Alt 7. Aug 2009, 22:25
Gab es nicht auch noch ein Plugin von jbg, dass generics bei einigen Delphiversionen nachrüstet?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: list<datentyp> auch in Delphi möglich?

  Alt 8. Aug 2009, 07:12
Ja die DlangExtensions, diese waren aber, wenn ich mich erinnere "experimentell"
Markus Kinzler
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#6

Re: list<datentyp> auch in Delphi möglich?

  Alt 8. Aug 2009, 13:55
Ich habe mal eine TList ausprobiert. Dabei
habe ich aber gemerkt, dass die Variablen, von denen ich Pointer in die Liste speichere, global sein müssen, was ich nicht sehr prakisch finde.

Deshalb hab ich ein bisschen gesucht und die TClassList gefunden.
Könnt ihr mir ein paar Links posten, die sich mit TClassList beschäftigen?

//Ups hab mich wohl geirrt. Ich dachte bei einer TClassList könnte man eine Klasse festlegen und von diesem Typ sind dann die Items
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.135 Beiträge
 
Delphi 12 Athens
 
#7

Re: list<datentyp> auch in Delphi möglich?

  Alt 8. Aug 2009, 22:04
Zitat von Yakumo500:
Dabei
habe ich aber gemerkt, dass die Variablen, von denen ich Pointer in die Liste speichere, global sein müssen, was ich nicht sehr prakisch finde.
du darfst ja auch nicht den Pointer zu der Variable in der Liste speichern, sondern deren Inhalt

falls es sich in der Variable nicht um einen Pointertüp handelt, dann einfach per New speicher reservieren, da den Inhalt rein und dieses in die Liste rein
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: list<datentyp> auch in Delphi möglich?

  Alt 8. Aug 2009, 22:26
Willst Du Objekte in die Listen packen? Wenn ja, bietet sich eine typisierte TObjectList an.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: list<datentyp> auch in Delphi möglich?

  Alt 9. Aug 2009, 04:59
Eine Möglichkeit ist auch, selbst eine Klasse von TList oder TObjectList abzuleiten, dann müsste man auch nicht casten, wenn man diese neue Liste dann verwendet.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#10

Re: list<datentyp> auch in Delphi möglich?

  Alt 9. Aug 2009, 16:37
Ich habe es jetzt doch mit Generics probiert.

Aber bei dem Folgenden Code bekomme ich einen Fehler:

Delphi-Quellcode:
type
  List<Vartype> = class
  private
    FArray: array of Vartype;
  public
    function IndexOf(Item: Vartype): integer;
  end;

function List<Vartype>.IndexOf(Item: Vartype): integer;
var i: integer;
begin
  for i := 0 to Length(FArray) - 1 do
  begin

    if Item = FArray[i] then //<- Hier kommt der Fehler: [DCC Fehler] ListUnit.pas (109): E2015
                                                           // Operator ist auf diesen Operandentyp nicht anwendbar
    begin
      Result := i;
      Exit;
    end;
  end;
  Result := -1;
end;
Wie soll ich sonst das Array mit dem Item vergleichen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 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