Zitto
-
Постов
20 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Zitto
-
-
Полагаю все сложнее банального добавления THorzScrollBox и используется стандартный TChart.
Сталкивался с подобной проблемой -с того дня рисую диаграммы сам =)
-
Неужто никто не сталкивался с недоступным сервером?
Ладно, если копать в сторону другого потока, контролирующего подвисания соединения, как убить "подвисший" поток?
-
Приветствую!
Столкнулся с подобной проблемой. XE 10 и трехзвенка и при запуске приложения происходит связь с БД.На Win все отлично, однако если все запускать под Android в случае отсутствия связи висеть будет неприлично долго.
Соответственно сообщить пользователю об отсутствии связи я в ближайшую минуту не смогу, в то время как на win32 на это уходят секунды.
Необходимо настроить TimeOut.
sqlMainConnection.ConnectionData.Properties.Add( 'ConnectionTimeout', '2000' );
не помогает.
Странно, что вопрос не востребован в области мобильной разработки.
Нашел репорт http://qc.embarcadero.com/wc/qcmain.aspx?d=80954 , но не решение.
Очень хочется решить штатным способом, если не через инструментарий студии, то хоть правкой исходиков проекта.
Задав, например, таймаут в его ресурсах.
Решал кто подобные вопросы?
Благодарю.
-
Помню у андроида пунктик к блокирующим окнам, они их запрещают.
У TRectangle есть цвет фона, если поставить его в Null, он будет прозрачным.
-
R := 80; Canvas.BeginScene(); Alpha := ((Sender as TPie).EndAngle+(Sender as TPie).StartAngle)/2; dX := (Sender as TPie).Width /2+ R * Cos(DegToRad(Alpha)); dY := (Sender as TPie).Height/2 +R * Sin(DegToRad(Alpha)); rct.Create(dX-5,dY-5,dX+5,dY+5); Canvas.DrawEllipse(rct,100); Canvas.EndScene();
Благодарю!
Сам делал чуть по другому.
Ошибка была -отрицательные углы переводил в положительные.
Может кому будет полезно:
function pr( _r: Single; _sA: Single; _eA: Single; _Text: TText ): TPoint; Var i: Integer; t: real; r: real; Begin r := _r / 2; //Радиус внутренней окружности i := Round( _eA - ( _eA - _sA )/2 ); Begin t := i * pi / 180; Result := TPoint.Create( Round( r * cos( t ) + _r - Round( _Text.Width / 2 ) ), Round( r * sin( t ) + _r - Round( _Text.Height /2 ) ) ); //Дополнительная корректировка на центр TText, при TText.WordWrap = False и TText.AutoSize := True End; End;
-
Картинка для наглядности.
Имеем компонент TPie, с высотой и шириной равной 100, координаты X=50;Y=50;
Начальный угол 0, конечный 232.
Радиус получается 50. Центр TText будет лежать на окружности с радиусом 25.
Известен угол на котором должна располагаться надпись, в данном случае это 116.
В идеале должна быть формула выявления координат X,Y для TText.
В реальности же приходится учитывать факт что треугольника, как такового может и не быть.
В довесок, следующая область имеет отличный от 0 начальный угол (232), что делает необходимым учет четвертей.
-
Да, сталкивался с таким. Если мне не изменяет память, XE10 в другом месте ищет ключи на MAC'ке и их надо в него перенести =)
-
Увы все не так просто. Идейно ясно, что середина любой закрашенной области на окружности находится в радиусе в два раза меньшем радиусу основной окружности.
Всплывает необходимость переноса градусов на оси Х,У с учетом смещения выделенной области и периодами Pi.
Что я в принципе и сделал, но результат не устраивает, поэтому ищу другую реализацию, возможно, заложенную в компонент.
-
Задается прямоугольник, который имеет прозрачную и закрашенную область. Наложением друг на друга можно построить полноценную диаграмму.
Часть закрашенной окружности образуется начальным и конечным углом окружности.
-
Приветствую!
Собрался недавно сделать свою круговую диаграмму.
Решил собрать из TPie и все вроде бы хорошо, но при желании проставить значения в закрашенный кусок диаграммы поймал себя на мысли,
что найти центр закрашенной области не так то просто.
Отсюда вопрос: Возможно есть готовое решение по поиску этих координат или, возможно, даже стандартная реализация через TRectF ?
Смотрю, предыдущая тема похожа, и похоронена. Надеюсь мне повезет больше.
Спасибо!
-
Конечно есть, TListBox в FireMonkey. Создание своих стилизованных итемов для TListBox. 1 часть
От себя добавлю, что, скорее всего, вам необходимо принудительно прогрузить стиль в коде.
-
VCLPanel.Parent := Self;
Не помогает?
-
Так же столкнулся с подобной проблемой.
На Win все летает, IOS тормоза, Android нет анимации.
День убил на тесты.
Результат - анимация пользуется ресурсами телефона, коих меньше чем у ПК.
Мне помогло:
- Сжатие фона (на заднем фоне есть картинка),
- Остальные эффекты добавлять после окончания анимации (есть gloweffect),
- Игра с родителями - тут не совсем ясно, но путем тестов выяснилось, что чем меньше родительских контролов между объектом анимации и формой, тем меньше шансов на тормоза.
Для мобильных платформ анимацией надо пользоваться осторожно.
-
Проверить сейчас нет возможности, но я бы для начала попробовал поместить оба изображения в родительский контрол TRectangle со свойством ClipChildren=true для обрезки дочерних изображений, выходящих за границы контрола. Одну картинку растянул по Rectangle, а вторую поместил ровно под ним (через Image2.Position.X:=0, Image2.Position.Y:=Rectangle.Height). Она должна быть полностью "обрезана" нижней границей Rectangle. Ну а дальше через FloatAnimation уменьшаем Image2.Position.Y с начального значения до нуля за нужное время с задержкой в пару секунд.
В таком случае надо двигать и image1 по оси Y, иначе будет эффект наложения, а не прокрутки.
В данном варианте легче сделать одно изображение выходящее по середине за нижнюю рамку родительского контрола.
Есть вариант так же сделать через TListBox, создав 2 элемента списка с картинками и прокручивать его.
TBitMapAnimation отлично справляется превращая набор картинок в gif изображение. Но там, насколько я помню, нет переходов между картинками.
Возможно вы найдете нужным переход среди эффектов ( *TransitionEffect ).
-
Вам необходимо переключиться в режим разработки под андроид, после зайглянуть в Project -> Deployment.
Там следует добавить вашу БД и указать путь, где она будет храниться на устройстве : ".\assets\internal\test.s3db".
Не забудьте изменить путь к БД у FDConnection.
-
Попробуйте сделать через элемент TListBoxItemGroupHeader.
Будет прокручиваться заголовок или нет, так же зависит от свойства GroupingKind контрола ListBox/
Очевидно вам нужны заголовки ( TListBoxHeader или TListBoxGroupHeader ).
Если необходимо всегда показывать только первый item,
то его следует создать на основе TListBoxHeader, а не TListBoxItem.
Если ваш список состоит из групп, название которой необходимо видеть при прокрутке,
заголовок группы следует добавлять на основе TListBoxGroupHeader.
Если есть потребность в одинаковом отображении заголовка и остальных элементов списка -
следует поиграться с его стилизацией.
Добавление TListBoxHeader/TListBoxGroupHeader через дизайнер:- Правый клик на ListBox1 -> AddItem->TListBoxHeader.
Динамически:
var lbiH: TListBoxGroupHeader; begin lbiH := TListBoxGroupHeader.Create( nil ); lbiH.Text := 'Текст заголовка'; ListBox1.AddObject( lbiH ); end;
Заголовок групп будет задерживаться при прокрутке только если
ListBox1.GroupingKind := TListGroupingKind.Plain
-
Чуть подробнее:
varcContacts: JCursor;begincContacts:= SharedActivity.getContentResolver.query(TJContactsContract_Profile.JavaClass.CONTENT_URI, nil, nil, nil, nil );cContacts.moveToFirst;Result := JStringToString(cContacts.getString(cContacts.getColumnIndex(StringToJString( 'display_name' ) ) ) );cContacts.close;end; -
Доброе утро!
Ваша реализация не сильно отличается от моей, но суть проблемы в ней упущена:
Идея такова, что при раскрытии одного ListBoxItem'a остальные сворачиваются полностью, а не до исходного размера.
И, соответственно, при сворачивании развернутого ListBoxItem'a все принимают исходную величину.
Спасибо.
-
Приветствую. Задача, при клике на ListBoxItem развернуть его на весь ListBox с анимацией.
Решаю её через
ListBoxItem.AnimateFloat( 'Height', ListBox.Height ) и
ListBoxItem.AnimateFloat( 'Height', 0 ) соответственно.
procedure TForm1.ResizeListBoxItem(Sender: TObject);
var
i: Integer;
lbi: TListBoxItem;
Ind: Integer;
begin
lbi := ( ( Sender as TFMXObject ).TagObject as TListBoxItem );
Ind := lbi.Index;
if lbi.Height = 280 then
begin
for i := 0 to ListBox1.Items.Count - 1 do
if i = Ind then
ListBox1.ListItems[ i ].AnimateFloat( 'Height', ListBox1.Height )
else
ListBox1.ListItems[ i ].AnimateFloat( 'Height', 0);
end
else
for i := 0 to ListBox1.Items.Count - 1 do
ListBox1.ListItems[ i ].AnimateFloat( 'Height', 280 );
end;В каждом LisBoxItem находится свой ListBox с элементами, который в последствии и разворачивается на весь экран.
В следствии столкнулся со следующей проблемой:
Если развернуть один ListBoxItem и выделить один элемент на дочернем ListBox, а после свернуть его обратно и развернуть следующий, то всплывает ошибка
EArgumentOutOfRangeException
Конкретно на приложенном примере следует:
- Main(1) - развернуть
- Slave(1,4) - выделить
- Main(1) - свернуть
- Main(0) - развернуть
Проблема, видно, в обращении к уже скрытым элементам ListBoxItem и решить её удалось сворачивая остальные ListBoxItem не до 0, а до 1 или даже 0.1 .
Выход не нравится, прошу помощи в более элегантном решении
Крах повторного запуска приложения
в iOS
Опубликовано
Не знаю поможет ли.
Недавно обновил свои сертификаты, и в связке ключей были они показаны как не из достоверного источника. И проекты под ними не собирались.
Оказалось, что 14 февраля закончился срок действия сертификата Apple Worldwide Developer Relations, который подписывает все остальные (на разработку и распространение). Если у вас так же, то ссылка решит проблему.