AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi 3 Fragen zu DLLs als Resource Datei für Text und Bilder

3 Fragen zu DLLs als Resource Datei für Text und Bilder

Ein Thema von Karsten · begonnen am 22. Nov 2003 · letzter Beitrag vom 26. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2   
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#1

3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 01:49
Hallo,

gemäß einiger Beiträge im Forum habe ich es geschafft mir eine dll datei mit jpeg Bildern zu erzeugen, wobei das Laden der Bilder nach einigen Anfangsschwierigkeiten auch funktioniert.

Zusätzlich zu den Bildern benötige ich die Anzahl der Bilder und zu jedem Bild 'nen bischen Text.

Aufbau: RC-datei mit Bildern -> RES-datei und die RES-datei in die dll geladen.

Hintergrund: Ohne die Software (das Prog.) anfassen zu müssen sollte die dll Datei erweiterbar sein, d.h. die Anzahl der Bilder und Beschreibungen sollte variiren können.

Frage: Wie kann ich die Anzahl der Bilder in der dll herausbekommen, kann man vieleicht auch eine Integer Value (Constante) aus der dll auslesen ? Und wie bekomme ich den Text in die dll, bzw. wie kann ich ihn auslesen ?

Was für Möglichkeiten habe ich generell bei den Resource Dateien bezüglich der Resourcen die man hier einbinden kann ?

Danke,
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#2

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 03:26
Zum auslesen der Anzahl kannst du dir ja eine Funktion erstellen, die vom Programm aufgerufen wird und innerhalb der DLL einfach die Anzahl aus den Resourcen oder aus einer in der DLL deklarieren Konstante ausliest.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 04:20
Text bekommst du mit StringTablen in die Ressource. Kuck dir dazu das Rssosurcen-Tutorial von tommy-lie anz. Zu finden in meinen Win32API-Tutorials für Delphi auf meiner Seite.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 09:57
Hallo Karsten!

Willkommen im JPEG-Club. *ggg*

Wieso änderst Du nicht einfach die Ressourcen und compilierst die DLL neu? Dann exportiert Deine DLL ne kleine Funktion, die die Anzahl der Bilder ans Prog durchreicht. Die Anzahl deklarierst Du einfach als Konstante in der DLL. Die Funktionen, die Bilder bzw. Strings aus den Ressourcen saugen, würd ich dann auch gleich in die DLL packen und dafür entsprechende Fkt exportieren.

Viel Erfolg!

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#5

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 12:39
Danke,

wenn man bedenkt das es prinzipiell doch nicht so kompliziert ist, war ich gestern doch wohl zu lange auf...

O.k.:

Die Anzahl der Bilder wird durch eine Konstante in der dll angegeben und kann direkt über eine Funktion die von der dll mitgeliefert wird ausgelesen werden.

Ich denke das man das auch mit dem Text (ShortString oder PChar sollt ohne extra dll auskommen) machen kann.

Die Funktion zum auslesen der Bilder würde dann auch in die dll verlagert, wobei...

Die Anzahl der Bilder in der dll zu kennen hat nur den einzigen nutzen das man nicht auf ein Bild zugreifen will was es gar nicht gibt, d.h. wenn ich die Funktion (zum auslesen der Bilder) in die dll packe brauche ich keine Funktion zum auslesen der Anzahl, weil ich dann ja direkt auf die Konstante zugreifen kann.

Wenn wir schon dabei sind alles in die dll zu packen, kann man auch die komplette Form die die jeweiligen Bilder mit Text anzeigen soll in die dll packen ? Wenn ja, wie ?

Gruß und Danke,

Karsten
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 13:07
Lass die VCL aus der DLL raus und verwende dort nur reinrassiges WINAPI. Sonst kannst Du Dir den Aufwand mit der DLL gleich schenken!

Meine Meinung

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#7

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 22. Nov 2003, 13:15
Hallo Olli,

bitte definiere "reinrassiges WINAPI".


Gruß,

Karsten
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#8

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 23. Nov 2003, 03:05
Hallo Leute,

das Auslesen der Konstanten aus der dll ist recht einfach:

Delphi-Quellcode:
function GetHighIndex: Integer; stdcall;
begin
  Result := HighIndex; // Konstante (3)
end;
nur das Auslesen der Bilder...

Vorher, wo sich die Funktion noch im Hauptprogramm befand war es recht einfach (nach Beitragsvorlagen):

Delphi-Quellcode:
...
  Lib := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'MyDll.dll'));

  if Lib <> 0 then
  begin
    LoadPic := 'Bild' + IntToStr(Index);

    ResStream := TResourceStream.Create(Lib, LoadPic, 'JPEG');
    TempJpeg := TJpegImage.Create;

    TempJpeg.LoadFromStream(ResStream);
    Result.Picture.Bitmap.Assign(TempJpeg);
...
nur jetzt kann ich ja wohl schlecht in der dll-Datei die dll-Datei laden, und

Result.Picture.Bitmap.LoadFromResourceName(HInstance, LoadPic); geht nicht weil ich ja Jpegs laden will, und ein TJpegImage als Zwischenvariante erscheint mir auch nicht so ganz zu funktionieren.

Delphi-Quellcode:
TempJpeg.LoadFromStream(...
        .LoadFromClipboardFormat(...
        .LoadFromFile(...
Hat da jemand eine Idee ?

Gruß,
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 23. Nov 2003, 04:25
Gib als Handle hInstance bei TRessoueceStream.Create an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#10

Re: 3 Fragen zu DLLs als Resource Datei für Text und Bilder

  Alt 23. Nov 2003, 05:54
Wieso willst du die Ladefunktion in der DLL einbauen?
Machs doch so z.B.

Delphi-Quellcode:
...
var
  GetHighIndex : function : Integer; stdcall;
...
  Lib := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'MyDll.dll'));
  @GetHighIndex := nil;
  if (Lib <> 0) then
    begin
      GetHighIndex := GetProcAddress(Lib, 'GetHighIndex');
      If Assigned(GetHighIndex) then
        HighIndex := GetHighIndex;
   end;

  if (Lib <> 0) then
    for Index := 1 to HighIndex do
      begin
        LoadPic := 'Bild' + IntToStr(Index);

        ResStream := TResourceStream.Create(Lib, LoadPic, 'JPEG');
        TempJpeg := TJpegImage.Create;

        TempJpeg.LoadFromStream(ResStream);
        Result.Picture.Bitmap.Assign(TempJpeg);
...
Die einzige Funktion, die in der DLL sein muss ist die GetHighIndex, wie sie oben schon erklärt wurde.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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