Вверх ↑
Этот топик читают: Гость
Ответов: 150
Рейтинг: 0
#1: 2006-11-20 20:25:15 ЛС | профиль | цитата
Всем привет!

У меня почему-то выскакивает ошибка на выходе из запущенной в HiAsm 3.62 b160 программки после того, как я заменила Основное меню приложения (Menu) на Расширенное меню (MenuEx), которое скачала из Upload. Помогите, пожалуйста, устранить эту ошибку. Пишет в сообщении об ошибке: Invalid Pointer Operation :?. Можно этот элемент как-нибудь подкорректировать?


Add(MenuEx,7228811,84,175)
{
Bitmaps=[]
}

А при запуске программы выдает такой отчёт - может там видно, что вызывает эту ошибку?

Build start...
Generated code
Create project...
Command line: dcc32.exe "...\HiAsm\Elements\Delphi\code\_MandalaD.dpr" "-U...\HiAsm\My\." -Q "-E...\HiAsm\My\
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

...\HiAsm\Elements\Delphi\code\XPMenus.pas(276) Hint: Variable 'grayBMP' is declared but never used in 'TXPMenu.DrawItem'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(94) Warning: Variable 'cur' might not have been initialized

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(109) Hint: Variable 'b' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(109) Hint: Variable 'p' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(110) Hint: Variable 'vc' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(110) Hint: Variable 'kc' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(111) Hint: Variable 'str' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(111) Hint: Variable 's' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(111) Hint: Variable 'vs' is declared but never used in 'THIMenuEx.SetItems'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(186) Hint: Variable 's' is declared but never used in 'THIMenuEx._work_doCheck'

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(23) Hint: Private symbol 'ClearSpecSymbol' declared but never used

...\HiAsm\Elements\Delphi\code\hiMenuEx.pas(28) Hint: Private symbol '_Destroy' declared but never used

...\HiAsm\Elements\Delphi\code\hiPopupMenu.pas(81) Hint: Variable 'i' is declared but never used in 'THIPopupMenu.RefBMP'

...\HiAsm\Elements\Delphi\code\hiPopupMenu.pas(15) Hint: Private symbol '_OnDraw' declared but never used

...\HiAsm\Elements\Delphi\code\KOLmdvPanel.pas(188) Hint: Variable 'br' is declared but never used in 'TmdvPanel.Paint'

...\HiAsm\Elements\Delphi\code\hiBitBtn.pas(31) Warning: Redeclaration of '_prop_Flat' hides a member in the base class

KOLComObj.pas(1614) Hint: Value assigned to 'Status' never used

KOLComObj.pas(2337) Hint: Value assigned to 'SaveInitProc' never used

ActiveKOL.pas(564) Warning: Return value of function 'TEnumPropDesc.StringToValue' might be undefined

...\HiAsm\Elements\Delphi\code\hiODialog.pas(38) Hint: Variable 's' is declared but never used in 'THIODialog._work_doExecute0'

...\HiAsm\Elements\Delphi\code\hiImg_Ellipse.pas(68) Warning: Variable 'br' might not have been initialized
293580 lines, 9.70 seconds, 3351976 bytes code, 10533 bytes data.
End build
карма: 0

0
Ответов: 3655
Рейтинг: 69
#2: 2006-11-20 20:39:26 ЛС | профиль | цитата
Ntl-M, Скачай меню лучше здесь http://hiasm.hexshock.com/xf/topic.php?t=7015&start=0
Гораздо лучше и Автор есть.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#3: 2006-11-20 20:52:09 ЛС | профиль | цитата
Ntl-M писал(а):
Можно этот элемент как-нибудь подкорректировать?

Можно, но не вдруг
карма: 9

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2006-11-20 21:41:33 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-14 16:00:16
карма: 0

0
Ответов: 150
Рейтинг: 0
#5: 2006-11-20 21:44:35 ЛС | профиль | цитата
Galkov, так можно надеяться на усовершенствование? Я буду ждать
карма: 0

0
Разработчик
Ответов: 26177
Рейтинг: 2128
#6: 2006-11-20 22:42:53 ЛС | профиль | цитата
Ntl-M, но я не вижу ошибок, связанных с меню. В чем проблем-то? Я поддерживаю этот релиз Меню, который дан Вячеславом. И вот этого я не понял
Скачала элемент, у меня установился и отображается помеу-то только компонент Расширенное главное меню, но ошибка на выходе из программы так и не исчезла
Какая ошибка, если можно, то скриншот, и на какое действие -- прямой выход (по крестику на форме) или выход через меню?
Galkov, я вижу опять, даже в штатных компонентах, кучу мусора. Думаю ты тоже не мог этого не заметить.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#7: 2006-11-20 22:45:01 ЛС | профиль | цитата
nesco, ты чего как горы упал
ДОЛЖНА быть ошибка при выходе
карма: 9

0
Разработчик
Ответов: 26177
Рейтинг: 2128
#8: 2006-11-20 22:50:23 ЛС | профиль | цитата
Galkov, я знаю, что будет, но только при выходе через Меню, через крест не будет, вот и уточняю -- точно ли по Меню ошибка или там что-то другое еще есть?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#9: 2006-11-20 22:58:52 ЛС | профиль | цитата
nesco,
я пока копался в этом вопросе, МАКСИМАЛЬНО упростил код, который мы делаем.
Проверь: падает по-любому code_616 - типа "чистый" KOL

Обрати внимание, в обыкновенном меню стоит:
   FMainMenu := NewMenu( Applet, 0, ListMenu, nil );
   Form.Menu := FMainMenu.Handle;
вместо (у меня то сейчас - так):
   FMainMenu := NewMenu( Form, 0, ListMenu, nil );
