Форум: "Основная";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];
ВнизTbitmap Найти похожие ветки
← →
ghg (2003-02-28 10:00) [0]Господа что не так в ниже следующем коде?
Программа сыпется в выделенной строке.
Заранее благодарен.
TData_square = class
public
...
map : Tbitmap;
end;
constructor Tdata_square.Create;
begin
inherited Create;
...
map:=Tbitmap.Create;
end;
destructor Tdata_square.Destroy;
begin
freeandnil(map);
...
inherited;
end;
procedure picture_save(filename : string);
begin
if filename<>"" then
begin
square.map.LoadFromFile(filename);
square.xmin_map:=square.Xmin;
square.xmax_map:=square.Xmax;
square.ymin_map:=square.ymin;
square.ymax_map:=square.ymax;
end else
begin
square.map.FreeImage;
square.xmin_map:=1;
square.xmax_map:=1;
square.ymin_map:=1;
square.ymax_map:=1;
end;
end;
← →
paxer (2003-02-28 10:16) [1]А создал ли ты объект square? (глупо конечно, но бывает)
← →
Mike_Goblin (2003-02-28 10:17) [2]Куда она сыпется? в пакет, в мешок? А сообщение об ошибке
В классе на первый взгляд все в порядке
В процедуре не понятно каким образом создается объект square, возможно в выделенной строке ты пытаешься обратиться к объекту, которого не создал
← →
ghg (2003-02-28 10:24) [3]Со square все в порядке, я его создаю и использую до этого и в определенный момент загружаю из файла рисунок.
А ошибка AccessViolation.
← →
ghg (2003-02-28 10:27) [4]А вот если написать так, то работает.
procedure picture_save(filename : string);
var tt : tbitmap;
begin
if filename<>"" then
begin
tt.LoadFromFile(filename);
square.map:=tt;
square.xmin_map:=square.Xmin;
square.xmax_map:=square.Xmax;
square.ymin_map:=square.ymin;
square.ymax_map:=square.ymax;
end else
begin
square.map.FreeImage;
square.xmin_map:=1;
square.xmax_map:=1;
square.ymin_map:=1;
square.ymax_map:=1;
end;
end;
Че к чему? Не понятно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c