tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
695
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    UTA2000 UTA2000 ist offline Mitglied
    Registriert seit
    Aug 2006
    Beiträge
    15
    Hi,

    Ich programmiere seit ca. einer Woche mit VB2005 Express. Ich arbeite momentan gerade an einem Programm welches mir den Inhalt einer PictureBox auf mein LCD (meiner G15-Tastatur) sendet. Am Ende soll das Programm im Hintergrund laufen und in festen Zeitabständen (ca. alle 30Sek) neue (WaKü-Temperatur-) Informationen anzeigen.

    Die Übermittlung des PictureBox-Inhalts an das LCD klappt bereits problemlos: Ich prüfe jeden Pixel der PictureBox auf den Farbcode (kann nur schwarz oder weiß geben). Ist nicht gerade das performanteste (ich weiß), aber ich hab nix besseres und größere Probleme

    Nun jedoch zu meinem Problem: Die dynamischen Temperatur-Informationen bekomme ich momentan per DrawString-Funktion an die gewünschte Position in der PictureBox. Nur sind alle Fonts entweder zu groß (JA, ich habe bereit sehr kleine Fonts aus dem Netz gezogen! ) oder unleserlich.

    Bereits für dieses und auch folgende Projekte ist es also von großer Bedeutung, möglichst wenig Raum pro Buchstabe zu verbrauchen (LCD hat 160x43 Pixel, sw). Deshalb habe ich einen Bitmap-Font gebastelt (siehe Anhang).

    Dieser Bitmap-Font legt je Buchstaben zwar eine feste Höhe (7px) aber eben keine feste Breite fest (ist einfach bei Buchstaben wie "W" oder "I" ein zu großer Unterschied).
    Mein Wunsch ist nun, ein Wort nicht per DrawString auf die PictureBox zu bekommen, sondern stattdessen jeden Buchstaben aus dieser Bitmap-Datei "zu holen" und auf die PictureBox zu zeichnen.

    Folgendes ist dabei unklar/ungelöst:
    1. Wie kann ich möglichst einfach für jedes Zeichen eines Satzes sein Pendant im Bitmap finden?
    Mir schwebt dabei momentan eine Lösung vor, bei der ich je Zeichen im Programmcode die Bitmap-Position (As Point) und Breite (As Byte) fest deklariere. Und dann jeden Satz in einzelne Zeichen zerlege, mir das Bitmap-Pendant hole und in die PictureBox zeichne.
    Habt ihr ne bessere Idee für das generelle Vorgehen?

    2. Mal voraus gesetzt, das mein oben beschriebenes Vorgehen das "richtige" wäre: Wie kann ich denn nur einen bestimmten Bereich aus einem Bild an eine bestimmte Position in eine PictureBox kopieren?
    Sorry, falls das mit irgend einem Befehl eigentlich ganz einfach geht, wie gesagt, ich mach VB erst seit letzten Freitag. Und das Problem bei VB2005 ist, dass man die Klassen kennen muss, um die Möglichkeiten/Befehle zu kennen

    UTA
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken VB2005: Wie Bitmap-Zeichensatz statt DrawString auf PictureBox.Image anwenden-25737attachment.gif  
     

  2. #2
    DevHB DevHB ist offline Mitglied Silber
    Registriert seit
    Aug 2006
    Ort
    Bremen
    Beiträge
    92
    Hi,

    ich kann Dir zwar bei Deinem Problem nicht helfen, aber Du bist im falschen Forum...

    Ich würde im NET Forum nochmal nachfragen.
     
    Gruß

    DevHB

  3. #3
    UTA2000 UTA2000 ist offline Mitglied
    Registriert seit
    Aug 2006
    Beiträge
    15
    Ups, sorry. Kann noch nicht klar die Grenze zwischen .NET und Visual Basic ziehen.

    Dann werde ich dort das Problem mal posten.
    Ist jetzt unter .NET gepostet. Dieser Beitrag kann geschlossen werden.

    Sorry!

    UTA
    Geändert von UTA2000 (17.08.06 um 17:32 Uhr)
     

Ähnliche Themen

  1. IntPtr zu Bitmap in eine PictureBox?
    Von Asterix-Ac im Forum .NET Archiv
    Antworten: 16
    Letzter Beitrag: 21.05.09, 15:09
  2. Antworten: 6
    Letzter Beitrag: 06.07.08, 15:13
  3. DrawString in PictureBox verschwindet
    Von FwDonnerbalken im Forum .NET Grafik und Sound
    Antworten: 12
    Letzter Beitrag: 07.05.08, 15:16
  4. Antworten: 4
    Letzter Beitrag: 18.08.06, 17:32
  5. [MySQL] Ansi statt Unicode-Zeichensatz
    Von martin_ im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 14.09.05, 01:00