Изменить цвет TLabel в приложении FireMonkey для iOS и добавить элементы в TStringGrid? - PullRequest
2 голосов
/ 23 сентября 2011

Мне удалось получить XCode (работающий в качестве виртуальной машины под Windows), отправив приложение XM2 FireMonkey iOS HD на мой (взломанный) iPhone после XE-script-prep (создание папки XCode), с действительным сертификатом компании.

В любом случае, подделка нативных элементов управления какао кажется немного потрепанной, но при этом вы используете кнопку TToolbar (панель со стандартным градиентом iPhone), пару TSpeedButtons (у которых есть эта странная вещь с V-образным уклоном) и TStringGrid почти в сфере базового дизайна приложений для iPhone.

Перетащите TLabel на TToolbar для подписи, и сразу же вы захотите изменить цвет, для которого, похоже, нет свойства. Да, но теперь все зависит от стиля (TLayout). Я слышал, как вы это говорите, но у редактора стилей нет свойства color (color !?) в аспектах TLayout или TText дизайнера стилей.

Обдумав второй вопрос, который так же быстр, я бросил туда TStringGrid и подумал, что я буду динамически устанавливать строки, поэтому я создал строковый столбец, установил RowCount равным 6, а затем установил

Cells[1, n] := 'Row ' + IntToStr(iLoop); 

... без эффекта (я также попробовал Cells [0, n], если это был список с нулями).

Я схожу с ума?

Все еще в затруднении с подключением (как вы разговариваете с чем-либо за пределами iPhone !?), и производительность вращения изображения 48x48 с TFloatAnimation на iPhone 4 была откровенно ужасающей. Но я настроен оптимистично, у нас так далеко!

Ответы [ 2 ]

4 голосов
/ 25 сентября 2011

Это прекрасно работает для меня.

procedure TForm3.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to 6 do
  begin
    StringGrid1.Cells[0,i] := 'Row:' + IntToStr(i);
  end;
end;

Я заметил, что у вас есть и n, и iLoop, который был переменной цикла?

Что касается настройки цвета, то ответ Робертса работает во время разработки, если вы хотите установить его в коде, вы можете сделать Label1.FontFill.Color := TAlphaColorRec.Beige;

лучший способ.

Label1.ApplyStyleLookup;
Label1.FontFill.Color := TAlphaColorRec.White;

Но я думаю, что правильным подходом было бы дать FontFill функцию-установщик, такую ​​как:

function GetFontFill: TBrush;
begin
  if FNeedStyleLookup then ApplyStyleLookup;
  Result := FFontFill;
end;
3 голосов
/ 23 сентября 2011

Чтобы изменить цвет метки, вам нужно использовать стиль.

Щелкните правой кнопкой мыши по компоненту и выберите «Редактировать | Пользовательский стиль ...»

Затем разверните Tlayout, чтобы найти ивыберите TText

Затем настройте свойство Fill для изменения цвета.

...