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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2010, 17:44   #1
Adonidi
 
Регистрация: 25.03.2010
Сообщений: 5
По умолчанию Access Violation при закрытии формы с динамическими объектами

После клика по кнопке создаю еще 10 кнопок, но:

Код:
unit TestUnit1;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  buts: array [1..10] of TButton;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var i:Integer;
begin
for i:=1 to 10 do
 begin
  buts[i]:=TButton.Create(Self);            //Присваиваю.
  buts[i].Create(self);                     //Создаю.
  buts[i].Parent:=Self;                     //Назначаю родителя.
  buts[i].Top:=10;                          //Позиция.
  buts[i].Left:=(i-1)*75;                   //Позиция.
 end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i:integer;
begin
for i:=1 to 10 do buts[i].Free;     //Убиваю.
end;

end.
После закрытия формы вылазит:


Подскажите плз где напортачил?

Последний раз редактировалось mihali4; 20.11.2010 в 20:24.
Adonidi вне форума Ответить с цитированием
Старый 20.11.2010, 17:56   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

buts[i]:=TButton.Create(Self); //создаем и Присваиваю.
а это надо убрать buts[i].Create(self); //Создаю.

Цитата:
После закрытия формы вылазит:
а где код ПОСЛЕ заерытия формы
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.11.2010, 18:08   #3
Adonidi
 
Регистрация: 25.03.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
buts[i]:=TButton.Create(Self); //создаем и Присваиваю.
а это надо убрать buts[i].Create(self); //Создаю.


а где код ПОСЛЕ заерытия формы
спс. помогло.
может вопрос глупый... но разве код после закрытия не остается тот же что и до компиляции?
Adonidi вне форума Ответить с цитированием
Старый 20.11.2010, 20:34   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы уж простите старого, что все время тыкаю вас в хэлп...
Цитата:
Warning: Never explicitly free a component within one of its own event handlers or the event handler of a component it owns or contains. For example, don’t free a button, or the form that owns the button
Я глубоко убежден в высочайшей квалификации программистов Борланда и не склонен думать, что они подсунули пользователям своих программных продуктов "туфту".
И хэлп у них впо-о-о-лне достойный. А если кто-то не умеет им пользоваться - это его личная проблема. Когда я начинал изучать Дельфи первой версии (не говорю уже о Кларионе), литературы не было вообще, как и интернета Был только хэлп...
(Только не надо распускать перья и выступать с "оригинальными" пояснениями, что Борланда уже нет, и вместо него... и т.д. и т.п.)
Лично для меня это - БОРЛАНД. С большой буквы. И попрошу уважать мое устоявшееся мнение...
В конце концов именно благодаря ему я не прозябаю в нищете, как это положено обычному пенсионеру.

Последний раз редактировалось mihali4; 20.11.2010 в 20:37.
mihali4 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation при выполнении Bernarditto C++ Builder 5 04.11.2010 14:25
Уничтожать созданные формы при закрытии? Как? TwiX Общие вопросы Delphi 4 09.04.2010 09:49
запуск процесса при закрытии формы RUSlan48 Общие вопросы Delphi 3 29.03.2010 21:49
Сворачивание в трей при закрытии формы xxxsas Общие вопросы C/C++ 0 22.01.2009 08:11
access violation при создании обьекта goog Общие вопросы Delphi 12 11.01.2009 20:33