Bilder nebeneinander



  • Deine zwei Zeilen muessen VOR Bedrechnung Nx, Ny stehen!

    Existiert eine datei "BM.bmp" im akt. Ordner???

    Du musst einen gueltigen dateinamen angeben! :p

    Nach der Schleie :

    delet BM; // nicht vergessen!!!

    [ Dieser Beitrag wurde am 13.03.2003 um 13:28 Uhr von DerAltenburger editiert. ]



  • jep BM.bmp gibts (sonst streikts ja beim exe aufruf)
    der code:

    int Nx,Ny;
    Graphics::TBitmap *BM = new Graphics::TBitmap;
    BM->LoadFromFile("BM.bmp");
    Nx=Form1->ClientWidth / BM->Width;
    Ny=Form1->ClientHeight / BM->Height;
    for (int x=0;x<Nx;x++)
    {
      for (int y=0;y<Ny;y++)
      {
        Form1->Canvas->Draw(x * BM->Width,y * BM->Height,BM);
      }
    }
    delete BM;
    


  • Wo rufst Du das ganze auf???

    Das Laden sollte in OnCreate der Form
    Das Deleten in OnDestroy

    Der Rest sollte in OnPaint Deiner Form!!!

    BM muss 'ne Variable der Form sein (privat)

    [ Dieser Beitrag wurde am 13.03.2003 um 13:37 Uhr von DerAltenburger editiert. ]



  • ah ok *G* klar... war alles da drin:

    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    

    oki danke dir :))) ...

    kann i das ganze au als background von nem popupmenü machn?



  • Ich glaub' nicht.

    So geht's nur mit Objekten, die Dich an Canvas 'ranlassen (bzw. OnPaint). Macht aber PopupMenue nicht?



  • oki danke dir... hast mir sehr geholfen 🙂



  • ehm sorry aber hab das ganze mitn panel probiert...
    geht nicht

    der meint zugriff nicht möglich?!
    bzw. da gibts keine Canvas

    [ Dieser Beitrag wurde am 13.03.2003 um 14:02 Uhr von scops editiert. ]



  • Anm.: Das Laden von Files klappt erst im OnShow zuverlässig. Vor allem, wenn auf Doppelklick ein File geöffnet werden soll.

    Das Panel kann das Bild nicht aufnehmen? - Hab damit noch nicht gearbeitet. Versuch mal, ob die Operation im OnPaint der Form gelingt. In der Form selbst klappt es in dem Ereignis auf jeden Fall.

    <edit>Ich meide das OnCreate (obwohl es oft in den Beispielen genutzt wird) und verwende lieber den Constructor. Ist vielleicht Ansichtssache.</edit>



  • Gibt es, ist aber etwas versteckt.

    Schau mal inner Hilfe unter B *junixnachmach* 🙄 .



  • Die Action geht auch via PopuMenuItem. Verweis in dessen Click-Ereignis auf FormPaint(Sender).

    Pack die Routine dort rein oder verweis auf eine weitere Function. Damit nicht bei jedem OnPaint-Ereignis neu gekachelt wird, setz eine Bedingung:

    if (Sender == [PopupMenuItem.Name])


Anmelden zum Antworten