new TImage



  • Ich habe beim Borland c++ Builder 6 ein Problem:
    Ich erstelle zur Laufzeit mit new TImage ein Bild, lade auch ein Bild mit

    NameDesZeigers->Picture->LoadFromFile ("Pfadname\\Bildname.bmp");
    

    und weise auch den x und y Koordinaten mit

    Symbol->Left = x;
    Symbol->Top = y;
    

    werte zu, aber irgendwie wird das Bild dann nicht angezeigt.
    Ich vermute, dass es im Hintergrund ist, ich kann mich aber auch irren.
    Was mache ich falsch??
    Schon mal danke für die Hilfe!

    Felix



  • Hast Du einen spezifischen Grund das TImage erst zur Laufzeit zu erzeugen?

    Wenn nicht, plaziere das TImage auf einem TPanel oder einer TScrollbox auf der Form.
    Ansonsten mach Dich mal die der Eigenschaft Parent von Komponenten vertraut. Und wie man Ereignisbehandlungsroutienen zuweist. Auch das ist bei manuell ereugten Komponenten notwendig.

    Joe_M.



  • Hast du dem TImage auch einen Parent zugewiesen ?
    (im FAQ sind da ein paar schöne Anleitungen)



  • Hast Du einen spezifischen Grund das TImage erst zur Laufzeit zu erzeugen?

    Ja habe ich, der Benutzer (erstmal ich) soll nämlich zur Laufzeit Instanzen einer Klasse erzeugen können, die eben ein Bild beinhalten.

    Hast du dem TImage auch einen Parent zugewiesen ?

    Hab ich auch gemacht, ich dachte auch erst, da das daran liegt, aber ich habe zuerst meine Klasse als public von TComponent erben lassen, und dann die eigene Klasse als Parent zugewiesen. Als das dann nicht unktioniert hat, hab ich als Parent einfach eine PaintBox genommen, dann hat es aber auhc nicht geklappt.
    Ich glaube, das das Problem darin besteht, dass das Bild auf einer PaintBox erzeugt wird, und die PaintBox dann vor dem Bild ist, aber genau weiß ich das auch nicht.
    Nochmal Danke

    Felix

    P.S: Ich werde nochmal ein bisschen rumprobieren, un sag auf jeden Fall bescheid, wenn ich es hinbekomme.



  • hm, zur Speicherung einer Grafik in einer Klasse solltest Du TBitmap nehmen. Dieses TBitmap kannst Du dann zur Laufzeit einem (auf der Form plazierten) TImage zuweisen um es darzurstellen.

    Wenn Du zur Laufzeit ein TImage erzeugst, muß dieses als Parent ein bereits sichtbares Element auf der Form erhalten (z.B. TPanel, TScrollbox oder aber das Form selbst). Dem TImage mußt Du ein TBitmap zuweisen, dass die darzustellende Grafik enthält.

    Joe_M.



  • Hallo,

    normalerweise mußt du deinem TImage noch eine größe zuweisen. Ich hab so etwas mit einer TBitmap gemacht. Da mußte ich die Größe von meinem TBitmap auf die Größe des geladenen Bildes setzen. Dann hat er's auch angezeigt.



  • Hm, also wie soll ich das jetzt genau machen? In der Klasse die Grafik mit einer Instanz der Klasse TBitmap speichern, und wie soll ich die Grafik dann anzeigen? Ach ja und wegen der Größe : Ich hatte bei meinem TImage AutoSize auf true gestellt.

    Und wegen TBitmap: Soll ich Windwos::TBitmap oder TBitmap nehmen?

    Sorry, dass ich das nicht alles direkt verstehe, aber ich hab den C++ Builder auch erst seit 2 Wochen und kenn mich deswegen nicht gut aus.

    Danke.
    Felix



  • Sorry, Sorry, Sorry, Leute.
    Ich hab das Problem gelöst, und zwar so, wie ihr es mir am Anfang gesagt habt.
    Ich hab nur nicht verstanden, was ihr mit Parent meint. Ich dachte ihr meintet, das Argument, das man dem konstruktor übergibt. Ihr meintet aber Symbol->Parent. Stimmts??
    Ich habe jetzt nämlich noch

    Symbol->Parent = Form1;
    

    hinzugefügt, und jetzt funktioniert es.


Anmelden zum Antworten