Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wrzucanie plikow .bmp z folderu do komorek StringGrid [Borland C++ Builder 6]

Ostatnio zmodyfikowano 2015-04-15 07:07
Autor Wiadomość
intrex1020
Temat założony przez niniejszego użytkownika
Wrzucanie plikow .bmp z folderu do komorek StringGrid [Borland C++ Builder 6]
» 2015-04-14 19:34:27
Hej,
Moj problem polega na tym, ze ponizszy kod wrzuca mi Image1.bmp do wszystkich pol. Chcialbym, zeby obrazek pic/Image1.bmp znajdowal sie w polu 1, pic/Image2.bmp w 2 oraz pic/Image3.bmp w 3, natomiast reszta zostawala pusta. Zdjecia laduje sie w Row i ida w dol. Wydaje mi sie, ze jest to problem w IFie, ale nie mam pojecia zbytnio jak go poprawic. Z gory dzieki za pomoc.


variables.h
C/C++
AnsiString path[] = { "pic/Image1.bmp", "pic/Image2.bmp", "pic/Image3.bmp" };
int g = sizeof( path ) / sizeof( path[ 0 ] );

Unit5.cpp

C/C++
void __fastcall TForm5::StringGrid2DrawCell( TObject * Sender, int ACol,
int ARow, TRect & Rect, TGridDrawState State )
{
    #include "variables.h"
    Graphics::TBitmap * bmp = new Graphics::TBitmap;
    int j = 0;
   
    for( int i = 1; i <= StringGrid2->RowCount; i++ )
    {
        bmp->LoadFromFile( path[ j ] );
       
        if( ARow == i && j <= g )
        {
            j++;
            StringGrid2->Canvas->FillRect( Rect );
            StringGrid2->Canvas->StretchDraw( Rect, bmp );
        }
    }
    delete bmp;
}
P-130889
akwes
» 2015-04-14 19:49:39

Wydaje mi sie, ze jest to problem w IFie
Czyli chcesz nam powiedzieć, że nie masz pojęcia jak działa ten kod oraz że nie jesteś jego autorem :)?
P-130892
intrex1020
Temat założony przez niniejszego użytkownika
» 2015-04-14 20:15:03
Nie rozumiem go do konca to prawda, dlatego cos nie dziala. Jak kazdy wspomagam sie internetem...., kod docelowo byl na wypelnienie jednej konkretnej komorki zdjeciej, a ja probuje go przerobic aby wypelnialo mi cala kolumne. Ogladajac kod jak pracuje linia po lini uznalem, ze to bedzie problem z IFem, ale 100% pewnosci nie mam, dlatego tez pisze o pomoc.
P-130896
maly
» 2015-04-15 07:07:59
Niewiem czy wiesz ale metoda StringGrid2DrawCell wywoływana jest dla każdej komórki widocznej w StringGrid.

W konstruktorze TForm załaduj obrazki i wskażniki do nich trzymaj w tablicy(kontenerze).
C/C++
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
    //Graphics::TBitmap *bmp[3]; w TForm private:
    for( int i = 0; i < 3; ++i )
    {
        bmp[ i ] = new Graphics::TBitmap;
        bmp[ i ]->LoadFromFile( path[ i ] );
    }
}

W metodzie DrawCell sprawdzaj która komórka chce się odrysować używając wyłącznie zmiennych ACol i ARow.
C/C++
void __fastcall TForm1::StringGrid1DrawCell( TObject * Sender, int ACol,
int ARow, TRect & Rect, TGridDrawState State )
{
    if( ACol == 1 && ARow == 1 )
         StringGrid1->Canvas->StretchDraw( Rect, bmp[ 0 ] );
   
}
P-130907
« 1 »
  Strona 1 z 1