Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2008, 20:22   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию EInvalidPointer

Код:
unit ModuleWinterWar;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;
type
  TMapObjects = array of byte;
  TMap = array of array of byte;
  {============================}
  TGameForm = class(TForm)
    MainMenu: TMainMenu;
    n_File: TMenuItem;
    n_Open: TMenuItem;
    n_New: TMenuItem;
    n_Save: TMenuItem;
    n_Close: TMenuItem;
  procedure FormCreate(Sender: TObject);
  procedure FormPaint(Sender: TObject);
  procedure n_CloseClick(Sender: TObject);
   private
   Procedure MainFormCreate;
   Procedure MapCreate;
   Procedure ObjectsCreate;
  end;
const
  MaxObj = 04;
    MapX = 16;
    MapY = 16;
var
  GameForm: TGameForm;
    MapObj: TMapObjects;
     MyMap: TMap;
       Map: TBitmap;
implementation

{$R *.dfm}
procedure TGameForm.MainFormCreate;
begin
  BorderIcons:=[];
  BorderStyle:=bsSingle;
  Caption:='Ðåäàêòîð êàðò';
  Color:=clCream;
end;

procedure TGameForm.MapCreate;
begin
  Map:=TBitmap.Create;
  with Map do begin
   Width:=256;
   Height:=256;
   Canvas.Brush.Color:=clWhite;
  end;
  {********************}
  SetLength(MyMap, MapX,MapY);
end;

procedure TGameForm.FormCreate(Sender: TObject);
begin
  MainFormCreate;
  MapCreate;
  ObjectsCreate;
end;

procedure TGameForm.FormPaint(Sender: TObject);
begin
  GameForm.Canvas.Draw(0, 0, Map);
end;


procedure TGameForm.ObjectsCreate;
var i: byte;
    k: byte;
begin
  Setlength(MapObj, MaxObj);
  for i:=0 to MaxObj do
   for k:=1 to MaxObj+1 do
    MapObj[i]:=k;
end;

procedure TGameForm.n_CloseClick(Sender: TObject);
begin
  Close();
end;

end.
При выключении появляется ошибка EInvalid Pointer Operation.
В справке посмотрел описание, так и не понял в чём ошибка в коде. как избавиться от ошибки?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.11.2008, 21:51   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
Вопрос

А память Вы чистите?
Цитата:
Код:
Map:=TBitmap.Create;
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
image : TBitmap;
begin
 Image := TBitmap.Create;
 //*********************
 //Form1.ImageList.GetBitmap(1,Image);
 //*********************
 Image.Free;
end;
P.S. откомпилировал, ошибку не выдает

Последний раз редактировалось Levsha100; 23.11.2008 в 22:03.
Levsha100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц