Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Framework (managed code) (https://www.delphipraxis.net/79-net-framework-managed-code/)
-   -   Zugriff auf List<TYPE> (https://www.delphipraxis.net/152170-zugriff-auf-list-type.html)

Xong 14. Jun 2010 09:40


Zugriff auf List<TYPE>
 
Hallo Delphi-Praktiker!

Berufs- und studienbedingt war ich lange Zeit abwesend. Deshalb habe ich den augenscheinlichen Umzug auf eine neue Forensoftware verpasst.
Ich bin jedoch sehr sehr positiv überrascht. Dickes Lob dafür! :thumb:

Nun aber ohne weitere Umschweife zu meinem Problem:
Ich experimentiere gerade unter Delphi 2006 mit .NET 2.0 herum. [1]
Das funktioniert alles wunderbar und ich habe wenig Probleme damit.

Allerdings bekomme ich von einem .NET-Assembly eine Variable vom Typ List<TYPE> geliefert.
Wie kann ich in Delphi nun über dieser Liste iterieren?

Im Prinzip geht es darum, folgenden C#-Code zu übersetzen:
Code:
foreach(String myString in myStrings)
{
  // do sth with myString
}
Ich habe es über einen einfachen Arrayzugriff versucht. Damit sind meine Ideen aber auch schon ausgeschöpft.

Ich freue mich über jeden Ansatz. Auch ein kleiner Verweis auf eine hilfreiche Referenz würde mir helfen.

Vielen Dank für eure Mühen,
Xong


[1] Nach dieser Anleitung: http://delphi-notes.blogspot.com/200...or-net-20.html

Bernhard Geyer 14. Jun 2010 09:42

AW: Zugriff auf List<TYPE>
 
Zitat:

Zitat von Xong (Beitrag 1028681)
Ich experimentiere gerade unter Delphi 2006 mit .NET 2.0 herum. [1]
Das funktioniert alles wunderbar und ich habe wenig Probleme damit.

Dann vergiss diesen Weg. Delphi for .NET ist tod, töter, am töttesten. Entweder mach deine Arbeit mit C# oder wenn du bei Pascal-Syntax bleiben willst schau dir Delphi Prism an.

Xong 14. Jun 2010 09:48

AW: Zugriff auf List<TYPE>
 
Hallo Bernhard!

Danke für deine Meinung!
Zitat:

Zitat von Bernhard Geyer (Beitrag 1028683)
Zitat:

Zitat von Xong (Beitrag 1028681)
Ich experimentiere gerade unter Delphi 2006 mit .NET 2.0 herum. [1]
Das funktioniert alles wunderbar und ich habe wenig Probleme damit.

Dann vergiss diesen Weg. Delphi for .NET ist tod, töter, am töttesten. Entweder mach deine Arbeit mit C# oder wenn du bei Pascal-Syntax bleiben willst schau dir Delphi Prism an.

Ja, diesen Schritt werde ich wohl gehen...
Die Frage bleibt dann aber bestehen. Wie kann ich auf die Listenelemente zugreifen?

Bernhard Geyer 14. Jun 2010 09:51

AW: Zugriff auf List<TYPE>
 
Zitat:

Zitat von Xong (Beitrag 1028684)
Die Frage bleibt dann aber bestehen. Wie kann ich auf die Listenelemente zugreifen?

Code:
foreach(TYPE myElement in Elements)
{
  // do sth with myElement
}

Neutral General 14. Jun 2010 09:56

AW: Zugriff auf List<TYPE>
 
Also im "normalen" Delphi gehts so:

Delphi-Quellcode:
var myelement: TYPE;
begin
  for myelement in Elements do
    // ...
end;
(Wobei der Typenname "TYPE" mehr als ungünstig gewählt ist und verhindern könnte dass der Code compiliert!)

Xong 14. Jun 2010 10:55

AW: Zugriff auf List<TYPE>
 
Zitat:

Zitat von Neutral General (Beitrag 1028689)
Also im "normalen" Delphi gehts so:

Delphi-Quellcode:
var myelement: TYPE;
begin
  for myelement in Elements do
    // ...
end;
(Wobei der Typenname "TYPE" mehr als ungünstig gewählt ist und verhindern könnte dass der Code compiliert!)

Danke, das hilft mir schon mal weiter. (Ich bin wirklich eingerostet...)
Allerdings kommt jetzt die Fehlermeldung: "Fehler: E2430 for-in-Anweisung arbeitet nicht mit Kollektionstyp 'Pointer'"
Das war ja auch fast zu erwarten. Mein Beispiel war anscheinend nicht genau genug.

Ich glaube, Bernhard hat recht und ich werde auf Delphi Prism umsteigen.
Deshalb markiere ich dieses Thema als "gelöst".

Vielen Dank für eure Hilfe.

Xong

mirage228 14. Jun 2010 10:59

AW: Zugriff auf List<TYPE>
 
Zitat:

Zitat von Neutral General (Beitrag 1028689)

(Wobei der Typenname "TYPE" mehr als ungünstig gewählt ist und verhindern könnte dass der Code compiliert!)

Das ist an sich kein Problem. Einfach ein &-Zeichen davor:
Delphi-Quellcode:
var myelement: &TYPE;
begin
  for myelement in Elements do
    // ...
end;


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