martedì 22 luglio 2014

Delphi - creare un Form FMX attraverso il nome.

E' possibile creare un form FMX conoscendo il nome della classe.
Supponiamo che il form da creare si chiami Form8 e la classe sia TForm8.

Nell'evento OnCreate del form principale, per ogni form da creare/utilizzare, scrivere la seguente istruzione

  RegisterFMXClasses([TForm8]);
Io ho creato una function per la creazione del form che mi restituisce il form creata, come la seguente:

function f_createformfromname(const p_formname : string): TCustomForm;
var
  w_ObjClass: TFmxObjectClass;
  w_fc, w_result : TCustomForm;
begin

  w_result := nil;
  w_ObjClass := TFmxObjectClass(GetClass(p_formname));
  if w_ObjClass <> nil then
  begin
    w_fc := w_ObjClass.Create(Self) as TCustomForm;
    if Assigned(w_fc) then
    begin
      w_result := w_fc;
      w_fc.Show;
    end;
  end;

  result := w_result;
end; (* CreateFormFromName *)

Per creare il form, basta quanto segue:

var
  w_childform: TCustomForm;
.......
begin

 
  w_childform := f_createformfromname('TForm1');

 
  .................

A presto.

mercoledì 22 gennaio 2014

Firemonkey XE5; non chiamate il vostro progetto FM!!!

Ho creato un progetto con Firemonkey in Delphi XE5, e l'ho chiamato FM.
Ho aggiunto i componenti che mi servivano, tipo TButton, TEdit, TTabControl e così via. Ho scritto il mio codice, ho lanciato l'applicazione e appena passavo il mouse sul TButton o sul TTabItem lo sfondo della form diventava nero.
Ho pensato che ci fosse un problema nella form; così l'ho ricreata, ho aggiunto i componenti ma il problema era lo stesso. Ho ricreato il progetto, ma nulla, sempre lo stesso problema.
A questo punto, mi è venuto un dubbio ed ho cambiato il nome del progetto......e per miracolo tutto funziona.
In poche parole, quando il progetto si chiama FM, il trigger IsMouseOver (relativo gli effetti di animazione) genera questo problema.
Perciò, in conclusione, non chiamate il vostro progetto FM!!!



A presto.

venerdì 10 gennaio 2014

XeroCoder per applicazioni cross platform

Ecco un altro tool per sviluppare applicazioni cross platform. Xerocoder è uno strumento RAD, giunto alla versione 4.1.



Il tool di sviluppo può essere utilizzato su Windows, MAC e Linux. XeroCoder permette di scrivere un unico codice e genera l'eseguibile per Windows (32/64), MAC OSX e Linux (senza dover compilare il progetto sulla piattaforma interessata) dando la possibilità di scegliere se sviluppare in Pascal, Basic, C++ o Java. Inoltre, si possono sviluppare applicazioni native per Android, ma solo con Java.



L'IDE è simile a quello dei RAD più noti


, e mette a disposizione molti componenti (quelli standard tipo Edit, Menu, List...) tra i quali evidenziare:
DB Access (con componenti per accesso a Firebird, Oracle, MYSql, SQLite e ODBC)
DB Controls (DBGrid, DBCalendar, DBEdit, DBLookupComboxBox ecc.)
Metro (per applicazioni Metro di Windows 8)
Reporter (sullo stile di Fastreport, ma meno potente)
3FX (componenti con uno stile grafico molto accattivante).



Inoltre, è anche possibile creare applicazioni "Grid", che girano su una piattaforma GRID/CLOUD messa a disposizione da XERO. Una funzionalità che potrebbe rivelarsi molto utile e interessante.
Ho dato solo alcune informazioni su XeroCoder e su XERO. Se volete, dal sito www.xerocoder.com potrete scaricare la versione di Xerocoder Trial per la vostra piattaforma e provare.

Io ho sviluppato una applicazione con Xerocoder che utilizza Firebird e risulta essere molto stabile.
Se volete altre informazioni, esempi, tutorial scrivetemi.

A presto.

giovedì 9 gennaio 2014

Parte I. Delphi XE5 - Per iniziare....come è facile sviluppare applicazioni mobile



Utilizzo Delphi dalla versione 1, e l'ho sempre ritenuto il miglior ambiente di sviluppo per Windows (tranne qualche versione un po' malandata) ed ora anche il miglior ambiente di sviluppo cross platform per ambienti desktop (Windows e Mac OSX) e ambienti mobili (IOS e Android).

Con questo, inizio a pubblicare una serie di articoli riguardanti l'utilizzo di Firemonkey 2 (il framework per sviluppare applicazioni cross platform) della nuova versione Delphi XE5 postando, sul mio canale Youtube, un video che mostra come è facile e rapido sviluppare una applicazione mobile e testarla sul simulatore per Windows fornito con l'update 2 di Delphi XE5.

Questa applicazione si connetterà ad un database SQlite e visualizzerà i dati di una colonna di una tabella in una vista, e cliccando sulle varie voci verrà visualizzato, in un box, il contenuto della riga selezionata. Per la connessione al database ho utilizzare Firedac, una serie di componenti forniti con l'ambiente di sviluppo.

Per fare tutto questo si può utilizzare la versione trial di Delphi XE5 scaricabile dal sito di Embarcadero
Le fasi di sviluppo di questa semplice applicazione sono:

- Creazione progetto Firemonkey Mobile
- Creazione della connessione al db e alla tabella del db SQlite tramite Firedac.
- Utilizzando la fantastica caratteristica di Visual Binding, ho collegato la ListView alla tabella decidendo, sempre in maniera rapida, cosa far visualizzare
- Ho aggiunto al progetto, come Target Platform, Win32 per poter utilizzare il simulatore Windows per le applicazioni mobili
- Ho aggiunto una riga di codice nell'evento OnButtonClick della ListView per visualizzare il testo della riga sulla quale "clicco" o "tappo"
- Esecuzione.....ed ecco l'applicazione, che così non serve a nulla, ma è un valido esempio per mostrare le potenzialità di questo strumento.

Dalla prossima sviluppando un'applicazione più completa e fornendo informazioni e suggerimenti.



Ciao.

Format Factory e l'errore 0x00000001

Format Factory è una fantastica applicazione di conversione (che funziona anche su Windows 8.1) per convertire qualsiasi formato audio, video, immagine, CD Audio, DVD....
Ultimamente, ho scaricato l'ultima versione (3.2.1) migliorata dal punto di vista grafico. Ho tentato di convertire un file AVI in WMV, ma si è verificato l'errore:


Questo errore si verifica selezionando qualsiasi formato.
Per risolvere il problema, prima di eseguire la conversione, andare nelle impostazioni video (cliccando due volte sulla attività da eseguire) e selezionare, per la voce Usa decoder di sistema (AviSynth), il valore Acceso (dovreste trovarlo Spento).
Riprovate e tutto dovrebbe funzionare.


A presto.

Cerca nel blog