Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Overload und Arrays (https://www.delphipraxis.net/103718-overload-und-arrays.html)

quendolineDD 20. Nov 2007 16:54


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:
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
Dies nutze ich, um dem Benutzer die Möglichkeit zu geben, normale Tabellen zu gestalten aber auch 2-spaltige.

Nun weiß ich nicht, wie ich abfragen kann, ob das übergebene Array mehrdemensional ist oder nicht um danach die Tabelle zu gestalten.

Delphi-Quellcode:
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;
Ebenso komme ich gerade nicht darauf, wie ich auf die 2Spalten und x Zeilen richtig zugreifen kann?!
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

x000x 21. Nov 2007 00:29

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;

//..

quendolineDD 21. Nov 2007 19:36

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