Einzelnen Beitrag anzeigen

USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#4

AW: "E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler

  Alt 3. Feb 2011, 22:49
Ja, es ist weniger geworden.
Ich glaube im Compiler existiert ein Limit von etwa 64KB für lokale Konstanten. Dies ist gleichgeblieben, aber die Stringkonstanten benötigen seit D2009 den doppelten Platz.

Nein, es gibt keine schöne Lösung im Quellcode, außer die Strings auszulagern ... z.B. in die Ressourcen oder in andere Prozeduren.

Delphi-Quellcode:
procedure blablaA(Result: TStrings);
begin
  ...
  Result.Add('blabla');
  Result.Add('blabla');
  Result.Add('blabla');
  ...
end;

procedure blablaB(Result: TStrings);
begin
  ...
  Result.Add('blabla');
  Result.Add('blabla');
  Result.Add('blabla');
  ...
end;

function blabla: TStrings
begin
  ...
  blablaA(Result);
  blablaB(Result);
  ...
end;
Es muss keine separate Prozedur/Funktion sein - nested Prozeduren zu verwenden geht auch

Delphi-Quellcode:
function blabla: TStrings;

  procedure blablaA;
  begin
    ...
    Result.Add('blabla');
    Result.Add('blabla');
    Result.Add('blabla');
    ...
  end;

  procedure blablaB;
  begin
    ...
    Result.Add('blabla');
    Result.Add('blabla');
    Result.Add('blabla');
    ...
  end;

begin
  ...
  blablaA;
  blablaB;
  ...
end;
  Mit Zitat antworten Zitat