Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по динамическому массиву

7.9K
24 июня 2007 года
Crainov
39 / / 04.06.2006
Почему в процедуре Ontimer я не моу получить данные из динамического массива. Вылазит ошибка. Тогда как в процедуре ButtonClick всё работает нормально

Вот код
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Timer1: TTimer;
    Button2: TButton;
    Image1: TImage;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ar1: Array of String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 sr: TSearchRec;
 count: Integer;
begin
SetLength(ar1, 0);
count:=0;
if FindFirst('C:\engine\*.png', faAnyFile, sr) = 0 then
repeat
 Memo1.Lines.Add(Sr.Name);
 SetLength(ar1, Length(ar1) + 1);
 ar1[count]:=Sr.Name;
 count:=Count+1;
until FindNext(sr)<>0;
FindClose(sr);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 cont: integer;
begin
if cont = 48 then begin cont:=0;  end;
cont:=cont+1;
Image1.Picture.LoadFromFile('C:\engine\' + ar1[cont]); - Почему оибка
{сдесь выдаёт ошибку  Acess volitation at address 00462954 in module Project1.exe}
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 y: integer;
begin
for y:=0 to 48 do
begin
 Memo2.Lines.Add('C:\engine\' + ar1[y]); //сдесь работает
end;
Timer1.Enabled:=True;
end;

end.


[color=red]Используй [ code ][ /code ] для оформления кода.[/color] Модератор.
268
24 июня 2007 года
Михаил
587 / / 25.06.2005
изначально таймер включен?
347
24 июня 2007 года
Maniak
319 / / 05.11.2005
инициализировать cont надо...
24K
24 июня 2007 года
&gt;DiN&lt;
38 / / 08.06.2007
Изначально таймер должен быть выключен
10
24 июня 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: Crainov
Почему в процедуре Ontimer я не моу получить данные из динамического массива.


Судя по приведённому коду, стоит воспользоваться TStringList-ом.

7.9K
24 июня 2007 года
Crainov
39 / / 04.06.2006
Надо было инициализировать cont. Спасибж
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог