Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Grande



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dronton2
    Вот спасибо, сударь Попробую прямо сейчас.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 07:36 02-12-2016
    svs123456789

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не подскажите, как сделать чтобы в процессе отладки не попадать в системные модули ?
     типа unit Controls; DB

    Всего записей: 2941 | Зарегистр. 10-04-2003 | Отправлено: 17:03 25-03-2017
    Alexzzy

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    svs123456789
    Странное и непонятное желание. Поясните. Хотя... примерно понятно.
    Разграничения для дебагера нет, модули равнозначны. Кнопочки дебагера помогают в рулении.

    Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 17:11 25-03-2017 | Исправлено: Alexzzy, 17:49 25-03-2017
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    svs123456789
    Убрать галочку в настройках Use debug dcus

    Всего записей: 2566 | Зарегистр. 20-06-2011 | Отправлено: 13:05 26-03-2017
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    del

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 18:03 06-04-2017 | Исправлено: Man_Without_Face, 12:07 07-04-2017
    Vo1T



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Святые пасатижи ...  
    Дождались ...
     
    PAServer запускается в бэше на W10
    http://blog.marcocantu.com/blog/2017-april-windows10-creators-update.html

    Всего записей: 312 | Зарегистр. 20-08-2008 | Отправлено: 10:10 13-04-2017
    Aladdinych



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Столкнулся с такой проблемой. Есть приложение написанное на Delphi 5. В него надо дописать небольшой модуль, который получает через API отслеживание почтового отправления для посылки с заданным номером. Сервис Почты России предоставляет API для этой цели. В качестве примера у них приведены решения для PHP JAVA 1с. Меня все это не устраивает. Мне нужно решение на Delphi 5. API почтового отслеживания работает через SOAP протокол. В качестве исходных данных имеется:
    адрес сервиса: https://tracking.russianpost.ru/rtm34
    WSDL: https://tracking.russianpost.ru/rtm34?wsdl
    а также формат xml запроса.
    В составе Delphi 5 есть установленная палитра компонентов Indy 10. Еще имеется библиотека Synapse 40.
    Можно ли, используя либо Indy, либо Synapse их HTTP сформировать программно и отправить требуемый запрос? Как это можно реализовать. В интернете примеров много, но не один не подошел.  
    Я попробовал реализовать на Synapse:
     
    procedure TFPost.Button1Click(Sender: TObject);
    var
       soaprequest: TStringstream;
       login,password,postnumber:string;
    begin
     
     login:='nnnnnnnnnnnnn';
     password:='pppppppppppp';
     postnumber:='nnnnnnnnnnnnnn';
     
          soaprequest:=TStringStream.Create(
    '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:oper="http://russianpost.org/operationhistory" xmlns:data="http://russianpost.org/operationhistory/data" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">'+#13+
    '   <soap:Header/>'+#13+
    '   <soap:Body>'+#13+
    '      <oper:getOperationHistory>'+#13+
    '         <data:OperationHistoryRequest>'+#13+
    '            <data:Barcode>'+postnumber+'</data:Barcode>'+#13+
    '            <data:MessageType>0</data:MessageType>'+#13+
    '            <data:Language>RUS</data:Language>'+#13+
    '         </data:OperationHistoryRequest>'+#13+
    '         <data:AuthorizationHeader soapenv:mustUnderstand="1">'+#13+
    '            <data:login>'+login+'</data:login>'+#13+
    '            <data:password>'+password+'</data:password>'+#13+
    '         </data:AuthorizationHeader>'+#13+
    '      </oper:getOperationHistory>'+#13+
    '   </soap:Body>'+#13+
    '</soap:Envelope>');
     
          Http:=THTTPSend.Create;
          Http.Document.Clear;
          Http.Headers.Add('Content-Type: text/xml; charset=utf-8');
          Http.MimeType:='text/XML';
          Http.Headers.Add('SOAPAction: "" ');
          Http.Headers.Add('Accept-Encoding: gzip, deflate"');
     
          Http.Protocol:='1.0';
          Http.UserAgent:='Mozilla/5.0 (Windows NT 6.0; rv:11.0) Gecko/20100101 Firefox/11.0';
          Http.Document.LoadFromStream(soaprequest);
          if Http.HTTPMethod('POST','https://tracking.russianpost.ru/rtm34?wsdl') then
          begin
            if Http.ResultCode <>200 then
              showmessage(inttostr(Http.ResultCode))
            else
             memo1.Lines.LoadFromStream(Http.Document);
          end
          else
            showmessage(inttostr(Http.ResultCode));
     
    end;
     
    Но этот пример мне выдает ошибку 302 - Moved Temporarily.
     
    Как победить проблему?

    Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 18:51 14-06-2017 | Исправлено: Aladdinych, 18:53 14-06-2017
    asutp2

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aladdinych, как я вижу - ты же через https данные запрашиваешь, а обработчика ssl не используешь.
     
    т.е. нужно:
     
    var
      IntlIdSSL: TIdSSLIOHandlerSocketOpenSSL;
      IntlIdHTTP: TIdHTTP;
     
    далее процедура создания компонент:
     
      IntlIdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
      IntlIdHTTP := TIdHTTP.Create(nil);
      IntlIdHTTP.IOHandler := IntlIdSSL;
     
     
     

    Всего записей: 810 | Зарегистр. 22-10-2004 | Отправлено: 19:02 14-06-2017
    Aladdinych



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это не Indy это Synapse. Модуль ssl_openssl подключен. И соответствующие библиотеки в корне приложения лежат. Когда он не был подключен выскакивала ошибка 500.

    Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 19:54 14-06-2017
    asutp2

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aladdinych, ты сам же в своем первом сообщении написал, что что рассматриваешь вариант и для Indy  
    Возможно перед отправкой твоего запроса нужно сначала отдельно посылать авторизацию на сайте...

    Всего записей: 810 | Зарегистр. 22-10-2004 | Отправлено: 21:15 14-06-2017
    landy



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    сравни снифером трафик своей сессии и эталонный от примера на php

    Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 17:56 15-06-2017
    svs123456789

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    "Error reading Form1.Version: Property Version does not exist."
    - при открытии проекта Delphi7 выдает такую ошибку ....
    но на другом компе (вероятно с такими же версиями библиотек) ошибки нет и проект компилируется!
     
     
    подскажите, куда копать ???

    Всего записей: 2941 | Зарегистр. 10-04-2003 | Отправлено: 09:06 25-06-2017
    dimm78

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    svs123456789
    Возможно Form1 создан на основании какого-то наследника TForm со своими published свойствами и перед открытием этой формы нужно сначала зарегистрировать этот класс в Delphi. Посмотрите как объявлен класс Form1 в коде формы.

    Всего записей: 163 | Зарегистр. 07-12-2005 | Отправлено: 13:37 25-06-2017
    DanMadNomad777

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет
     
    Использую дельфи 10.1, дев эксперс 15.2.2, ms sql, unidac.  
     
    перевожу проект на unicode.
     
    Было поле varchar, сделал nvarchar. unidac показал новый тип - widestring. Удалил поле из грида, добавл снова - в гриде тип поля просто string, вместо widestring и символы другого языка отображаются палочками черными. подскажите что я делаю не так, как включить в девэкспере в гриде этот самый юникод.
     
    Спасибо заранее.

    Всего записей: 233 | Зарегистр. 24-11-2005 | Отправлено: 15:16 25-06-2017
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброе время ребят. Помогите плз - написал себе браузер с вкладками, так вот при закрытии вкладок ИНОГДА вылетают ошибки причем разные:
     Access 00000384
     Access 00000000 и другие. Заметил что это получается после закрытия вкладок. Посмотрите плз где может сидеть косяк?  
    Заранее спасибо! Подробнее...

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 12:33 28-06-2017 | Исправлено: GRom V, 12:40 28-06-2017
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Мне кажется что собака гдето тут зарыта, ну как исправить не пойму...:
     
    procedure TForm1.CreateNewTab(Title : string);
    var
       tabsheet : TTabSheet;
       WB : TWebBrowser;
    begin
       tabsheet := TTabSheet.Create(PageControl1);
       tabsheet.Visible := true;
       tabsheet.Caption := Title;
       tabsheet.PageControl := PageControl1;
       PageControl1.ActivePage := tabsheet; // Делаем новую вкладку активной
       WB := TWebBrowser.Create(self); // Создаем на ней WebBrowser
       TWinControl(WB).Parent := TabSheet;
       WB.Align := alClient; // Распахиваем его на всю вкладку
       WB.OnNewWindow2 := WebBrowser1NewWindow2; // Назначаем обработчик события OnNewWindow2
       TabSheet.Tag := Integer(WB); // Запоминаем как браузер для TabSheet, потом понадобится
    end;
     
    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
      begin
       ppDisp := TWebBrowser(PageControl1.ActivePage.Tag).DefaultDispatch;
    end;
     
     
     
    procedure TForm1.PageControl1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
     if (Button=mbRight) and (PageControl1.PageCount>1) then begin
        i:=PageControl1.IndexOfTabAt(X,Y);
        PageControl1.Pages[i].Free;
      end  
    end;

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 16:01 28-06-2017 | Исправлено: GRom V, 16:04 28-06-2017
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Если под дебагером ошибка проявляется, то попробуйте в момент остановки глянуть стек вызовов. Плюс еще есть всякие отладочные инструменты типа EurekaLog. Вообще веббраузер - это обертка на ActiveX компонентом, поэтому такой код "TabSheet.Tag := Integer(WB);" может поломать подсчет ссылок.

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 19:47 28-06-2017
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Плюс еще есть всякие отладочные инструменты типа EurekaLog

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

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:06 29-06-2017
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    Если под дебагером ошибка проявляется, то попробуйте в момент остановки глянуть стек вызовов.

    Прошу проСЧения за глупый вопрос, я не силен в этом (я новечек) как это сделать? Как глянуть на какой кусок кода ошибка выподает?

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 23:11 29-06-2017
    GRom_V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ребят, вот сделал простенький аналог, без большей части кода - ошибка при закрытии нескольких вкладок также вылетает:
     
     "address 6E6F6974'. Process stopped. Use Step or Run to continue."
     
     Скинул этот проектик полностью гляньте плз как можно убить ошибки? мне кажется что все дело в закрытии вкладок - вкладки закрываются а браузер?... могу ошибаться.
    Помогите ПЛЗ!?
    http://rgho.st/6BqBkHqvR

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 02:06 30-06-2017 | Исправлено: GRom_V, 05:52 30-06-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru