gonzales

Пользователи
  • Публикаций

    96
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

gonzales стал победителем дня 4 января 2015

gonzales имел наиболее популярный контент!

Информация о gonzales

  • Звание
    Продвинутый пользователь

Посетители профиля

645 просмотров профиля
  1. gonzales

    RTSP протокол средствами TidHTTP

    Доброго всем времени суток! Есть задача, считать с ip-камеры видеопоток в формате MJPEG но не по протоколу HTTP (это реализовано и работает), а по RTSP. RTSP очень похож на HTTP, тоже все передается в текстовом виде. Вот тут есть хорошая статья https://habr.com/post/117735/ По существу: мне нужно отправить на камеру запрос вида OPTIONS rtsp://192.168.0.254/jpeg RTSP/1.0 CSeq: 1 User-Agent: VLC media player (LIVE555 Streaming Media v2008.07.24) И возможно еще данные авторизации для камеры. Вот кусок (как говорят рабочий), написанный на питоне def __init__(self): self.config = {} self.wait_description = False def connectionMade(self): self.session = 1 # Authorization part if self.config['login']: authstring = 'Authorization: Basic ' + b64encode(self.config['login']+':'+self.config['pass']) + '\r\n' else: authstring = '' # send OPTIONS request to_send = """\ OPTIONS rtsp://""" + self.config['ip'] + self.config['request'] + """ RTSP/1.0\r """ + authstring + """CSeq: 1\r User-Agent: Python MJPEG Client\r \r """ self.transport.write(to_send) if debug: print 'We say:\n', to_send def dataReceived(self, data): if debug: print 'Server said:\n', data Вопрос, как это переписать на делфе. Пните пожалуйста в нужную сторону, как правильно послать запрос. Я так понимаю сначала нужно определить запрос form1.IdHTTP1.Request.Method:='OPTIONS'; form1.IdHTTP1.Request.URL:='rtsp://admin:admin@192.168.0.16:554/live/ch00_0 RTSP/1.0'; Как-то так. А вот как его послать, и приделать к нему дополнительные параметры не могу сообразить. Буду благодарен за любую помощь.
  2. Да, я даже нашел, что это были за элементы. По одному перетягивал в новый стиль и ждал появления ошибки. Это, кстати, может быть связано с тем, что у формы помимо стиля в дизайн-тайме присвоен fill-brush. Заметил, что когда цвет установлен стиль не применяется. Прикольно, попробую!!! То есть работаем не со стилем, а с конкретным объектом? Засада в том, что у меня динамические объекты и придется тогда их всех менять, это не совсем здорово.
  3. В общем те же яйца, только в профиль. Стиль применяется, но изменить его элемент не получается
  4. В смысле стиль применяется или меняется его элемент?
  5. Cannot find style resource for Android [16FB7AC0]{fmxstyledesigner240.bpl} FmxStyleController.TStyleController.PlatformToResourceName (Line 638, "FmxStyleController.pas" + 25) + $1E [16FB7FA5]{fmxstyledesigner240.bpl} FmxStyleController.TStyleController.ChangePlatform (Line 729, "FmxStyleController.pas" + 18) + $C [16FB69F7]{fmxstyledesigner240.bpl} FmxStyleController.TStyleController.Create (Line 248, "FmxStyleController.pas" + 35) + $9 [16FB2BEF]{fmxstyledesigner240.bpl} FmxStyleWindow.TStyleWindow.Create (Line 66, "FmxStyleWindow.pas" + 2) + $D [16FBF721]{fmxstyledesigner240.bpl} FmxStyleEditors.DesignStyleBook (Line 80, "FmxStyleEditors.pas" + 2) + $B [16FBF819]{fmxstyledesigner240.bpl} FmxStyleEditors.TResourceProperty.Edit (Line 97, "FmxStyleEditors.pas" + 2) + $A [209CBF8E]{coreide240.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 965, "PropInsp.pas" + 18) + $6 [21483051]{vclide240.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 626, "IDEInspListBox.pas" + 2) + $A [21484E4F]{vclide240.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1322, "IDEInspListBox.pas" + 2) + $2 [50AA409F]{vcl240.bpl } Vcl.Controls.TControl.Click (Line 7429, "Vcl.Controls.pas" + 9) + $8 [2147A5F6]{vclide240.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 584, "IDEListBtns.pas" + 😎 + $11 [50AA3B32]{vcl240.bpl } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6 [0CDB514C]{TrackingSystem240.bpl} TrackingSystemHelp.CBTHookProc (Line 211, "TrackingSystemHelp.pas" + 27) + $F [50AA7E8B]{vcl240.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9906, "Vcl.Controls.pas" + 1) + $9 [50AA867D]{vcl240.bpl } Vcl.Controls.TWinControl.WndProc (Line 10143, "Vcl.Controls.pas" + 158) + $6 [50AA7C9C]{vcl240.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9850, "Vcl.Controls.pas" + 3) + $6 [50170DFC]{rtl240.bpl } System.Classes.StdWndProc (Line 17187, "System.Classes.pas" + 😎 + $0 [50BF0155]{vcl240.bpl } Vcl.Forms.TApplication.CancelHint (Line 11363, "Vcl.Forms.pas" + 6) + $D [50BEEDE7]{vcl240.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10534, "Vcl.Forms.pas" + 23) + $1 [50BEEE2A]{vcl240.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10564, "Vcl.Forms.pas" + 1) + $4 [50BEF15D]{vcl240.bpl } Vcl.Forms.TApplication.Run (Line 10702, "Vcl.Forms.pas" + 26) + $3
  6. при попытке открыть стиль для Андроида вылезает ошибка
  7. Может надо заполнить поле Platform? Form1.StyleBook1.Styles[0].Platform
  8. Нет у меня такого. Посмотрите, если не трудно. Файл в приложении mystyle.zip
  9. Я имею в виду в рантайме
  10. Может после внесения изменений в стиль его нужно как-то сохранить?
  11. У меня один стиль для всех платформ. Скрин приложил
  12. Так, одно и тоже приложение, естественно стиль подключен и структура элементов такая же. Сам стиль прекрасно отрабатывает, не удается именно поменять элемент в рантайме.
  13. Доброго времени суток. Столкнулся вот с какой задачей. В этой ветке достаточно много примеров доступа к элементам стиля. Примерно так это работает AObject := Form1.StyleBook1.Style.FindStyleResource('backgroundstyle'); if (AObject is TRectangle) then TRectangle(AObject).Fill.Color := strtoint(node.GetAttribute('BackgroundColor')); Form1.StyleLookup := 'backgroundstyle'; НО!!! Такой подход работает только для Винды. Под Андроидом ничего не происходит, цвет не меняется. Ответа пока не нашел, если у кого есть идеи, с удовольствием выслушаю! Заранее спасибо!
  14. gonzales

    Переход на 10.2.3

    Нашел причину зависания, не отрабатывает регистрация Пушей. {$IFNDEF MSWINDOWS} Push.PushServiceRegister; for vCurNotification in Push.FPushService.StartupNotifications do begin Push.OnReceiveNotificationEvent(self, vCurNotification); end; Push.ClearAllNotification; {$ENDIF} закомментировал, программа стала подниматься, буду с ними отдельно разбираться. А пока не понятно, почему не показывается первая форма-заставка??? Если кто знает, подскажите пожалуйста.
  15. gonzales

    Переход на 10.2.3

    Доброго времени суток! Установил 10.2.3, пытаюсь перевести на него проект. Нормально запускается только под win. Андроид и iOS умирают на заставке. Дебаг работает почему-то только на андроид, но даже на нем не могу понять, что не так. Пробовал сделать следующие: удалил все из папки Android, делал revert system files to default в target platform - libraries, гонял туда сюда sdk. Ничего не помогает. Кусок кода следующий файл проекта uses System.StartUpCopy, FMX.Forms, main_unit in 'main_unit.pas' {Form1}, settings_unit in 'settings_unit.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.FormFactor.Orientations := [TFormOrientation.Portrait]; Application.CreateForm(TSplashForm, SplashForm); Application.Run; end. procedure TSplashForm.FormShow(Sender: TObject); begin SplashForm.LoadProgramm; end; procedure TSplashForm.LoadProgramm; begin StartUpLabel.Text := 'Инициализация'; application.ProcessMessages; Application.CreateForm(TForm1, Form1); application.ProcessMessages; label1.Text:=VERSION; Application.CreateForm(TForm2, Form2); application.ProcessMessages; Form1.documentsfolder := System.IOUtils.TPath.GetDocumentsPath + PathDelim + DIR_NAME + PathDelim; {$IFDEF ANDROID} Form1.downloadfolder := System.IOUtils.TPath.GetSharedMoviesPath + PathDelim; {$ENDIF} {$IFDEF IOS} Form1.downloadfolder := System.IOUtils.TPath.GetDocumentsPath + PathDelim + DIR_NAME + PathDelim; {$ENDIF} {$IFDEF MSWINDOWS} Form1.downloadfolder := System.IOUtils.TPath.GetSharedMoviesPath + PathDelim; {$ENDIF} {$IFDEF MACOS} Form1.downloadfolder := System.IOUtils.TPath.GetSharedMoviesPath + PathDelim; {$ENDIF} try Form1.SettingsXML.LoadFromFile(Form1.settingsfilename); Form1.SettingsXML.Active := true; except showmessage('Не найден файл '+Form1.settingsfilename); end; if Form1.SettingsXML.Active = true then begin form1.Settings := Form1.SettingsXML.ChildNodes.Nodes['content'].ChildNodes.Nodes['Settings']; Form1.ExecuteSettings; form2.ConnectToHost; end; PreloadConfiguration; application.ProcessMessages; StartUpLabel.Text := 'Старт программы'; application.ProcessMessages; application.MainForm := Form1; form1.Show; form2.CheckUserPriv; На 10.1 при вызове processmessages отрисовывалась форма SplashScreen ну и далее. А тут нет отрисовки, висит картинка заставки и все(((