Deutsch
Forum

LoadExtResource() funktioniert nicht

 
Hallo.

Ich hab ein Problem mit LoadExtResource. Die Grafiken werden einfach nicht angezeigt. Mit
Resourcen kenne ich mich gut genug aus um zu wissen, das ich sie korrekt eingebaut habe
und Profan Befehle wie DrawExtBmp %hinstance,UFO,0,0;0 zeigen sie auch an...

Ich fasse kurz zusammen:

geht:
text$=UFO.BMP
ufo_bmp&=LoadExtImage(addr(text$))
ufo&=InitSprite(ufo_bmp&,%HDC,kopie1&,kopie2&,0,0,182,70,1,1,1,add(%maxx,200),123,3,3)

geht nicht, Grafiken werden als schwarze Rechtecke dargestellt.
text$=UFO
ufo_bmp&=LoadExtResource (%HInstance,addr(text$))
ufo&=InitSprite(ufo_bmp&,%HDC,kopie1&,kopie2&,0,0,182,70,1,1,1,add(%maxx,200),123,3,3)

geht:
DrawExtBmp %hinstance,UFO,0,0;0

Kannst du dir das erklären? Ich benutze Windows XP, Profan 7.5 und Prospeed 2.4 mit der neusten
Include Datei.

Gruß,
Sven
 
20.04.2004  
 



Hallo,

ok, du stellst deine Bilder alle als Resourcetyp BITMAP in die Dll. Stelle deine Bilder (Bmp, Jpg, Gif, usw.) als Resourcetyp IMAGE in die Dll.
Ich hab festgestellt, das der ResourcenHacker bei BMP-Bildern automatisch
BITMAP einstellt, und das läßt sich leider nicht ändern.
Speichere deine Bilder vom Typ BMP einfach unter anderem Namen ab, z.B.
Bild1.bmp -> Bild1.bbb
Jetzt kannst du auch BMP-Bilder als Typ IMAGE einbauen.

Ich habs selber getestet, mit IMAGE funktionierts, mit BITMAP nicht...
Ich werde mal versuchen, das in den nächsten Tagen auch noch anders hinzubekommen.

Gruß, Frank
 
20.04.2004  
 



Hallo,

Folgender Zusatz kommt ab ProSpeed Version 2.5 zur Anleitung der Funktion LoadExtResource():

Wichtig: Bmp-Dateien in Resourcen können als Resourcetyp BITMAP oder IMAGE gespeichert sein.
Alle anderen Grafik-Dateien müssen als Resourcetyp IMAGE gespeichert sein ! So wird z.B. ein Jpg-Bild nicht gefunden, das als Typ
BITMAP gespeichert wurde...

Momentan (2.4) können Grafiken aus Resourcen aber nur geladen werden, wenn sie mit Resource-Typ IMAGE abgelegt wurden.

Wer unbedingt diesen neuen Zusatz zu LoadExtResource() benötigt, dem schicke ich gerne die ProSpeed-Betaversion 2.5.

Gruß, Frank
 
20.04.2004  
 



Jööööööö eine neue Version.
Wann ists denn soweit und welche Neuerungen kommen dazu?
Mfg Thomas
 
20.04.2004  
 



Hi,

dauert wohl noch ein bischen...

Neuerungen sind bisher:

- schnelle Funktion, um Bildschirmgrafiken aus Tiles zusammen zu setzen + Beispiel
- riesige Bitmaps (bis 32768 x 32768) speichern.
- Taskbar an und abschalten
- Manuelle Byte-Arrays erstellen

Gruß, Frank
 
20.04.2004  
 



Hallo Frank

Habe die Bilddatei umbennant und das Bildmap
als IMAGE mit den Ressource Hacker in die DLL abgelegt
aber irgendwie funktiniert es noch nicht, mache bestimmt noch was falsch?
KompilierenMarkierenSeparieren
Declare dll&
let dll&=@UseDLL("Meinedll.DLL")
text$="COUNTER"
LoadExtResource (DLL&,addr(text$))

Grrr....??????????

Danke für jeden Tip

Luís
 
20.04.2004  
 



Hallo,

hmm, dazu kann ich jetzt nicht viel sagen.
Wenn du mir deine Dll und dein (Test)programm schickst, schaue ich mir das gerne mal an.

Für die Zukunft sind weitere Fragen von dir hier im Forum besser aufgehoben, als im allgemeinen Profan-Forum.

Gruß, Frank
 
20.04.2004  
 



Hallo Frank

Habe jetzt den Anhang den Du mir gesendet hast rekonstruieren können

Eigentlich wollte ich die Instructionen von Profan durch die von Prospeed ersetzen, und es sollte auch das gleiche bewirken
ist aber mit Deinen Beispiel nicht der fals, es funktioniert das laden des bitmaps aus der DLL aber es wird dann nicht korrekt auf den Bildschirm dargestellt.
KompilierenMarkierenSeparieren
CopyExtBmp(%hdc,Rnd(600),Rnd(400),11,17,bitmap&,(Rnd(10)*11),0,0)
sollte das gleiche bewirken wie:
MCopyBmp Mul(Val(Mid$(zeigenr$,4,1)),11),0-11,17 > add(x%,48),y% ;0
MCopyBmp Mul(Val(Right$(zeigenr$,1)),11),0-11,17 > add(x%,60),y% ;0
text$="COUNTER"
bitmap&=LoadExtResource(DLL&,addr(text$))
solte das gleiche bewirken wie:
MLoadBmp "COUNTER.BMP"

