Programmazione

Export from FastReport 4 to PDF Stream

Wednesday 9 October 2013, 18:38
ivan.revelli@synaptica.info

Con FastReport 4 esportare un report in PDF su stream è semplicissimo, bastano 5 minuti … peccato che non è spiegato nella documentazione, quindi per capire come funzionava l’arcano ci ho perso due ore…

di seguito una porzione di codice come esempio:

[Android] how to import android contacts in your application

Thursday 17 January 2013, 18:27
federico.serrelli@synaptica.info

A very simple way to search, select and import contact information from your phone (Android Contacts) to your android app is:

1) Send the specific android intent “ACTION_PICK”:

This intent will do for us and “for free” the operation of opening the contacts list and select the contact to import.

2) Simply manage the Intent result by reading the contact information through the resulting Content URI and access to the internal android database (SQLite):

Obviously it’s possible to customize the procedure in order, for example, to import all contacts or to get the list of all names and make a multiple selection before doing the contact import and so on…

Bye

nice C++ tutorial for beginners, from embarcadero

Thursday 13 December 2012, 16:27
ivan.revelli@synaptica.info

Those sections of C++ tutorials are very simple. Otherwise they explain the differences between Delphi (pascal) language and C++.

Good job:


Session 1:

Session 2:


Supportare differenti dimensioni di schermo in android grazie ai Fragments

Friday 12 October 2012, 17:52
federico.serrelli@synaptica.info

Nello sviluppo di applicazioni mobili diventa sempre più importante il supporto di schermi e dimensioni anche molto diverse a causa del diffondersi di modelli e tipologie di dispositivi sempre più disparati.
Per fortuna Android offre una soluzione veramente intelligente e semplice per aiutarci a sviluppare applicazioni che da un lato siano compatibili col maggior numero possibile di dispositivi ma che, dall’altro, si adattino al meglio agli schermi dei dispositivi in termini di usabilità e sfruttamento della superficie disponibile .

La soluzione sono i FRAGMENT.

In realtà i Fragment offrono altri grandi vantaggi come, ad esempio, poter scomporre le Activity in blocchi elementari (una sorta di “sub-activity”) replicabili e riutilizzabili in più layout o schermate applicative.
In questo articolo ci focalizzeremo su un semplicissimo esempio tramite il quale sviluppare un’Activity (che chiameremo MainActivity) in grado di presentarsi all’utente con due fragment affiancati nel caso lo schermo del dispositivo sia abbastanza grande da consentirlo (es. tablet), mentre negli altri casi gli stessi fragment vengono mostrati sequenzialmente (quasi come se fossero due Activity distinte).
L’ipotesi è quella di avere una listView di oggetti nel primo fragment (SxFragment) e il dettaglio dell’oggetto selezionato nel secondo fragment (DxFragment).

La figura seguente mostra l’esempio.

1) Layout
Predisponiamo due differenti layout per schermi piccoli e grandi. La stessa cosa, ad esempio, può essere fatta per Portrait/Landscape, con più fragmen, etc…

file: /res/layout-large/example_layout.xml

file: /res/layout/example_layout.xml

Da notare che nel secondo layout non sono inclusi staticamente i Fragment e che è invece assegnato un id (fgmContainer) al contenitore che ci occorrerà per agganciare i fragment.

2) Activity principale

oppure nel caso di utilizzo della Android Support Library (retrocompatibilità con device che hanno versioni di android < 3.0):

Nel onCreate includiamo il layout e istanziamo dinamicamente il Fragment nel caso in cui siamo alle prese con uno schermo piccolo.

3) Fragment A (items list)
Nel fragment di sinistra, contenente la listView, assegnamo all’evento di selezione (OnItemClick) il compito di notificare la selezione tramite un metodo di callback (onItemSelected) all’attività principale.

4) Activity principale
Aggiungo il metodo di selezione nella MainActivity. Chiaramente il metodo discrimina il caso in cui abbiamo entrambi i fragment da quello in cui occorra istanziare il secondo dinamicamente. Nel primo caso è sufficiente richiamare il metodo di update esposto dal fragment (doItemSelection), mentre nel secondo caso occorre effettuare una transizione dinamica tra i due Fragment. Il primo dei due, viene sostituito tramite “replace”, ma inserito nel Back Stack in modo che premendo il pulsante “Back” non termini l’activity ma venga semplicemente effettuata la transizione al contario e riappaia il primo Fragment.

5) Fragment B (item details)
Il Fragment B, infine, riceve come argomenti i parametri necessari alla sua inizializzazione o, se già inizializzato, espone i metodi necessari all’aggiornamento da parte della MainActivity. Nell’esempio semplicemente l’id dell’item selezionato viene inserito in una TextView.

