![]() |
Array Parameter erwartet - Array nicht akzeptiert
Hi DP,
Ich habe folgenden Code:
Delphi-Quellcode:
Wobei "newVersion" ein array ist (aus Words).
lRemoteVersion.Caption := Format('Remote Version: %d.%d.%d.%d', newVersion);
Allerdings meint er, dass es keine Funktion gäbe die man mit diesen Parametern aufrufen könnte. Nun könnte ich "[newVersion[0]...]" schreiben, aber das ist doch unsinnig :) Ich habe ein Array, er will ein array (of const) :) Wie kann man also ein array bei Format übergeben ohne das array zu zerpflücken und ein anonymes array zu erstellen? MfG xZise |
Re: Array Parameter erwartet - Array nicht akzeptiert
hast du ein dynamisches array oder ein statiches?
|
Re: Array Parameter erwartet - Array nicht akzeptiert
Es ist ein statisches Array.
|
Re: Array Parameter erwartet - Array nicht akzeptiert
ich denke das Problem ist das eben ein Array of Const erwartet wird, du aber ein Array of Word übergibst. Wie man allerdings ein Array of Const definiert ist mir unklar.
|
Re: Array Parameter erwartet - Array nicht akzeptiert
lol ^^
Sry, aber ich habe einfach ein bisschen rumgespielt und so funktionierts:
Delphi-Quellcode:
Versin[0] := 1;
Versin[1] := 5; Versin[2] := 1; Versin[3] := 0; lVersion.Caption := Format('Version %d.%d.%d.%d', [@Version]); |
Re: Array Parameter erwartet - Array nicht akzeptiert
Hmm... scheint doch nicht zu funktionbieren?! Bin etwas verwirrt xD
|
Re: Array Parameter erwartet - Array nicht akzeptiert
verständlich das es nicht funktioniert denn du übergibst zwar ein Array aber nicht das Array "Versin" sondern ein Array mit einem Element welches ein Pointer ist.
Die Funktion scheint mit Compilermagic umgesetzt zu sein wodurch beliebig viele Parameter/Arrayelemente verschiedenster Typen erlaubt sind. Es ist mit Delphimitteln nicht möglich ein Array of VerschiedeneTypen zu definieren. Selbst ein Array of Variant hätte nur den einen Typ Variant aber nicht mehrere verschiedene Typen. Das ist nur mit compilermagic möglich weil nur so beim compilieren erkannt werden kann welche Typen sich tatsächlich im Array befinden. |
Re: Array Parameter erwartet - Array nicht akzeptiert
|
Re: Array Parameter erwartet - Array nicht akzeptiert
@XZise: Bevor du wie ich durch die suche wühlst: Du benötigst ein "Array of TVarRec". Ob Constant oder dynamich spielt wohl keine Rolle, der compiler nimmt beides (zumindest unter D7)
|
Re: Array Parameter erwartet - Array nicht akzeptiert
Er nimmt beides, aber er gibt eine Fehlermeldung aus:
Zitat:
Delphi-Quellcode:
Die Fehlermeldung wird bei "Format" (Wer hät's gedacht) ausgegeben.
procedure TfrmUpdate.bbDownloadClick(Sender: TObject);
var fs : TFileStream; newVersion : array [0..3] of TVarRec; begin {...} newVersion[0].VInteger := ReadInteger('Version', 'Major', 0); newVersion[1].VInteger := ReadInteger('Version', 'Minor', 0); newVersion[2].VInteger := ReadInteger('Version', 'Release', 0); newVersion[3].VInteger := ReadInteger('Version', 'Build', 0); lRemoteVersion.Caption := Format('Remote Version: %d.%d.%d.%d', newVersion); {...} end; [edit]Ich habs ^^ wenn ich auch noch newVersion[] die Eigenschaft VType := vtInteger zuweise klappts auch mit so :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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