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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 20:25   #1
Shmulya
Новичок
Джуниор
 
Регистрация: 14.12.2012
Сообщений: 1
По умолчанию Массив картинок, плохо заполняется

Создал динамический массив, все работает нормально пока файлы имеют названия "178..386". Когда "700..750" появляется сообщение "Access violation at address 0134C8F9. Write of address 00000023.". Если меняю название файла на другое, которое ранее грузилось, все нормально. Перехожу на "1300..1600" опять все нормально. Попал в тупик.
Код:
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, Gr32_Image, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Im: Array[1..2] of TImage;
  Img1: Timage32;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
FreeAndNil(Img1);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i, d, x, y: integer;
begin
    Img1:= Timage32.Create(self);
    Img1.Parent:= Form1;
    Img1.Align:= AlClient;
    x:= 0;
    y:= 0;

       D:=346;  //  папка откуда  файлы

  Repeat
    for i := 718 to 722 do
      begin                      //Создает динамический массив карты
      Im[i] := TImage.Create(self);
      Im[i].Parent := Img1;
      Im[i].Left:= x;
      Im[i].Top := y;
      Im[i].Width := 256;
      Im[i].Height:= 256;
      x:= x+256;
//if DirectoryExists ('O:\SASPlanet\cache\Gen\z10\'+ IntToStr(d))and
//FileExists( ('O:\SASPlanet\cache\Gen\z10\'+ IntToStr(d)+ '\' + (IntToStr(i) + '.jpg'))) then
Im[i].Picture.LoadFromFile  ('O:\SASPlanet\cache\Gen\z10\'+ IntToStr(d)+ '\' + (IntToStr(i) + '.jpg'))
  //Else
     //Im[i].Picture.LoadFromFile  ('G:\157.jpg');   //Загружает файл, если отсутствует нужный тайл
end;
  //end;
      X:= 0;
      Y:= y+256;
      d:= d+1;
  Until d= 350;   // Конечная папка
end;

end.
Sergey

Последний раз редактировалось Stilet; 16.12.2012 в 20:55.
Shmulya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив из картинок. Roman1295 Общие вопросы Delphi 6 21.11.2012 13:23
Массив картинок на листе alex77755 Microsoft Office Excel 4 22.08.2012 09:05
Дан динамический массив который в водится с клавиатуры и заполняется рандомом. Вывести на экран то , что на фото Richik123 Паскаль, Turbo Pascal, PascalABC.NET 5 23.04.2012 00:20
Создать на форме массив из картинок EniOk C# (си шарп) 1 06.07.2011 22:13
dataGridView1 не заполняется. sergei64_89 Общие вопросы .NET 3 19.09.2008 11:13