mein Graphics::TBitmap will nicht in mein Image1
-
Hier 'ne Kurzfassung von meinem Problem, ich habe 'nen Bitmap aus 'ner Funktion als Rückgabewert, übergebe diesem einem Image, aber das Image bleibt leer. Der Rückgabewert bildet sich aus einem Feld von einem DataSet und kommt aus einer SQL-Datenbank.
Mein Problem, mein Image1 bleibt nach'm Klick bzw. taucht nicht im Image auf. Was mir beim Debuggen aufgefallen ist und ich merkwürdig finde, ist das mein TBitmap 'nen Canvas mit dem Wert "Null" hat, weiß aber nicht ob das eine Rolle spielt. Von daher dachte ich auch erst bzw. denke ich immer noch, das es an der Übergabe liegt.
Das Bitmap ist in der Datenbank auch vorhanden, das habe ich vorher selbst hinein gespeichert mit einer anderen Funktion und ist aufrufbar mit einem TDBImage.void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Picture->Bitmap->FreeImage(); Image1->Picture->Bitmap = Frame1->Testing(); } //---------------------------------------------------------------------------Graphics::TBitmap *__fastcall TFrame1::Testing() { ((TBlobField*)DataModule1->ADODSDataSet1->FieldByName("Abbildung"))->SaveToStream(pStream); pBitmap->LoadFromStream(pStream); return pBitmap; }und pBitmap / pStream sehen aus
class TFrame1 : public TFrame { __published: // Von der IDE verwaltete Komponenten private: // Anwender-Deklarationen TMemoryStream *pStream; Graphics::TBitmap *pBitmap; public: // Anwender-Deklarationen __fastcall TFrame1(TComponent* Owner); Graphics::TBitmap *__fastcall Testing(); };Kann mir einer helfen? Wäre sehr dankbar

Come back soon
Vo
-
Zeigt mir ein Bild.
Image1->Picture->Bitmap->FreeImage(); Graphics::TBitmap *bmp = new Graphics::TBitmap(); OpenPictureDialog1->Execute(); bmp->LoadFromFile(OpenPictureDialog1->FileName); Image1->Picture->Bitmap = bmp; delete bmp;Zeigt mir ein leeres Bild.
Image1->Picture->Bitmap->FreeImage(); Graphics::TBitmap *bmp = new Graphics::TBitmap(); TMemoryStream *stream = new TMemoryStream(); OpenPictureDialog1->Execute(); bmp->LoadFromFile(OpenPictureDialog1->FileName); bmp->SaveToStream(stream); bmp->FreeImage(); bmp->LoadFromStream(stream); Image1->Picture->Bitmap = bmp; delete bmp; delete stream;Hat vielleicht jemand eine Alternative ein Bitmap aus einem DataSet zu laden, da es ja anscheinend ein Problem mit meinem TMemoryStream gibt.
-
Hallo
Das Problem dürfte sein das du nach dem Laden des Bildes in den Stream und vor dem Auslesen des Bildes aus dem Stream den Stream erst zurücksetzen must, mit desen Methode Seek.
bis bald
akari
-
akari? Ich liebe dich

Danke für die schnelle Antwort, war mehr als hilfreich, dank des
stream->Seek(0, soFromBeginning);funktioniert es, und ich kann endlich mit meiner Bildbearbeitung fortsetzen.
Möge die Macht mit Euch sein...
Vo
-
stream->Position = 0; erfüllt den gleiche Zweck.