Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
4-66155
Zhirnov Maxim
2003-09-25 08:59
2003.11.20
Как определить версию Windows?


3-65730
Andrew1_1
2003-11-01 18:43
2003.11.20
BDE по сети


1-65842
shiTaSS
2003-11-08 20:21
2003.11.20
DWORD


14-66123
kaif
2003-10-30 13:08
2003.11.20
Правительство не брезгует спамом?


3-65746
Ветерок
2003-10-31 13:21
2003.11.20
Запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский