-
Постов
394 -
Зарегистрирован
-
Посещение
-
Победитель дней
45
Сообщения, опубликованные AngryOwl
-
-
procedure TfmMain.DoAppExit;
begin
try
Toast('Shutdown...');TThread.Synchronize(nil, Do__________); // тут что-то делаем до завершения
finally
KillMe; // из Android.KillMainProcess
end;
end; -
Попробуйте просто "обернуть" эту часть кода:
Application.CreateForm(TForm27, Form27); // можно это тоже внутрь Synchronize поместить
TThread.Synchronize(nil, procedure
beginForm27.ProgressBar1.Visible := false;
Form27.StartUpLabel.Text := 'Ждите...';
Form27.Visible := true;end);
-
-
-
-
Добрый!
Никак. Как и многие другие элементы...
Решение, до сих пор, - создание своего компонента или модуля для мультиязычных приложений.
Пример - Мультиязычность в андроиде.
Код, конечно, давно изменился и оптимизировался не раз. Если будет свободное время - выложу как-нибудь последнюю версию.
-
-
-
Сталкивался с подобным. В моем случае, решение было следующим: использовал не OnItemClick, а OnMouseDown.
И у TListBox свойство MultiSelectStyle = None.
Код, примерно, такой:
procedure TfmMain.lbxCListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); var LI : TListBoxItem; begin if Assigned(Sender as TListBox) then begin LI := TListBox(Sender).ItemByPoint(X, Y); if Assigned(LI as TListBoxItem) and (Button = TMouseButton.mbLeft) then begin LI.IsSelected := True; TTask.Run(procedure begin DoSelectItemC(lbxCList, LI.Index); // тут Ваша процедура обработки выбранного TListBoxItem (если внутри DoSelectItemC работаем с GUI, то не забываем TThread.Synchronize()...) end); end; end; end;
-
6 минут назад, Дмитрий Ш. сказал:
Такой проект не должен умереть без следа, подумайте, возможно исходники стоит положить на гитхаб.
Насколько я знаю - исходники невозможно опубликовать по юридическим соображениям...
-
-
Только что, Golovanyuk сказал:
То есть достаточно сменить кабель и программа всегда будет запускаться со среды? А зависания приложения и вылет программы в безобидных случаях? Мне кажется, у меня с настройками Java не гуд.
Кто-нибудь может разместить скрин идеальных настроек для Delphi 10.1? Спасибо.
Я не утверждаю, что в Вашем случае - это решение вопроса. Я лишь констатирую факт того, что иногда, из-за некачественного кабеля могут возникать проблемы, которые никак не ассоциируются с кабелем (не запускается приложение, не деплоится и т.п.)
У меня работает все при таких настройках
-
Отмечу, что сталкивался с такой проблемой - То работает запуск приложения на смартфоне, то не работает, то странности возникают еще при деплоее на смартфон... В общем скажу просто - проблема была в кабеле. Самое интересное, что при подключении смартфон "виделся", и вроде бы все ок, но постоянные глюки при запуске приложения привели к одному решению - смена кабеля и все заработало.
Не скажу, что это панацея, но я в своей практике уже трижды сталкивался с подобным. Кабель может работать на подзарядке, и даже при работе с устройством в плане чтения и записи фалов, через проводник, но будет "глючить" при более "тонкой" работе.
-
Я так и не нашел оптимального решения. Только делать для разных аппаратов разную реализацию.
-
57 минут назад, Rusland сказал:
В какой момент это вызывать?
Собственно это зависит от того как Вам требуется. У меня при нажатии на кнопку на форме.
-
Мне помогло следующее:
TThread.Synchronize(nil, procedure begin memoChatMessage.Text := ' '; memoChatMessage.SelectAll; memoChatMessage.DeleteSelection; end);
-
2 часа назад, dnekrasov сказал:
А каким образом добраться до этих свойств в рантайме?
Зачем?
Все просто. Все описано - измените стиль. Не хотите менять стандартные? - создайте дубль, назовите иначе, измените свойства - используйте оба стиля, смотря какой когда нужен.
Если нужно в рантайме, то все как обычно - используйте
StylesData['тут_имя_свойства'] := ...
-
-
Я поступил проще - на Токио пока даже и не пробовал переходить... Берлин работает, как работает - устраивает. Пока Токио не допилят, пока об этом все не напишут, и пока не появится как минимум первый апдейт - даже и пробовать не буду.
Политика Embarcadero мне понятна. Искренне надеюсь, что им хватит ума и бюджета на то, чтобы развивать продукт. Оставался и остаюсь приверженцем Delphi, и во многих случаях ему просто нет объективной замены/альтернативы. Но кидаться "в омут" (на каждую новую версию) - желания нет.
-
Вы, случаем, не об этом?
-
59 минут назад, Rusland сказал:
Какой-то заброшенный форум )
Есть такое дело. Он (Боян Митов) один автор сего продукта. Делает его ооооочень давно. В последнее время ударился в создание компонент и библиотек для работы с Arduino (почитать все новости можно в блоге). Недавно объявил о том, что скоро появится версия VideoLab для FMX с поддержкой не только Windows, но и MacOS и Android.
-
3 минуты назад, Rusland сказал:
Вот я и смотрю что VideoLab VCL only ) Ну что ж, подождем FMX
Нет нет. Есть и под FMX. Смотрите на странице загрузки - Firemonkey and VCL, Current Version Installers.
Но проблемы все те же останутся. Только Windows и сложность организации rtmp-потоков.
-
Называется VideoLab (библиотека для работы с видео)
Проблем с ним несколько.
Во-первых - это только под Windows (уточним, насколько я знаю, сейчас Митов занимается созданием кроссплатформенной версии библиотеки, и вроде у него уже есть "наброски" (разумеется - под FMX), но когда появится релиз - не знаю).
Во-вторых - непосредственно сама эта либа работать с RTMP не может. Так-что прийдется использовать фильтры, которые еще найти надо будет, если они есть )))
-
На случай "своими руками", я бы порекомендовал Вам копать в сторону WebRTC. Разумеется все зависит от конечных задач, стоящих перед Вашей программой. Судя по всему - это организация потокового видео в режиме реального времени на соответствующие сервисы. А это значит, что:
- нужно организовать формирование и передачу RTMP (RTSP) потока, с чем в Delphi (если о нем речь идет) есть определенные сложности) (в ситуации с С++ будет немного проще);
- нужно использовать кодеки (encoder), формат которых поддерживается теми системами, на которых вы хотите видеть воспроизведение потока. Аналогично, как и в вопросе с rtmp-потоком, ситуация с реализацией в Delphi будет сложнее (хотя тоже можно);
- что касается конвертации кадров из одного формата в другой, то тут все немного проще. В интернете полно алгоритмов описывающих конвертацию битмапа из одного формата в другой. Разумеется - не все так просто. Поскольку необходимо не просто конвертировать кадры, перед тем как передать их энкодеру, но еще и правильно от энкодера получить сам поток и передать его. После энкодера, конечно, идут не просто "кадры". В зависимости от настроек энкодера, сначала идет "ключевой кадр" (и он повторяется с определенной периодичностью), а за ним последовательность "фреймов" - "описывающих" лишь изменения в "ключевом кадре".
Кратко как-то так...
В любом случае, я бы порекомендовал Вам сначала пошарить по ресурсу, описывающему работу с потоковым видео. Просто понять как это работает, в принципе. Ну и многое можно там же подчерпнуть. Например, просто как оптимальнее настроить энкодер для трансляции того или иного видео.
TToolBar (Header и Footer)
в Компоненты
Опубликовано · Изменено пользователем AngryOwl
По поводу размера StatusBar посмотрите тут. (ссылка вроде уже не рабочая, а решение прикреплено).
Что касается NavBar (я думаю Вы про TToolBar), думаю, Вам стоит копать в сторону изменения стиля именно компонента (или создать свой, с нужной высотой). Не уверен, но думаю копать в ту сторону)
P.S. Кстати, есть еще вот такое решение.