Glyph-Bild zur Laufzeit BitBtn zuweisen



  • Hallo,

    wie kann ich den einem BitBtn zur Laufzeit ein Bild zuweisen?

    BitBtn1->Glyph = "C:\\bild.bmp";
    

    [C++ Fehler] Unit1.cpp(159): E2034 Konvertierung von 'char *' nach 'TBitmap *' nicht möglich

    Wenn ich nicht die Datei angeben kann, was dann?



  • Glyph ist vom Typ TBitmap. Guck also in der Hilfe mal nach Eigenschaften und Methoden von TBitmap. Die weitere Vorgehensweise sollte dann einleuchten.



  • Klar! Danke Peter.

    BitBtn1->Glyph->LoadFromFile("C:\\bild.bmp");
    


  • 👍 🙂



  • Also gut - und wenn ich z.B. ein JPG habe? Ich habs mal so versucht:

    TJPEGImage *jpg  = new TJPEGImage();
    Graphics::TBitmap *bmp = new Graphics::TBitmap();
    
    jpg->LoadFromFile("c:\\bild.jpg");
    
    // verkleinern und als Bitmap
    bmp->Canvas->StretchDraw(myRect, jpg);
    
    // Versuch 1 - passiert nichts, aber auch keine Fehlermeldung
    BitBtn1->Glyph->Assign(bmp);
    
    // Versuch 2 - passiert nichts, aber auch keine Fehlermeldung
    BitBtn1->Glyph->Canvas->Draw(0,0,bmp);
    
    delete jpg;
    delete bmp;
    

    ...ich steh wohl schon wieder auf dem Schlauch...



  • Taste Dich schrittweise vor um kontrollieren zu können ob alles so funktioniert wie es soll. Enthält Dein TJPEGImage überhaupt das geladenen Bild ? Zeichne es zur Kontrolle erst mal auf einen sichbaren Canvas, z.B. die Form selber oder in eine Paintbox.
    Ich weiß so ad hock leider auch nicht was da schief läuft und zum probieren habe ich hier im Geschäft keine Zeit 😞


Anmelden zum Antworten