Хотя я пытаюсь создать собственный список, например, образец, предоставленный embarcadero, он выглядит отлично, но для мобильных приложений мне нужно создать пользовательский элемент списка, но когда я щелкнул правой кнопкой мыши на любом элементе управления в моей форме У меня нет возможности редактировать собственный стиль. мне нужно мое мобильное приложение, чтобы сделать какой-то настроенный элемент списка, чтобы показывать 2 изображения и 2 текста в каждом элементе. любой совет?Delphi XE5 Firemankey mobile custom listbox
ответ
Вы не можете использовать «Редактировать пользовательский стиль/стиль по умолчанию» в приложении FM-приложения.
Я нашел байпас, вы можете загрузить любой стиль VCL в конструктор стилей Bitmap и сохранить его как стиль FireMonkey. Мне это нравилось несколько раз, некоторые элементы поведения в некоторых элементах управления ... но если вам нужно всего 2 или 3 типа управления в вашем приложении, вы можете попробовать, вероятно, с успехом.
В стиле VCL вы можете добавить 2 TText и 2 компонента TImage внутри другого элемента управления.
Для дефолта в приложении Android вы можете использовать только светлый и темный стиль по умолчанию, но я перехожу к Android Style, также включенному в IDE синим и зеленым стилями Metropolis и выглядит как работает нормально.
Управление каплями в элементы списка, но вы хотите, как и с любым другим элементом управления. Например, вы можете сделать что-то вроде:
ListBox.items.add(''); // blank Text which normally acts as title
BoxItem := ListBox.ListItems[ListBox.Items.Count-1];
NewTitle := TText.create(nil);
NewTitle.Text := 'New Orange Title';
newTitle.color := TAlphaColors.Orange;
NewTitle.parent := BoxItem;
NewTitle.Align := TAlignLayout.Client;
Ответ Иорданской Сети работает очень хорошо. Я взял на себя смелость распространить его пример:
Управление каплями в список Элементы, которые вы хотите, как и любой другой элемент управления. Для быстрого примера, вы можете сделать что-то вроде:
ListBox.items.add(''); // blank Text which normally acts as title
BoxItem := ListBox.ListItems[ListBox.Items.Count-1];
NewTitle := TText.create(nil);
NewTitle.Text := 'New Orange Title';
newTitle.color := TAlphaColors.Orange;
NewTitle.parent := BoxItem;
NewTitle.Align := TAlignLayout.Client;
к:
Пример с одного изображения и два текстовых объектов
procedure TForm10.Button1Click(Sender: TObject);
var newtitle : Ttext;
boxitem : tlistboxitem;
newimage : timage;
tw : single;
begin
ListBox1.items.add('');
BoxItem := ListBox1.ListItems[ListBox1.Items.Count-1];
newimage := timage.create(nil);
newimage.width := 24;
newimage.height := 24;
newimage.bitmap := Image1.Bitmap;
Newimage.Align := TAlignLayout.Left;
newimage.parent := BoxItem;
Newimage.HitTest := false; // otherwise you can't select the listitem
tw := (ListBox1.Width - newimage.Width)/2;
NewTitle := TText.create(nil);
newtitle.TextSettings.Font.Style := [TFontStyle.fsBold];
NewTitle.Width := tw; //Set width to avoid partial text
Newtitle.Margins.Left := 5;
NewTitle.Text := 'New Orange Title ' + ListBox1.Items.Count.ToString ;
NewTitle.TextSettings.HorzAlign := TTextAlign.Leading;
newTitle.color := TAlphaColors.Orange;
NewTitle.parent := BoxItem;
NewTitle.Align := TAlignLayout.Left;
NewTitle.HitTest := false; //otherwise you can't select the listitem
boxitem.TagString := NewTitle.Text; //the required string when clicking the listitem
NewTitle := TText.create(nil);
NewTitle.Width := tw;
NewTitle.Text := 'New Green SubTitle ' + ListBox1.Items.Count.ToString;
NewTitle.TextSettings.HorzAlign := TTextAlign.Leading;
newTitle.color := TAlphaColors.Green;
NewTitle.parent := BoxItem;
NewTitle.Align := TAlignLayout.right;
NewTitle.HitTest := false;
end;
procedure TForm10.ListBox1Change(Sender: TObject);
begin
label1.Text := listbox1.Selected.TagString;
end;
это правильный путь все должно работать? потому что даже в настольных приложениях, когда я пытаюсь редактировать пользовательский элемент, иногда я получаю ошибки ... Я думал, что проблема у меня на стороне, но похоже, что embarcadero выпустил приложение для мусора без альфа-и бета-тестов ... – user3001414
вы правы, Я работаю над XE5 в своей работе ... для меня это как бы получение опыта ... включайте и выключайте IDE 10 раз в день :), но если мне нужно сделать это, я должен это сделать ... – user30993174444