* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 01, 2024, 02:20:35 am

Inserisci il nome utente, la password e la durata della sessione.

71 Visitatori, 0 Utenti

Autore Topic: Monitor ad alta risoluzione  (Letto 1561 volte)

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Monitor ad alta risoluzione
« il: Novembre 02, 2022, 09:18:56 pm »
Premessa generale

Dicono le leggi diMurphy

- Ogni programma si espanderà fino ad occupare tutta la memoria disponibile.

- Quando un sistema complesso non funziona, si scopre invariabilmente che è evoluto da un sistema più semplice che funzionava perfettamente.

- La causa numero uno dei problemi informatici sono le soluzioni informatiche.

- Ogni soluzione porta nuovi problemi.


Problema.
Sto lavorando ad un applicativo che richiede molte tabelle visualizzate ; questo per avere tutto "sott'occhio"
Tante tabelle = tante grid = spazio su un monitor normale (27 pollici) insufficente

Soluzione proposta.
Usare come monitor una tv da "50" con risoluzione 3000*2000 o piu' alta ancora .

All' apparenza cosa buona e giusta e fonte di salvezza.

Che succede in pratica.
Ma dopo la compilazione, a "run-time"  la risoluzione adottata del programma non è quella quella impostata a monitor a "design time".
 
Riavviando il pc le cose si sistemano - l'esegubile a runtime ha la risoluzione giusta- ; ma questo complica le cose in fase di sviluppo.

Finisse qui: i menu pop up non hanno la stessa risoluzione del form.

Il problema non si pone usando un pc con monitor un monitor per pc ad alta risoluzione.

Dov'è il problema ? In giro non si trovano piu' monitor maggiori del classico 27 pollici e non voglio usare l' approccio "classico" di vedere i dati scollegati tra di loro dopo query non documenate da nessuna parte - si c'è lo shop on line  ma non mi fido -.

Le bizze del codice generato dal complitaore sono un problema di scheda grafica non "all'altezza" ?  Devo cambiare pc associato alla tv "monitor ?

Facile a dirsi, con i prezzi che ci sono in giro ...
 
Qualche idea su come uscire da sto casino ?

« Ultima modifica: Novembre 02, 2022, 09:39:50 pm da Avogadro »

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1376
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Monitor ad alta risoluzione
« Risposta #1 il: Novembre 02, 2022, 10:30:59 pm »
Io, per contrastare Murphy mi attrezzo così:

- ciò che funziona non si tocca;

- ciò che non c'è non si rompe.

Poca cosa, ma a qualcosa serve  ;D

Rispetto invece ai monitor e alle alte risoluzioni, il problema è contingente e non del tutto risolto (anzi oserei dire tutt'altro che risolto).
La problematica non è tanto la risoluzione di per se, ma più che altro i DPI usati nello sviluppo, i DPI usati a runtime e gli eventuali "ridensionamenti" a runtime e/o a design time.

I controlli, in Windows (ma anche in altri ambienti non và meglio pure se costruiti con le varie tecniche), sono costruiti normalmente da librerie di sistema e quindi parzialmente ingestibili direttamente. Da ciò le problematiche.

Non ho pensato neanche lontanamente ad usare DPI AWARENESS con Lazarus, ma con Delphi per adesso uso la tecnica delle GDI  SCALING settabile in Delphi (ossia i controlli vengono ridimensionati in grafica pura). Tutte le tecniche messe a disposizione non hanno dato esito positivo.

Uso monitor di tutti i tipi, dalle TV agli schermi da 5 pollici e non c'è una applicazione che giri in maniera equivalente (mi accontenterei) su tutti i monitor senza usare il settaggio GDI SCALING.

Non posso darti consigli, primo perchè ho notato che il comportamento grafico di Lazarus su DPI diversi (io uso un portatile con monitor 3K per lo sviluppo + monitor esterno da 4k) non è propriamente corretto, a meno di non settare DPI e RIDIMENSIONAMENTO IDENTICI.

Attendo che qualche altro utente del forum porti una soluzione o magari un piccolo mattoncino per risolvere questo puzzle.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Monitor ad alta risoluzione
« Risposta #2 il: Novembre 02, 2022, 10:34:38 pm »
Ok, grazie.

 :)

bonmario

  • Hero Member
  • *****
  • Post: 1346
  • Karma: +11/-1
Re:Monitor ad alta risoluzione
« Risposta #3 il: Novembre 03, 2022, 08:17:00 am »
Potresti provare con 2 monitor da 27?
Faresti emettere al tuo programma 2 form, e l'utente dovrebbe, dopo aver avviato il programma, spostare uno dei 2 form sul secondo monitor.

Ciao, Mario

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
Re:Monitor ad alta risoluzione
« Risposta #4 il: Novembre 03, 2022, 10:18:26 am »
ora non ho monitor di quella portata per fare prove
ma tempo fa ho dovuto trovare una soluzione ad un problema simile al tuo

prova con TForm.ScaleBy
la puoi mettere nella Create o in FormShow
esempio:
Codice: [Seleziona]
   self.ScaleBy(96, 120);

dovrai fare delle prove ma può essere l'uovo di colombo :)
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1376
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Monitor ad alta risoluzione
« Risposta #5 il: Novembre 03, 2022, 10:44:45 am »
Stay in touch, stò testando la funzionalità dei componenti Lazarus con vari settaggi dei monitor (compresi ridimensionamenti 100% / 125%, 150%).

