Показать сообщение отдельно
  #10  
Старый 05.05.2015, 14:27
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

БитМап загрузили и сразу стёрли

Где то в классе формы
Код:
type
  TForm1=class(TForm)
....
  private
    bmpArr : array of TBitMap;
...

При старте формы(один раз)
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
  Fn:String;
begin
  SetLength(bmpArr,СколькоТиповСамолётов);
  For i:=Low(bmpArr) to High(bmpArr) do  begin
    Fn:= 'Resourses\Images\'  
         + inttostr(Plane[ARow,ACol]) + '.bmp';
    if FileExists(Fn) then begin
      bmpArr[i]:=TBitMap.Create();
      bmpArr[i].LoadFromFile(Fn);
    end;
  end;
end;


И тогда
Код:
procedure TForm1.TableDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Bitmap: TBitmap;
  ix:integer;
begin
 
 if ARow = 0 Then Exit;
 ix:=Plane[ARow,ACol];
 if (ix>0) and (ix<Length(bmpArr)) then begin
   BitMap:=bmpArr[ix];
   if BitMap=Nil then Exit;
    table.Canvas.StretchDraw(table.CellRect(ACol,ARow),Bitmap);  
  end;
end;
Ну и для полного счастья
Код:
procedure TForm1.FormDestroy(Sender:TObject);
var i:integer;
begin
  For i:=Low(bmpArr) to High(bmpArr) do  begin
      bmpArr[i].Free();
  end;
end;
Ответить с цитированием