2) Imam tekstualni fajl koji ovako izgleda:
111
1 1
111
Zanima me kako citanjem slovo po slovo da mi kreira dinamicki niz slika ovako poredjanih:
----------------------
| | | |
| | | |
----------------------
| | | |
| | | |
----------------------
| | | |
| | | |
----------------------
(sve kockice treba iste velicine da budu : kockice=slike{TImage})
...s tim da se u polju 5 (srednja kockica) ne pojavi slika (na mestu space-a da se nista ne pojavljuje ali da odvaja toliku razdaljinu, kao za sliku)... evo sta sam ja skrabao (nedostaje glavni deo)...
function LoadWorld(matrix_file,bitmap_extension:string;block_width,block_height:integer;parent:TForm):boolean;
var
//array of images which represents blocks
blocks:array of TImage;
//variables for filesize
nSize:integer;
hfile:thandle;
strSize:string;
//variables for loading into buffer
p:char;
buffer:string;
a:textfile;
//for going through matrix
loop:integer;
trenutni_red,trenutna_kolona:integer;
begin
//suppose that there was error
Result:=false;
//get file size
hfile:=CreateFile(pchar(matrix_file),0,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
nSize:=GetFileSize(hfile,nil);
CloseHandle(hfile);
SetLength(strSize,20);
Str(nSize,strSize);
//set number of blocks to filesize (that's max)
SetLength(blocks,StrToInt(strSize));
//load file into buffer
assignfile(a,matrix_file);
reset (a);
while not Eof(a) do
begin
Read(a, p);
buffer:=buffer+p;
end;
closefile(a);
//now we need to go through matrix and to create images
trenutni_red:=1;
trenutna_kolona:=1;
for loop:=1 to Length(buffer) do begin
//izmedju ostalog, if buffer[loop]<>' ' then kreiraj blok
end;
end;
...ne znam zasto volim da komentujem na engleskom :)
p.s. posle ovoga bi jednostavni...
LoadWorld('test.mtx','img',20,20,Form1);
...vrsio posao...
p0zdrav i hvala unapred