Newsgroup: it.comp.lang.delphi
Titolo: Quale componente ?

Mi serve una griglia come il DBGrid, ma dove ad ogni riga del dbGrid io 
possa associare due tasti per eseguire due possibili funzionalità che 
interessano quella specifica riga. Quale componente posso usare, se c'è ?
 
 

 
Ciao Stark,

Non lo puoi fare al volo ??
Nel senso che hai l'evento onkeydown dove intercetti la pressione dei 
tasti, una volta intercettati hai le proprieta' col, row della griglia e 
fai quello che devi in una procedura esterna.
Oppure puoi destinare la prima colonna come "contenitore" delle funzioni 
tramite un testo formatatto, poi nascondi la colonna. Cosi' quando sei 
su una riga e premi un tasto basta che lavori la cella Cells[1,Row] per 
attivare o meno la funzione da te impostata.
Io in passato ho usato largamente la griglia della scalabium (molto ben 
fatta), poi passando alle tmssto usando la loro
  ... ma non credo abbiano quello che cerchi tu.
 
Ciao
Daniele

...google rulez...
 
 
https://forums.embarcadero.com/thread.jspa?threadID=110166
 

Grazie della risposta. In effetti già uso il click sulla riga per eseguire 
un'azione. Ma mi è venuta questa idea nel momento che ora vorrei avere la 
possibilità di eseguire due possibili azioni che non si escludono l'un 
l'altra.
Ho trovato un paio di dritte che ho provato a realizzare, m una mostra un 
bottone che balla continuamente e l'altra mostra un bottone senza caption, 
che è brutto e non esplicativo per chi lo deve usare.
Dovrò adottare il sistema che richiede all'utente di evidenziare la riga 
sulla quale vuole agire e due bottoni per le azioni da eseguire. Non mi 
piace un gran che, ma se non c'è altro da fare
 
"Daniele"  ha scritto nel messaggio news:r3l3l7$18p7$1...@gioia.aioe.org...


Ciao,
   hai dato un'occhiata alla griglia della scalabium??
Non mi ricordo se puo' inserire i bottoni ... ma vale la pena fare un 
giro in quel sito (
www.scalabium.com
).
 
Inoltre su torry ed altri siti puoi trovare una marea di componenti che 
potrebbero fare quello che cerchi.
 
