![]() |
Overload und Arrays
Hallo DP-Community,
ich sitz gerade an einer Unit, welche HTML Dateien erzeugen soll und dementsprechende Funktionen bereitstellen soll. Nun habe ich gerade ein klitzekleines logisches Problem und ein Problem, was sich meiner Kentniss derzeitig entzieht. Hierzu ein Auszug aus der Deklaration
Delphi-Quellcode:
Dies nutze ich, um dem Benutzer die Möglichkeit zu geben, normale Tabellen zu gestalten aber auch 2-spaltige.
procedure DoTable(border, width: integer; value: array of string); overload; //normale Tabelle
procedure DoTable(border, width: integer; value: array of array of string); overload; //2 Dimensionale, 2-spaltige Tabelle Nun weiß ich nicht, wie ich abfragen kann, ob das übergebene Array mehrdemensional ist oder nicht um danach die Tabelle zu gestalten.
Delphi-Quellcode:
Ebenso komme ich gerade nicht darauf, wie ich auf die 2Spalten und x Zeilen richtig zugreifen kann?!
procedure THTML.DoTable(border, width: integer; value: array of string);
var i : integer; begin target.Add('<table width='+width+'px border='+border+'px>'); for i := 0 to length(value) do begin target.Add('<tr>') target.Add('<td>'+value[i,0]+'</td><td>'+value[1,i]+'</td>') target.Add('</tr>') end; target.Add('</table>') end; Da müsste ja die 1. Zeile value[0,0] und value[0,1] sein. Also in einer Schleife value[i,0] und value[i, 1] ?! Danke schonmal für die Antworten ... Grüße aus Dresden |
Re: Overload und Arrays
Moin moin,
das sollte eigentlich so funktionieren:
Delphi-Quellcode:
//..
type TStrArray = array of string; TMultiStrArray = array of array of string; //.. private { Private-Deklarationen } procedure DoTable(border, width: integer; value: TStrArray); overload; //normale Tabelle procedure DoTable(border, width: integer; value: TMultiStrArray); overload; //2 Dimensionale, 2-spaltige Tabelle //.. procedure TForm1.DoTable(border, width: integer; value: TStrArray); var i : Integer; begin for i:= Low(value) to High(value) do begin // value[i] := ''; end; end; procedure TForm1.DoTable(border, width: integer; value: TMultiStrArray); var i,j : Integer; begin for i:= Low(value) to High(value) do begin for j:= Low(value[i]) to High(value[i]) do begin value[i][j] := ''; // end; end; end; //.. |
Re: Overload und Arrays
Oh danke für die Hilfe. So klappt es nun.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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