Provo a fornire all'utente un'interfaccia 'pulita e semplice' nascondendo alcuni elementi. Solo una piccola freccia indica che può espandere una parte della barra dei menu principale. Quando tutto è chiuso, che appare così:Perché il ridimensionamento dei controlli è diverso tra i PC?
Quando si apre tutto quello che assomiglia a questo:
Ogni freccia è un questo è speedbutton si trova sul lato sinistro di un pannello . Facendo clic sul pulsante, la larghezza viene alternata tra la larghezza del pulsante Velocità (chiuso) e la larghezza del pannello in fase di progettazione (aperta). La larghezza del pannello in fase di progettazione viene memorizzata come costante. I show_hide_controls procedura gestisce questo:
procedure TCompose_Main.show_hide_controls (key: string; Button: TSpeedButton; Panel: TPanel; width: Int32);
begin
if GPA.iKey [key] = 1
then Panel.Width := width // show panel, set panel to design width
else Panel.Width := Button.Width; // hide panel, set with to button width
Button.Glyph.Assign (nil);
Images_Left_Right.GetBitmap (GPA.iKey [key], Button.Glyph);
end; // show_hide_controls //
Questa routine si chiama come segue:
show_hide_controls ('Show Play Controls', // index to panel to show/hide
Enlarge_Play, // Speedbutton requesting the enlargement/hide
Panel_Play, // Panel to show/hide
cPlayWidth); // Width of panel when shown
Ora molti utenti segnalano che una parte del pannello è nascosto, come:
Sembra che il sistema operativo (Windows 7) giochi alcuni trucchi con il ridimensionamento. Non sono in grado di duplicare questo errore. Qualcuno capisce cosa sta succedendo qui? E c'è un modo pulito di programmare contro questo in un modo indipendente dalle impostazioni?
Aggiornamento Come GDF ha giustamente sottolineato nella sua risposta, ha a che fare con il ridimensionamento dei caratteri (pannello di controllo> Display). Questo si comporta in qualche modo strano sulla mia macchina. Cambiarlo al 150% ha un impatto minore mentre modificarlo al 125% ha un impatto maggiore. Come avrai intuito, ho provato il primo e non il secondo ridimensionamento. Solo quando un utente ha riportato il ridimensionamento dal 125% al 100%, è stato possibile replicare il suo errore sul mio computer.
Non sono riuscito a trovare una relazione tra i caratteri e i problemi che ho come è stato suggerito da diversi convenuti. Il mio sistema sta ancora soffrendo di tutti i test che ho fatto con Courier (non nuovo), Segoe UI, Tahoma e MS Sans Serif :-D. Forse indirettamente perché i controlli sono probabilmente ridimensionati per adattarsi al testo.
Come gestirlo? Non lo so, inizierò a sperimentare e ti farò sapere se trovo qualcosa.
Grazie a tutti per il vostro aiuto!
Ir sembra proprio che la dimensione del carattere è il fattore principale, perché i controlli a cui non è associato il testo (i pulsanti immagine a sinistra, ad esempio) non sembrano essere interessati. Ti suggerirei di utilizzare la proprietà "Ancore" dei pannelli per mantenere il loro spazio relativo a sinistra, in modo da ridurre almeno l'impatto visivo. – jfoliveira
@Jeferson - Ho provato con dimensioni di font diverse e non ho potuto duplicare il problema. Il triangolo giallo non ha testo ma scompare. – Arnold
+1 e Star, questo problema è molto diffuso nel nostro sviluppo Delphi e deve essere conosciuto per chiunque voglia costruire una GUI veramente compatibile in Delphi. –