Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - TStringList und "Constant expression expected"


PlugnPray - Fr 04.08.06 17:08
Titel: TStringList und "Constant expression expected"
Hallo,

ich versuche nun seit 2 Stunden 2 Zeilen Code zum laufen zu kriegen :)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure proc1;
var Data: TStringList;
begin
  Data := TStringList.Create;
  ...
  proc2(Data);
  ...
end;

procedure proc2(var Data: TStringList);
var tmp: String;
begin
  ... 
  RSADecrypt(Data.Strings[1], MyRSA.D, MyRSA.N, MyRSA.dp, MyRSA.dq, MyRSA.p, MyRSA.q, tmp);
  // RSADecrypt(E: String, ... , var D: String);
  // Entschluesselt text aus Data.Strings und speichert es in tmp
  showMessage(tmp);
  ...
end;


Bekomme aber immer nur die Fehlermeldung "Constant expression expected". Google liefert auch nichts.
Habe auch versucht den Code von proc2 in proc1 einzubauen, hat aber nichts gebracht.
Jemand eine Ahnung?


Arno Nym - Fr 04.08.06 19:28

Hi!
ich nehme mal an das die Methode "RSADecrypt" den ersten Parameter mit "var" deklariert hat, und du deswegen auch ne Variable übergeben musst. innerhalb der Stringlist sind die Strings aber konstant. Versuch mal einfach sowas:

Delphi-Quelltext
1:
2:
tempstring := Data.Strings[1];
RSADecrypt(tempstring, MyRSA.D, MyRSA.N, MyRSA.dp, MyRSA.dq, MyRSA.p, MyRSA.q, tmp);

MFG, Arno Nym


PlugnPray - Sa 05.08.06 13:36

Danke für die Antwort, funktioniert leider nicht, gibt immer noch den selben Fehler.
Der erste Parameter ist aber ein normaler String ohne var, steht auch so im Comment.


PlugnPray - Sa 05.08.06 18:23

hat sich erledigt, hatte ein paar begin-ends in einem case vergessen :roll: :oops: