![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.03.2008
Сообщений: 10
|
![]()
скачал исходники.. но не копиляться =( начинает ругаться вот примеры
{ *********************************** *********************************** *** } // Execute a specified command or displays help for a command. // The IOleCommandTarget interface enables objects and their // containers to dispatch commands to each other. For example, // an object's toolbars may contain buttons for commands such as // Print, Print Preview, Save, New, and Zoom. function InvokeCMD(WB: TWebbrowser; nCmdID: DWORD): Boolean; var vaIn, vaOut: OleVariant; begin Result := InvokeCMD(WB, True, nCmdID, 0{unassigned}, vaIn, vaOut); end; function InvokeCMD(WB: TWebbrowser; InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant): Boolean; var CmdTarget: IOleCommandTarget; PtrGUID: PGUID; begin New(PtrGUID); if InvokeIE then PtrGUID^ := CGID_WebBrowser else PtrGuid := PGUID(nil); if WB.Document <> nil then try WB.Document.QueryInterface(IOleComm andTarget, CmdTarget); if CmdTarget <> nil then try CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut); finally CmdTarget._Release; end; except end; Dispose(PtrGUID); end; и вот сдесь он ругаеться =( -[Warning] WBFuncs.pas(186): Return value of function 'InvokeCMD' might be undefined что ето?? кто знает??? и как с етим бороться??? также есть проблэм и с етим.. { *********************************** *********************************** *** } // Show Printer Dialog procedure WB_ShowPrintDialog(WB: TWebbrowser); var OleCommandTarget: IOleCommandTarget; Command: TOleCmd; Success: HResult; begin if WB_DocumentLoaded(WB) then begin WB.Document.QueryInterface(IOleComm andTarget, OleCommandTarget); Command.cmdID := OLECMDID_PRINT; if OleCommandTarget.QueryStatus(nil, 1, @Command, nil) <> S_OK then begin // ShowMessage('Nothing to print'); Exit; end; if (Command.cmdf and OLECMDF_ENABLED) <> 0 then begin /// Success := OleCommandTarget.Exec(nil, OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, EmptyParam, EmptyParam); case Success of S_OK: ; OLECMDERR_E_CANCELED: ShowMessage('Canceled by User'); else ShowMessage('Error While Printing'); end; end else // ShowMessage('Printing not possible'); end; end; начинает ругаться на case Success of - [Warning] WBFuncs.pas(477): Variable 'Success' might not have been initialized и последнее... function SHLockShared; external 'shell32.dll' index 521; function SHUnlockShared; external 'shell32.dll' index 522; function SHFreeShared; external 'shell32.dll' index 523; function Free; external 'comctl32.dll' index 73; end. ругаеться на INDEX -[Warning] IEConst.pas(1328): Symbol 'INDEX' is specific to a platform причем на все =((( Люди добрые помогите плиз... а то ужо голава совсем не варит... 2 день немогу понять вчем причина =( |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 20.04.2009
Сообщений: 15
|
![]()
>и вот сдесь он ругаеться =( -[Warning] WBFuncs.pas(186): Return value of function 'InvokeCMD' might be undefined
что ето?? кто знает??? и как с етим бороться??? У функции, тупо, нет результата, а точнее он не возвращается... >начинает ругаться на case Success of - [Warning] WBFuncs.pas(477): Variable 'Success' might not have been initialized Переменная ни разу не использована! Не знаю что там с индексами импорта, но, честно говоря, можно вроде без них (точно не помню). |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.03.2008
Сообщений: 10
|
![]()
спасибо более или менее стало понятно... точней я терь хоть понял где искать =)
теперь проблема в том что бог сними с warning"ами... они нетак страшны... проблема теперь в том что нехочит запукать =( запускает и выдает ошибку " Progect ***.exe raised exxeption class EConvert fatal eror with message 'No argument for format'%". Procces stopped " неподскажете в чем my problem? |
![]() |
![]() |
![]() |
#4 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
а по коду она вообще неизвестно что вернет, так как в ней результату ничего не присваивается Цитата:
Цитата:
помоему они тут лишние. Цитата:
то есть код работать будет только под Виндой. кстати это не ошибки это все предупреждения Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
воспользуйся трасировкой Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 10.03.2008
Сообщений: 10
|
![]() Цитата:
// Show Webbrowser Progress // OnProgressChange Occurs when the progress of a download operation is updated. procedure TfrmMyBrowser.WebBrowser1ProgressCh ange(Sender: TObject; Progress, ProgressMax: Integer); var Position: Integer; begin try Position := (Progress * 100) div ProgressMax; ProgressBar1.Position := Position; StatusBar1.Panels[0].Text := Format('%d "% loaded..."', [Position]); except end; end; вылетает на StatusBar1.Panels[0].Text := Format('%d "% loaded..."', [Position]); сори что то сразу неподумал так сделать =( спасибо за предыдушие ответы.... очень помогли разобраться.. особенно с индексом... только по 1 проблеме я чет не понимаю... так как совсем долек от етого всего =( немогли бы вы привести пример решения??? |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
попробуй сделать так:
вместо StatusBar1.Panels[0].Text := Format('%d "% loaded..."', [Position]); напиши StatusBar1.Panels[0].Text:=IntToStr(Position)+'% loaded'; а так мне кажется что ошибка изза знака процента в функции Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 10.03.2008
Сообщений: 10
|
![]()
запустилось =) но статус бар при загрузке незаполняеться....
пытаюсь разобраться... но пока не понятно =( почти довел все до совершенства =) все ворнинги исправлены... осталось только смелочью разобраться... и статус бар... и все =) |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 10.03.2008
Сообщений: 10
|
![]()
нашел еше глюк....
когда открываю новую страницу... вылетает с ообшением DivisonByZero на строке Position := (Progress * 100) div ProgressMax; впринципи понятно почему =) из за того что унас максимальный прогрес на новой странице равен 0... а на ноль как говориться делить нельзя =) даааа.... попробуем разобраться... может есть у кого идеи ? |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Код:
при запуске из под Дельфи ошибка покажется вне зависимости от защищенных блоков (если конечно не отключен показ ошибок) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 21.04.2009 в 07:23. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с кодом | DM_bite | Помощь студентам | 12 | 02.08.2008 11:40 |
Помогите с кодом | Кронос | Общие вопросы Delphi | 6 | 04.05.2008 21:13 |
Помогите с кодом | prostoCHEL | Общие вопросы Delphi | 4 | 02.03.2008 21:56 |