Graphics::TBitmap in eigener Komponente?



  • Naja, dass gute ist jetzt, dass das Bitmap tatsächlich schon angezeigt wird,
    wenn ich eins im Objektinspektor auswähle, das schlechte, dass die Fehler-
    meldungen dann gar nicht mehr aufhören und ich gerade von der RESET-Taste auf
    meinem Computer gebrauch machen musste... 😞
    Ich versuche das jetzt mal, indem ich die Befehle, mit denen ich das Bitmap
    zeichne, gleich in SetBitmap() schreibe. Mal sehen vielleicht funktionierts
    ja... 😕

    MFG Aoeke



  • Ganz bestimmt nicht. Wenn der Code nicht allzulang ist, dann poste ihn doch hier mal.



  • Der ist aber lang.
    Mit Header-Datei so ca. 500 Zeilen...
    Aber ich probier jetzt mal noch was anderes. Wenns funktioniert schreib ichs hier rein, wenn nicht lass ichs sein.

    MFG Aoeke



  • Also die Meldung "Leinwand/Bild erlaubt kein Zeichen" kam wirklich nur, wenn du das Bitmap im Objektinspektor neu gesetzt hast, ja?



  • jup.



  • Ok hat nicht funktioniert... Schade.
    Naja ich habe das jetzt einfach aus dem Objektinspektor rausgenommen. Wenn
    das Programm läuft, kann man ja immer noch ein Bild auswählen.
    Danke für deine Hilfe @ WebFritzi!

    MFG Aoeke



  • Ich glaub' es liegt daran:

    Du weist dem FBitmap ein Bild zu und hast noch kein Objekt!!! :o
    Du mußt in Constructor des Objektes ein TBitmap mit new erzeugen, natürlich auch deleten im Destructor!
    Der Tip von WEBFRITZI mit csDesigning ist auch ok

    Wenns klappt, weiss keiner warum?



  • Natürlich. Das isses. Erst im Konstruktor FBitmap auf NULL setzen und dann

    void __fastcall TMultiButton::SetBitmap(Graphics::TBitmap *Bitmap)
    {
       if(!FBitmap)
          FBitmap = new Graphics::TBitmap;
       FBitmap->Assign(Bitmap);
       Paint();
    }
    


  • Hallo WEBFRITZI

    Im SetBitmap würd' ich das nich tun!!! 😡 😡 😡

    (bei jedem neuen Bild wird neues Objekt erzeugt! (Wer soll die am Ende freigeben?)

    new nur im Constructor der Kompo! 😃

    In SetBitmap nur Assign

    [ Dieser Beitrag wurde am 22.02.2003 um 22:03 Uhr von DerAltenburger editiert. ]



  • Original erstellt von DerAltenburger:
    **Hallo WEBFRITZI

    Im SetBitmap würd' ich das nich tun!!! 😡 😡 😡

    (bei jedem neuen Bild wird neues Objekt erzeugt! (Wer soll die am Ende freigeben?)

    new nur im Constructor der Kompo! 😃

    In SetBitmap nur Assign
    **

    NEIN! Schau mal das kleine if in meinem Code an wie es dich anlächelt. 😉



  • Ok, bin halt kurzsichtig!!! 🕶

    Haste wieder Recht,
    Asche auf's Haupt! 🙄



  • Original erstellt von DerAltenburger:
    Ok, bin halt kurzsichtig!!! 🕶

    Biste echt? 😃



  • Hallo.
    Großes Dankeschön euch beiden. 😃
    Ich hatte vergessen zu sagen, das ich das Bitmap schon mit new im Constructor
    erstellt habe, aber womit der wahrscheinlich seine Probleme hatte war dies:

    FBitmap = Bitmap;
    

    Das habe ich jetzt mal durch

    FBitmap->Assign(Bitmap)
    

    ersetzt und es funktioniert!
    Also danke ihr beiden. 😃 😃

    MFG Aoeke


Anmelden zum Antworten