Se poi hai volgia di smanettare un po ci sono delle librerie con delle 
griglie da "paura".
Secondo me le 2 migliori (perche' queste 2 a fanno sparire le altre ...) 
sono quelle delle devexpress e quelle della tms.
Alla fine, per la mia necessita' ho scelto le librerie della tms.
La griglia della tms ti permette, per ogni cella, di inerire qualsiasi 
loro componente (edit, spinedit, bottone, check/radio, ecc...).
Per 30 giorni (forse anche piu') sono gratuite, semplici da usare e 
rispondono sempre nel forum.
Costo accessibile (questo argomento e' spinoso ed e' personale, insomma 
devi valutare tu cosa e' meglio per te. Nel mio caso le ho acquistate 
perche', anche se le applicazioni sono ad uso esclusivamente personale e 
questo rappresenta solo una spesa, non ha senso investire del tempo per 
cercare una soluzione complicata quando qualcuno, ad un prezzo equo, ci 
ha gia' pensato).
 
Inoltre, considerazione personale, dopo lunghe riflessioni sono giunto 
alla conclusione che sviluppare un programma la cui vita e' medio lunga 
appoggiarsi a dei componenti free che oggi ci sono ma domani chissa' 
(sul sito di torry ne trovi a quintalate con questo problema) ha poco senso.
Nei miei progetti ci sono pochi componenti free, e su questi non c'e' 
(com'e' ovvio) assistenza, anzi sono abbandonati.
 
Se posso permettermi, nel caso le applicazioni ti generano reddito (le 
vendi) la strada e' quella di valutare ed acquistare; se invece lo fai 
per cortesia, generosita' ecc... fatti finanziare l'acquisto.
 
Spero di non averti abbattuto moralmente !!!
 
Ciao
 
Daniele


Ah, ah, sei forte.Non, non mi hai abbattuto moralmente, anche perchè ormai 
quello di sviluppare programmi per me è solo un hobby, anche se ho qualche 
applicazione che mantengo. Purtroppo, pur possedendo una versione XE di 
Delphi, non ho mai fatto la migrazione a a Unicode, nè quella dal BDE, 
perchè quando tutto funziona è un peccato andare a metterci le mani. Ora 
sono arrivato a farlo, o ad abbandonare anche la manutenzione. Una delle 
ragioni per non averlo fatto è stata anche quella di non aver mai deciso in 
che direzione andare per quanto riguarda l'accesso ai dati. Ammesso di 
riuscire a fare non troppo dolorosamente la conversione a Unicode, l'accesso 
ai dati di FireDAC sembra buono e ad un certo punto, avevo deciso di 
indirizzarmi su SQLite. Ma poi perchè non Firebird o piuttosto la versione 
embedded di Interbase che potrebbe alleggerirmi la conversione?
Scusa, mi sono accorto di chiacchierare senza molto costrutto e di abusare 
del tempo di chi lavora !
Ma hai buonsenso e mi piacerebbe avere il tuo parere. Ciao
 
"Daniele"  ha scritto nel messaggio news:r3one7$h4s$1...@gioia.aioe.org...


 embedded di Interbase che potrebbe alleggerirmi la conversione?
 
 
Come detto fino alla nausea, partendo da bde/paradox, il lavoro relativo alla "conversione" prescinde dal db che sceglireesti, che sia qualsiasi cosa (firebird, db2, mysql, postgres, oracle, mariadb...).
Con sqlite avresti un problema in più: non ha i campi di tipo date.
Con Interbase avresti un altro problema: la poca diffusione.
Già Firebird è usato poco in contesti "non delphi"...
 
A.
 
 

Scusa, qualche volta mi vergogno a vorrei non fare altre domande per non 
mostrare la mia ignoranza. Ma mi vinco perchè questa proprio non l'ho 
capita. Come il lavoro di conversione prescinde dal db che sceglierei? E 
converto come ? Metti che scelga Postgres (è gratis?). Dovrò pure trasferire 
i miei dati dalle mie tabelle dbf a quelle previste in Postgres (che non so 
quali sono, ma è solo un esempio).
E poi, scusami, mi hai escluso tutto. Nelle mie applicazioni faccio largo 
uso di localSql. Mi pareva che SQLite avesse una sintassi piuttosto simile e 
anche simili limitazioni. Ho letto che non ha i campi date, ma le date non 
le gestisce lo stesso ?
 
"Alberto Salvati"  ha scritto nel messaggio 
news:753da14d-2415-4b46...@googlegroups.com...


 le gestisce lo stesso ?
 
Dettagliami cosa vuol dire, dal tuo punto di vista, "GESTIRE LE DATE".
Poi, discutiamo.
 
A.

Il lavoro di conversione come fa a prescindere dal db scelto? Certo che le 
tabelle del db scelto me le creerò come ho fatto con il Database Desktop. 
Poi dovrò rivedere tutti gli accessi che faccio alle tabelle e anche 
convertire i miei statement Sql per aderire ad un altro dialetto più 
standard. Ma dovrò pure migrare il contenuto delle mie tabelle di oggi a 
quelle di domani. Immagino di farlo con dei programmini che leggono da una 
parte e scrivono dall'altra, almeno nei casi più semplici. Per fare questo, 
devo pensare che devo farlo in un ambiente che supporto l'accesso ai dati di 
entrambi i tipi. Dovrò avere contemporaneamente sia il BDE e le mie tabelle 
dBase, sia fireDAC e le nuove Tabelle SQLite. Sbaglio ? O c'è un altro modo 
di farlo?
 
"Alberto Salvati"  ha scritto nel messaggio 
news:29dbe8a2-6432-4d2a...@googlegroups.com...


 Sbaglio ? O c'è un altro modo  di farlo?
 
Non sbagli e non c'è un altro modo.
Ma ti invito a riconsiderare quanto hai scritto e farmi notare in quali punti il fatto di avere firebird oracle o db2 faccia la differenza nel tuo lavoro di conversione.
 
En passant, aspetto sempre il chiarimento su cosa vuol dire "gestire le date".
 
 
A.
 

Piano piano ci arriviamo..
"quale sarebbe il problema ad avere una applicazione che usa insieme bde, 
firedac, dbx, ado e magari anche DOA...."
Il problema è che non posso fare la conversione in ambiente Delphi 2007, 
dove FireDAC non c'è. Ma anche in ambiente Delphi attuale (a parte XE7 che 
ormai è vecchio anche lui), perchè mi mancherebbe la possibilità di accedere 
e leggere i miei files dBase per trasferirli da qualche altra parte. Come 
faccio a fare la conversione ?
Sapevo che XE 7 contemplava la possibilità di installare il BDE.
E per quanto riguarda le date, sono un elemento quasi costante come criterio 
di estrazione, così come sono e anche manipolate nel senso di differenze tra 
date, etc.
 
"Alberto Salvati"  ha scritto nel messaggio 
news:6a0a890a-cbdc-4127...@googlegroups.com...


 date, etc.
 
 Sqlite ti da delle funzioni per elaborare le date ma non per salvarle in formato nativo (per la cronaca, parliamo di dati float, dove la parte intera è la data e la mantissa è l'ora)
Tanto vale usare un campo varchar e fregarsene, gestendo tutto lato applicazione. 
Per contro, se usi postgres, firebird etc hai i campi date  fai quello che ti pare senza troppi sbattimenti.
 
A.
 
 
 

Ciao,
   non quoto tutta la discussione ... mi scuserai ...
Ho letto tutte le risposte.
A dir la verita' non ho capito bene quale sia il tuo obbiettivo finale.
Riassumendo in modo super concentrato ...
Hai un'applicazione tuo scritta ib Delphi 7.
Hai una licenza Delphi XE.
Dovresti convertire il tuo sorgente delphi 7 in un nuovo ide (diciamo 
XE) ma hai il problema della base dati che non sai come gestire perche' 
in delphi 7 avevi (dbe, interbase?) e adesso non lo hai piu'.
 
Se questa e' la premessa, Alberto ti ha gia' risposto ampiamente.
Per essere chiari, terra terra ..
SQL e' un liguaggio (inglese) che puoi utilizzare in diverse piattaforme 
(Paesi). Non importa (fino ad un certo putno)quale paese visiti ... 
l'importante e' sapere l'inglese.
Ora devi scegliere quale databae utilizzare tra quelli citati.
A titolo personale io utilizzo due librerie:
- TurboDB (commerciale) che rimpiazza in toto il buon vecchio dbe SENZA 
cambiare mezza linea di codice ...
Lo uso da anni, stabile, veloce e supportato.
- Firbird per le nuove procure di interfaccia (forse perche' il db del 
gestione e' firebird 2.5).
Per turbodb ci sono i suoi componenti.
Per firbird ci sono diverse librerie free o commerciali, nel mio caso ho 
firdac.
In firedac, come in altre librerie, devi configurare correttamente la 
connessione scegliendo il TIPO di db che usi (firerbird, ib, sql, 
sqllite ecc...).
A PRESCINDERE dal db che hai scelto se fai 
FBTable.Fieldbyname('MioCampo').asstring:='' e' cosi' in tutti i db 
perche', dovrebbe, pensarci firedac a fare il lavoro.
In ogni caso avrai sempre delle limitazioni dovute alla scelta del db.
Per esempio, ad oggi, firbird e' non va su dispositivi mobili.
 
Se poi hai dei problemi, condivisibili, a procurarti delle versioni 
attuali di delphi (diciamo dalla 10.2 in avanti) Embarcadero ho messo a 
disposizione la versione COMMUNITY (l'ultima e' la 10.3.3) che include 
firedac ma non l'espansione al mobile (che non e' un tuo problema).
 
Infine, mi permetto di darti un consiglio (magari non condivisibile).
Dato che e' finito il supporto a windows 7 prima o poi dovrai passare a 
windows 10. Non so quanto potra' reggere ancore delphi 7 quindi, ecco il 
consiglio, anche se lo fai per passione e non per lavoro prima passi ad 
un compilatore recente meglio e'.
Come stai facendo ha poco senso perche' prima o poi non potrai piu' 
aggiornare il tuo programma non per tua incapacita' ma perche' lo 
strumento non te lo permettera' piu'.
 
Ciao
Daniele
 
PS: Mi scuserai, di nuovo, ma non capisco che problemi hai nel passaggio 
da 7 a xe. Io ho dei componenti scritti in delphi 6.0 e portati in 
10.3.3 ricompilano (anche in 64 bit) e si installano correttamente.
Non sono componenti statosferici che ci portano su marte ... ma sono 
componenti per stampa (gmptinsuite), calendari ecc...
 

Non mi sono espresso bene. Lo so che FireDAC è uuna tecnologia di accesso ai 
dati. Intendevo che per convertire e trasferire i dati tra un dbase e 
l'altro devono coesistere nello stesso ambiente due tecnologie di accesso ai 
dati e due database (certamente BDE e tabelle dBase e un altro accesso ai 
dati (ADO ?) e uno dei database che supporta ADO. E' giusto questo ? Se è 
giusto, possono coesistere?
Non mollo il 2007, perchè al mio livello non ho gli elementi pe prendere una 
decisione.
 
PS: XE7 potrei anche averlo (da chi non lo usa più..)
 
"Alberto Salvati"  ha scritto nel messaggio 
news:67e73759-ed79-4851...@googlegroups.com...


> giusto, possono coesistere?
 
Certo che si. Ma vorrei sapere per quale motivo, secondo te, NON potrebbero coesistere...
 
A.

Ciao Stark,
   non vorrei offenderti intellettualmente ...
Nel tuo programma hai una base dati dbe con ttable.
Vuoi passare alla nuova basi dati gestita da firedac (perche' ho 
firedac, ma ci sono le zeos o altre) NewTTable (che sarebbe fdtable).
Diciamo che alla prima partenza del tuo programma visualizzi una bella 
finestra con "conversione dati ....".
Nella conversione
 
TTable.First;
While Not TTAble.Eof do
begin
   NewTTable.Append;
   NewTTAble.FieldbyName('Campo1').asinteger:=
       Able.FieldbyName('Campo1').asinteger;
   NewTTAble.FieldbyName('Campo2').asstring:=
       Able.FieldbyName('Campo1').asstring;
   continui nel copiare i dati....
   NewTTAble.Post;
   TTable.Next
End;
E qui hai convertito la vecchia base dati con la nuova (penso si possa 
ottimizzare).
 
Se vuoi mantenere entrambe, una volta configurate per bene le 2 
connessioni, quando salvi i dati
 
TTAble.Append;
   salvi idati
TTable.Post
NewTTable.Append
   salvi gli stessi dati nella nuova tabella
NewTTabl.Post
 
Credo che la parte piu' difficile sia trovare le librerie che compilino 
per delphi 7 !!
 
Non e' impossibile ... forse stancante ..ma fattibile ..
 
Ciao
Daniele


 10.3.3 ricompilano (anche in 64 bit) e si installano correttamente.
 
Dipende da CHI ha fatto i componenti.
Se è stato preso da uno dei tanti blog o altro che saturano il web di cose scritte, volendo essere educati, alla cazzo, stai certo che i problemi li hai.
Ma in tal caso il problema non sta nel componente quando nella persona che ha scelto di usare certe schifezze...
 
A.


 Non e' impossibile ... forse stancante ..ma fattibile ..
 
Quoto.
 
 
A.

 A regime, si usa tadoquery,tfdquery,tsqlquery e così via.
Non ho capito cosa vuo fare, mi e' sembrato di capire che vuole stare 
sulle tabelle (se e' per un progetto personale potrebbe anche andar bene).
 
Ciao
Daniele
 

 A dispetto di tutto,....ecc
Tutto condiviso ...
 
Ciao
 
Daniele
 
 
 

 sulle tabelle (se e' per un progetto personale potrebbe anche andar bene).
 
No.
Gli oggetti tabella (tadotable, ttable, tsqltable, tfdtable etc..) vanno usati SOLO con database come paradox (file based).
Già con una latrina come Access non va bene.
Se poi parliamo di db sql client/server come firebird, db2 etc, sono da evitare.
 
 
A.
 

 intendo embarcadero ... 
 
"Oste, è buono il vino??"
 
A.
 
 

 "Oste, è buono il vino??"
 
 
:-)))
 
Ciao
Daniele

 invece di procedure ..
 
 
Ok..ma non capisco...usi turbodb o firebird?
 
 
A.
 
 

Ciao Alberto,

Entrambi, coesistono ...
Il gestionale di riferimento (dove mi appoggio per leggere i dati che 
servono) e' un db firbird 2.5
TurboDB e' utilizzato nelle vecchie procedure (mantenute per una sorta 
di compatibilta') ma di fatto non e' piu' utilizzato.
Non posso ancora abbandonarlo perche' qualche volta c'e' la necessita' 
di leggere dei dati storici che devono essere mantenuti almeno fino al 
2022.
 
Ciao
Daniele
 
 

Daniele, non mi offendo assolutamente e ti ringrazio del tuo contributo. 
Preciso che ho Delphi 2007 a non Delphi 7 e potrei avere un XE (non so 
ancora quale versione, ma penso vicino all'ultima). Da quello che con enorme 
pazienza tu, e soprattutto Alberto, avete cercato di spiegarmi credo di aver 
capito finalmente che la conversione dei dati è relativamente semplice (come 
d'altronde mi hai mostrato con il tuo esempio). Io non riuscivo a concepire 
un modo di farlo perchè pensavo di farlo in ambiente XE. Ma in ambiente XE 
come facevo a leggere i miei dati, visto che XE non contempla la presenza 
del BDE ?
Poi Alberto mi ha indicato ADO o DBX in ambiente Delphi 2007 (che non 
conoscevo) e mi ha spiegato che possono coesistere. A questo punto la 
conversione la devo e posso fare in Delphi 2007. Ora mi rimane di decidere 
se usare ADO o usare DBX come accesso ai dati e verso quale Database 
orientarmi, ma questo è uno step ulteriore. Farò altre domande più tardi, 
prima cercherò di informarmi. Volevo solo spiegarti le ragioni delle mie 
perplessità. Vi ringrazio entrambi moltissimo.
 
"Daniele"  ha scritto nel messaggio news:r45nbm$1b9n$1...@gioia.aioe.org...
