• 0
notricky

Стандартные константы цветов не работают (TAlphaColorRec.cRed)

Вопрос

Почему-то не возможно использовать константы цветов, заданные в TAlphaColorRec, TColorRec.

Они есть, но при присвоении, например, TextSettings.Font.Color = TColorRec.cRed или TAlphaColorRec.Red ничего не происходит. Нужно явно задавать $FFFF0000.

Если так у кого-то ещё, напишите.

А если что-то можно с этим сделать - тоже :)

Изменено пользователем notricky

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 ответ на этот вопрос

  • 0

Все работает как положено, просто для текстовых элементов нужно убирать зависимость от стиля

TEdit.StyledSettings := TEdit.StyledSettings - [TStyledSetting.FontColor];

и после этого присвоить цвет

Andrey Efimov понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: notricky
      На Android код, который работает исправно на Win  вызывает ошибку "CalledFromWrongThreadException: Only the original thread that created a view hierarcy can touch its views" 
      Смысл таков, что я пытаюсь показать форму из треда, у которой BorderStyle=none (роли это не играет).
      Решение в Андроиде заключается в том, чтобы пускать через  runOnUiThread  (то есть выполнять интерфейсные штуки в главном потоке). Как я понимаю, в firemonkey эту фичу должен выполнять Synchronize().
      Тем не менее, ошибка возникает.
      А при запуске в режиме дебага на андроид девайсе событие кнопки вообще не срабатывает иногда. А если срабатывает, то возникает описанное выше исключение.
      Я собрал тестовый пример и в нем не сразу видна ошибка, тогда как получил я ее на рабочем проекте.
      Цель: показать бизибокс на время бекграундных действий. Этот бизибокс у меня сначала был просто на каждой форме и я интерфейсно его вызывал, но теперь решил сделать отедльной формой (как и тоаст), но почему так происходит я не понял. Вы что скажете?
       
      unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TWorkThread = class(TThread) public procedure Execute; override; end; var Form1: TForm1; implementation {$R *.fmx} uses unit2; procedure TForm1.Button1Click(Sender: TObject); var t: TWorkThread; begin t := TWorkThread.Create(True); t.FreeOnTerminate := true; t.Start; end; { TWorkThread } procedure TWorkThread.Execute; begin inherited; Self.Synchronize(procedure begin Form2.Show; Form2.Top := Form1.Top; Form2.Left := Form1.Left; Form2.BringToFront; end); Terminate; end; end.  
    • Автор: notricky
      Почему-то код, исправно работающий для WIN, не работает на ANDROID.
      procedure AssignEventToComponent(C: TComponent; MethodName: String; const Evt: TNotifyEvent; OnlyIfNil: boolean = true); var M: TMethod; begin M := GetMethodProp(C,MethodName); if not OnlyIfNil or (M.Code = nil) then begin TNotifyEvent(M) := Evt; SetMethodProp(C,MethodName,M); end; end; Есть какие-то особенности работы TMethod для ANDROID?
    • Автор: Рагим
      Доброго времени суток. Имеется старый проект написанный на VCL. Хочу его перевести на FMX и столкнулся с тем, что не могу воспроизвести SWF. Компоненты Flash установлены и видны под VCL, а под FMX нет.
    • Автор: Евгений Корепов
      Возникла задача поиска (фильтрации) в ListView по нескольким критериям. К примеру нужно искать по Item.Text, Item.Detail и Item.Date['Category']. Пошел путем, ранее подсказанным на этом форуме - правкой "function TListViewItems.ApplyFilter: Boolean" в FMX.ListView.pas. Передавать строку поиска хотел в строке типа "Text=Пеньки&Detail=по три рубля&Category=Осиновые", но быстро понял что код превращается в одноразовую кашу, а хотелось сделать красиво и на будущее.
      Сделал так - добавил еще один тип "TFilterPredicateEx = TPredicate<TListViewItem>;", к существующему "TFilterPredicate = TPredicate<string>;" в TListViewItems. Ну и далее по списку добавил аналоги к переменным, функциям и property.
      Смысл в том чтобы вместо обычного бутылочного горлышка в фильтации:
      ListView.Items.Filter:= function(X: string): Boolean begin Result := AFilterText.IsEmpty or X.ToLower.Contains(AFilterText.ToLower); end; иметь мощный инструмент с доступом ко всем плюшкам TListViewItem. Теперь это выглядит вот так:
      type TListViewFilterEx = record Category : String; Name : String; end; ... Var AFilter : TListViewFilterEx; // это для удобства хранения фильтров в одном месте ... AFilter.Category:='Береза'; AFilter.Name:='Пеньки'; AListView.Items.FilterEx:= function(X: TListViewItem): Boolean begin Result:= (AFilter.Category.IsEmpty or X.Data['Category'].AsString.ToLower.Contains(AFilter.Category.ToLower)) And ((AFilter.Name.IsEmpty or X.Text.ToLower.Contains(AFilter.Name.ToLower)) or (AFilter.Name.IsEmpty or X.Detail.ToLower.Contains(AFilter.Name.ToLower))); end; Подозреваю что все это можно было сделать с помощью хелперов, но до их освоения руки никак не дойдут. Если кто то сделает хелпер, дабы не править FMX.ListView.pas, буду очень благодарен.
      Внимание! FMX.ListView.pas от Delphi XE8, к другим версиям думаю не подойдет.
      Прилагаю дополненный FMX.ListView.pas к сообщению.
      FMX.ListViewWithFilterEx.zip
    • Автор: Евгений Корепов
      При публикации нового приложения я обнаружил исчезновение Google Cloud Messaging из консоли разработчика, теперь вместо него Firebase Cloud Messaging. 
      Как я понимаю возможность push сообщений для Delphi закончилась? Или как то можно прикрутить FCM к проекту на Delphi?
    • Автор: uuxyyz
      Коллеги, добрый день. Отписался сегодня по выходу XE8, но решили таки продолжить мытарства. Вопрос, кто нибудь может подсказать, как собрать 64 битное IOS приложение? Сегодня установили XE8, линковщик требует libsqlite3.a и все. 
    • Автор: Рагим
      Доброго времени суток.
       
      Есть приложение которое на некоторые действия пользователей отвечает звонком. Приложение живет со времени Delphi 7. Для воспроизведения звука использую такую процедуру:
       
      Procedure Tform1.PlayRing; var s:string; begin  s := 'ringin.wav';  if FileExists(s) then   begin   form1.MediaPlayer1.Stop;   form1.MediaPlayer1.Clear;   form1.MediaPlayer1.FileName:=s;   form1.MediaPlayer1.Play;   end   else showmessage('Error 104: File not found: '+s);     end;   Звук воспроизводится нормально 50-60 раз. Потом либо выскакивает ошибка: Unsupported media file ringin.wav, либо приложение подвисает. Проблема появилась после перехода с VCL на FMX.
    • Автор: mader
      Здравствуйте, подскажите пожалуйста, есть ли такая библиотека или Апи, для перехвата звонков.
       
      Необходимо следующее, когда пользователь звонит или ему звонят, необходимо отправить сигнал в PHP, В начале звонка и в конце звонка, а так же отправить номер телефона. кто звонил и кому звонили.
      как-то так.
       
      Возможно ли реализовать на Делфи? Установил себе XE8.
      Не хотелось бы пистаь на Java? Там все как-то сложно, хотелось бы на Делфи.
       
       
    • Автор: Евгений Корепов
      Задача следующая - добавить анимацию в ListBoxItem по клику, ListBoxItem может быть несколько десятков. Создавать для каждого Animation накладно.
       
       
      Update:
      Нашел решение в теме http://fire-monkey.ru/topic/1073-smena-roditelskogo-komponenta-dlia-animatora/ :
      но мне нужно также событие AnimationFinish, по нему происходит смена содержимого ListBox. (Пишу компонент файл-менеджера для одного проекта).
       
      Update:
      Вроде нашел решение, все работает. Подскажите корректно ли я это делаю? 
       
      procedure TFormMain.FormCreate(Sender: TObject); begin   FloatAnimation.Parent:=Nil;  // FloatAnimation создан в дизайнатйме, лежит на форме, поэтому нужно так сделать.   FloatAnimation.Enabled:=False; end; procedure TFormMain.ListBoxFilesItemClick(const Sender: TCustomListBox;  const Item: TListBoxItem); begin   CurrentItem:=Item;   if CurrentItem.Tag=1 then // Смена папки   begin     FloatAnimation.Parent:=Item;     FloatAnimation.PropertyName:='Opacity';     FloatAnimation.Enabled:=True;     FloatAnimation.Start;   end; end; procedure TFormMain.FloatAnimationFinish(Sender: TObject); begin   FloatAnimation.Enabled:=False;   FloatAnimation.Parent:=Nil;   FillListBoxFile(CurrentItem.TagString); end; Причем без этого куска кода:
        FloatAnimation.Enabled:=False;   FloatAnimation.Parent:=Nil; работать не хочет. 
      Хотя работает и ладно... ;-)
       
       
    • Автор: umkes
      Если кому не трудно, объясните почему вместо значения переменной при дебаге я вижу такое сообщение: "Error reading address 0x0: No error".
       

       
      Дебажу на андроиде, делфи ХЕ 8.
      Нормально ли это?
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу