Announcement

Collapse
No announcement yet.

Ressourcen-Strings - Es klappt einfach nicht

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

  • Ressourcen-Strings - Es klappt einfach nicht

    Hallo,
    Ich weiß einfach nicht mehr was ich falsch machen könnte:

    Ich hab eine RC-Datei erstellt:

    STRINGTable
    {
    1, "SELECT * from Personal ORDER By Nachname,Vorname"
    2, "SELECT * from Arten ORDER By Bezeichnung"
    }

    ich hab die RC-Datei dem Projekt hinzugefügt
    Egal in welcher Unit des Programmes ich dann folgendes eingebe:

    a:= Loadstr(1)
    es kommt immer nur Mist zurück.

    Ich hab es auch damit probiert:

    MyRes.RC:
    Abfr_Pers string "PersList.SQL"
    wobei hier das SQL-Statement in der Datei steht
    und dann

    hRes := FindResource(hInstance,'PersListe','String');
    kommt immer 0 zurück

    Ich weis nicht was ich falsch mache.
    Irgendwer einen Rat

  • #2
    Ist der Resourcen-String wirklich zur Exe dazukompiliert (Überprüfbar z.B. mit Tools wie http://www.users.on.net/johnson/resourcehacker/).<br>
    Dazu mußt du ja aus der RC-Datei eine Res-Datei generieren, welche du mittels {{$R MyRes.RES} einbinden mußt.

    Die obigen Beispiel würde ich eher als Const-Definieren, da ich keinen Vorteile sehe, diese SQL-Anweisungen zu übersetzen.

    Als weitere Möglichkeit bietet Delphi das Schlüsselwort resourcestring an. Damit können ebenfalls Texte definiert werden welche als Resourcen in die Exe kompiliert werden, welche aber so einfach wie Textkonstanten angesprochen werden können

    Comment


    • #3
      Hallo Bernhard,

      Also er hat die die Anweisungen nicht hinzucompiliert. Er hat aber auch keine Fehlermeldung dazu gebracht.

      Der Grund warum ich diesen Weg gehe, ist weil ich sehr viele SQL-Anweisungen hinzufügen muß, zum anderen enthalten diese SQL-Statements viele Parameter und Quoted Strings was im Editor relativ schwerfällig handzuhaben ist. Da ich in einem Texteditor das ganze recht einfach und zügig bewerkstelligen kann und auch die Verwaltung dann recht einfach ist habe ich diesen Weg gewählt.

      Warum der Compiler diese Anweisungen nicht hinzufügt ist mir allerdings nicht klar.

      LG
      Pete

      Comment


      • #4
        Hab ein paar Beispiele dazu im Internet gefunden. Allerding klappen die auch nicht. Auch der gleiche Effekt die Resource wird nicht eingebunden.

        Irgendeine Idee

        LG
        Pete

        Comment


        • #5
          So bin schon etwas weiter gekommen.

          1.) ich hab die RC Datei hinzugefügt weil dann Delphi 5.0 die RES
          Datei dann automatisch erzeugen sollte. Tut es auch nur halt leer.
          2.) wenn ich die RC Datei mittel brcc32 compiliere ist zwar die RES
          Datei vollständig aber einbinden geht immer noch nicht.
          3.) Wenn ich statt {$R *.RES} einfach {$R Name.RES} verwende klappts.

          Warum das alles so ist versteht ich aber nicht.

          Es ist doch ein Feature von Delphi 5.0 aus der RC autom. eine RES zu machen. und {$R *.res} sollte alle RES Dateien einbinden oder?

          LG
          Pete

          Comment


          • #6
            "*.res" ist nur eine Abnkürzung für &lt;Projektname&gt;.res, <b>nicht</b> für alle res-Dateien.<br>Uli

            Comment


            • #7
              Die *.res-Datei wird automatisch von Delphi generiert (z.B. mit Versionsinfos) und es sollte nicht versucht werden eigene Infos in dieser <Projektname>.re unterzubrinden. Es sollte lieber eine eigene Res-Datei verwendet werden

              Comment


              • #8
                Hallo,

                Danke das mit der RES Datei und wie sie heißen soll hab ich schon verstanden. War ja auch nur falsch von den Beispielen die ich im Internet gefunden habe übernommen.

                Aber warum funktioniert das mit dem autom. erstellen der RES Datei wie Delphi OH angegeben ist nicht. Dort heißt es einfach die RC Datei dem Projekt hinzufügen. Delphi kompiliert dann diese auch in eine entsprechende RES Datei.

                Bei mir kommt aber immer eine leere RES Datei dabei raus. Sie wird zwar brav angelegt aber ist immer gleich groß.

                LG
                Pete

                Comment


                • #9
                  Ich wußte gar nicht das Delphi automatisch eine RC-Datei in eine Res-Datei konvertiert wenn diese mit angegeben ist. Ich habe immer den Borland Resourcen Compiler per Hand aufgerufen und dann die erzeugte .Res-Datei eingebunden. Das hat immer funktioniert

                  Comment


                  • #10
                    Ja das sollte es aber auch tun der Schmäh dabei ist halt die Datei mittels dem Projekt hinzufügen hinzuzufügen.

                    Mach das mal dann siehst du das man dort nicht nur pas Dateien sondern auch RC Dateien hinzufügen kann. (steht dann im Quelltext ganz oben {$R 'Name.RES' 'NAME.RC'})
                    Das ganze funktioniert aber erst ab Delphi 5.0.
                    Oder auch nicht wie man sieht. Denn er erzeugt dann zwar eine neue Res bindet die auch ein nur das in der RES Datei nichts steht (32Bytes gross)

                    LG
                    Pete

                    Comment

                    Working...
                    X