Tumaso
Пользователи-
Постов
331 -
Зарегистрирован
-
Посещение
-
Победитель дней
39
Весь контент Tumaso
-
Я бы сделал шаблонный фрейм, в котором бы выводил текст с помощью TText (или TLabel или другой), если нужно выводить картинки - TImage и т.д. Далее для каждой карточки создаете свой экземпляр фрейма и в качестве параметров передаете значения отображаемых полей. Легко в реализации, гибко, работает на всех платформах, включая Linux через FmxLinux
-
Еще вариант, из бесплатного - библиотека Alcinoe. С ней вообще можно сделать в стиле vcl - в качестве контейнера vertscrollbox, в качестве элементов - панели и текстовые метки
-
Почему вы решили, что стандартный TListView не подойдет? Прекрасно подойдет. Посмотрите демо, идущее с делфи, в каталоге C:\Users\Public\Documents\Embarcadero\Studio\версия\Samples\Object Pascal\Multi-Device Samples\User Interface\ListView\VariableHeightItems. Для вашей задачи - идеальный старт
-
ImageLocationSample это банально TImage, в котором я храню изображение маркера - заказчик хотел, чтобы маркеры отображались в его корпоративном стиле у меня был загружен в TImage как .png
-
Я делал так, маркер устанавливался в заданную позицию при создании: var LLocation: TMapCoordinate; LMarker: TMapMarkerDescriptor; LLocation := TMapCoordinate.Create(DEFAULT_LATITUDE, DEFAULT_LONGITUDE); LMarker := TMapMarkerDescriptor.Create(LLocation, 'Название метки'); LMarker.Icon := ImageLocationSample.Bitmap; MapView.AddMarker(LMarker); MapView.Zoom := DEFAULT_ZOOM; где DEFAULT_LATITUDE и DEFAULT_LONGITUDE это мои константы с нужной координатой маркера
-
Эх, Елена, вы лично сами вообще разбираетесь в линейке своих продуктов? FastReport VCL это генератор отчетов для делфи. Но и FastReport FMX это тоже генератор отчетов для делфи. FastReport VCL работает только под windows (VCL как бы прозрачно на это намекает, не правда ли?) FastReport FMX работает и под windows, и под macOS. Но не работает под Linux, что весьма грустно, т.к.моими заказчиками востребовано
-
Интересует Fast Report FMX именно для делфи, а не для lazarus/c#
-
@ElenaS. молодцы. Есть такой вопрос - а поддержку Linux собираетесь добавлять?
-
@Евгений Корепов подскажи, у тебя под ubuntu 18.04 нормально работает? я пробовал другую похожую либу, с ней под debian приложение работает нормально, а вот под убунтой приложение при старте иногда зависает. p.s. твой вариант еще не тестировал, поэтому и спрашиваю ?
-
@Sashar333 если вы из потока меняете визуальные компоненты в основном потоке приложения, то вам нужно оборачивать изменения визуальных компонентов в синхронизацию. А правильнее будет в потоке получить только данные, а созданием компонентов и их заполнением должен заниматься главный поток. Т.е. в потоке считываете данные в TStringList, а код парсинга этого текста переносите в форму
-
Зарегистрируйся как самозанятый (НПД), тогда проблема с аккаунтом уйдет (ты останешься физлицом)
-
@Makaвоз и ныне там, артефакты никуда не делись. Поэтому каждый борется как может. Мой способ борьбы - отложенная перерисовка формы/фрейма, в большинстве случаев помогает (т.е. сначала артефакты все равно есть, но перерисовывая форму через 500 мс - артефакты уходят)
-
Пример моего кода, который корректно отправляет/получает данные: function Post(const ASession: TNetHTTPClient; const AUrl: string; const ASource: TStrings; const AIsURLEncode: Boolean): string; var LResult: TStringStream; begin Result := ''; LResult := TStringStream.Create('', TEncoding.UTF8); try ASession.AcceptCharSet := 'utf-8'; if AIsURLEncode then ASession.Post(TNetEncoding.URL.Encode(AUrl, [], []), ASource, LResult) else ASession.Post(AUrl, ASource, LResult); Result := LResult.DataString; finally LResult.DisposeOf; end; end;
-
Вы можете самостоятельно реализовать собственную библиотеку для разработчиков C++, и получите почет, уважение и деньги
-
@Евгений Корепов 2G как был медленным, так медленным и остался ?
-
@vovanse вынеси работу с TBluetoothLE в отдельный поток, и тогда приложение подвисать не будет
-
Вообще на этом форуме обсуждают приложения написанные на Delphi + FMX, а другие системы разработки обсуждают на других, специализированных форумах/чатах/группах
-
А оно на чем написано?)))
-
Попробуй при создании приложения единоразово вызвать процедуру PreloadContent(TabControl2), где PreloadContent определена следующим образом: procedure PreloadContent(const AControl: TControl); {$IF DEFINED(ANDROID) or DEFINED(IOS)} var I: Integer; {$ENDIF} begin {$IF DEFINED(ANDROID) or DEFINED(IOS)} if AControl is TStyledControl then TStyledControl(AControl).ApplyStyleLookup; if AControl.ControlsCount > 0 then for I := 0 to AControl.ControlsCount - 1 do PreloadContent(AControl.Controls[I]); {$ENDIF} end;