Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi JVCL 3.35 und Delphi 7 Fehler beim installieren (https://www.delphipraxis.net/133712-jvcl-3-35-und-delphi-7-fehler-beim-installieren.html)

Alter Mann 7. Mai 2009 11:25


JVCL 3.35 und Delphi 7 Fehler beim installieren
 
Hi,

habe gerade einen Rechner neu aufgesetzt und wollte die Jedi's installieren,
doch leider bricht der JvclInstaller mit einem Fehler ab und meint:
'Nicht genügend wirkliche Parameter' (Unit '..\..\run\JvTranslator.pas').

Habe mir die Stelle mal genauer angesehen und es stimmt(s.u.).
Innerhalb von TJvTranslator.ComponentToXML wird TStringStream.Create ohne Parameter
aufgerufen:
Delphi-Quellcode:
begin
  Result := '';
  FXML.Root.Clear;
  if AComponent = nil then
    Exit;
  if AComponent is TApplication then
  begin
    AName := TApplication(AComponent).Title;
    FXML.Root.Name := 'Translation'; // DO NOT LOCALIZE
    AElem := FXML.Root.Items.Add(AName);
  end
  else
  begin
    AName := TComponent(AComponent).Name;
    AElem := FXML.Root;
    FXML.Root.Name := AName;
  end;
  if AName <> '' then
  begin
    InnerComponentToXML(AComponent, AElem, Recurse);

    StringStream := TStringStream.Create;
    try
      JclStream := TJclStringStream.Create(StringStream);
      try
        FXML.Root.SaveToStringStream(JclStream);
        Result := StringStream.DataString;
      finally
        JclStream.Free;
      end;
    finally
      StringStream.Free;
    end;
  end;
end;
In Classes.pas ist es jedoch so deklariert:
Delphi-Quellcode:
  TStringStream = class(TStream)
  private
    FDataString: string;
    FPosition: Integer;
  protected
    procedure SetSize(NewSize: Longint); override;
  public
    constructor Create(const AString: string);
    function Read(var Buffer; Count: Longint): Longint; override;
    function ReadString(Count: Longint): string;
    function Seek(Offset: Longint; Origin: Word): Longint; override;
    function Write(const Buffer; Count: Longint): Longint; override;
    procedure WriteString(const AString: string);
    property DataString: string read FDataString;
  end;
Hat jemannd einen Tipp bzw. die Lösung parat?

Danke

jbg 7. Mai 2009 11:38

Re: JVCL 3.35 und Delphi 7 Fehler beim installieren
 
In neueren JVCL Versionen sieht das so aus:
Delphi-Quellcode:
  if AName <> '' then
  begin
    InnerComponentToXML(AComponent, AElem, Recurse);
{$ifdef COMPILER12_UP}
    StringStream := TStringStream.Create;
{$else}
    StringStream := TStringStream.Create('');
{$endif}
    try
      JclStream := TJclStringStream.Create(StringStream);
Du musst also nur das ('') hinzufügen und dann den JVCLInstaller neu starten. Die 3.35 wurde nur für die Delphi 2009 Partner DVD erstellt. Und da hat man (wie so oft bei der JVCL) vergessen die älteren Versionen mit zu prüfen.

Mein Rat bei der JCL/JVCL ist immer, sich einen Daily Snapshot zu schnappen, der ist meist stabiler als die Release Version. Vor allem wenn seit dem Release bereits mehrere Monate vergangen sind.
http://jcl.sf.net/daily
http://jvcl.sf.net/daily

Alter Mann 7. Mai 2009 11:50

Re: JVCL 3.35 und Delphi 7 Fehler beim installieren
 
DANKE!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz