Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при работе с ListEdit


KisaNetik ©   (2004-03-23 02:23:00) 

При втором вызове конструктора, возникает ошибка!!! Всё остальное работает нормально, но ошибка типа Exception возникает при втором вызове конструктора.... Пишу так:
 sg3:=NewListEdit(Group3,lvsDetail,[lvoEditLabel,lvoTrackSelect,lvoOneClickActivate,lvoRowSelect,lvoFlatSB,lvoUnderLineHo t,lvoMultiWorkares],nil,nil,nil);

Group3 - GroupBox распологаемый на F (см. ниже...)

Затем при закрытии созданной формы пишу так:
F2.F.Close;
F2.F.Free;

F2 - Тип с формой
F - Сама форма...

При первом вызове конструктора формы всё номана, но при втором возникает ошибка!!!! В чём проблема??? Помогите пожалуйста кто знает...


KisaNetik   (2004-03-25 11:23:00) [1]

извените, написал ListBox, а надо ListEdit

sg3:=NewListEdit(Group3,lvsDetail,[lvoEditLabel,lvoTrackSelect,lvoOneClickActivate,lvoRowSelect,lvoFlatSB,lvoUnderLineHo t,lvoMultiWorkares],nil,nil,nil);
 sg3.SetPosition(5,17);sg3.SetSize(370,110);

и то-же самое при обьявлении:
lb1:TKOLListEdit;

Вот на создании именно этого при втором вызове и возникает Exception


KisaNetik   (2004-03-25 11:20:00) [2]

Форма не МСК а KOL ! Тип создаан
type QEForm=record
  F: PControl;
  Group1,
  Group2,
  Group3,
  Group4:TKolGroupBox;
  bOKG1,
  bOKG2,
  bDelG1,
  bDelG2,
  bDelG3,
...........
 lb1:TKOLListListBox
end ;
var
F:QEForm;

procedure QECreate(AOwner:PControl);
begin
With F2 do
begin
 F:=NewForm(AOwner,'Редактор вопросов').SetSize(470,456);
 F.SetPosition(Form1.form.Left+30,Form1.Form.Top+50);
 f.Style := WS_BORDER or WS_SYSMENU or WS_VISIBLE;
 lb1:=NewlistBox(Group1,[loNoHideScroll,loNoExtendSel]).SetPosition(5,60).SetSize(212,140);lb1.Color:=clWhite;
.........
 F.ShowModal;
 F.Free;
end;
end;

Ошибка возникает не при попытке освободить память формы, выскакивает и убивает всю прогу при повторном создании даной формы, она даже не создаётся и не успевает доходить до F.Free, так-что это по моему не в высвобождении формы из памяти..., сперва мне показалось что не высвободился ListBox ... Поскольку ошибка при отладке возникает именно на строке
lb1:=NewlistBox(Group1,[loNoHideScroll,loNoExtendSel]).SetPosition(5,60).SetSize(212,140);lb1.Color:=clWhite;
при повторном вызове, что и есть странно, при первом вызове всё OK!

Вот такая беда, а решить как-то надо... Может кто знает как???


Владимир Кладов   (2004-03-24 05:02:00) [3]

Для MCK-формы Close = Free. Получается повторная попытка освободить уже освобожденную память.


Dimaxx   (2004-03-24 00:12:00) [4]

Попробуй сначала убить ЛистЕдит, а потом все остальное.


Наверх

Титульная страница Поиск, карта сайта Написать письмо