* * * *

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.
Aprile 19, 2024, 11:37:27 am

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

398 Visitatori, 0 Utenti

Autore Topic: forms at run time  (Letto 2526 volte)

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
forms at run time
« il: Febbraio 18, 2017, 05:13:32 pm »
Salve a tutti.

Siamo nell'era in cui i browser fanno da interfaccia alle applicazioni i cui codici eseguibili e i relativi dati stanno magari su un computer posto dall'altra parte del mondo dove magari l' hosting costa meno etc .

Purtuttavia a mio parere usare un browser come intefaccia non offre i vantaggi delle classiche finestre di windows et similia (le forms).

Tant'è è vero che cose come Silverlight  in pratica sono "deprecated" (https://it.wikipedia.org/wiki/Silverlight)  e si consigliano attrezzi a loro dire mogliori .

Si, ci sono altri sistemi oltre Silverlight , ma le classiche forms a mio avviso sono migliori (non se ne puo' del plugin che  va in crash nel bel mezzo dle data entry  o del codice che gira solo sotto certi browser etc ); .

Premesso questo,  ho trovato in giro sul web questo pagina:
https://freepascalanswers.wordpress.com/2012/01/22/create-forms-at-run-time/

In pratica spiegano come creare le forms a run time per ottimizzare così l'uso della memoria del sistema (una data form si crea ed esiste solo quando serve).

Qualcuno ha esperienze da condividere con quest' approccio? 
« Ultima modifica: Febbraio 18, 2017, 05:23:50 pm da Avogadro »

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:forms at run time
« Risposta #1 il: Febbraio 19, 2017, 08:43:48 am »
Creare un oggetto (una form in questo caso) quando serve dovrebbe essere la norma, non l'eccezione...

Hai ragione sul fatto che le applicazioni web non hanno le stesse funzionalità delle applicazioni desktop.
Stanno tentando di scimmiottare le interfacce native, ma non mi pare con buoni risultati (almeno per ora).
Quando mi ritrovo ad usare certe applicazioni web (anche rinomate) e con una linea ad alta velocità mi si caricano a pezzi, o perdono il collegamento col server, o l'input non risponde come dovrebbe, o chissà cos'altro, mi domando chi abbia concepito certe soluzioni "alla moda"...
Il web è una cosa e il desktop un'altra.
Purtroppo le applicazioni desktop hanno il problema dell'installazione su sistemi potenzialmente molto diversi, mentre il browser offre un ambiente di esecuzione abbastanza uniforme.
Con le applet Java si poteva avere una buona soluzione, ma sono morte prematuramente...
Flash e simili a quanto dicono hanno grossissimi problemi di sicurezza
Attendiamo di vedere per quanto vanno avanti javascript e html5 prima che la smania di proporre "soluzioni innovative" li spazzi via...

Ma se vuoi avventurarti in questo settore, puoi sempre fare un "browser" freepascal (compilabile su svariati sistemi) che si scarica package precompilati da un sito ed esegue le form contenute in locale. Con un minimo di funzioni standard (es. comunicazioni col server) e per utenti selezionati (es. azienda) il gioco dovrebbe essere fatto.


Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:forms at run time
« Risposta #2 il: Febbraio 19, 2017, 09:18:53 pm »
Creare procedure, funzioni, strutture dati ed  oggetti  solo quando servono è stato sempre uno dei punti di forza del pascal.

Nel caso delle form pero' confesso il peccato di non aver usato finora quest'approccio. Per via del bias di ancoraggio tendo ad usare lo stile dei programmi in fortran con un input (fatto su una form o su una grid)  e un output (non su carta ma in un memo o al limite in un report), così come tendo a tenere basso il numero delle finestre.

L' interfaccia web per le applicazioni è ben documentata nei libri di  Marco Cantù , pero' non mi ci sono mai cimentato, anche perché per  motivi di lavoro la maggior parte degli applicativi che uso hanno  la classica interfaccia a form, alcuni in modalità MDI (che poi devi stare lè a rincorrerle e chiuderle quando il sistema si appesantisce), ragione per cui  poi mi trovo a disagio quando devo fare il data entry e l'hosting dei dati è in remoto e bisogna usare il software che gira sul browser.

L' interfacce grafiche web poi hanno un altro svantaggio: per motivi di marketing tendono ad essere piene di di immagini, magari animate - cosa che drena lattenzione- , colori, effetti speciali, sfondi  bellissimi e quant'altro puo' attrarre l' incauto utente;  il risultato finale è che tutto cio'  aumenta la confusione del povero clerk alle prese con  il data entry  magari dei un importante bilancio aziendale.

L'essenzialità nelle intrefacce a mio avviso è importante affinchè il prodoto sia facilmente fruibile.  A tal fine tendo a ridurre i bottoni  le voci del main menu al minimo e tendo ad usare i menu pop-up legati al contesto automatizzando nel contempo tutto cio' che si puo' automatizzare.

Su colori e font da usare ci sono tutta una serie di disquisizioni ma personalmente io lascio quelli di defult (piu' si cambia, piu' si peggiora in questo ambito).


« Ultima modifica: Febbraio 19, 2017, 09:32:56 pm da Avogadro »

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18772
  • Topic in totale: 2233
  • Online Today: 578
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 398
Total: 398

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.