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:

freeBASIC: PRINT-Ersatz

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 26.03.2005, 00:40    Titel: freeBASIC: PRINT-Ersatz Antworten mit Zitat

Das Problem mit Print in Grafik-Modi ist allgemein bekannt.
ungenau Positionierbar, der Hintergrund geht verloren, und außerdem is das Format auf 8x8 bzw 8x16 festgelegt.

Viele fortgeschrittene Programmierer ahben schon nen Ersatz dafür gechrieben, meistens auf ner externen Datei basierend, in der die Zeichenmuster für jeden ASCII-Character gespeichert sind.
Nur sind die meisten dieser Routinen immer noch auf feste Formate beschränkt.

Deswegen schreibe ich seit 2 Tagen ein einer Eigenen Routine, die dieser Einschränkung nicht mehr unterliegt.



Weitere Features:
- Eingebaute INPUT-Routine
- Wahlweise Hintergrundfarbe oder Transparenzeffekt
- frei Vergrößerbar/Verkleinerbar
- File-Header
(ich glaub, das sollt ich jetz kurz erklären:)
Bei manchen Schriftarten würde man gerne mehr infos Mitgeben, als nur den Dateinamen. Erstellungsdatum, Name des Erstellers, ...
Diese können direkt in der Datei integriert werden.
Zurzeit hab ichs so organisiet, das maximal 256 Infos in den Header gepackt werden können, und alles zusammen maximal 64 KB.

Dateiintertnes Format:

Header-Size: 2 bytes
Zahl der Header-inahlte: 1 Byte
CHR$(255) 1 Byte (leitet Name eines Header-Elements ein)
Name des Header-Elements, wie etwa "Datum": ?? Bytes
CHR$(255) 1 Byte (beendet Header-Element-Name)
Inhalt des Header-Elements, wie etwa "03-25-2005": ?? Bytes
CHR$(13) leitet nächstes Element ein.
Höhe: 1 Byte
Charmap:
Breite des Zeichens: 1 Byte
Zeichenmuster: Höhe * (Breite / 8 ) + SGN(Breite MOD 8 ) Bytes


Das scheint ganz gut zu funktionieren; ich hab bis jetzt immerhin schon die Laderoutine geschrieben bzw die anzeige-Routinen.
Das einzige, was momentan noch zu tun ist, ist ein gescheiter editor.


Syntax
Denkbar einfach. Zuerst eine Schriftdatei Laden:

LoadFontFile Dateiname AS STRING

und dann eine Anzeigeoption wählen:
-für normales Anzeigen:
SFont Text AS STRING, x AS INTEGER, y AS INTEGER, fore AS INTEGER, back AS INTEGER

fore und back sind dabei Farbwerte. Wenn back kleiner 0 ist, wird der Text transparent ausgeben.

- für vergrößerte/verkleinerte ausgabe:
BFont Text AS STRING, x AS INTEGER, y AS INTEGER, fore AS INTEGER, back AS INTEGER, factor AS SINGLE

- Der input-ersatz:
IFont Text AS STRING, x AS INTEGER, y AS INTEGER, fore AS INTEGER, back AS INTEGER, Ans AS STRING

und nicht vergesen, den Speicher freigeben:

UnLoadFont

Das ganze wird nämlich für die benutzung im Programm in einem Pointer Muster[] gespeichert; die Offsets sind in einem Array Adrs(1 TO 255, 2)







Tja... wie bei jedem Thread in diesem Forum:
Was haltet ihr davon, könnte das was werden, hat wer Tips?



Danke fürs lesen!

Have a nice day
Ciao!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.


Zuletzt bearbeitet von Dusky_Joe am 01.04.2005, 19:02, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 30.03.2005, 21:58    Titel: Antworten mit Zitat

Das nenn ich ein gutes vorhaben! mal sehen, ob ich 's benutzze grinsen
_________________
» 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
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 01.04.2005, 18:54    Titel: Antworten mit Zitat

Ah, endlich jemanden, dens interessiert *g*
Wie gesagt, die Hauptroutinen stehen schon, und funktionieren, nur der Editor macht bisweilen noch Probleme.
Arbeite grade an der Größenänderung der Zeichen... als nächstes wirds wohl die ersten Speicher-Funktionen geben, damit man schon mal Fonts erstellen kann.
Und wenn ich erst mal so weit bin, wirds wohl auch den ersten DL-Link geben.

Ich musste dieses Projekt aber kurz zurückstecken, weil ich nen HTML-BB-Parser schreiben musste....

Naja, der is jetz fertig, also gehts wieder an die Arbeit *g*
Und du gehörst zu den ersten, denen ich das fertige Ding schicke Zunge rausstrecken
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 01.04.2005, 18:56    Titel: Antworten mit Zitat

Hallo!

Klasse! Endlich mal wer, der das Problem löst lächeln
Wenns für QB ist, dann nehm ichs her lächeln
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 01.04.2005, 19:09    Titel: Antworten mit Zitat

