Schriftgrad
Schriftgrad
Hallo Profis,
ich bin mit PureBasic gestrandet. Vor unendlich langer Zeit beschäftigte ich mich mit QBasic. Mit dem Untergang von DOS hat sich das erledigt. Die meisten assemblierten Programme gehen wohl noch, eine Weiterentwicklung ist nicht mehr möglich. Deshalb möchte ich auf PureBasic umsteigen. Es geht um die Berechnung von Abschlüssen in der Abiturstufe.
Um ein ermüdungsarmes Arbeiten zu ermöglichen möchte ich einen größeren Zeichensatz benutzen – habe ich mit der Console nicht geschafft. Auch ein Input geht nur mit der Console. Nun bin ich ratlos.
Ich muss die Eingabe einiger Strings in einem größeren Zeichensatz realisieren. Die Verarbeitung schaffe ich dann schon. Die Ausgabe soll wieder im großen Zeichensatz erfolgen. Kann mir jemand mit einem lauffähigen (sonst eigentlich sinnlosen) Programm auf die Sprünge helfen? Schon im voraus vielen Dank!
Gruß Wilfried
ich bin mit PureBasic gestrandet. Vor unendlich langer Zeit beschäftigte ich mich mit QBasic. Mit dem Untergang von DOS hat sich das erledigt. Die meisten assemblierten Programme gehen wohl noch, eine Weiterentwicklung ist nicht mehr möglich. Deshalb möchte ich auf PureBasic umsteigen. Es geht um die Berechnung von Abschlüssen in der Abiturstufe.
Um ein ermüdungsarmes Arbeiten zu ermöglichen möchte ich einen größeren Zeichensatz benutzen – habe ich mit der Console nicht geschafft. Auch ein Input geht nur mit der Console. Nun bin ich ratlos.
Ich muss die Eingabe einiger Strings in einem größeren Zeichensatz realisieren. Die Verarbeitung schaffe ich dann schon. Die Ausgabe soll wieder im großen Zeichensatz erfolgen. Kann mir jemand mit einem lauffähigen (sonst eigentlich sinnlosen) Programm auf die Sprünge helfen? Schon im voraus vielen Dank!
Gruß Wilfried
Re: Schriftgrad
In der Console kannst du nur per Hand die Größe des Zeichensatzes einstellen. Ich nehme mal an, du beziehst dich mit "Input" auf die gleichnamige Funktion in PB? Klar, das ist die einzige, die es ermöglichst in einer COnsole Daten einzulesen.
Daher würde ich an deiner Stelle vollkommen auf Consolenbenutzung verzichten und alles modern mit den PB-Gadgets in eigenen Fenstern einlesen und anzeigen lassen.
Ist ein ziemlich einfaches Beispiel, aber so kannst du z.B. selbst im Programm die Schriftgröße von Eingabe- und Ausgabefeldern setzen:
Daher würde ich an deiner Stelle vollkommen auf Consolenbenutzung verzichten und alles modern mit den PB-Gadgets in eigenen Fenstern einlesen und anzeigen lassen.
Ist ein ziemlich einfaches Beispiel, aber so kannst du z.B. selbst im Programm die Schriftgröße von Eingabe- und Ausgabefeldern setzen:
Code: Alles auswählen
Enumeration
#Gadget_Eingabe
#Gadget_Button
#Gadget_Ausgabe
EndEnumeration
Enumeration
#Font_Large
EndEnumeration
If LoadFont(#Font_Large, "Arial", 14) = 0
Debug "Huch.. haste kein Arial?"
End
EndIf
If OpenWindow(0, 0, 0, 400, 300, "Berechnung", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
Debug "Huch.. jetzt haste kein Fenster"
End
EndIf
StringGadget(#Gadget_Eingabe, 10, 10, 380, 30, "Lesbar?")
SetGadgetFont(#Gadget_Eingabe, FontID(#Font_Large))
ButtonGadget(#Gadget_Button, 150, 140, 100, 24, "Berechnen")
TextGadget(#Gadget_Ausgabe, 10, 260, 380, 30, "", #PB_Text_Border)
SetGadgetFont(#Gadget_Ausgabe, FontID(#Font_Large))
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Gadget_Button
SetGadgetText(#Gadget_Ausgabe, "Berechnung... usw.")
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Re: Schriftgrad
Danke für die schnelle Antwort! Die muss ich erst mal verstehen. Dann melde ich mich noch mal. Gruß Wilfried
Re: Schriftgrad
Hallo, habe versucht das Programmbeispiel zu verstehen - leider ohne Erfolg. Also drücke ich mich besser aus: Über die Tastatur möchte ich ein Zeichen einlesen und in A$ speichern. Wenn das eingelesene Zeichen ein A ist, soll mittig auf dem Schirm ein großes A erscheinen, andernfalls rechts unten groß das eingegebene Zeichen. Das Programm soll minimal, lauffähig und aucch für Anfänger verständlich sein.
Im voraus nochmals danke für die Hilfe!
Gruß Wilfried
Im voraus nochmals danke für die Hilfe!
Gruß Wilfried
Re: Schriftgrad
Ach herrje.. muss es denn unbedingt ein Programm im QBasic-Stil sein, dass ein verpixeltes Consolenfenster im Fullscreen-Modus öffnet?
Ganz ehrlich, ich finde diese Art und Weise Abschlüssen in der Abiturstufe zu bearbeiten überholt. Ich sehe es ja an meiner eigenen Schule, wenn unsere Informatiklehrer versuchen uns TurboPascal beizubringen, da schauderts mich.
Wenn du darauf bestehst den ganzen Bildschirm benutzen zu wollen, dann ist das in PB - besser als mit Console - mit den Sprite-Befehlen gut machbar. Da muss man sich aber auch um die Ereignisbehandlung selbst kümmern. Soll heißen: Du wirst nicht einen Programmcode schreiben können, der Schritt für Schritt einliest, dann auswertet, dann anzeigt, und wieder von vorne.
So blöd es nun klingt, ich würde dir dennoch das Arbeiten im Fenstermodus (wie im obigen Beispiel) ans Herz legen. Dort sind in PureBasic entsprechende Befehle für Eingabefelder bereits vorhanden, außerdem lässt sich einfach die Schriftgröße ändern und die Elemente beliebig auf dem Fenster anordnen.
Wie bereits gesagt, ein Arbeiten auf diese Art und Weise:
...ist heutzutage nur noch in der Console machbar. Da man hier aber nur selbst die Schriftgröße verändern kann, bietet es sich an, diese Arbeitsschritte alle dynamisch (beim Klicken auf Buttons, etc.) in Fenstern ausführen zu lassen.

Wenn du darauf bestehst den ganzen Bildschirm benutzen zu wollen, dann ist das in PB - besser als mit Console - mit den Sprite-Befehlen gut machbar. Da muss man sich aber auch um die Ereignisbehandlung selbst kümmern. Soll heißen: Du wirst nicht einen Programmcode schreiben können, der Schritt für Schritt einliest, dann auswertet, dann anzeigt, und wieder von vorne.
So blöd es nun klingt, ich würde dir dennoch das Arbeiten im Fenstermodus (wie im obigen Beispiel) ans Herz legen. Dort sind in PureBasic entsprechende Befehle für Eingabefelder bereits vorhanden, außerdem lässt sich einfach die Schriftgröße ändern und die Elemente beliebig auf dem Fenster anordnen.
Wie bereits gesagt, ein Arbeiten auf diese Art und Weise:
Code: Alles auswählen
A$ = Input()
If Input = "A"
Print("Juhu ein A")
Else
Print(A$)
Endif
Re: Schriftgrad
ich will es auch mal versuchen
(sorry ts
)
@Jilocasin & DrFalo
Nein, ich habe aber angenommen dass das Smilie (
) ihm gehoert 


Code: Alles auswählen
; hier wird ein Fenster geoeffnet, #PB_Window_SystemMenu sorgt dafuer dass
; das Fenster ein Menu bzw ein Knopf zum schliessen hat
; #PB_Window_ScreenCentered zentriert das Fenster
If OpenWindow(0, 0, 0, 230, 180, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; hier definieren wir die unten benotigeten Variablen. Nicht zwingend erforderlich, aber ratsam
Define.i Event = 0
Define.i Schrift = 0
Define.i Ausgabe0 = 0
Define.i Ausgabe1 = 0
Define.i char = 0
; hier wird ein Schriftart (ARIAL) mit der Groesse 40 geladen und die Daten werden in einer Variable gespeichert
Schrift = LoadFont(#PB_Any, "Arial", 40)
; hier werden alle Controls (unter PB Gadgets) die zuvor geladenen Schriftart zugewiesen.
SetGadgetFont(#PB_Default, FontID(Schrift))
; erstellen von 2 Textgadgets, diese koennen nichts, ausser Text anzeigen.
; damit man diese auch sieht, erstellt man sie mit einem Rand (#PB_Text_Border)
Ausgabe0 = TextGadget(#PB_Any, 10, 10, 210, 70, "", #PB_Text_Border)
Ausgabe1 = TextGadget(#PB_Any, 10, 90, 210, 70, "", #PB_Text_Border)
; ab hier beginnt die Eventschleife, diese wird auch
; erst wieder verlassen wenn man das Fenster schliesst, siehe das untere "Until"
Repeat
; Das Event wird abgefragt, WaitWindowEvent sollte nur einmal pro schleifendurchlauf (repeat) aufgerufen werden.
Event = WaitWindowEvent()
;#WM_CHAR waere das richtige Event, die Konstante gibt es in der Demo aber nicht.
;hier wird auf das Event #WM_CHAR gewartet, das ist ein Windows- und kein Purebasicevent
If Event = 258
; EventwParam() gibt es nur unter dem OS Windows, diese Funktion holt zusaetzliche Informationen zu einem (#WM_) Event.
char = EventwParam()
Select char
; Im folgendem Case darf "Char" nur A oder a sein
Case 'A' , 'a'
; hier wird Char, mit Hilfe der Funktion CHR(), in ein String umgewandelt
; und an das TextGadget Ausgabe0 geschickt
SetGadgetText(Ausgabe0, Chr(Char))
; Im folgendem Case darf "Char" B bis Z oder b bis z sein.
Case 'B' To 'Z', 'b' To 'z'
; hier wird Char, mit Hilfe der Funktion CHR(), in ein String umgewandelt
; und an das TextGadget Ausgabe1 geschickt
SetGadgetText(Ausgabe1, Chr(Char))
EndSelect
EndIf
; wenn Event = #PB_Event_CloseWindow ( also beim Mausklick auf das Fenster X) wird
; die Eventschleife verlassen
Until Event = #PB_Event_CloseWindow
EndIf
@Jilocasin & DrFalo
Nein, ich habe aber angenommen dass das Smilie (


Zuletzt geändert von edel am 12.06.2010 16:11, insgesamt 2-mal geändert.
Re: Schriftgrad
Aber unser ts hat doch noch garkeinen Beitrag hier geschriebenedel hat geschrieben:sorry ts

Re: Schriftgrad
Wahrscheinlich weil der Code so krüppelig ist und ts sowas immer gleich moniert.Jilocasin hat geschrieben:Aber unser ts hat doch noch garkeinen Beitrag hier geschrieben

Edit: Nachdem edel sich erklärt hat nehme ich alles zurück und behaupte nun das Gegenteil.

Neeee, heute hab ich schon zuviel Bananensaft intus.@DrFalo: Versuch doch du eine überzeugende Lösung zu finden.. (Hups)

Zuletzt geändert von rolaf am 12.06.2010 16:53, insgesamt 2-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Re: Schriftgrad
Kann man auf 15 x 15 Pixel Smilies ein Patent anmelden?
@DrFalo: Versuch doch du eine überzeugende Lösung zu finden
.. (Hups)
Edit: Bananensaft ist nice.
(Hups, die zweite) Nur bisher hatte ich noch kein Doppelkorn dazu..
@DrFalo: Versuch doch du eine überzeugende Lösung zu finden

Edit: Bananensaft ist nice.

Zuletzt geändert von Jilocasin am 12.06.2010 18:39, insgesamt 1-mal geändert.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Schriftgrad
Muß ich mich wohl umstellen: 

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
