langsames OnMouseMove



  • Hallo

    Aus der Hilfe zu den Methoden der TImageList

    Die Methode Draw zeichnet das mit dem Parameter Index angegebene Bild auf der bereitgestellten Zeichenfläche.

    void __fastcall Draw(Graphics::TCanvas* Canvas, int X, int Y, int Index, bool Enabled);

    Beschreibung

    Verwenden Sie die Methode Draw zum Zeichnen eines Bildes auf der Zeichenfläche. Das Bild wird an der Position X, Y in dem Stil gezeichnet, der in der Eigenschaft DrawingStyle festgelegt ist. Wenn der Parameter Enabled auf false gesetzt ist, wird das Bild in Graustufen gezeichnet.

    bis bald
    akari



  • Ich bekomme es leider nicht hin. Habe jetzt das Problem, daß ich nicht verstehe wie ich ein einzelnes Bild meiner ImageList zugreifen kann. Mir fehlt etwas das Verständnis für diesen Ausdruck: "Graphics::TCanvas* Canvas". Kann mir jemand ein Beispiel für ImageList1->Draw(...) geben?



  • Hallo

    ist doch ganz einfach :

    for (int r=0; r<SpielerBitmap.Length; r++)
      {
      if (cursor_pos==r)
        ImageList1->Draw(Image1->Canvas,100+(r*40),350,r, true);    
      else
         ImageList1->Draw(Image1->Canvas,100+(r*40),400,r, true);    
       }
    

    bis bald
    akari



  • Oh Wunder, es klappt. Vielen Dank!!! 🙂



  • Hallo

    Wie kann ich ein bmp in ein 2d Array laden?

    euer Pate



  • Hallo

    Gegenfrage : Wozu brauchst du sowas?
    Nimm TBitmap, mit der Eigenschaft TBitmap::Pixels kannst du auch jeden Einzelnen Pixel lesen und schreiben.

    bis bald
    akari



  • um die position auf ein bild zu ermitteln, es wir ein bild angezeigt wo ich die mauspos einlese im array schaue ich dann nach einer bestimmten farbe...

    kannst du mir das bitte genauer schreiben

    also zb so

    TBitmap Array[100][100];

    Array[][] = LoadFromFile("\\bild.bmp);

    euer pate



  • Schau bitte nochmal nach TBitmap::Pixels. Das ist ein 2D-Array.



  • sorry ich finde nix, in der hilfe gibt es keine eigenschaft pixel.
    es gibt nur eine pixelformat, damit kann man das format ändern

    ich sollte vieleicht erwähnen das ich bcb benutze

    euer pate



  • Hallo

    Nun gut, das muß TBitmap::Canvas::Pixels heißen.
    Zugriff also zum Beispiel

    TColor Farbe = Bitmap->Canvas->Pixels[10][5];
    

    bis bald
    akari



  • ähm
    ich sehe das so
    das bitmap eine variable von tcolor ist, oder?

    braucht man eine lib um loadfromfile zu benutzen, irgendwie kennt er das nicht

    euer pate



  • Hallo

    das bitmap eine variable von tcolor ist, oder?

    Nein, TBitmap ist eine eigene Klasse und hat mit TColor erstmal nichts zu tun.
    Sondern es hat interne Member, die dann einen []-Operator anbieten, um TColor zu lesen.

    braucht man eine lib um loadfromfile zu benutzen, irgendwie kennt er das nicht

    Wenn du das darauf beziehst

    Array[][] = LoadFromFile("\\bild.bmp);
    

    dann ist das ja auch ganz falsch. Das muß nun so aussehen.

    Bitmap->LoadFromFile("\\bild.bmp);
    

    Das hättest du aber auch aus der BCB-Hilfe zu TBitmap::LoadFromFile herauslesen können

    bis bald
    akari


Anmelden zum Antworten