Nei prossimi articoli vedremo come effettuare la gestione di Menu e Actionbar nel caso di utilizzo dei Fragment.

Ciao e a presto
Federico

Il Cloud di Synaptica sbarca su Android

Tuesday 31 January 2012, 18:51
federico.serrelli@synaptica.info

[lang_it]
Immaginate di essere un agente commerciale che necessita di avere sempre con sé il proprio listino aggiornato e, con esso, immagini e schede tecniche dei propri prodotti.
Immaginate di essere un magazziniere o un negoziante che ha la necessità di aggiornare l’inventario degli articoli presenti in magazzino, di censire una fornitura di nuovi pezzi o, ancora, di preparare un ordine per la spedizione con annessa bolla di accompagnamento e descrizione della ripartizione nei singoli colli.
Oppure immaginate di essere nel vostro showroom e di voler avere sempre a portata di mano, per i clienti interessati, il catalogo dei prodotti non esposti ed, eventualmente, poter direttamente comporre e registrare un ordine, disponendo direttamente l’emissione della relativa fattura o scontrino.
Ancora, immaginate di viaggiare molto per lavoro e voler avere sempre sotto mano l’agenda degli appuntamenti per poter visualizzare, modificare, eliminare appuntamenti o consuntivare i tempi relativamente alle vostre commesse e ai clienti, trovando, poi, questi dati automaticamente integrati nel vostro sistema gestionale.

Se tutto questo non è solamente immaginazione, il Cloud di Synaptica fa per voi!

Ciò è reso possibile da tecnologie all’avanguardia la cui integrazione nel sistema Syna E.R.P. unisce la solidità e l’affidabilità di un sistema centralizzato che espone servizi e utilities via web in sicurezza con la versatilità e mobilità di applicativi client per PC portatili e, soprattutto, smartphone e tablet.

Perché implementare client nativi sui device? Semplice: perché in questo modo è possibile lavorare anche offline, demandando all’applicativo la gestione dell’invio dei dati al cloud non appena la connettività torna disponibile.

I primi applicativi per Android integrati con Syna E.R.P. sono già disponibili, mantenendo però fermo l’obiettivo di sviluppare soluzioni custom in funzione delle possibili esigenze che, in un contesto di mobilità, si moltiplicano quasi all’infinito!

Ecco un semplicissimo video dimostrativo delle potenzialità offerte dal nostro sistema di interfacciarsi al magazzino della propria azienda :

Delphi XE2 & Firemonkey some answers….

Sunday 7 August 2011, 18:01
ivan.revelli@synaptica.info

In questi giorni c’è un’eccezionale attività relativa a quest’argomento sulla rete, la mia curiosità di provare questo prodotto non posso negarlo è molta. Parte del mistero relativo a FireMonkey si è risolto da voci ufficiali si tratterebbe dell’acquisto di VGScene/DXScene da parte di Embarcadero.
Per quanto mi riguarda rimaneva comuque il desiderio di capire come questa tecnologia potesse essere integrata in Delphi XE2 ed ho trovato in rete i seguenti video che ne dimostrano potenzialità e semplicità d’uso che davvero non mi aspettavo. Credo che questa versione di Delphi sia adirittura più rivoluzionaria di Delphi 2.
Inoltre non mi aspettavo l’integrazione con iOS e X-Code cosa di cui non si era minimamente accennato in passato.

Questo primo video mostra come creare da zero un app. Nativa per Mac con Delphi e FireMonkey e come sia semplice compilarla per i due ambienti :



Mentre questo secondo video (ufficiale dal blog di Embarcadero) mostra come sia possibile creare la stessa applicazione per Win32, Win64, OSX e tramite l’esportazione da Delphi a XCode agli ambienti iOS (iPhone , iPAD) :



Leggendo qua e la ho letto anche che stanno lavorando per aggiungere le piattaforme Linux e Android a questa fantastica tecnologia. Qui ovviamente in merito ad Android mi sorgono altre perplessità (tipo che in Android in teoria si può esclusivamente sviluppare in Java e soprattutto non con linguaggi nativi… ma stiamo a vedere)

In queto articolo pubblicato sul sito di Embarcadero , David Intersimone ed altri dello staff rispondono a molti questi proposti dai lettori e se ne traggono infomrazioni preziose in merito al prodotto e a eventuali limiti dello stesso, il link all’articolo : http://blogs.embarcadero.com/davidi/2011/08/01/41062#comment-26065

a presto
ivan

http://www.delphiformac.com

Scoprite cosa possiamo fare per il vostro business
I nostri linguaggi