Lo "ScaleBy" non è sufficiente, adatta solo la dimensione e la posizione dei controlli grafici (e neanche di tutti, almeno in Delphi) in base alla risoluzione e la uso da anni, io sviluppo in FULL HD o 3K o 4K ma normalmente il monitor d'uso sono FULL HD quando và bene e quindi uso ScaleBy per ridimensionare (i due parametri di ScaleBy li uso per ridimensionare rispetto alla Width o alla Height a seconda delle proporzioni da mantenere).

Ci sono controlli come le TEdit e derivati (esempio TComboBox) che si aggiornano in base ai font, e se non settate bene si rischia di agire "doppiamente" e fare un disastro.

Il DPI (o il PPI) è il vero elemento di discontinuità. e alcuni elementi (vedi uno per tutti le TCheckBox) non possono essere ridimensionati.

Comunque, siccome ho progetti dove la parte grafica ha una importanza non secondaria, mi sono messo di lena per cercare di risolvere o tamponare il problema una volta per tutte.

Allego, un tanto per conoscenza, una la maschera di settaggio dei ridimensionamenti (NOTARE CHE SI PUO' DIFFERENZIARE TESTO E GRAFICA) di Windows ... con una bella nota esplicativa.  ??? ::)

P.S.: mi piace particolarmente la seguente esplicitazione "può essere difficile tornare alle impostazioni originali" ....  :-[ :-[ :-[

Ciao
« Ultima modifica: Novembre 03, 2022, 12:01:05 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Monitor ad alta risoluzione
« Risposta #6 il: Novembre 03, 2022, 02:41:01 pm »
Potresti provare con 2 monitor da 27?
Faresti emettere al tuo programma 2 form, e l'utente dovrebbe, dopo aver avviato il programma, spostare uno dei 2 form sul secondo monitor.

Ciao, Mario

Ciao, quella dei 2 monitor è una soluzione che ho adottato d adiversi anni nell' ambito dell' "office automation", alias i miei collaboratori hanno tutti 2 monitor su cui lavorare  e i risulati sono egregi , ci si semplifica la vita in maniera eccezionale;

il problema sono io" che mi illudo di salvare il mondo portandomi il lavoro a casa dove poi non ho 2 monitor ma un pc di qualche anno (fine 2019 mi pare) fa connesso  fino a "ieri" a una tv di inizo 2014; poi ho provato una tv del 2022 per avere un monitor piu' grande e ... e lazarus a compile time è andato in crash .

Tutto qui.
« Ultima modifica: Novembre 03, 2022, 02:42:36 pm da Avogadro »

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Monitor ad alta risoluzione
« Risposta #7 il: Novembre 03, 2022, 02:41:49 pm »
ora non ho monitor di quella portata per fare prove
ma tempo fa ho dovuto trovare una soluzione ad un problema simile al tuo

prova con TForm.ScaleBy
la puoi mettere nella Create o in FormShow
esempio:
Codice: [Seleziona]
   self.ScaleBy(96, 120);


dovrai fare delle prove ma può essere l'uovo di colombo :)

Ok, grazie, provero' questa soluzione.

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Monitor ad alta risoluzione
« Risposta #8 il: Novembre 03, 2022, 02:44:46 pm »
Stay in touch, stò testando la funzionalità dei componenti Lazarus con vari settaggi dei monitor (compresi ridimensionamenti 100% / 125%, 150%).

Lo "ScaleBy" non è sufficiente, adatta solo la dimensione e la posizione dei controlli grafici (e neanche di tutti, almeno in Delphi) in base alla risoluzione e la uso da anni, io sviluppo in FULL HD o 3K o 4K ma normalmente il monitor d'uso sono FULL HD quando và bene e quindi uso ScaleBy per ridimensionare (i due parametri di ScaleBy li uso per ridimensionare rispetto alla Width o alla Height a seconda delle proporzioni da mantenere).

Ci sono controlli come le TEdit e derivati (esempio TComboBox) che si aggiornano in base ai font, e se non settate bene si rischia di agire "doppiamente" e fare un disastro.

Il DPI (o il PPI) è il vero elemento di discontinuità. e alcuni elementi (vedi uno per tutti le TCheckBox) non possono essere ridimensionati.

Comunque, siccome ho progetti dove la parte grafica ha una importanza non secondaria, mi sono messo di lena per cercare di risolvere o tamponare il problema una volta per tutte.

Allego, un tanto per conoscenza, una la maschera di settaggio dei ridimensionamenti (NOTARE CHE SI PUO' DIFFERENZIARE TESTO E GRAFICA) di Windows ... con una bella nota esplicativa.  ??? ::)

P.S.: mi piace particolarmente la seguente esplicitazione "può essere difficile tornare alle impostazioni originali" ....  :-[ :-[ :-[

Ciao

Ok, grazie, provero' anche questa soluzione.

 

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1376
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Monitor ad alta risoluzione
« Risposta #9 il: Novembre 03, 2022, 06:04:21 pm »
Propongo la lettura di questo pdf (con all'interno anche un test). Anche se non è aggiornatissimo esplica molto bene il concetto DPI dei monitor.

http://download.ec-software.com/delphi-developers-guide-4k.zip

E' descritto per Delphi, ma ritengo che vado di pari passo con Lazarus.

L'esempio si converte senza problemi (basta eliminare dalle USES i prefissi WinApi., System., etc ... dall'elenco delle unit).

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
Imagination is more important than knowledge (A.Einstein)

 

Recenti

How To

Utenti
  • Utenti in totale: 802
  • Latest: Il Faro
Stats
  • Post in totale: 19104
  • Topic in totale: 2279
  • Online Today: 106
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 71
Total: 71

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.