Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12

    [Delphi] Risoluzione schermo

    Salve a tutti
    Come posso "intercettare" la risoluzione dello schermo e quindi eseguire
    delle operazioni, es. if (risoluzione 800x600) then ........ else if
    (risoluzione 1024x768) then....
    Grazie e ciao da Matteo

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Permettimi di dirti che, salvo esigenze particolari, gli utenti non vedono di buon occhio i cambi impliciti della risoluzione dello schermo (con tutti i problemi che possono comportare nella disposizione delle icone sul desktop, nella barra di avvio, ecc.).

    Ad ogni modo, puoi ottenere facilmente la dimensione in pixel dello schermo attraverso l'oggetto Screen, disponibile per ogni applicazione Delphi in ogni unit che utilizza la "Forms.pas"; le proprietà Height e Width restituiscono rispettivamente altezza e larghezza dello schermo.

    Ecco un esempio di codice:
    codice:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(Format('SCREEN Width: %d - Height: %d', 
       [Screen.Width, Screen.Height]));
    end;
    Per modificare la risoluzione, il procedimento è più complicato; comunque, puoi trovare un blocco di codice a questo indirizzo:
    http://www.swissdelphicenter.ch/torr...ode.php?id=158.

    Spero di esserti stato d'aiuto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12

    [Delphi] risoluzione schermo

    Salve a tutti
    Colgo l'occasione per ringraziare Marco Breveglieri e scusarmi per le inesattezze del mio messaggio.
    Non intendo cambiare la risoluzione dello schermo ma adattare la form e componenti vari in essa contenuti al variare della risoluzione dello schermo, ad esempio, mi capita spesso che avviando l'applicativo su un computer che è impostato con una risoluzione diversa dal mio, di ottenere dei risultati disastrosi.
    Quello che voglio fare è intercettare la risoluzione dello schermo del computer dove viene avviato l'exe e in base ad essa ridimensionare form e componenti in modo tale da mantenere le proporzioni.
    L'istruzione per il ridimensionamento è scaleBy, quindi

    If (risoluzione = 800x600)then scaleBy... else
    If (risoluzione = 1024x768)then scaleBy...

    Spero di essere stato chiaro
    Ciao a tutti da Matteo

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Sei stato chiaro perchè rileggendo mi sono accorto di aver inteso male la domanda.

    Ho avuto anche io il tuo stesso problema ma mi sono sempre astenuto dall'implementare una soluzione come quella che proponi poichè, in alcuni casi, potrebbe avere effetti disastrosi: considera una risoluzione dello schermo mediamente bassa, che genera caratteri molto piccoli, controlli disallineati tra di loro e altri piccoli effetti collaterali che rendono la tua applicazione visibile ma di fatto inutilizzabile, salvo particolari esigenze.

    Se fossi in te, cercherei di valutare un'organizzazione alternativa dello spazio di lavoro dell'applicazione, magari usando dei TabSheet oppure sistemando in modo diverso i controlli in modo che il layout stesso del programma non dipenda sensibilmente dalla risoluzione utilizzata (ad esempio, potresti usare pannelli "collassabili", colonne di griglia visibili/invisibili e ridimensionabili, ecc.).

    Magari prova a specificare, in generale, di che tipo di applicazione si tratta...

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Sarà una soluzione macchinosa ma io ho risolto ridimensionando tutti i controlli di una determinata form da codice stesso.
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  6. #6
    Ma non è più comodo gestire il resize e la posizione con l'attributo "Anchors" dell'oggetto? Facendo così io non temo quasi nessun resize del programma (partendo da un software per un pc di 800x600 di risoluzione).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.