[C++Builder] Ein Bitmap in ein StringGrid bringen?



  • Hallo zusammen,

    ich möchte gerne ein Bitmap in ein StringGrid reinbringen und dort anzeigen lassen.

    Meine Frage ist jetzt, wie ich das mache?! Wie kann ich genau die Zelle angeben in die die Bitmap soll?? Das ganze soll aber ohne die OnDrawCell - Methode geschehen.

    Ich erzeuge mir ein TBitmap Objekt folgendermaßen:

    Graphics::TBitmap *bild = new Graphics::TBitmap();
    

    und dieses hätte ich jetzt z.B. gerne in der Zelle -> Cells[5][3]!!

    Wie kann man das machen??

    Vielen Dank für die Antworten

    Gruß



  • skluge schrieb:

    Das ganze soll aber ohne die OnDrawCell - Methode geschehen.

    wieso?



  • Weil diese Methode zu oft aufgerufen wird. Bei jedem neu zeichnen oder aktualisieren der Oberfläche wird diese Methode doch aufgerufen, oder?

    Und es wäre schön, wenn man eine Bitmap so einfach in eine Zelle einfügen könnte wie eine String.

    z.B.

    StringGrid->Cells[3][7] = "Hallo Welt";
    

    es wäre jetzt für mich sehr praktisch, wenn ich sagen könnte:

    StringGrid->Cells[3][7] = *bitmap;
    

    geht sowas??



  • Hallo

    Nein, so eine Zuweisung geht nicht.

    OnDrawCell wird nur genau dann aufgerufen, wenn es nötig ist. Also sich der Wert oder die Position einer Zelle geändert hat, und es wird der Event nur für die betreffende Zelle aufgerufen, nicht stupide für das ganze Grid.

    Selbst wenn es eine solche Eigenschaft zum zuweisen eines Bitmaps geben würde, würde die intern auch nichts anderes machen als OnDrawCell.

    DU kannst natürlich auch TListView nehmen, dort kannst du mit ImageListen und ImageIndex arbeiten.

    bis bald
    akari



  • Nein. Cells ist vom Typ AnsiString[][]
    Desweiteren solltest du doch bei OnDrawCell schreiben, da ja sonst das Bitmap nicht aktualisiert wird.
    [edit]Etwas spät, aber dafür noch ein Hinweis
    Du kannst ja auch von TCustomGrid eine eigenen Grid-Komponente ableiten, die sowas hat.[/edit]



  • Danke schon mal für die Antworten.

    @akari:

    wie würde ich jetzt so Bitmap in eine TListView - Komponente einbinden?
    Kannst du mir mal ein Beispiel zeigen wenn ich ein Bitmap - Objekt so erzeuge:

    Graphics::TBitmap *bild = new TBitmap();

    ??

    Vielen Dank!



  • Hallo

    siehe die Komponente TImageList, die Eigenschaft TListView::LargeImages bzw. ::SmallImages und TListItem::ImageIndex.

    bis bald
    akari



  • hast du dich schon in der bcb-hilfe, bei google und inder forumsuche schlau gemacht? oder fragst du einfach so?


Anmelden zum Antworten