![]() |
mengentypen in einer funktion
Hallo.
Ich versuche gerade, zwei array of string zu einem zusammenzufügen, was aus einem unerfindlichen Grund nicht funktioniert. Der Quelltext ist zu lang, hässlich und zu kompliziert, ich wüsste jetzt aber auch nicht was ich ändern könnte. Viel besser würde mir das gefallen, wenn ich mit einem Mengentypen in einer Funktion arbeiten könnte, das würde mit viel besser gefallen, zb vereinfacht so:
Delphi-Quellcode:
nur leider ist das ja unmöglich. Hier nun mein quelltext. Es gibt auf dem Formular nur 3 buttons, 2 textfelder und 1 memo. mit den ersten beiten buttons kann man strings (von edit1 und edit2) zu dem jeweiligen array of string hinzufügen (button 1 und 2). Mit button3 sollten die beiden array of string zusammengefügt werden und dann im memo1 ausgegeben werden.
function tform1.fusion(a,b:set of integer):set of integer;
begin result:=a+b end
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type thasenkolonie=record hasen:array of string; anzahl:integer; end; TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; Button2: TButton; Memo1: TMemo; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private function hasenkoloniefusion(a,b:thasenkolonie):thasenkolonie; public { Public-Deklarationen } end; var Form1: TForm1; keinohrhasen,mitohrhasen:thasenkolonie; gemischtehasen:thasenkolonie; implementation {$R *.dfm} function tform1.hasenkoloniefusion(a,b:thasenkolonie):thasenkolonie; var i:integer; begin setlength(result.hasen,a.anzahl+b.anzahl); for i:=0 to a.anzahl-1 do begin result.hasen[i]:=a.hasen[i]; end; for i:=a.anzahl to (a.anzahl+b.anzahl-1) do begin result.hasen[i]:=b.hasen[i-a.anzahl+1] end; end; procedure TForm1.Button1Click(Sender: TObject); begin setlength(keinohrhasen.hasen,length(keinohrhasen.hasen)+1); keinohrhasen.hasen[length(keinohrhasen.hasen)-1]:=edit1.Text; inc(keinohrhasen.anzahl); end; procedure TForm1.Button2Click(Sender: TObject); begin setlength(mitohrhasen.hasen,length(mitohrhasen.hasen)+1); mitohrhasen.hasen[length(mitohrhasen.hasen)-1]:=edit1.Text; inc(mitohrhasen.anzahl); end; procedure TForm1.Button3Click(Sender: TObject); var i:integer; begin gemischtehasen:= hasenkoloniefusion(mitohrhasen,keinohrhasen); for i:=1 to gemischtehasen.anzahl do begin memo1.Lines.Add(gemischtehasen.hasen[i]) end end; procedure TForm1.FormCreate(Sender: TObject); begin setlength(mitohrhasen.hasen,0); mitohrhasen.anzahl:=0; setlength(keinohrhasen.hasen,0); keinohrhasen.anzahl:=0; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 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