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:

Print "Hallo Wold" Pixelgenau auf dem Monitor ausr

 
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
Muecke
Gast





BeitragVerfasst am: 16.01.2014, 00:27    Titel: Print "Hallo Wold" Pixelgenau auf dem Monitor ausr Antworten mit Zitat

Hallo miteinander,

mit dem Befehl Print kann ich Text ausgeben lächeln

wenn ich schreibe Locate 10, 15: Print "..."

dann wird mein Text ja in Zeile 10 Position 15 ausgegeben da ich den Cursor neu setze bevor ich Print ausgeben lasse.

Meine Frage kann das auch Pixelgenau machen? anstatt Zeile und Position eine x, y Koordinate angebe?
leider habe ich nichts gefunden traurig bisher im Netz traurig

ich arbeite mit: ScreenRes 1024, 600, 32
Nach oben
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 16.01.2014, 01:14    Titel: Antworten mit Zitat

DRAW STRING
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 16.01.2014, 01:36    Titel: Antworten mit Zitat

kurz und knapp

danke

das werde ich morgen gleich mal testen.
sieht recht einfach aus happy
Nach oben
Muecke
Gast





BeitragVerfasst am: 16.01.2014, 19:50    Titel: Antworten mit Zitat

das mit dem "DRAW STRING" ist echt genial lächeln
Danke noch mal, hat mir einige Probleme abgenommen lächeln

Eins habe ich jedoch noch traurig

beim Befehl Print kann man das Using mit verwenden z.B. so
Code:
Locate 20, 18: Print Using "#####"; Frame_Aktueller

Der Vorteil hierbei ist wenn ich das aufrufe wird meine Stelle zuerst bereinigt und dann der Neue Wert ausgegeben dazu wird Rechtsbündig geschrieben.

ist es Möglich das Using Prinzip auch beim "DRAW STRING" anzuwenden?
ich dachte z.B. so:
Code:
Draw STRING (235, 570), Using "#####";Frame_Aktueller


Habe nichts vergleichbares gefunden und bei allen meinen Überlegungen kamen verschiedenste Fehler traurig
Daher meine Frage ist so was Möglich? ohne großen Aufwand?

sonst bleibt es wie es ist lächeln
und das wäre so:
Code:

Line (231, 563) - step(118, 18), Text_BG_Farbe, BF
Draw STRING (235, 570), Str(Frame_Aktueller)
Nach oben
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 16.01.2014, 20:33    Titel: Antworten mit Zitat

Ich habe sowas gerne gemacht:
Code:

ScreenRes 500, 200, 32

Dim As Integer aktuellerFrame = 12345

Draw String (10, 80), Str(aktuellerFrame)

Print "Taste druecken, um den Text unten zu ueberschreiben."
Sleep

Draw String (10, 80), String(Len(Str(aktuellerFrame)), Chr(219)), RGB(0, 0, 0)

Print "Taste druecken, um zu beenden."
Sleep


Print Using macht nichts weiter, als den Wert zu nehmen und entsprechend zu formatieren. Letztlich belegt er durch die Vorgabe immer die gleiche Anzahl an Zeichen.
Sowas ähnliches macht Format auch:
Code:

#Include "string.bi"

ScreenRes 500, 200, 32

Dim As Integer aktuellerFrame = 12345

Draw String (10, 80), Format(aktuellerFrame, "#####")

Print "Taste druecken, um den Text unten zu ueberschreiben."
Sleep

Draw String (10, 80), Format(aktuellerFrame, "#####"), RGB(0, 0, 0)

Print "Taste druecken, um zu beenden."
Sleep

Geht natürlich nur, wenn du die gleichen Zeichen über die gleiche Position nur mit umgekehrter Farbe schreibst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 16.01.2014, 20:50    Titel: Antworten mit Zitat

hmm, OK, das sieht ganz Interessant aus jedoch wies ich nicht wie mich das weiterbringt. traurig

Referenz - FORMAT hat Folgendes geschrieben:
# = Platzhalter für eine Ziffer. Funktioniert genauso wie 0, erzeugt aber keine führenden Nullen.


die Ziffer ist nicht Rechtsbündig traurig und somit bei beim Wechsel von 100 zu 99 bleibt die Rechte 0 Stehen traurig

und wenn ich mit dem Befehl zuerst alles Leermasche und dann wider Neu Fülle habe ich mir nichts eingespart?

oder Interpretiere ich hier was Falsch? habe ich was übersehen?
Nach oben
nemored



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

BeitragVerfasst am: 16.01.2014, 21:29    Titel: Antworten mit Zitat

Das ist richtig, FORMAT arbeitet da nicht immer so, wie man erwarten würde (ich denke mal, dass FORMAT da manchmal einfach falsch arbeitet). Wenn es nur um die Rechtsbündigkeit geht, gibt es mehrere Möglichkeiten - angefangen mit so Dingen wie RSET (was ich persönlich für einen sehr irrwitzigen Befehl halte, aber so war der halt in QBASIC eingeführt) bis hin zu eigenen Formatiermethoden. Mal so eine Möglichkeit:
Code:
DIM AS STRING wert = STR(zahl)
IF zahl < 10 THEN
  wert = "   " & wert
ELSEIF zahl < 100 THEN
  wert = "  " & wert
ELSEIF zahl < 1000 THEN
  wert = " " & wert
END IF

(arbeitet nicht bei negativen Zahlen!)

Ist wegen der zweimaligen String-Zusammensetzung etwas arbeitsaufwändig; ich berechne mir lieber anhand der Stellenzahl die Bidschirposition, ab der ich den Wert schreiben muss.
_________________
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
Muecke
Gast





BeitragVerfasst am: 16.01.2014, 22:01    Titel: Antworten mit Zitat

hmm, OK, das Rechtsbündige ist schon eine sehr schöne und feine Sache lächeln

das mit den Stellen Berechnung und dann der Positionierung hört sich gut an da ich den Text Pixel genau ausgebe kann man das recht einfach machen lächeln

Danke für den Tipp
Nach oben
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 20.01.2014, 22:13    Titel: Antworten mit Zitat

Hallo,

also ich mache das immer so,

Code:

DIM AS STRING wert
wert = STR(zahl) & " "


und hatte damit bisher nie probleme.

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 20.01.2014, 22:57    Titel: Antworten mit Zitat

Für Ganzzahlen formatieren eignet sich ansonsten so etwas:
Code:
Function ZahlRechtsbuendig(wert As Integer, breite As Integer) As String
  Dim h As String

  h = Str(wert)
  Return Space(breite - Len(h)) + h
End Function

So etwas hat bereits in QB gut funktioniert.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 21.01.2014, 07:47    Titel: Antworten mit Zitat

Code:
Dim As Integer breite, zahl
Print Right(String(breite," ") + Str(zahl),breite)
funktioniert auch.

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
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
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