AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

Ein Thema von ghubi01 · begonnen am 18. Feb 2019 · letzter Beitrag vom 19. Feb 2019
Antwort Antwort
ghubi01

Registriert seit: 18. Nov 2017
79 Beiträge
 
Delphi 10.3 Rio
 
#1

Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 18. Feb 2019, 16:32
Hallo,

ich habe gerade auf Rio 10.3.1 upgedatet und wollte meine eigene Image-Komponente (von TImage abgel.) weiter entwickeln.
Für die Komponente habe ich eine eigene Resourcendatei mit mehreren Bitmaps erstellt.
Diese Bitmaps sollen zur Laufzeit innerhalb der Komponente geladen und dann angezeigt werden.

Das hat mit Rio 10.3.0 auch wunderbar funktioniert.

Die Resourcendatei wird folgendermaßen eingebunden:
Delphi-Quellcode:
package ImageKomps;

{$R *.res}
{$R Seg8Image.res}
...
In der zugehörigen Unit:
Delphi-Quellcode:
constructor TAchtSegmentImage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Picture.Bitmap.LoadFromResourceName(HInstance,'BASICW'); //zur Designzeit wird das Bitmap noch geladen
                                                           //zur Laufzeit gibt es hier eine Exception 'Resource BASICW nicht gefunden'
  Width:=Picture.Bitmap.Width;
  Height:=Picture.Bitmap.Height;
  Stretch:=True;
end;
Wie gesagt; vor dem Update funktionierte Alles noch problemlos.

Wie bekomme ich das jetzt wieder hin, dass die Komponente ihre eigenen Bitmaps auch nutzen kann?
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
645 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 18. Feb 2019, 16:39
Spontane Überlegung: wenn die Resource nur im Package eingebunden wird, dürfte das nur funktionieren, wenn das Programm dann mit Laufzeitpaketen kompiliert wird. Wenn es ohne kompiliert wird - woher soll es dann die Resource kennen?
Besser wäre das $R in der Unit aufgehoben, die die Resource tatsächlich verwendet.
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
79 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 18. Feb 2019, 17:05
Hallo,

hatte ich mir auch schon überlegt.

Ich habe das jetzt in der Unit hier eingefügt:
Delphi-Quellcode:
implementation

{$R Seg8Image.res}
...
1. Versuch: Beim Kompilieren des Testprojektes mit der Komponente: 'Kann Seg8Image.res nicht finden'
Dann habe die Resource nach C:\Users\Public\Documents\Embarcadero\Studio\20.0\ Bpl kopiert
2. Versuch: Das Testprojekt lies sich problemlos kompilieren und starten. Es wurden dann auch die anderen Bitmaps angezeigt.

Aber es steht noch immer die Frage im Raum, wieso hat das vorher mit Rio 10.3.0 ohne Probleme funktioniert?

Geändert von ghubi01 (18. Feb 2019 um 18:04 Uhr) Grund: Dateiname korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.179 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 18. Feb 2019, 17:17
Aber es steht noch immer die Frage im Raum, wieso hat das vorher mit Rio 10.3.0 ohne Probleme funktioniert?
Manchmal weiß man eher, warum etwas nicht funktioniert, als warum etwas trotzdem funktioniert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
79 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 18. Feb 2019, 18:25
Hallo,

es gibt hierbei noch eine Ungereimtheit, die bei Rio 10.3.0 nicht auftrat.
Ich verwende in der Komponente auch noch DesignIntf, DesignEditors,

Im Testprojekt muss jetzt zusätzlich noch in:
Projektoptionen -> Delphi-Compiler -> Compilieren -> Weiterer Optionen -> Weitere Optionen -> Weitere Optionen für die Übergabe an den Compiler der Eintrag -LUDesignIDE für die 32Bit-Platformen eingetragen werden.

Diese Eintragung war vorher nur bei der Komponente erforderlich.

Ich hatten den Verdacht, dass mit meinen Verzeichniseinstellungen etwas nicht in Ordnung ist, aber ich habe keine Unterschiede zu Vorher feststellen können.

Ich bin ein bisschen Ratlos.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
372 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 19. Feb 2019, 11:37
Hallo,

es gibt hierbei noch eine Ungereimtheit, die bei Rio 10.3.0 nicht auftrat.
Ich verwende in der Komponente auch noch DesignIntf, DesignEditors,

Im Testprojekt muss jetzt zusätzlich noch in:
Projektoptionen -> Delphi-Compiler -> Compilieren -> Weiterer Optionen -> Weitere Optionen -> Weitere Optionen für die Übergabe an den Compiler der Eintrag -LUDesignIDE für die 32Bit-Platformen eingetragen werden.
Hast Du deine Komponentenpackage auch sauber in eine designtime und eine runtime package geteilt? Units aus der DesignIDE-Package dürfen nur in einer designtime-package verwendet werden, nicht in einer runtime package oder einem EXE.
Peter Below
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
79 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Rio 10.3.1 Resource wird zur Laufzeit nicht mehr gefunden

  Alt 19. Feb 2019, 19:58
Hallo

@peterbelow
Danke für den Hinweis. Ich hatte nicht mehr daran gedacht, dass man in designtime und runtime Package trennen muss.
In meinen bisherigen Komponenten war das auch nicht nötig, da ich keine Units aus der DesignIDE-Package verwendet habe.
  Mit Zitat antworten Zitat
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 12:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf