
Tumaso
Пользователи-
Постов
337 -
Зарегистрирован
-
Посещение
-
Победитель дней
40
Весь контент Tumaso
-
@Ingalime 1. если высота фрейма зависит от данных, то да, вычисляйте высоту 2. по расположению создаваемых фреймов друго под другом - самый простой вариант использовать свойство Align у фреймов (устанавить в Top), для этого размещайте создаваемые фреймы на общем контейнере для них (например на VertScrollBox) условно говоря примерно так: procedure TForm1.AddFrame(const AParent: TFmxObject; const AData: TFrameData); var LFrame: TMyFrame; begin LFrame := TMyFrame.Create(Self); // или nil, если в дальнейшем будете сами уничтожать фреймы LFrame.Parent := AParent; LFrame.Align := TAlignLayout.Top; LFrame.Data := AData; // этим кодом предполагается заполнение фрейма данными, при котором фрейм заполнит выводимые компоненты и настроит свою высоту end; procedure TForm1.FillFrames; var I: Integer; begin for I := 0 to Data.Count - 1 do AddFrame(vsbFrames, Data[I]); // vsbFrames - TVertScrollBox для размещения фреймов, Data - список данных для отображения, каждый элемент - данные для отдельного фрейма end;
-
FreeAndNil?
-
Другой вариант - использование TListView
-
Я бы сделал шаблонный фрейм, в котором бы выводил текст с помощью 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, а другие системы разработки обсуждают на других, специализированных форумах/чатах/группах
-
А оно на чем написано?)))