Ho disegnato i controlli FireMonkey, ma c'è un problema con cui ho riscontrato alcuni problemi reali, ovvero come incorporare bitmap negli stili FireMonkey utilizzando lo Style Designer FireMonkey (e in particolare non lo stile di progettazione bitmap). Alcuni oggetti in stile (TButtonStyleObject, ad esempio), hanno proprietà BitmapLink, ma non riesco a vedere come funzionano nei nuovi stili personalizzati generati per un controllo FireMonkey.Utilizzo di TBitmapLinks con lo Style Designer FireMonkey
Lasciatemi provare a rendere il problema il più trasparente possibile. Aggiungo uno StyleBook e imposta la sua Risorsa su MetropolisUIGreen.Style nella directory Style di Delphi (in XE7 si trova in C: \ Users \ Public \ Documents \ Embarcadero \ Studio \ 16.0 \ Styles). Quindi apro FireMonkey Style Designer e localizzo lo stile buttonstyle, che consiste in un TButtonStyleObject e un TButtonStyleTextObject, entrambi associati a un TLayout. TButtonStyleObject ha un valore di proprietà SourceLookup di MetroGreenstyle.png, che è uno StyleName associato a una TImage in cui è stata caricata l'immagine MetropolisUIGreen.png.
Con TButtonStyleObject (di cui StyleName è background) selezionato, si esamina la proprietà NormalLink, che è una raccolta di TBitmapLinks. È a mia conoscenza che l'unico BitmapLink che vedo definito in NormalLink contiene informazioni sulla bitmap che dovrebbe essere utilizzata per il pulsante, incluse le coordinate (SourceRect) corrispondenti a una regione rettangolare del file MetroGreenstyle.png.
Le mie supposizioni sembrano essere errate, perché quando esamino MetroGreenstyle.png utilizzando un programma di grafica, non c'è nulla di interessante in queste coordinate. Ho esaminato i BitmapLinks di molti altri stili, e anche lì trovo che le coordinate di SourceRect non sembrano effettivamente definire una regione significativa del file png di stylelookup.
Ovviamente ho sbagliato. In che modo le coordinate SourceRect di un BitmapLink definiscono la bitmap che FireMonkey dovrebbe utilizzare durante il rendering di un controllo.
- Modifica Ho effettivamente chiesto quattro domande. Ho aggiornato questa domanda per includere solo una domanda. Includerò le altre domande in un altro post. -
Ciao, Andrea. Grazie per l'impegno. Devo verificare la risposta prima di contrassegnare la risposta come corretta. Come hai estratto la bitmap memorizzata nel file .style? –
Ho modificato la risposta a causa del limite di lunghezza di un commento ... – AndreaMagni
Andrea, questo è semplicemente fantastico. Grazie ancora per il tuo contributo. –