 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 09.06.2007, 14:41 Titel: Aktuelle FBC V0.17 <05-11-2007> |
|
|
Hi,
wurde bei dieser Version etwas am ImageCreate bzw den Umgang in verbindung mit Draw String verändert ?
dieses Beispiel von Freebasic.de funktionierte problemlos mit einer älteren FBC Version.
Code: |
' Die Schriftart soll die ASCII-Codes 32 bis 128 beinhalten:
#DEFINE FIRST 32
#DEFINE LAST 128
' Der Puffer für die Schriftart
DIM AS UBYTE PTR myFont
' Ein 800x200x8bpp- Grafikfenster öffnen
'SCREENRES 800, 200, 32
Screen 18,32
' Den Puffer erstellen.
' Breite: 97 * 8 Pixel für 97 Zeichen, also 776 Pixel.
' Höhe: 9 Pixel, 8 für das Zeichen und eines, um zu speichern, wie breit das Zeichen ist.
myFont = IMAGECREATE((LAST - FIRST + 1) * 8, 9)
' Der "Header" der Font:
' myFont[0] bis myFont[3] enthalten die Höhe und Breite des Puffers im IMAGECREATE-Format.
myFont[4] = 0 ' Version des Font-Headers
myFont[5] = FIRST ' ASCII-Code des ersten Zeichens in der Schriftart
myFont[6] = LAST ' ASCII-Code des letzten Zeichens in der Schriftart
' Die eigentlichen Pixeldaten:
Dim as integer i
FOR i = FIRST TO LAST
' Hier könnte für jedes Zeichen eine eigene Breite angegebn werden.
' Der Einfachheit halber wird darauf aber verzichtet.
myFont[7 + i - FIRST] = 8
' Den Puffer mit dem Standard-Charset befüllen.
' Achtung: Die erste Pixel-Zeile bleibt frei, da hier die Breite der Zeichen
' gespeichert wurde.
DRAW STRING myFont, ((i - FIRST) * 8, 1), CHR(i)
NEXT i
' Ein Test:
DRAW STRING (100, 100), "Hello world!",, myFont
' Der Gesamte Zeichensatz der Schriftart.
' Eventuell können Sie eine graue Linie über dem Zeichensatz erkennen, die durch
' die Breite-Bytes zustande kommen.
'PUT (0, 1), myFont, PSET
' Die Font speichern, um sie später nutzen zu können:
'BSAVE "C:\BASIC\StandardFont.fbf", myFont, (LAST - FIRST + 1) * 8 * 9 * 4 + 7
' Der letzte Parameter setzt sich so zusammen:
' Der Inhalt der Klammer stellt die Anzahl der Zeichen dar
' 8 Pixel ist jedes Zeichen breit
' jedes Pixel ist 8 Pixel hoch, zusätzlich wird eine Zeile für die Information
' Breite benutzt.
' Da ein 32bpp-Modus verwendet wird, sind zusätzlich pro Zeichen 4 Bytes nötig.
' 7 Bytes werden für den Header benötigt.
Sleep
|
Aber jetzt zeigt er mir nur noch einen schwarzen Screen an...
Welche änderungen muss ich vornehmen um dieses Beispiel wieder zum laufen zu kriegen ? _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 09.06.2007, 15:00 Titel: |
|
|
Funktioniert es denn bei Dir, mit der FBC Version ? _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 09.06.2007, 15:48 Titel: |
|
|
Seit 0.17 gibts nen neuen Imageheader.
Die offsets musst du anpassen, dann geht der Code wieder.
Alternativ kannst du auch mit -lang deprecated kompilieren, dann sollte das auch gehen
bearbeiter code _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 09.06.2007, 16:00 Titel: |
|
|
Danke,
jetzt gehts wieder alles  _________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 10.06.2007, 01:47 Titel: |
|
|
Nach dem einbinden von
#include once "windows.bi"
Zitat: |
Command executed:
"D:\FreeBASIC\fbc.exe" "D:\FreeBASIC\inc\win\FBIDETEMP.bas" -lang deprecated
Compiler output:
D:/FreeBASIC/inc/win/FBIDETEMP.bas(20) error 14: Expected identifier, found 'ULONG'
type ULONG as uinteger
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(21) error 18: Syntax error, found 'PULONG'
type PULONG as uinteger ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(22) error 18: Syntax error, found 'PSZ'
type PSZ as byte ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(23) error 18: Syntax error, found 'PVOID'
type PVOID as any ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(24) error 18: Syntax error, found 'LPVOID'
type LPVOID as any ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(25) error 18: Syntax error, found 'PVOID64'
type PVOID64 as any ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(2 error 18: Syntax error, found 'wchar_t'
type wchar_t as ushort
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(31) error 18: Syntax error, found 'WCHAR'
type WCHAR as wchar_t
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(32) error 18: Syntax error, found 'PWCHAR'
type PWCHAR as wstring ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(33) error 18: Syntax error, found 'LPWCH'
type LPWCH as wstring ptr
^
D:/FreeBASIC/inc/win/FBIDETEMP.bas(33) error 123: Too many errors, exiting
Results:
Compilation failed
System:
FBIde: 0.4.6
fbc: FreeBASIC Compiler - Version 0.17 (05-11-2007) for win32 (target:win32)
OS: Windows XP (build 2600, Service Pack 2)
|
_________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 10.06.2007, 10:44 Titel: |
|
|
noch etwas
Code: |
screen 18,32
dim c as uinteger
dim as integer x,y
locate 1,1:?"A"
for y=0 to 15
for x=0 to 7
C=point(x,y)
?hex(c),;
next x
next y
sleep
|
einfaches beispiel....
wenn ich das zeichen auslesen will, erkennt er jetzt einen Alphawert 255
was ein auslesen <> 0 nicht mehr möglich macht!
Da hilft auch kein "-lang deprecated" oder "-lang fb" mehr... _________________
 |
|
Nach oben |
|
 |
|
|
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.
|
|