Thema: Delphi as-operator mit TList

Einzelnen Beitrag anzeigen

arkon

Registriert seit: 15. Jul 2007
Ort: Berlin
7 Beiträge
 
#1

as-operator mit TList

  Alt 10. Jun 2009, 15:02
he leute, kleines problemchen. ich hab seit einiger zeit mal wieder mein delphi ausgestaubt und bin mir nicht so ganz sicher mit typenumwandlungen. besser gesagt: ich bin anderer meinung als der compiler.

Delphi-Quellcode:
  TChVoc = record
    filename: string;
           ...
    coeff: extended;
  end;
schöner typ. jetzt will ich den in eine liste vom typ TList einspeichern und sortieren lassen. klappt alles wunderbar, nur beim sortieren zickt er rum:

Delphi-Quellcode:
function TForm1.compvoc(Item1, Item2: Pointer): integer;
begin
  result := (Item1 as TChVoc).coeff;
end;
will er nicht, "as" ist auf diesen datentyp nicht anwendbar. wie bitte? as ist doch genau dafür da, das der compiler das einfach SCHLUCKT und nicht rummeckert?

noch ne kleine frage am rande: ich hab diese liste und will mir dann item raussuchen und darauf rumarbeiten. da die TChVoc-dinger in einem array liegen kann ich an den ursprung nicht heran. ich suche mir einen eintrag raus, krieg einen pointer zurück, und jetzt? kann ich mir einfach eine variable vom typ TChVoc nehmen, den pointer da drauf knallen und fröhlich daran rumwerkeln? ist das dann eine kopie der daten oder immer noch ein pointer, also müsste ich die daten manuell zurück in das array schreiben?

skizze wenn es zu konfus war:

array of TChVoc -> TList gefüllt mit TChVoc-Pointern -> ?? TChVoc-Variable? weg zurück?

danke schonmal im voraus!
  Mit Zitat antworten Zitat