Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Array befüllen
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 18.03.2017, 21:08    Titel: Antworten mit Zitat

Hier holt sich Volta ein Ressourcen-Icon her (Variante 2); vielleicht hilft das schon mal für die Idee, wie man allgemein auf die Ressourcen zugreifen kann.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 129
Wohnort: Opel Stadt

BeitragVerfasst am: 19.03.2017, 02:08    Titel: Antworten mit Zitat

So funktioniert's bei mir:

Code:

Sub _GDIPlus_BitmapCreateFromResource(ByRef hBitmap As Any Ptr, sResourceName As String)
   Dim hResource As HANDLE
   Dim hInstance As HINSTANCE
   Dim hResLoad  As HGLOBAL
   Dim hHBitmapRes As HBITMAP
   Dim hStream As LPSTREAM
   Dim iSize As Long
   Dim As Any Ptr hMemory, pMemory
   
   hInstance = GetModuleHandle(Null)
   hResource = FindResource(hInstance, sResourceName, RT_RCDATA)
   iSize = SizeofResource(hInstance, hResource)
   hResLoad = LoadResource(hInstance, hResource)
   LockResource(hResLoad)
   FreeLibrary(hInstance)
   
   hMemory = GlobalAlloc(GMEM_MOVEABLE, iSize)
   pMemory = GlobalLock(hMemory)
   RtlMoveMemory(pMemory, hResLoad, iSize)
   GlobalUnlock(hMemory)
   CreateStreamOnHGlobal(hMemory, 0, @hStream)
   GdipCreateBitmapFromStream(hStream, @hBitmap)
   IUnknown_Release(hStream)
End Sub


Ich werde noch den Code für "GDI+ Rotating Earth" hier https://forum.qbasic.at/viewtopic.php?p=108748#108723 gleich aktualisieren.
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 19.03.2017, 13:37    Titel: Antworten mit Zitat

Nur der Vollständigkeit halber:

Ein Konstrukt wie
Code:
Dim Shared As String __Earthclouds_600x300png = Chr(&h89, &h50, &h4E, &h47, &h0D, &h0A, &h1A, &h0A, &h00, &h00, &h00, &h0D, &h49, &h48, &h44, &h52, &h00, &h00, &h02, &h58, &h00, &h00, &h01, &h2C, &h08, &h04, &h00, &h00, &h00, &hB5, &h34, &h05) _
& Chr(&h1D, &h00, &h03, &hA5, &h6B, &h49, &h44, &h41, &h54, &h78, &h5E, &hEC, &hBC, &h07, &h90, &h6C, &hC7, &h75, &hA6, &hF9, &h9D, &hBC, &hA6, &h6E, &hF9, &hEE, &h6A, &h6F, &h5E, &hF7, &hF3, &h0E) _
& Chr(&h0F, &hC0, &h83, &h77, &h04, &h44, &hD0, &h89, &h23, &h5A, &h88, &h02, &hA5, &h21, &h35, &h14, &h9D, &h76, &h39, &hE2, &h6A, &hA5, &hD5, &hC8, &hCC, &h6E, &h84, &hB4, &h9A, &h1D, &h45, &hEC) _
...
funktioniert in diesem Fall nicht, weil beim Zeilenverlängern mit Unterstrich nach ca. 15000 Bytes Schluß ist. Der Compiler bricht den Vorgang ohne Fehlermeldung ab.

__Earthclouds_600x300png kann auch nicht als Konstante definiert werden, da in einem solchen String keine Nullbytes erlaubt sind.

Was hingegen funktioniert, ist folgendes:
Code:
Dim Shared As String __Earthclouds_600x300png
__Earthclouds_600x300png += Chr(&h89, &h50, &h4E, &h47, &h0D, &h0A, &h1A, &h0A, &h00, &h00, &h00, &h0D, &h49, &h48, &h44, &h52, &h00, &h00, &h02, &h58, &h00, &h00, &h01, &h2C, &h08, &h04, &h00, &h00, &h00, &hB5, &h34, &h05)
__Earthclouds_600x300png += Chr(&h1D, &h00, &h03, &hA5, &h6B, &h49, &h44, &h41, &h54, &h78, &h5E, &hEC, &hBC, &h07, &h90, &h6C, &hC7, &h75, &hA6, &hF9, &h9D, &hBC, &hA6, &h6E, &hF9, &hEE, &h6A, &h6F, &h5E, &hF7, &hF3, &h0E)
__Earthclouds_600x300png += Chr(&h0F, &hC0, &h83, &h77, &h04, &h44, &hD0, &h89, &h23, &h5A, &h88, &h02, &hA5, &h21, &h35, &h14, &h9D, &h76, &h39, &hE2, &h6A, &hA5, &hD5, &hC8, &hCC, &h6E, &h84, &hB4, &h9A, &h1D, &h45, &hEC)
...
Ob das jetzt praktischer ist als DATA - Zeilen oder eine Ressource, sei mal dahingestellt. lächeln

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 19.03.2017, 15:11    Titel: Antworten mit Zitat

Teurer ist es auf jeden Fall, wenn man bedenkt dass da mehrere Male Heapspeicher für einen wachsenden String alloziert werden muss (obwohl ja von Anfang an klar ist wie groß die Daten sein werden).
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz