Rzutowanie dyn. tablicy na własny typ, lub przekazanie własn

0

Zabrakło mi tematu :)

Mam pytania 2.

Mam swój własny typ:

TArrayOfString = array of string;

Pyt 1.
Jak zrzutować array of string na TArrayOfString?
Gdy robię:

var
  tab: array of string;
begin
  procedura(TArrayOfString(tab))
end;

dostaję invalid typecast. Gdy robię przez operator as, dostaję, że opreator not applicable.

Pyt 2.
Jak przekazać własny typ tablicowy bezpośrednio do parametru procedury?
Tzn.

procedure JakasProcedura(tab: TArrayOfString = nil);

Chcę wywołać ją tak np:

 JakasProcedura(['Wartosc1', 'Wartosc2']);

Żeby nie tworzyć nowej zmiennej. Ale dostaję komunikat, że ordinal type required

0

skoro masz wlasny typ TArrayOfString to czemu nie zdeklarujesz zmiennej w ten sposob?

var
  Tab: TArrayOfString;
begin
  procedura(Tab); // bez rzutowania..
end;

a z tym drugim sprobowac mozesz w ten sposob:

procedure JakasProcedura(Args: array of const);

ale nie gwarantuje, ze bedzie dzialac ^^

0
  1. po to stworzyłeś własny typ, żeby go używać
  2. z dynamicznymi taki numer nie przejdzie
0

Fragment mojego programu, gdzie też miałem z tym problem:

// Bo delphi jest powalone....
function ble(vars:Array of integer):TBle;
var
  i: integer;
begin
  Setlength(Result, length(vars));
  for i:=0 to high(vars) do
    Result[i]:=vars[i];
end;
//bo delphi jest powalone....

Innej metody chyba nie ma :/

0

nav bo po to możesz włąsne typy tworzyć, żeby nie było takich kfiatuw function ble(vars:Array of integer):TBle;

1 użytkowników online, w tym zalogowanych: 0, gości: 1