Перейти к содержанию
Fire Monkey от А до Я

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

    2 517
  • Зарегистрирован

  • Посещение

  • Победитель дней

    264

Активность репутации

  1. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Rad Studio   
    Запускаете проект с отладкой. Когда среда поменяет свой вид на Debug, перетаскиваете среду на требуемый монитор. Сохраняете выбранное расположение, путем нажатия на кнопку Save current desktop .png]
  2. Like
    Равиль Зарипов (ZuBy) получил реакцию от Евгений (KeeperWorld) в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  3. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Запрос на закрытие приложения при нажатии кнопки Назад   
    заменить незнаю можно или нет, но расположение зависит от самого девайса
  4. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в SuperObject vs JSON   
    работать с XSO гораздо удобнее, а уж читать код - вдвойне
    и там разные штуки типа фильтров встроены
    а еще при сериализации например в этом случае, XSO хорошо и удобно работает с TObjectList, а System.JSON - нет
    и атрибуты при сериализации - крайне удобная вещь
    и то, что EMRO никогда не переплюнет 
    автор исправляет замечания прямо за пару дней )))
  5. Like
    Равиль Зарипов (ZuBy) отреагировална Andrew в Смещается заголовок формы на Android Intel   
    Нашел и устранил последнюю проблему планшета Lenovo TAB S8-50LC (CPU Intel Atom). Не исключаю, что подобная проблема возникает и на других устройствах.
     
    При изменении ориентации устройства картинка поворачивается моментально. Возможно поэтому в 9 случаях из 10 программа не успевала на это правильно реагировать и форма в портретной ориентации отображалась как альбомная и наоборот. В общем, это выглядело крайне неприятно:
     

     
    Нужно в процедуре "TPlatformAndroid.HandleAndroidCmd(ACmd: Int32);" найти строки:
    ===============
    APP_CMD_CONFIG_CHANGED:
    begin
    FContentRectMightHaveChanged := ContentRectChangeRefreshCount;  // <<---- !!!!
    FOrientationMightHaveChanged := True;
    Include(FAppCmdStates, TAndroidAppCmdState.ConfigChanged);
    end;
    ===============
    и в отмеченной строке умножить ContentRectChangeRefreshCount на 3 или 4: FContentRectMightHaveChanged := ContentRectChangeRefreshCount * 4;
     
    После этой поправки и исправлений от "Magnum Labs" (см. выше) форма отображается правильно, сколько планшет не крути. На скорость работы приложения это никак не отразилось. Проверялось также на нескольких аппаратах Samsung.
     

     
    Если будет интересно, в следующий раз расскажу как устранить проблему ненужного появления NavigationBar если кликнуть по TMediaPlayerControl или TWebBrowser, а также странной анимации появления/скрытия указанных компонент при изменении их свойства Visible. Проблема с NavigationBar касается устройств, у которых имеется SoftKey.
  6. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в SuperObject vs JSON   
    Привет Всем!
     
    Решил поделится впечатлениями по работе с SuperObject'ом и родным JSON'ом
     
    тест был файла с 2000+ объектами в JSON файле
    структура файла была такая
    { "status":"OK", "last_id":"711", "objects":[ { "obj_id":"1", "obj_acc_id":"1", "obj_cat_id":"24", "obj_title":"13 магистраль", "obj_descr":"ЖК представляет собой комфортный дом, состоящий из 14 блок-секций (подъездов). Расположен в перспективном развивающемся районе по 13 Магистрали с удобным выездом как на левый берег, так и в старую часть города. Вблизи Жилого комплекса распологается новая школа, парк отдыха и культуры.", "obj_address":"ул. Мамышулы - 104, д. 16\/1", "obj_address2":null, "obj_url":"3fa07dd73be072b049529c80c7d74732", "obj_planet":"1", "obj_country":"1", "obj_region":"1", "obj_city":"292", "obj_lat":"51.141", "obj_lon":"71.4835", "obj_insert_dt":null, "obj_update_dt":null, "obj_editted":"0", "obj_updated":"0", "obj_deleted":"0", "obj_showed":"1", "obj_rating":"0", "obj_pro_top":"0", "obj_pro_selected":"0", "obj_pro_unix_dt":"0", "obj_partner":"0", "obj_parent_id":"0", "obj_has_child":"0", "obj_currency":"0" }, // тут далее 2000+ объектов ] } SuperObject  Время выполнения:  ~01:393
    JSON родной Время выполнения: ~01:690
     
    разница не особо ощутима, тем более если будет меньше объектов
     
    JSON родной
    function JSONParse(const aJSONData: string; const aMemo: TMemo): boolean; var aJSValue: TJSONValue; aJSObject, aJSObjArr: TJSONObject; aJSArray: TJSONArray; I: integer; begin Result := false; aJSValue := TJSONObject.ParseJSONValue(aJSONData) as TJSONValue; if Assigned(aJSValue) then begin aJSObject := aJSValue as TJSONObject; aMemo.Lines.Add('status: ' + aJSObject.GetValue('status').Value); if aJSObject.GetValue('status').Value = 'OK' then begin Result := true; if Assigned(aJSObject) then begin aJSArray := aJSObject.GetValue('objects') as TJSONArray; if Assigned(aJSArray) then begin Result := true; aMemo.Lines.Add('last_id: ' + aJSObject.GetValue('last_id').Value); aMemo.Lines.Add('count: ' + aJSArray.Count.ToString); for I := 0 to aJSArray.Count - 1 do begin aJSObjArr := aJSArray.Items[I] as TJSONObject; if Assigned(aJSObjArr) then begin aMemo.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' + aJSObjArr.GetValue('obj_cat_id').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_title').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_descr').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_address').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_url').Value); end; end; end; end; end; aJSValue.Free; end; end; SuperObject
    function JSONSOParse(const aJSONData: string; const aMemo: TMemo): boolean; var xObject: ISuperObject; xCount, I: integer; sfmt: string; begin Result := false; xObject := SO(aJSONData); aMemo.Lines.Add('status: ' + xObject['status'].AsString); if xObject['status'].AsString = 'OK' then begin Result := true; xCount := xObject['objects'].AsArray.Length; aMemo.Lines.Add('count: ' + xCount.ToString); aMemo.Lines.Add('last_id: ' + xObject['last_id'].AsInteger.ToString); for I := 0 to xCount - 1 do begin aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_acc_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_cat_id"'].AsInteger.ToString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_title"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_descr"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_address"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_url"'].AsString); end; end; end; Разница ощутима когда пишешь код, SO намного легче читать
     
    Подробней почитать и скачать SO
  7. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  8. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в Кодировка под Android   
    если честно, не хочется подсказывать как не надо делать 
    лучше подсказывать, куда смотреть для решения задач хранения структурированных данных
    например для ini файла можно вот

    или
    воспользоваться https://github.com/onryldz/x-superobject
    там все понятно на примерах и очень удобно
  9. Like
    Равиль Зарипов (ZuBy) получил реакцию от amok в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  10. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Описание TfgToast - Быстрые уведомления   
    Описание:
    Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения Поддерживаемые платформы: Android, iOS Демо проект: Samples\ToastsDemo\ToastsDemo.dproj Доступен с версии: RX (R100) Возможности:
    Несколько быстрых способов отображения уведомления: TfgToast.Show(Message) - только текст TfgToast.Show(Message, Icon) - текст и картинка TfgToast.Show(Message, Duration)  текст + настройка длительности отображения TfgToast.Show(Message, Duration, Icon) - текст + картинка + длительность отображения Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor) Доступно редактирование цвета сообщения (TfgToast.MessageColor). Возможность добавить к сообщению иконку (TfgToast.Icon) Доступно редактирование длительности отображения уведомления (TfgToast.Duration) Возможность менять глобальные параметры отображения всех тостов в рамках приложения (TfgToast.DefaultBackgroundColor, TfgToast.DefaultMessageColor и TfgToast.DefaultPadding) Примеры вызова:
    // Быстрое отображение, только текст TfgToast.Show('Message'); // Быстрое отображение, текст + картинка TfgToast.Show('Message', Bitmap); // Настраиваемое отображение var Toast: TfgToast; begin Toast := TfgToast.Create(EditToastMessage.Text, TfgToastDuration(ComboBoxDurationType.ItemIndex)); try if SwitchShowIcon.IsChecked then Toast.Icon.Assign(Image1.Bitmap); Toast.MessageColor := ColorComboBoxMessage.Color; Toast.BackgroundColor := ColorComboBoxBackground.Color; Toast.Show; finally Toast.Free; end; end; Скриншоты:


  11. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Семисегментный индикатор   
    Добрый день, Юрий,
     
    Красота. Хороший компонент. Возможно вам пригодятся пара замечаний по портированию с VCL на FMX, которые помогу вам сделать ваш компонент еще лучше.
    Когда вы выполняете отрисовку в перекрытом методе TControl.Paint, не надо вызывать BeginScene и EndScene. Так как этими методами руководит сцена, обычно это форма.
    procedure TSeparator.Draw(px1, py1, px2, py2: Single; pColor: TAlphaColor; Opac: Single); var MyRect: TRectF; begin MyRect := TRectF.Create(px1, py1, px2, py2); with Canvas do begin [b] BeginScene; // <!--- Не нужно[/b] Fill.Kind := TBrushKind.Solid; Fill.Color := pColor; FillRect(MyRect, 0, 0, AllCorners, Opac); [b]EndScene; [/b][b]<!--- Не нужно[/b] end; Canvas end; Дополнительно:
    1. Инициализацию точек для полигона можно сделать сразу на прямую. 
    Было:
    // Установить точки, определяющие многоугольник p1 := TPointF.Create(px1, py1); p2 := TPointF.Create(px2, py2); p3 := TPointF.Create(px3, py3); p4 := TPointF.Create(px4, py4); p5 := TPointF.Create(px5, py5); p6 := TPointF.Create(px6, py6); // Создать полигон SetLength(MyPolygon, 6); MyPolygon[0] := p1; MyPolygon[1] := p2; MyPolygon[2] := p3; MyPolygon[3] := p4; MyPolygon[4] := p5; MyPolygon[5] := p6;  Стало:
    MyPolygon := [TPointF.Create(px1, py1), TPointF.Create(px2, py2), TPointF.Create(px3, py3), TPointF.Create(px4, py4), TPointF.Create(px5, py5), TPointF.Create(px6, py6)]; При этом для динамических массивов перед присваивание не нужно  вызывать функцию SetLength. Экономия места и 6 переменных.
     
    2. Сравнение вещественных чисел должно осуществляться при помощи функции System.Math.SameValue. Это касается всех мест в этом юните. В противном случае у вас могут быть фантомные ложные срабатывания условий, которые найти будет сложно.
    Было:
    procedure TSevSeg.SetCellSpace(const Value: Single); begin if Value = CellSpace then exit; FCellSpace := Value; end; Стало:
    procedure TSevSeg.SetCellSpace(const Value: Single); begin if SameValue(Value, CellSpace) then exit; FCellSpace := Value; end;
  12. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в [RX] [FGX] Описание версии 0.7.0.69   
    Ссылка на скачивание (Только для RAD Studio RX): fgx_0.7.0.69.zip
    Инструкция по установке: "Инструкция по установке набора компонентов FGX"
    Описание
    Эта версия включает в себя следующий набор компонентов:
    Дизайнер итемов (NEW) - дизайнер итемов. TfgToast (NEW) - класс отображения быстрых сообщений TfgFlipView (UPDATED) - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D  TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink  TfgProgressDialog (UPDATED)- Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED)- компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet - Аналог контекстного меню для мобильных платформ. TfgColorsPanel (UPDATED)- Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel  - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений
    TfgActionSheet: Исправлена ошибка не позволяющая использовать действия TTakePhotoFromCameraAction и TTakePhotoFromLibraryAction под iOS. Исправлена ошибка приводящая к AV, если экшен не имел обработчика OnExecute (Android, iOS) Исправлен внешний вид под iOS. Раньше, если TfgActionSheet не содержал заголовка, сверху система все равно оставляла под него пустое место. Теперь если заголовка нет, то место не выделяется. Обновлен пример ActionSheetDemo TfgProgressDialog, TfgActivityDialog: Добавлено свойство Cancellable, позволяющее сделать диалог отменяемым по нажатию на экран или кнопку Back. Добавлено событие OnCancel, вызываемое, если пользователь отменил диалог. Обновлен пример. Теперь все операции выполняются в отдельном потоке, асинхронно. Добавлен метод IsShown, позволяющий определить, показан диалог или нет Добавлено свойство TfgOrigressDialog.Max, позволяющее указать максимальное значение прогресса. Улучшена генерация имени действия. Если прикрепляется системный экшен TSysCommonAction, то имя берется из CustomText  TfgFlipView: Добавлено пролистывание при помощи жестов. Добавлена опция ShowNavigationButtons, позволяющая скрыть кнопки смены слайдов Добавлено событие OnImageClick, позволяющее отследить нажатие пользователем на слайд Обновлен пример для корректной работы на всех платформах. Исправлена ошибка слайдшоу, приводящая к невозможностью контролировать и менять параметры слайдшоу. Изменен курсор на руку TfgColorsPanel, TfgGradientEdit: Добавлены пропущенное свойство Size в секции published.
  13. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alex7wrt в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  14. Like
    Равиль Зарипов (ZuBy) получил реакцию от Pax Beach в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  15. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  16. Like
    Равиль Зарипов (ZuBy) получил реакцию от Martifan в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  17. Like
    Равиль Зарипов (ZuBy) получил реакцию от master webs в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  18. Like
    Равиль Зарипов (ZuBy) отреагировална Vitaldj в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.   
    Сообщение для клиентов и партнеров от IDERA
     
    Здравствуйте,
    Я Ренди Якобс, CEO компании IDERA, Inc. Вы, скорее всего, видели новости в прессе о приобретении Embarcadero компанией IDERA. Вот ссылка на эту новость, если вы еще ее не видели. 
    Мы приглашаем Вас присоединиться к сообществу IDERA и продолжить успешную историю лидера рынка продуктов для разработчиков и специалистов по базам данных. Я хочу представить компанию IDERA и объяснить, почему мы в восторге стать владельцами Embarcadero
    IDERA работает более, чем с 10000 клиентами по всему миру, предоставляя им решения для мониторинга производительности баз данных, приложения и технологическую инфраструктуру. Мы уверены, что специалисты по базам данных имеют определяющее влияние на общую технологическую эффективность и оцениваем наш подход, как ориентированный на данные. Наши продукты позволяют быстро идентифицировать и исправить проблемы с производительностью по всему стеку используемых технологий, при этом обеспечивая уникальные возможности поддержки безопасности и согласованности.
    Я был назначен CEO в 2013 году и с этого времени я всегда был сфокусирован на долгосрочных отношениях с заказчиками, основой которых были инновационность, качество и простота использования продуктов. Я верю в то, что успешные софтверные компании всегда ориентированы на успех клиента, обеспечивая:
    Программное обеспечение высокого качества – полное тестирование кода, с использованием автоматической генерации тестов Простоту в использовании – интуитивно понятные интерфейсы, особенно процесс установки/обновления  Скорость работы приложений – минимальные задержки, хорошую масштабируемость, аналитику в реальном времени Клиенты всегда будут довольны производителями ПО, соответствующего этим критериям. Выпуск продуктов, сфокусированных на приоритетных инновациях и возможностях, по надежному графику, улучшает взаимоотношения с клиентами, являясь основой их успеха. IDERA инвестирует в технологии по этому принципу, и этот принцип будет также распространяться на продукты Embarcadero.
    Как известно, Embarcadero имеет две отдельные линейки продуктов: 1) продукты для кроссплатформенного моделирования, администрирования и оптимизации баз данных и 2) решения для разработки приложений для множества платформ. За эти годы количество клиентов Embarcadero достигло 10000, а количество пользователей исчисляется миллионами, включая практически полный список Global 2000. Embarcadero имеет представительства по всему миру и партнеров практически в каждой крупной стране. 
    Продукты Embarcadero для моделирования, администрирования и управления производительностью баз данных отлично дополняют продукты IDERA с минимальным пересечением в функциональности и назначении. После объединения обеих компаний, мы сможем предложить специалистам в области данных исчерпывающее решение для управления, использования и защиты данных для любой компании.    Мы будем благодарны обратной связи от клиентов по интеграции этих продуктов, чтобы быть уверенными в соответствии нашим принципам простоты использования, качества и масштабируемости.
    Что касается средств разработки Embarcadero, то это для нас новая возможность. На нескольких форумах разработчиков мне были заданы прямые вопросы относительно будущего этих продуктов. Я хочу подчеркнуть, что мы воспринимаем эти продукты как огромную ценностью. Так как приложения распространяются сквозь платформы и другие каналы, потребность в инструментах для создания следующих поколений приложений будет расти. Такие технологии, как Интернет вещей или использование в приложениях маячков, не существовали всего несколько лет назад.  Сегодня уже каждый видит возможность создания приложений для устройств, которые упрощают и улучшают жизнь людям.  Мы верим в то, что лидер рынка средств разработки должен ориентироваться на разработчиков и отличаться скоростью выпуска новых решений, простотой использования и темпами изменений.
    В связи с этим, мы сформировали новую команду, которая будет сфокусирована только на средствах разработки Embarcadero. Их задача – обеспечить темпы роста за счет инноваций и возможностей M&A. Мой коллега, Атанас Попов, возглавил данное направление.  Атанас будет уделять внимание росту бизнеса и инвестициям для привлечения еще большего количества клиентов. Мы считаем, что средства разработки имеют большой потенциал и мы с нетерпением ждем работы с вами, чтобы расставить приоритеты для наших инвестиций.
    Embarcadero потратила годы на построение надежной партнерской сети. Многие компании мечтают о создании подобной сети партнеров, но потратив время и силы разочаровываются. Но если упорство компании позволило это сделать, результаты и потенциал будут значительны. Embarcadero работает с десятками глобальных партнеров. Для поддержания здоровой партнерской сети требуются больше отличных продуктов и стабильный интерес к приобретению со стороны потенциальных клиентов. Мы собираемся не только познакомить партнеров Embarcadero с продуктовым портфелем IDERA, но и вовлечь маркетинговую команду IDERA в диалог с клиентами. Мы полагаем, что умеренные изменения и инвестиции расширят пространство возможностей для наших партнеров, работающих с клиентами по всему миру.  
    C точки зрения взаимодействия с заказчиками, мы основываемся на публикации планов выпуска продуктов для активных заказчиков и поддержку диалога с теми, кто хочет внести свой вклад.  Мы верим, что сообщества пользователей приносят пользу, и будем развиваться соответственно. Мы также полагаем, что это изменит возможности инноваций и увеличит ценность для наших пользователей. Мы остаемся верны этим принципам стремимся к работе с вами для каждодневного улучшения, и чтобы помочь вам получить ожидаемое.
    Если у Вас есть вопросы, присылайте их, пожалуйста, на randy.jacops@idera.com.
    При наличии 20 000 клиентов, практически невозможно поддерживать прямой диалог с каждым, но мы ответим на вопросы. Что более важно, мы будем присылать Вам «дорожные карты», информацию о вебинарах и другой контент, который сможет Вас заинтересовать. Я призываю Вас принимать участие во всех мероприятиях, чтобы отношения стали взаимно полезными.
    Спасибо за вашу работу! Надеемся на дальнейшее сотрудничество! 
    С уважением,
    Randy Jacops
    CEO, IDERA, Inc.
  19. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.   
    Я так скажу, пока ничего не ясно, что да как. И даже в этой статье кроме упоминания о продажах ничего нет конкретного. Я имею в виду про развитие продуктов.
  20. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?   
    Какая у вас версия среды?
    По идеи ничего больше не нужно:

    Да, это работает только для Windows, для остальных платформ посмотрите: Средства логирования в FireMonkey
  21. Like
    Равиль Зарипов (ZuBy) отреагировална Tera в Семисегментный индикатор   
    Компоненты TSevSeg - семисегментный индикатор и TSeparator - разделитель.
    Переписал компоненты с VCL. Может, кому пригодится. Пример использования:
     

     
    Для разового использования можно просто подключить к проекту как модуль.
     
    SevenSegment.zip
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в [TidIPWatch] Узнаём локальный IP   
    можно использовать вот это
  23. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?   
    Еще в FMX достаточно использовать Log.d. При этом сообщения будут выводиться в окно IDE Messages.
  24. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Реализовать свою маску в Edit   
    как напишете такой обязательно поделитесь))
  25. Like
    Равиль Зарипов (ZuBy) получил реакцию от dnekrasov в Реализовать свою маску в Edit   
    uses maskUtils
    Edit1.Text :=  MaskDoFormatText('000.000.000.000;#0',Edit1.Text, #0);
×
×
  • Создать...