1 / 1 / 0
Регистрация: 09.10.2008
Сообщений: 28
1

Ошибка при закрытии приложения

10.12.2008, 11:32. Показов 1771. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я тут сделал код, который выводит динамические компоненты.

В поле Edit1 вводится кол-во, нажимается на кнопку, и выводятся TLabel.

Все работает, но при закрытии на крестик вылетает EPointerException...

Вот код, может кто-нибудь скажет, почему?

Код
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Bevel1: TBevel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  labela : array of TLabel;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var k : Integer;
var leftdd, topdd : Integer;
begin
left := 15;
top := 400;
SetLength(labela, StrToInt(Edit1.Text));
for k := 0 to Length(labela) do
begin
  labela[k] := TLabel.Create(Self);
  labela[k].Name := 'label'+IntToStr(k);
  labela[k].Parent := Form1;
  leftdd := leftdd + 50;
  topdd := topdd + 10;
  labela[k].Left := leftdd;
  labela[k].Top := topdd;
  labela[k].Caption := IntToStr(k) + ' Label';
  labela[k].Show;
end;
end;

end.
заранее Спасибо!

P.S компилировал в Delphi 7
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2008, 11:32
Ответы с готовыми решениями:

Ошибка при закрытии окна MDI формы
Добрый день. Возникла такая проблема: имеется MDI приложение в котором допустим открыто дочернее...

Событие при закрытии формы.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin...

При закрытии скрыть форму
Как сделать, чтобы когда нажимают кнопку закрыть, приложение не закрывалось, а скрывалось?

Как уничтожить дочернюю форму при закрытии?
Ребята, помогите) собственно весь вопрос в заголовке! На второй форме находится тет и при закрытии...

2
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
10.12.2008, 20:07 2
Нужно
for k := 0 to Length(labela)-1 do.....

И когда динамически создаёшь элементы, то при закрытии приложения (или когда они больше не нужны) их надо удалять... например:
Код
for k := 0 to Length(labela)-1 do labela[k].Free;
2
1 / 1 / 0
Регистрация: 09.10.2008
Сообщений: 28
11.12.2008, 11:19  [ТС] 3
Спасибо огромное!
0
11.12.2008, 11:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2008, 11:19
Помогаю со студенческими работами здесь

Как реализовать перезапуск процесса при его закрытии?
Господа программисты, как сделать на делфи возврат процесса, т.е. при закрытии exe-шника делфи он...

DBLookupCombobox - при закрытии приложения ошибка
Если я закрываю приложение при раскрытом DBLookupComboBox - получаю ошибку "cannot focus a disabled...

Ошибка при закрытии ADOQuery
вот такой код вызывает ошибку, если запрос не возвратил ни одной записи:...

Ошибка при открытии и закрытии Excel из под Delphi
Доброго времени суток. У меня такая проблема: Почему то при открытии документа Excel через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru