Russian Qt Forum

Qt => Общие вопросы => Тема начата: myr от Апрель 27, 2010, 10:43



Название: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: myr от Апрель 27, 2010, 10:43
Как проверить выделена уже память или нет?
В В Delphi
if not Assigned (frmParam) then
    frmParam:=TfrmParam.Create(MainForm);


dlg = new Tdlg(this) //


Спасибо


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: myr от Апрель 27, 2010, 10:50
Qt 3.3
QРointer нет

Остается только обнулять указатели?


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: Авварон от Апрель 27, 2010, 11:02
что плохого в обнуленных указателях?
вплоне себе нормальных способ, да и от двойных делетов защищает (delete 0 программа не упадет)


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: myr от Апрель 27, 2010, 11:06
Спасибо.
Искала еще варианты.


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: Пантер от Апрель 27, 2010, 11:39
Еще вариант перейти на Qt4 и использовать QРointer.


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: crossly от Апрель 27, 2010, 12:32
еще вариант.... с помощью эксепшина bad_alloc


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: myr от Апрель 27, 2010, 14:24
У меня старый Qt.
Исключения лучше не использовать.


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: crossly от Апрель 27, 2010, 14:46
почему??


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: m_ax от Апрель 27, 2010, 15:23
Цитировать
Qt 3.3
QРointer нет

Остается только обнулять указатели?

Как вариант, написать свой QPointer) А что?


Название: Re: Как проверить создан виджет или нет? аналол Assigned в Dilphi
Отправлено: myr от Апрель 27, 2010, 16:34
Спасибо.
Про использование исключений - прочитала.
Признаю неправоту. Была уверена что их использовать  в Qt 3 не рекомендуется,( исторические корни из-за кросплатформенности).
Обнуление указателей - хороший вариант. Остановилась на нем.