• Noch nie gesehen. Ich würde spontan darauf tippen:
    Bitmap-Größe ist keine ganze Zahl
    Oder Position ist keine ganze Zahl
    Oder die gewählte Farbe ist keine ganze Zahl (Farbe 13,0001 aus der 16-Farbpalette oder so)

    There are two rules in life:
    1. Never give out all of the information.

  • Die Bitmap wird vom Iconeditor mit BMF_4Bit geliefert und sie wird in der Applikation richtig dargestellt.
    Das Huge-Array hat exakt die richtige Größe.
    Die verwendeten Farben sind aus den 16 Farben im Iconeditor gewählt.

    NON_INTEGRAL_WIDTH = nicht ganzzahlige Breite ? Könnten die gepackten Bitmapdaten die Ursache sein?

    Wilfried

  • Schau mal, was ich in den Sourcen gefunden habe. Vielleicht hilft es ja.
    ;----------------------------------------------------------------------------
    ; Warnings constants
    ;----------------------------------------------------------------------------

    VIDMEM_CLR4_CANNOT_HANDLE_NON_INTEGRAL_WIDTH enum Warnings
    ; The clr4 module cannot currently handle non-integral (divisible by 4)
    ; widths, due to a problem in the character drawing code. This will
    ; eventually be fixed, but for now when using this module, if you plan
    ; to draw text to the bitmap, make sure the bitmap width is divisible by
    ; 4 or else you may encounter memory corruption problems if a string is
    ; drawn off the right side of the bitmap.
    ;
    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Mist. Versuch doch mal 104 oder 96 Pixel. Wegen Teilbarkeit durch 8.

    Ansonsten ist es eine Warnung. Wenn du nicht vor hast, Text über den rechten Rand zu schreiben, kann eigentlich nichts passieren (hoffentlich).
    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Das Problem hat sich geklärt: Ich hatte eine Unstimmigkeit zwischen den Bitmapgrößen bei GrCreateBitmap und der tatsächlichen Größe.

    Danke nochmal an Rainer und Jörg!

    Gruß

    Wilfried

  • Gerne doch. Kannst du das Problem genauer beschreiben (meinetwegen per PM), man kann ja auch aus den Fehlern anderen lernen. Ich kann mir gerade gar nicht vorstellen, was das Problem war.

    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Klar!

    Ich hab's noch mal genauer untersucht:
    UHR_BREITE 105
    UHR_HOEHE 105
    Das waren meine Konstanten, die sowohl für die View-Document-Größe als auch für GrCreateBitmap in MSG_GEN_PROCESS_OPEN_APPLICATION benutzt werden. Ich weiß allerdings nicht mehr, warum ich diese Werte genommen habe. Meine Bitmap (vom Iconeditor erzeugt war 99 x 99 groß (damit ich einen eindeutigen Mittelpunkt hatte). Diese Größe hab ich auf 100 x 100 vergrößert, ohne dass die Warnung verschwand. Danach habe ich die Werte für die Konstanten verändert und herausgefunden, dass die Warnung verschwindet, sobald UHR_BREITE durch 4 teilbar ist. Der Wert für UHR_HOEHE ist offenbar nicht relevant.
    Entscheidend ist, dass die Breite in GrCreateBitmap durch 4 teilbar ist.
    Die Bitmap ist übrigens vom Typ BMF_4BIT.

    Gruß
    Wilfried

    P.S.: Damit ist meine Uhr fertig:-)

  • versuch mal im Primary

    ATTR_GEN_WINDOW_CUSTOM_LAYER_PRIORITY = {LAYER_PRIO_ON_TOP};
    ATTR_GEN_WINDOW_CUSTOM_LAYER_ID = {0};


    Details dazu stehen im SDK_C Beispiel GENINTER
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Warum nimmst du 4 Bit Bitmaps? Bei 8 Bit hast du doch wesentlich mehr Möglichkeiten. Ob die Performance von 4 Bit Bitmaps besser ist, weiß ich nicht, habe daran aber Zweifel.
    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Hallo Wilfried,
    Ich denke jetzt mal an Version 7.x mit einem Nutzer-definierten Ziffernblatt (neudeutsch Skin). Da bist du mit 16 Farben echt eingeschränkt. Für dich ist es doch einfach nur einen andere Konstante, die du benutzt. Die Performance habe ich nicht getestet, aber wenn du jedes Byte erst in 2 Pixel zerpflücken musst, kann das eigentlich nicht schneller sein. Und bei 100x100 Pixel ist der Speicherplatz die letzte Sorge, die ich hätte. Das 4-Pixel-Problem bist du dann wahrscheinlich auch los. OK, genug agitiert ;)

    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Rainer: Das Ziffernblatt meiner Uhr hab ich mit dem Iconeditor erzeugt. Und der will (bei mir) partout keinen Quellcode für 256 Farben schreiben. An eine Weiterentwicklung dieses Projekts hab ich bisher gar nicht gedacht.

    Konstantin: Die Uhr läuft (bei mir unter Win XP) tatsächlich flackerfrei. Ich kann sie auf der nächsten Zoom-Konferenz mal zeigen.

    Gruß
    Wilfried

  • Es ist halt eine Uhr die die aktuelle Zeit anzeigt.
    Schön wäre es noch, wenn die Uhr stets im Vordergrund bliebe. Ich weiß aber nicht, ob und wie das möglich ist.

    Wenn man sie aus dem Ordner "Hilfsprogramme" heraus startet, sollte sie immer im Vordergrund bleiben.

    Gruß Achim


    PC/GEOS unter Linux in der DOSEMU = UNSCHLAGBAR!