Announcement

Collapse
No announcement yet.

DB Runtime Packages und Änderungen an ADODB.PAS und DBActns.PAS

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

  • DB Runtime Packages und Änderungen an ADODB.PAS und DBActns.PAS

    Hallo,

    ich musste die ADODB.PAS und die DBActns.pas leicht anpassen.
    Das Projekt wird mit Runtime - Packages kompiliert. Meine
    Änderungen an ADODB und DBActns werden nun leider durch die Delphi-
    Runtime Packages überblendet.

    Was kann ich tun, damit meine Änderungen auch mit Runtime Packages funktionieren ?

    Hier die Änderungen
    <pre>
    ADODB.PAS

    function Locate(const KeyFields: string; const KeyValues: Variant;
    Options: TLocateOptions = [loCaseInsensitive]): Boolean; override;

    (nun mit Vorgabe loCaseInsensitive, muss dann nicht jedes mal angegeben werden)

    </pre>

    <pre>
    DBActns.pas

    procedure TDataSetInsert.UpdateTarget(Target: TObject);
    begin
    with GetDataSet(Target) do
    //Enabled := Active and CanModify;

    // CNSD Source DevExpress
    Enabled := Active and CanModify and not (state in dsEditModes);
    end;

    procedure TDataSetDelete.UpdateTarget(Target: TObject);
    begin
    with GetDataSet(Target) do
    //Enabled := Active and CanModify and not (Bof and Eof);

    // CNSD - DevExpress Patch
    Enabled := Active and CanModify and not (Bof and Eof) and not (state in dsEditModes);
    end;

    - Wird benötigt damit im Edit Modus die Aktion New ausgeblendet wird
    - Und das Löschen soll nur im Browse Modus möglich sein
    </pre>

  • #2
    Hallo,

    &gt;Was kann ich tun, damit meine Änderungen auch mit Runtime Packages funktionieren ?

    Die Runtime Packages müssen eigene Namen erhalten. Borland verhindert nur, dass die originalen Borland-Packages neu compiliert werden können. Gegen ein Umbenennen gibt es weder technische noch lizenzrechtliche Einwände

    Comment


    • #3
      Hallo,

      Danke für die schnelle Antwort, leider kenne ich mich mit dem Packages nicht so gut aus. Ich weis nicht in welchem Package sich die ADODB.PAS und die DBActns.pas befindet. Kannst Du mir bitte kurz sagen was ich tun muss.

      Vielen Dank
      Mathia

      Comment


      • #4
        Hallo,

        &gt;..was ich tun muss.

        da sich die verschiedenen Packages in der Regel gegenseitig referenzieren, gehe ich davon aus, dass <b>alle</b> Runtime-Packages unter einem einen Namen compiliert und zusammen mit der eigenen Anwendung weitergegeben werden müssen. Es stellt sich dann aber die Frage, welchen Sinn dies hat, denn die Dateigröße aller eigenen Packages liegt deutlich über der Dateigröße einer Anwendung, die keine Runtime-Packages nutzt

        Comment


        • #5
          Hallo Andreas,

          der Sinn liegt einfach darin den binären Code so klein wie möglich zu halten. In der Regel ändert sich nur der Source der eigenen Anwendung, alle eingesetzten Fremdkomponenten werden in der Regel sourcecodespezifisch nicht geändert.

          Da es anscheinend keine einfache Anwort auf meine Frage gibt, habe ich mich entschlossen die Projekte ohne die Delphi Runtime Packages zu kompilieren. Im Gegenzug werde ich bei der Kompilierung alle Packages der Fremdkomponenten angeben. Das wären dann so 4MB die ich bei einem Patch meiner Anwendung einsparen kann.

          Gruß
          Mathia

          Comment

          Working...
          X