Hatte vorgestern angefangen nach dem einen Sonderfall zu suchen und hab ihn sogar gefunden (grade gesehen dass er gefunden wurde)
Delphi-Quellcode:
TListBoxItem = class(TTextControl, IGlyph)
function GetDefaultStyleLookupName: string; override;
function DoGetDefaultStyleLookupName(const Defaults: TListBoxItemStyleDefaults): string; virtual;
function TListBoxSeparatorItem.GetDefaultGroupHeaderStyle: string;
begin
if ListBox <> nil then
case ListBox.GroupingKind of
TListGroupingKind.Plain:
Result := 'listboxplainheader'; // do not localize
TListGroupingKind.Grouped:
Result := 'listboxgroupheader'; // do not localize
end;
end;
Ach da kommt mir in den Sinn, ich habe diese "do not localize" Kommentare gestern noch öfters beim durchstöbern neben hardgecodedeten Komponentennamen gesehen... Ich war aber so Müde, ich dachte das würde sowas heissen wie "nicht in andere Sprache übersetzen" heissen...
Naja, wenn du mit grep o.ä. die FMX lib mit dem Kommentar durchsuchst scheinen noch mehr solcher Fälle vorzukommen... Weiss jetzt nicht genau was du vorhast und wie weit du die Styles <-> Komponentenzuweisung automatisieren willst. Du siehst selbst, Emba macht das alle von Hand und scheint selbst Probleme damit zu haben Ihre Komponenten in Ihrem System richtig zu konfigurieren und aktuell zu halten
Da im TStyleBook export auch nicht mehr als der "StyleName" bei Custom Styles steht hat die
IDE auch nicht einfach so genaues Wissen darüber welche custom style nun wirklich für welche Komponenten gedacht sind. Mein Vorschlag wäre eigentlich gewesen semantisch in den Style Controls im TStyleBook zu suchen welche Komponente "so genau wie mölich" zur Definition bzw Regeln der Komponente passen und Sie dort anzeigt, ist auch nicht wirklich brauchbar, denn du könntest ja ein Button auch einfach nur mit einer 'text' Komponente definieren, da weiss man schon wieder nicht genau/automatisch in welche Komponente es wirklich reingehört (button oder label oder einer der ganz vielen anderen bestimmmt...)
Also wenn man dann in die einzelnen Controls z.B. ein Button rein geht und schaut dass selbst die relevanten/interaktiven StyleName's alle hardgecoded (z.B. 'text' für Button oder Label) sind und es nicht irgendwo eine zentrale Stelle gibt bei der diese registriert und mit dem Klassentyp verknüft werden oder sonst irgendetwas... Versteh ich warum es in der
IDE nicht so macht wie es sollte: Da fehlt ganz einfach die richtige Struktur und Organisation dafür...