2015-11-04 32 views
7

Sto riscontrando problemi di pittura quando si combinano TScaledLayout e stili personalizzati creati dal designer di stili bitmap in fmx.Problemi di disegno con TScaledLayout e stili personalizzati

Per dimostrare, ho caricato lo stile personalizzato predefinito creato scegliendo "Nuovo stile per VCL/FMX" -> "Salva come. Stile" nel designer di stili bitmap. Ho lasciato cadere diversi controlli standard su alcuni rettangoli colorati: quelli rossi & verdi su un TScaledLayout, quello blu direttamente sul modulo. Mentre allungo il modulo, appaiono linee colorate sui controlli di ScaledLayout; il fondo è parzialmente visibile:

paint issue with stretched controls

Se dimensiono il modulo per corrispondere esattamente alle dimensioni in fase di progettazione, le linee scompaiono. Sembra un problema piuttosto significativo, non posso certo usare quei due insieme in quel modo. Qualcuno ha un'idea per una possibile soluzione o soluzione alternativa?

+1

Abbiamo riscontrato lo stesso problema per molte versioni di Delphi. Esiste ancora in Delphi 10 a Seattle. – norgepaul

risposta

0

Sembra che questo sia un problema noto con ridimensionamento e bitmap. Vedi la discussione su Google+ qui - https://plus.google.com/+PaulThornton/posts/ACAHkJD3a84. Citerò i pensieri di Marco Cantù:

Ho trovato un problema segnalato all'interno di un caso simile, ma non ho trovato uno che corrisponde a questo scenario. Sicuramente vale la pena aggiungere al portale di qualità . Detto questo, temo che le operazioni basate su bitmap e il ridimensionamento non si adattino molto bene insieme e potrebbe essere difficile che abbia una soluzione onnicomprensiva.

Lasciatemi spiegare un esempio. Prendi un pulsante. Questo è dipinto da FMX con 9 sezioni (bordi, angoli, parte centrale) in modo che, a prescindere da la dimensione gli elementi bitmap siano allungati in una direzione al massimo, spesso si disegna. Lo stiramento di una singola bitmap per il pulsante sulla dimensione di destinazione interrompe l'anti-aliasing e crea un'immagine sfocata quando utilizza i colori.

Questo è un esempio di cosa succede con un ScaledLayout, dato che prende l'immagine finale completa e la trasforma. ScaledLayout era originariamente introdotto con gli stili vettoriali e funzionava molto bene in quello scenario. Con gli stili bitmap di oggi le cose diventano un po 'più complesse.

Indipendentemente da questa spiegazione di lì le bugie di emissione, io consiglierei di segnalazione sul controllo di qualità, e farò in modo che non venga chiuso come il disegno (potrebbe naturalmente accadere, questo è come il sistema funziona) ma che abbiamo fare alcune indagini per risolvere il problema - trasformandolo in una richiesta di funzionalità .

+0

Ho trovato che questo sembra essere un problema con D2D, se impongo di usare GDI + (FMX.Types.GlobalUseDirect2D: = false) funziona bene. Ovviamente non è una buona soluzione, poiché sacrifica tutti i vantaggi di D2D. Come si allinea con la spiegazione di Marco? – DNR