Danke,
das ganze ist nicht optimal. Im Prinzip müsste man TTileItem zu einer einfachen TObject-Klasse ändern, TTileRow durch TTileRow = class(THorzScrollBox) ersetzen und die Items in dem OnPaint Ereignis zeichnen.
Die Steuerung habe ich bis jetzt nur im Ansatz drin.
Delphi-Quellcode:
case Key of
vkOk, vkReturn:
begin
if FGrid.ItemIndex <> -1 then
with FGrid.Items[FGrid.ItemIndex] do
if assigned(Items[ItemIndex].OnClick) then
Items[ItemIndex].OnClick(Items[ItemIndex]);
end;
vkUp:
begin
FGrid.ItemIndex := FGrid.ItemIndex - 1;
if FGrid.Items[FGrid.ItemIndex].Count = 0 then
FGrid.ItemIndex := FGrid.ItemIndex - 1;
end;
vkDown:
begin
FGrid.ItemIndex := FGrid.ItemIndex + 1;
if FGrid.Items[FGrid.ItemIndex].Count = 0 then
FGrid.ItemIndex := FGrid.ItemIndex + 1;
end;
vkRight:
if FGrid.ItemIndex <> -1 then
FGrid.Items[FGrid.ItemIndex].ItemIndex := FGrid.Items[FGrid.ItemIndex]
.ItemIndex + 1;
vkLeft:
if FGrid.ItemIndex <> -1 then
FGrid.Items[FGrid.ItemIndex].ItemIndex := FGrid.Items[FGrid.ItemIndex]
.ItemIndex - 1;
Schöner wäre das natürlich in der Komponente.
Das ganze funktioniert genauso wie bei den Android TV Geräten. Die Tiles stellen Sender, Videolinks oder was auch immer dar und man kann diese wählen. Vielleicht hat ja jemand eine Idee das als "saubere" Klasse umzuwandeln. Ich bin mir sicher hier im Forum gibt es mehr als einen (@Mavarick) der mit so etwas Erfahrung hat
Peter