Ist es mit Prospeed möglich?

Danke

Luís
 
20.04.2004  
 



Hallo Luis,

klar, war ja auch nur ein Beispiel.

Am besten liest du dir in der ProSpeed-Anleitung mal durch, wie man CopyExtBmp() richtig anwendet.

Wenn ich Zeit habe, bastle ich dir mal ein Beispiel.
Wie ichs verstanden habe, möchtest du aus der Bitmap die einzelnen Ziffern wieder in zweistellige Zahlen umsetzen.
Dein Weg über einen String ist dabei aber recht umständlich, warum verwendest du nicht direkt Zahlen ?

Gruß, Frank
 
20.04.2004  
 



Hallo Luis,

so, dieser Code (für Profan 7 ?) macht das gleiche wie deine Counter-Prozedur. Arbeitet aber direkt mit Zahlen, anstatt umständlich mit Strings zu hantieren.
Die Variablen mußt du entsprechend declarieren oder anpassen.
KompilierenMarkierenSeparieren
text$="COUNTER"
bitmap&=LoadExtResource(DLL&,addr(text$))

Whileloop 99

    a&=x&/10
    b&=x&-(a&*10)
    CopyExtBmp(%hdc,148,100,11,17,bitmap&,a&*11,0,0)
    CopyExtBmp(%hdc,160,100,11,17,bitmap&,b&*11,0,0)
    Sleep 200
    x&=x&+1

EndWhile


Gruß, Frank
 
20.04.2004  
 



Hallo Frank

Danke, es funktioniert
Habe beide Zeilen dazu geschrieben, weil wenn das
Programm minimiert und es maximiert wurde verschwand
der Zähler, ich hoffe das es richtig ist.

CopyExtBmp(%hdc2,148,100,11,17,bitmap&,a&*11,0,0)
CopyExtBmp(%hdc2,160,100,11,17,bitmap&,b&*11,0,0)

Vergessen habe ich das Bild darzustellen nicht, ich war
der Ansicht das wenn das bildmap mit Prospeed in den Speicher geladen wurde, das es mit den Profanbefehl Mcopybmp auf den
Bildschirm anzeigen könnte, was wahrscheinlich nicht möglich ist.

Aber richtig Verstehen, habe ich diesen code noch nicht
ich bitte Dich wenn ein wenig Zeit haben solltest und
fals möglich, es bitte Ausführlich zu erklären, es ist bestimmt nicht nur mir damit geholfen?

a&=x&/10
b&=x&-(a&*10)
CopyExtBmp(%hdc,148,100,11,17,bitmap&,a&*11,0,0)
CopyExtBmp(%hdc,160,100,11,17,bitmap&,b&*11,0,0)
x&=x&+1

Danke

Luís
 
20.04.2004  
 



Hallo Luis,

Habe beide Zeilen dazu geschrieben, weil wenn das
Programm minimiert und es maximiert wurde verschwand
der Zähler, ich hoffe das es richtig ist.

CopyExtBmp(%hdc2,148,100,11,17,bitmap&,a&*11,0,0)
CopyExtBmp(%hdc2,160,100,11,17,bitmap&,b&*11,0,0)

Ja, ist richtig. Profan macht das intern auch so.
Die Restaurierungs-HDC %hdc2 ist eine prima Erfindung von Profan und nimmt dem Anwender jede Menge Arbeit ab...

Vergessen habe ich das Bild darzustellen nicht, ich war
der Ansicht das wenn das bildmap mit Prospeed in den Speicher geladen wurde, das es mit den Profanbefehl Mcopybmp auf den
Bildschirm anzeigen könnte, was wahrscheinlich nicht möglich ist.

Nein. Der HDC steht nach dem Laden im Speicher und kann dann jederzeit dorthin kopiert werden, wohin du möchtest.
Diese Technik ist auf jeden Fall flexibler.
Allerdings benutzt Prospeed niemals die profane Speicherbitmap, sondern bietet selber 32 eigene Bitmaps/Hdcs an.

Aber richtig Verstehen, habe ich diesen code noch nicht
ich bitte Dich wenn ein wenig Zeit haben solltest und
fals möglich, es bitte Ausführlich zu erklären, es ist bestimmt nicht nur mir damit geholfen?

a&=x&/10
b&=x&-(a&*10)
CopyExtBmp(%hdc,148,100,11,17,bitmap&,a&*11,0,0)
CopyExtBmp(%hdc,160,100,11,17,bitmap&,b&*11,0,0)
x&=x&+1

x& ist der Zähler deines Counters.

a& ist der Zähler geteilt durch 10, also die Zehnerziffer

b& ist der Zähler minus (Zehnerziffer mal 10), z.B.:
83-(8*10)=
83-80=
3
b& ist also die Einerziffer

Nochmal zum Beispiel 83. Anders geschrieben sähe es so aus:

CopyExtBmp(%hdc,148,100,11,17,bitmap&,88,0,0) 8
CopyExtBmp(%hdc,160,100,11,17,bitmap&,33,0,0) 3

Da die einzelnen Ziffern in der Grafik bitmap& 11 Pixel breit sind und alle nebeneinander liegen, berechnest du den horizontalen Offset innerhalb der Grafik mit Ziffer*11...

So, ich hoffe du hast das etwas verstanden... )

Gruß, Frank
 
20.04.2004  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.718 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs12.07.2019
H.Brill01.09.2014
J. Strahl21.02.2013

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (13x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie