Wrzucanie plikow .bmp z folderu do komorek StringGrid [Borland C++ Builder 6]
Ostatnio zmodyfikowano 2015-04-15 07:07
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 AnsiString path[] = { "pic/Image1.bmp", "pic/Image2.bmp", "pic/Image3.bmp" }; int g = sizeof( path ) / sizeof( path[ 0 ] );
Unit5.cpp 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; }
|
|
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 :)? |
|
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. |
|
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). __fastcall TForm1::TForm1( TComponent * Owner ) : TForm( Owner ) { 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. 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 ] ); } |
|
« 1 » |