![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при работе с 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]Попробуй сначала убить ЛистЕдит, а потом все остальное.