не от хорошей жизни, я думаю, а от безысходности
Ну как косвенный аргумент того, что обязан падать (сказать честно, мне все равно каким макаром, главное - ПАДАЕТ)
карма: 9

0
файлы: 1code_616.txt [1.2KB] [415]
Разработчик
Ответов: 26177
Рейтинг: 2128
#10: 2006-11-20 23:10:21 ЛС | профиль | цитата
Galkov,
я только не понял, а какого ты убрал фиксинг
if Control=nil then exit[/code]он нормально отрабатывал при отправке на пустой Control мессаги?
карма: 22

0
Ответов: 150
Рейтинг: 0
#11: 2006-11-20 23:11:58 ЛС | профиль | цитата
...прямой выход (по крестику на форме) или выход через меню?


nesco, ошибка появляется и при выходе через меню, и по крестику на форме . Ошибка может быть вызвана как расширенным меню, так и DatePicker, которые я использую.
Вот пример моего меню:

code_618

А вот что выдается при запуске моей программки:

Build start...
Generated code
Create project...
Command line: dcc32.exe "...\HiAsm\Elements\Delphi\code\_NumbersD.dpr" "-U...\HiAsm\My\." -Q "-E...\HiAsm\My\
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

...\HiAsm\Elements\Delphi\code\ListEdit.pas(237) Hint: Value assigned to 'o' never used

...\HiAsm\Elements\Delphi\code\ListEdit.pas(230) Hint: Value assigned to 'o' never used

...\HiAsm\Elements\Delphi\code\ListEdit.pas(220) Hint: Variable 'c' is declared but never used in 'TListEdit.LVChange'

...\HiAsm\Elements\Delphi\code\hiStringTable.pas(253) Warning: Return value of function 'THIStringTable._OnCompareLVItems' might be undefined

...\HiAsm\Elements\Delphi\code\hiStringTable.pas(12) Hint: Private symbol '_OnClick' declared but never used

...\HiAsm\Elements\Delphi\code\KOLmdvPanel.pas(188) Hint: Variable 'br' is declared but never used in 'TmdvPanel.Paint'

KOLComObj.pas(1614) Hint: Value assigned to 'Status' never used

KOLComObj.pas(2337) Hint: Value assigned to 'SaveInitProc' never used

ActiveKOL.pas(564) Warning: Return value of function 'TEnumPropDesc.StringToValue' might be undefined

...\HiAsm\Elements\Delphi\code\hiODialog.pas(38) Hint: Variable 's' is declared but never used in 'THIODialog._work_doExecute0'

...\HiAsm\Elements\Delphi\code\hiGrapher.pas(184) Hint: Variable 'j' is declared but never used in 'THIGrapher.DrawBmp'

...\HiAsm\Elements\Delphi\code\hiGrapher.pas(16) Hint: Private symbol 'HB' declared but never used

...\HiAsm\Elements\Delphi\code\hiImgBtn.pas(28) Warning: Redeclaration of '_prop_Flat' hides a member in the base class
108432 lines, 2.14 seconds, 1239380 bytes code, 5409 bytes data.
End build
карма: 0

0
файлы: 1code_618.txt [887B] [328]
Разработчик
Ответов: 26177
Рейтинг: 2128
#12: 2006-11-20 23:26:43 ЛС | профиль | цитата
Galkov, что и требовалось доказать. У меня стоит твой фиксинг и ничего не валится. Может все таки, временно, пустим его в жизнь.


[size=-2]------ Добавлено в 23:26
Ntl-M, да не осудит меня Galkov, но вот попробуй замени файл hiMainForm.pas, на тот, который выложен.
карма: 22

0
файлы: 1hiMainForm.zip [4.1KB] [402]
Ответов: 150
Рейтинг: 0
#13: 2006-11-20 23:33:04 ЛС | профиль | цитата
Я заменила эти компоненты в двух своих программках, которые уже готовы. Они работали без ошибок, а теперь в одной из них на выходе (как прямом, так и через меню), выдается сообщение об ошибке: Invalid Pointer Operation, а в другой - Access violation at address 0410A34 in module "название.exe". Read of address 0000024B. Как это можно устранить? В первой выдается отчет при запуске, который в размещён первом посте, а во второй - последний. Помогите, пожалуйста, разобраться...
карма: 0

0
Разработчик
Ответов: 26177
Рейтинг: 2128
#14: 2006-11-20 23:40:44 ЛС | профиль | цитата
Ntl-M, Я не понял
Я заменила эти компоненты в двух своих программках
ты точно пробовала заменить именно hiMainForm.pas?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#15: 2006-11-20 23:46:28 ЛС | профиль | цитата
nesco, это изменения в win.pas
type
 THIWin = class(TDebug)
protected
NoKill:boolean;
....
destructor THIWin.Destroy;
begin
if not NoKill then begin
Split.Free;
Control.Free;
end;
inherited;
end;

procedure THIWin._OnDestroy;
begin
NoKill := true;
end;
и MainForm.pas
procedure THIMainForm._onClose;
...
//Applet := nil;
//Control := nil;
end;
end;

((грубо говоря, фиксинг ранее мне не предствляется достаточным, и это НЕ дополнительно к нему, а ВМЕСТО него ))

Исправлять это на SVN я не буду.
Поскольку имел убедительную просьбу от Dilma не вносить изменений в системные файлы без "обсуждения"

Что и является основной причиной отличий моих кодов от дистрибутива. А не моя гипотетическая скрытность.
Скажем здесь основные отличия моего win.pas. Но основная польза от этого будет, если MainForm.Init будет вызывать inherited (у меня вызывает).
Как результат - у меня нет проблем о обработкой клавиатуры, а научит этому никого не могу.

Вот такая у нас жизнь сегодня
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)