Announcement

Collapse
No announcement yet.

DLangExtensions und Delphi 2010

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLangExtensions und Delphi 2010

    Hi an alle,

    ich habe mal eine Frage bzgl. der Delphi-Erweiterung DLangExtensions (http://andy.jgknet.de/dlang/).

    Ich verwende diese Erweiterung bisher mit dem BDS2006. Nun möchten wir auf das RAD Studio 2010 umsteigen. Leider scheint es diese schöne Erweiterung (noch?) nicht für Delphi 2010 zu geben.

    Wenn ich versuche, die letzte verfügbare Version (2008-11-23) für das RAD Studio 2009 zu installieren, meckert er berechtigterweise an, dass die ganzen Dateiversionen nicht passen und lädt den Experten nicht.

    Gibt es nun eine Möglichkeit, wie ich ihn austricksen kann?

    Alternative Frage: Im wesentlichen verwende ich die Makros (z.B. $__TIME__) die durch die DLangExtensions bereitgestellt werden. Gäbe es hierfür eine Alternative?

    Danke und Gruß,

    Sören Zimmermann

  • #2
    Nun, da hier zu dieser Frage zwar keine Ideen kommen, aber die Hitrate darauf hindeutet, dass noch einige Leute mein Problem haben könnten, möchte ich mal aufzeigen, wie ich mir geholfen habe.

    Wie gesagt, mir geht es im wesentlichen darum, den Compilier-Zeitpunkt in meinem Projekt zur Verfügung zu haben. Bei den DLangExtensions wurde hierfür das Makro $__TIME__ zur Verfügung gestellt.

    Ich habe mir nun ein Mini-Programm geschrieben:

    Code:
    program Pre_dcc;
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils, Classes, Forms;
    
    var
      lFileName: String;
      lFileContent: TStringList;
      lTimeStamp : String;
    
    begin
      try
        if (ParamCount = 1) then begin
          lFileName := ParamStr(1) + '\';
        end else begin
          lFileName := ExtractFilePath(Application.ExeName);
        end;
        lFileName := lFileName + 'CompileTime.pas';
    
        lFileContent := TStringList.Create();
    
        // Compilierzeitpunkt ermitteln
        lTimeStamp := FloatToStr(Now());
        if (Pos(',', lTimeStamp) > 0) then begin
          // Beim Wandeln wurde ein , als Dezimaltrenner verwendet -> in . ändern
          lTimeStamp[Pos(',', lTimeStamp)] := '.';
        end;
    
        lFileContent.Add('const APP_COMPILED_TIMESTAMP = ' + lTimeStamp + ';');
    
        lFileContent.SaveToFile(lFileName);
        lFileContent.Free;
    
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
    
    end.
    Die entstandene Pre_dcc.exe habe ich dann ins bin-Verzeichnis kopiert.
    Nun muss ich nur noch in meinen Projekten die Pre-Build Anweisung
    Pre_dcc $(PROJECTDIR)
    hinzufügen und die erzeugte Datei >CompileTime.pas< inkludieren. Schon habe ich Zugriff auf den Compilierzeitpunkt meiner Anwendung.

    Gruß, Sören

    Comment

    Working...
    X