-
Постов
181 -
Зарегистрирован
-
Посещение
-
Победитель дней
26
Активность репутации
-
enatechno получил реакцию от Anatoliy в Вывод/отображение нескольких картинок на форме
Основные отличия:
TImageControl - при клике на нем во время выполнения десктоп-приложения открывается диалоговое окно открытия файла, где можно выбрать картинку для отображения в ImageControl. Отображаемая картинка автоматически масштабируется под размеры контрола.
TImageViewer - наследник от TCustomScrollBox и имеет встроенные скроллбары. На десктопах изображение может смещаться с помощью мыши и масштабироваться (колесиком мыши). Также в демках, идущих с RAD, есть пример как масштабировать изображение с помощью жестов на устройствах с тачскрином.
-
enatechno получил реакцию от Rusland в Вывод/отображение нескольких картинок на форме
Тогда стандартные стили Вам не подойдут. Создавайте свой стиль для ListBoxItem на базе стандартного или "с нуля". Тут описано как это можно сделать.
Вот подправил пример. Создал mylistboxitemstyle в котором только 2 элемента - text и image. Этот стиль загружен в StyleBook1 и указан в Listbox1.DefaultItemStyles.ItemStyle. Можете редактировать этот стиль прямо в StyleBook, добавляя новые элементы и располагая их как Вам нужно.
tstListbox1.rar
-
enatechno получил реакцию от Равиль Зарипов (ZuBy) в Вывод/отображение нескольких картинок на форме
Из стандартных иконку отображают: listboxitembottomdetail, listboxitemleftdetail, listboxitemnodetail, listboxitemrightdetail.
tstListbox1.zip
-
enatechno получил реакцию от Anatoliy в Вывод/отображение нескольких картинок на форме
Тогда стандартные стили Вам не подойдут. Создавайте свой стиль для ListBoxItem на базе стандартного или "с нуля". Тут описано как это можно сделать.
Вот подправил пример. Создал mylistboxitemstyle в котором только 2 элемента - text и image. Этот стиль загружен в StyleBook1 и указан в Listbox1.DefaultItemStyles.ItemStyle. Можете редактировать этот стиль прямо в StyleBook, добавляя новые элементы и располагая их как Вам нужно.
tstListbox1.rar
-
enatechno получил реакцию от Равиль Зарипов (ZuBy) в Вывод/отображение нескольких картинок на форме
Тогда стандартные стили Вам не подойдут. Создавайте свой стиль для ListBoxItem на базе стандартного или "с нуля". Тут описано как это можно сделать.
Вот подправил пример. Создал mylistboxitemstyle в котором только 2 элемента - text и image. Этот стиль загружен в StyleBook1 и указан в Listbox1.DefaultItemStyles.ItemStyle. Можете редактировать этот стиль прямо в StyleBook, добавляя новые элементы и располагая их как Вам нужно.
tstListbox1.rar
-
enatechno получил реакцию от Rusland в Вывод/отображение нескольких картинок на форме
Из стандартных иконку отображают: listboxitembottomdetail, listboxitemleftdetail, listboxitemnodetail, listboxitemrightdetail.
tstListbox1.zip
-
enatechno получил реакцию от Anatoliy в Вывод/отображение нескольких картинок на форме
Из стандартных иконку отображают: listboxitembottomdetail, listboxitemleftdetail, listboxitemnodetail, listboxitemrightdetail.
tstListbox1.zip
-
enatechno получил реакцию от Anatoliy в Выравнивание текста внутри динамического Label
LabelG.StyledSettings := []; ... LabelG.TextSettings.HorzAlign := TTextAlign.Center; with LabelG do - не нужен
-
enatechno получил реакцию от Вячеслав Холод в Выравнивание текста внутри динамического Label
LabelG.StyledSettings := []; ... LabelG.TextSettings.HorzAlign := TTextAlign.Center; with LabelG do - не нужен
-
enatechno получил реакцию от Winexcel в Выравнивание текста внутри динамического Label
LabelG.StyledSettings := []; ... LabelG.TextSettings.HorzAlign := TTextAlign.Center; with LabelG do - не нужен
-
enatechno отреагировална krapotkin в DataSnap android client
нигде. статический адрес вашему серверу выделяется провайдером за отдельные деньги
-
enatechno отреагировална kami в Удаление сложных классов, Android
нет, совсем не на раз. Эта задача решается не совсем очевидным способом в том числе и на Windows (раз два три , и это так - навскидку ). То, что вы не наткнулись на грабли в Windows - это очень хорошо. Вернее, плохо, потому что теперь вы считаете, что так делать можно. И потом возможны вопросы "вот почему раньше получалось, а с вот этим вот компонентом - нет".
Кросс-платформенные варианты:
Item.Release; TThread.CreateAnonimousThread(... TThread.Queue(...здесь любой использованный вами ранее код удаления всех компонентов)).Start: или аналог CreateAnonimousThread - TTask.Run
-
-
-
enatechno отреагировална Равиль Зарипов (ZuBy) в Define для релиз-версии
честно не совсем понял о чем речь. директивы стандартные можно найти в справке ембы
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Conditional_compilation_(Delphi)
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Delphi_Compiler_Directives_(List)_Index
ну и так далее
-
enatechno отреагировална Равиль Зарипов (ZuBy) в [Андроид] кнопка с эффектом
если это основное действие в приложении, то в андроиде принято делать Floating Action Button (гугл в помощь)
есть компоненты которые правильно рисуют фигуры (без лесенок и зазубрин), поверх компонента положить картинку или пиктограмму и будет стильно, современно, молодежно
-
-
-
enatechno отреагировална Fedor K в Удаление Item'ов из ListBox c помощью цикла while
Небольшое уточнение: они не удаляются только на мобильных платформах, т.к. идет вызов DisposeOf:
//смотрим код в unit FMX.Types; procedure TFmxObject.DoDeleteChildren; ... Child := FChildren[I]; FChildren.Delete(I); Child.FParent := nil; Child.SetRoot(nil); Child.DisposeOf; // вот причина ошибки с именем на мобильных платформ, удалене контрола идет не сразу, а при обнулении ссылок ... Для RunTime компонентов лучше в качестве Owner указывать nil и задавать лишь Parent, чтобы уменьшить кол-во ссылок и путаницы.
-
enatechno отреагировална kami в June FSM (FMX SPb Meeting)
небольшой фотоотчет. Будет время - напишу еще и результаты блиц-интервью участников.
Начало встречи.
потом было вот это
ну и эпилог:
на последнем фото, слева направо (без учета z-order): @kami @Error @Nik @Brovin Yaroslav
-
enatechno отреагировална Fedor K в TWebBrowser и неверный ssl сертификат на сайте.
Причина такого поведения довольно простая - java библиотеки FMX часто передают в Delphi только уведомление о событии, без непосредственного влияния на процесс. Открываем библиотеку fmx.jar и смотрим код класса WebClient (package com.embarcadero.firemonkey.webbrowser;):
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { super.onReceivedSslError(view, handler, error);// обработка ошибки происходит здесь по дефолту if (this.mListener != null) { this.mListener.onReceivedSslError(view, handler, error);//передача в Delphi лишь уведомления, что событие произошло } } Одно из решений*:
1. Заменяем** код на:
public void onReceivedSslError(WebView paramWebView, SslErrorHandler paramSslErrorHandler, SslError paramSslError) { if (this.mListener != null) { this.mListener.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//Delphi обработчик } else { super.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//обработчик по умолчанию } } После манипуляций получаем свою версию библиотеки, мой пример здесь (Delphi Berlin).
2. Подключаем библиотеку к проекту (скриншот ниже).
3. Копируем unit FMX.WebBrowser.Android в папку своего проекта и меняем следующие строки:
procedure TAndroidWebBrowserService.TWebBrowserListener.onReceivedSslError( P1: JWebView; P2: JSslErrorHandler; P3: JSslError); begin P2.proceed;//добавляем разрешение для истекших сертификатов FWBService.FailLoadingWithError;//стандартный обработчик OnDidFailLoadWithError end; *Если вариант изменения кода java библиотек совсем не подходит, можно реализовать все средствами Delphi. Для этого создаем свою реализация класса WebViewClient (или WebClient) и задаем его для JWebBrowser:
//все тот же unit FMX.WebBrowser.Android; procedure TAndroidWebBrowserService.InitUIThread; var lClient : TWebBrowserCLientFix;//наш класс begin FJWebBrowser := TJWebBrowser.JavaClass.init(TAndroidHelper.Activity); FJWebBrowser.getSettings.setJavaScriptEnabled(True); lClient := TWebBrowserCLientFix.Create(Self); FJWebBrowser.setWebViewClient(lClient);//меняем на наш класс FListener := TWebBrowserListener.Create(Self); lClient.SetWebViewListener(FListener); //комментируем //FJWebBrowser.SetWebViewListener(FListener); **Замена кода происходит по тому же сценарию, как и создание своих собственных классов на java. Если кому потребуется помощь - пишите, я помогу ответами и примером.
-
enatechno отреагировална sinuke в Посоветуйте, сделать TGrid из TListView. Как добавить кнопку-колонку в ListView
в МодернЛВ есть свойства для отступов. Можно задать верхний отступ для итемов, чтобы в эту область всунуть те же SpeedButton
-
enatechno получил реакцию от Равиль Зарипов (ZuBy) в К знатокам SQL
точнее
WHERE ((FieldDate >= D1) OR (D1 IS NULL)) AND ((FieldDate <= D2) OR (D2 IS NULL))
-
enatechno получил реакцию от Rusland в Параллельные вычисления, System.Threading
Видео (Task, Future, Parallel, WaitForAll etc.)
и на русском
-
enatechno получил реакцию от walexw в К знатокам SQL
точнее
WHERE ((FieldDate >= D1) OR (D1 IS NULL)) AND ((FieldDate <= D2) OR (D2 IS NULL))