Sorry, is leider FB. Um die Pixelmuster im Speicher abzulegen, verwende ich ALLOCATE, einen reinen FB-Befehl...
Aber als abhilfe könnt ich dir den Vorgänger dazu empfehlen.
Dazu gehst du auf www.qbasic.de/wettbewerb, und lädst dir SKYFISH.ZIP runter. Darin sind unter anderem ein paar Font-Routinen für QB incl einer FontFile.
Ich glaube, da sind SFont, BFont, VFont und IFont dabei. (VFont gibt Bunte Schrift aus). Der nachteil dabei ist, dass ich die Pixelmuster recht ineffektiv gespeichert hab (20 KB für eine Datei), und das Pixelformat festgelegt ist, entweder auf 16x8 oder 8x8.
Aber praktisch is es allemal, habs schon in einigen QB-Progs benutzt, und war wahnsinnig froh drum *g*
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 01.04.2005, 19:14    Titel: Antworten mit Zitat

Hallo!

Danke trozdem lächeln
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 11.04.2005, 17:09    Titel: Antworten mit Zitat

So, die Font Edit 0.1.3 ist da. Wie man aus der Versionsnummer schon lesen kann - das Ding kann praktisch nix...
Immerhin, speichern und Laden geht. Dafür habe ich übrigens die Windows-Dialoge verwendet, unter Linux wirds also nicht laufen...
Tragisch...

Im Paket ist neben dem Editor (compilert und als Quellcode) auch noch eine Reihe von .BAS-files.
Die sollen verdeutlichen, wie die Daten aufgebaut sind, bzw. wie eine Datei geladen wird.
In der read_fonts_charset_10.bas sind dann die eigentlichen Routinen. Einfach kopieren, einfügen, fertig.

Die Syntax wurde ja oben schon erklärt, ist aber eh recht einfach zu verstehn *g*

Fehlt nur noch der Link zum Donwload:
http://dhost.info/siteofkaos/freeBASIC/FB-Font.zip

Würde mich über Kommentare, Vorschläge, ... freuen!
Danke, Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ts-soft



Anmeldungsdatum: 13.02.2005
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: 20.04.2005, 16:48    Titel: Antworten mit Zitat

Nettes Programm, aber:
>> Immerhin, speichern und Laden geht.
Beim laden, kurz nach Auswahl einer *.fbf Datei erschein ein Systemfehler

>> Fehlgeschlagene Anwendung font_edit.exe, Version 0.1.3.0, fehlgeschlagenes Modul ntdll.dll, Version 5.1.2600.2180, Fehleradresse 0x00010f29.

Mein System: WinXP Pro SP 2

Gruß
Thomas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 20.04.2005, 17:00    Titel: Antworten mit Zitat

Interessant...
Hier verwende ich die WIN-API. Wird der Dialog angezeigt, oder stürzt das Prog schon ab, wenn du nur auf Datei->Laden klickst?

Wie man aus der Fehlermeldung schon erkennen kann ist der Fehler ja nicht in meinem Code aufgetreten...
evtl lags aber auch an nem Bedienugsfehler beim Aufruf der API-Funktionen...

Kommt der Fehler jedes mal, oder hast du's nur einmal probiert?


Danke fürs Downloaden!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ts-soft



Anmeldungsdatum: 13.02.2005
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: 20.04.2005, 17:11    Titel: Antworten mit Zitat

Dusky_Joe hat Folgendes geschrieben:
Interessant...
Hier verwende ich die WIN-API. Wird der Dialog angezeigt, oder stürzt das Prog schon ab, wenn du nur auf Datei->Laden klickst?

Der Dialog wird angezeigt, ich wähle eine Datei und Systemfehler. Da die Fehlermeldung auf die NTDLL.DLL hinweist, nehme ich an, das der Fehler mit WinXP oder NT allgemein zu tun hat.


Dusky_Joe hat Folgendes geschrieben:
Kommt der Fehler jedes mal, oder hast du's nur einmal probiert?

Kommt jedesmal, konnte noch keine Datei laden, lediglich die beim starten geladene kann ich bearbeiten.

Gruß
Thomas
(ts-soft)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 04.03.2007, 04:46    Titel: Antworten mit Zitat

Hi, ich habe gerade mal hier in den Archiven gestöbert, was es da zum Thema Font noch gibt um noch weitere mögliche Alternativ Methoden in meiner Seite aufzulisten, ich wollte mir dein Programm deswegen kurz ansehen aber der letzte Link funktioniert leider nicht mehr....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 04.03.2007, 11:11    Titel: Antworten mit Zitat

Quark48 hat Folgendes geschrieben:
Wenns für QB ist, dann nehm ichs her :)

Schon seit Urzeiten auf meiner Homepage:

http://www.dreael.ch/Deutsch/Download/Grafikbibliothek.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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 -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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