![]() |
AW: Item aus einem Record als Parameter einer Prozedur?
Zitat:
|
AW: Item aus einem Record als Parameter einer Prozedur?
Oder noch besser mit (Integer-)Konstanten, welche du dann mit Case abfragen kannst
|
AW: Item aus einem Record als Parameter einer Prozedur?
Ich würde einen Enum-Type erstellen und den übergeben. Ist aber wahrscheinlich Geschmackssache.
|
AW: Item aus einem Record als Parameter einer Prozedur?
Da soein Record fest ist, könnte man über CASE jeweils andere Vergleiche ausführen (ala mkinzler).
Oder man bastelt sich einen Vergleich-Callback. (diesen kann man entweder von extern übergeben, in einer Arraykonstante ablegen oder am Prozeduranfang über CASE auswählen) |
AW: Item aus einem Record als Parameter einer Prozedur?
eigentlich meinte ich es etwa so:
Delphi-Quellcode:
Dann brauchst du nur noch für jedes Element des Records eine Vergleichsfunktion. Für Zahlen könnte die so aussehen:
type
TVergleichsfunktion = function(Item1, Item2: TMyRecord): Integer; TKlasse.Sort(Vergleichsfunktion: TVergleichsfunktion); var i, j, k: Integer; temp: TPerson; begin for i := 1 to Length(index) - 1 do begin j := i; while not (j = 0) do begin if Vergleichsfunktion(index[j-i], index[j]) >= 1 then //... end; [delphi]function VergleicheZahlen(Item1, Item2: TMyRecord): Integer; begin Result := Item2.IntProperty - Item1.IntProperty; end;[/dephi] RTTI wird hier wohl nicht gehen, weil sich diese Variante vornehmlich auf einen Datentyp beschränkt. Du hast aber Integer, Real & String. Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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