Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

Освобождение ресурсов   Найти похожие ветки 

 
Ru ©   (2003-11-10 11:16) [0]

Пожалуй так. У меня возникла проблема, которую самостоятельно решить не могу. Я использую JvxRichEdit для вывода информации (среди текста могут попадаться графические объекты). Пока программа работает всё нормально и без проблем. При выходе из программы возникает ошибка (программа высвечивает исходник JvxRichEdit), что, как вы понимаете, не желательно.
Вопрос в следующем: Как побороть данную ошибку? Или как её обойти?


 
Плохиш_   (2003-11-10 11:20) [1]

Ну ошибка как всегда в известной строке.


 
Ru ©   (2003-11-10 11:39) [2]

>Плохиш_ (10.11.03 11:20) [1]

вот пожалуйста:
procedure TJvCustomRichEdit.WMDestroy(var Msg: TWMDestroy);
begin
CloseObjects;
ReleaseObject(FRichEditOle);//здесь останавливается курсор
inherited;
end;

где:

procedure TJvCustomRichEdit.CloseObjects;
var
I: Integer;
ReObject: TReObject;
begin
if Assigned(FRichEditOle) then begin
FillChar(ReObject, SizeOf(ReObject), 0);
ReObject.cbStruct := SizeOf(ReObject);
with IRichEditOle(FRichEditOle) do begin
for I := GetObjectCount - 1 downto 0 do
if Succeeded(GetObject(I, ReObject, REO_GETOBJ_POLEOBJ)) then begin
if ReObject.dwFlags and REO_INPLACEACTIVE <> 0 then IRichEditOle(FRichEditOle).InPlaceDeactivate;
ReObject.poleobj.Close(OLECLOSE_NOSAVE);
ReleaseObject(ReObject.poleobj);
end;
end;
end;
end;

меня интересует как отучить программу выдавать ошибку и закрываться, когда её просят без вопросов и сообщений.


 
BizonWar ©   (2003-11-10 11:43) [3]

Я, наверно, не понял.. Ты имеешь ввиду "высвечивает исходник" при запуске из Дэлфи? Подругому вроде не может...


 
Ru ©   (2003-11-10 11:46) [4]

>BizonWar © (10.11.03 11:43) [3]

да "высвечивает исходник". А если быть точным, то сообщает об ошибке в выполнении процедуры.


 
BizonWar ©   (2003-11-10 11:48) [5]

Ну, спрячь исходник, оставь один dcu. Не будет открывать.


 
Ru ©   (2003-11-10 11:50) [6]

>BizonWar © (10.11.03 11:48) [5]

это не решение проблемы. В JvxRichEdit возникает ошибка связанная (на мой взгляд с освобождением ресурсов). Эта ошибка будет проявляться в ехе файле не зависимо от того компонентв в виде исходника или дку


 
BizonWar ©   (2003-11-10 11:56) [7]

Ну, так это другой вопрос. Я все-таки, наверно, не догоняю. Ты спросил, как сделать, чтобы не высвечивался исходник.
А так в try except возьми. Не должно быть сообщений об ошибке. Но ошибка все равно останется. Иначе смотри сами исходники.


 
Ru ©   (2003-11-10 12:01) [8]

>BizonWar © (10.11.03 11:56) [7]

меня интересует как обойти появление ошибки. Чтобы при закрытии программы она, таки, закрылась и ошибку юзеру не высвечивала.


 
BizonWar ©   (2003-11-10 12:05) [9]

Вот смотри, накидал простой пример:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:Real;
begin
try
B:=10;
c:=0;
a:=b/c;
Edit1.Text:=FloatToStr(a);
except
end;
end;
Сообщения об ошибке нет. Хотя, сама ошибка есть. Т.е. при запуске из Дэлфи оно будет, но при запуске непосредственно экзешника - нет.


 
Ru ©   (2003-11-10 12:25) [10]

ошибка проявляется при выходе из самого приложения


 
Романов Р.В. ©   (2003-11-10 12:34) [11]


> меня интересует как обойти появление ошибки


Чтобы не возникало сообщение об ошибке нужно устранить ошибку или перехватывать соощение об ошибке.


 
Ru ©   (2003-11-10 12:37) [12]

>Романов Р.В. © (10.11.03 12:34) [11]

вынужден предположить, что ошибка возникает в исходниках библиотеки Jedi и устранить её я не могу (см. выше).
перехватить ошибки можно было бы, но она возникает в файле проекта при финальном end


 
BizonWar ©   (2003-11-10 12:39) [13]

А Call Stack на момент ошибки пустой?


 
Ru ©   (2003-11-10 13:09) [14]

>BizonWar © (10.11.03 12:39) [13]

выдает подобную строку:
TJvCustomRichEdit.WMDestroy(???);


 
BizonWar ©   (2003-11-10 13:44) [15]

Ну, значит ошибка возникает в TJvCustomRichEdit.WMDestroy
Вот и посмотри в исходниках в чем может быть проблема.


 
BizonWar ©   (2003-11-10 13:45) [16]

Поставь BreakPoint, посмотри аргумент. Это все не так сложно обычно бывает...



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
1-65997
Иришка
2003-11-09 21:29
2003.11.20
ScrollBar


14-66085
XinSide
2003-10-23 20:51
2003.11.20
Приветик


4-66173
Alexander
2003-09-23 15:11
2003.11.20
Как можно наиболее быстро оценить количество строк в текстовом


1-65953
qwe
2003-11-11 10:56
2003.11.20
Как в run time добавить пункт в главное меню


1-65906
Serzh
2003-11-08 15:46
2003.11.20
Преобразование ASCII to ANSI