Newsgroup: it.comp.lang.delphi
Titolo: Ancora sulla Rubrica telefonica...

Allora, ringrazio Morde per l'invio della sua "merce", secondo me è molto
importante confrontare i propri metodi di programmazione con gli altri. La
bozza di porgramma l'ho fatta e inizio la prova lunedi in ditta, anche se
non sono andato troppo per il sottile. Per ora ho usato un Paradox tanto per
provare. Per chi volesse darci un'occhiata, ho appoggiato la procedura sul
mio sito 
www.halleyservizi.it
 alla voce Download - Software. C'è l'exe, il
Db e un paio di txt (un leggimi e uno per i dati di configurazione). Ciao e
grazie a tutti (anche a chi volesse darmi ulteriori suggerimenti)
omerosx

provare. Per chi volesse darci un'occhiata, [cut]
e vabbè va facciamo un pò di testing :D
all'avvio, dopo aver estratto il rar su desktop e doppio click sull'icona del prog:
Errore:
=========
NetWork Initialization failed.
Path not Found.
C:\RUBRICA\
PDOXUSRS.NET
C:\RUBRICA\
=========
quando hai modificato se dai una voce lo riscarico
ho XP Prof. su LAN
	Ciao
	MassimoB
 
	--------------------[Fuori Tema]---------------------
	"La vera autenticita' non sta nell'essere come si e',
	ma nel riuscire a somigliare il piu' possibile
	al sogno che si ha di se stessi".
	Di Huma Rojo in "Tutto su mia madre".
	-----------------------------------------------------

La bozza di porgramma l'ho fatta [...]
Nella versione definitiva faresti bene a controllare il lancio di una
sola istanza.
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

ho XP Prof. su LAN
Per risolvere quel problema, devi copiare la cartella "Rubrica" nel
disco C.  Il nostro amico, evidentemente, imposta la NetDir da codice.


>  Il nostro amico, evidentemente, imposta la NetDir da codice.
Infatti...

 sola istanza.
ok, fatto

 omerosx
Nella versine definitiva IMHO dovresti:
A) controllare la pressione del tasto "cancella" se il DB č vuto da un
errore Rosso (can not perform...)
B) nella griglia disabilitare i tasti Ctrl+Del
C) quando aggiungo un record nuovo perchč per vederlo in griglia devo fare
un refresh ??
D) non si puņ avere un opzione dove decidere se all'avvio voglio vedere
l'applicazione iconizzata oppure no
E) Quando aggiungo un nuovo record se premo "chiudi" il record non mi viene
salvato
........
^_Goblin_^

Infatti...
comunque ... ho sottolineato quella che 
secondo me non è una bella cosa
(sempre se non obblighi i tuoi colleghi o il cliente
ad installare o copiare in C:\Rubrica)
 ... per il resto
il Taglia/Incolla lo so fare ;)
comunque detta una cosa che non mi piace ... ne dico una
che mi è piaciuta: il cambio di colore del Edit in fuoco nel
pannello dei dati del contatto ;)
	Ciao
	MassimoB

 salvato
ok per A,B
per C avevo già provveduto forse l'hai scaricata prima della modifica
per D è una scelta precisa dettata dall'uso che ne faremo in azienda (non mi
serve che parta la griglia all'avvio della macchina)
per E è ovvio che se faccio nuovo e poi Chiudi non sal vo nulla se non con
il tasto salva
Ripeto di apprezzare tutti i consigli anche perchè di solito da un programma
fatto per "sbaglio" ne nasce qualcosa di buono..
Ovviamente quando sarà finito sarà anche open source !!
omerosx

 pannello dei dati del contatto ;)
grazie :)
P.S. Ogni consiglio o critica sono sempre bene accette :)
omerosx

P.S. Ogni consiglio o critica sono sempre bene accette :)
;)
	Ciao
	MassimoB

ti ho "accontentato" un po' con tutto, ma mi sfugge il modo di intercettare
il CTRL-DEL, non l'ho mai usato. Se me lo posti tra un'ora lo rimetto sul
sito "aggiornato" con i consigli di tutti.
omerosx

sito "aggiornato" con i consigli di tutti.
se non usi la tabella per l'editinig dei campi puoi metterla readOnly
e ti togli il problema alla base ... se no, non lo so perchè le griglie le 
ho sempre usate in ReadOnly ... non gradisco le griglie in editing ... 
veloci si ma ....
oppure puoi provare a vedere nell'help di Delphi 
(io ho la 6) "Keyboard event" > Keyboard event processing order > vedi l'esempio
oppure ancora GetKeyboardState o GetKeyState nell'Help SDK
la prima dato un array di tasti ti ritorna i loro stati ;)
	Ciao
	MassimoB

ok, nuova versione gią sul sito... 
www.halleyservizi.it
 poi download -
software.
Per ora contiene tutti i suggerimenti che mi avete dato.. fra un pņ di
giorni metterņ anche il codice sorgente.
ciao, omerosx

[cut]
così giusto per curiosità e per completare il thread
ci diresti come hai risolto per il CTRL-DEL? :)
	Ciao
	MassimoB

per ora ho messo la grid in Read-Only perchè non facevo edit da li.. però
sto guardando anche l'intercetto dei tasti..
omerosx

Una cosa ... 
credo che non avere il bottoncino di sistema per la chiusura
della finestra (tra l'altro è la finestra principale del programma)
disorienti altamente gli utenti ... quel bottone sembra una stupidata
ma lo trovi in tutte le applicazioni e quindi la prima cosa che 
cerco per chiudere la finestra è quel bottone ...
quello che potresti fare al suo click (FormClose) è chiudere la finestra
e magari dire all'utente che il programma rimarrà attivo in Tray
e metti un checkettino "Non visualizzare in futuro" ...
	Ciao
	MassimoB


tutto giusto, ma per ora l'ho fatto di proposito, infatti a me serviva che
il programma non venisse chiuso, ma messo in pausa, allora di solito il
significato del bottone con la X della finestra ha come significato
"CHIUDI". Il tuo consiglio comunque è sensato, ma dovrei memorizzarmi da
qualche parte il fatto di "Non mostrare in futuro" (magari lo scrivo nel
dati.txt o nel registro di sistema oppure in previsione di un'ampliamento
del programma, in una tabella di parametri)
ciao, omerosx

del programma, in una tabella di parametri)
penso che sia un dato da registro ...
comunque lo metti dove credi meglio :)
dipende dal tipo di uso che farai
di codesto programma se lo metti in un file
o nel DB sei sicuro che telo porti sempre con te
ci sono pro e contro per questa cosa ...
se lo metti nel registro si lega stabilmente all'utente
della macchina su cui lo fai girare ... e soprattutto non
č portabile su Linux ... tu mi dirai <<cosa mi fai problemi di
portabilitą quando uso la TrayIcon >> :)
	Ciao
	MassimoB

"CHIUDI". 
Ha come significato quello di chiudere la finestra, non
necessariamente l'applicazione.  Molti programmi, difatti, rimangono
attivi nella tray bar (Kazaa, ICQ, ecc...).


ci diresti come hai risolto per il CTRL-DEL? :)
Basta disabilitare l'opzione "dgConfirmDelete" della griglia e
impostare l'OnBeforeDelete del dataset associato perché esegua
un'Abort.  Eventualmente, l'Abort va subordinata a un controllo su un
flag interno che autorizzi o meno la cancellazione (altrimenti nessuno
può cancellare il record):
procedure TForm1.IBDataSet1BeforeDelete(DataSet: TDataSet);
begin
  if not FDeleteFlag then Abort
  else FDeleteFlag := False;
end;
procedure TForm1.btnDeleteClick(Sender: TObject);
begin
  FDeleteFlag := True;
  IBDataSet1.Delete;
end;


 Ciao e grazie a tutti (anche a chi volesse darmi ulteriori suggerimenti)
Ti dico molto velocemente quello che ho trovato:
- occhio ai colori, io non ho i colori di sistema standard e vedo che nella
maschera per la modifica di un contatto sono sballati: le label sono
forzatamente bianche, lo sfondo della finestra è di un colore mentre lo
sfondo del pannello con i numeri di telefono è di un altro. Il combo invece
va bene così
- quando l'applicazione è visibile non compare nell'elenco dei task
(alt-tab)
- aggiungerei il pulsante "modifica"
- se l'applicazione è già visible, con al click (o doppio click) associerei
la funzione di "mostra", in modo che possa essere riportata in primo piano
senza dover chiudere tutte le altre aperte
-- 
Lis
ICQ@Home #7317603sette     ICQ@Work #16285702tre
Mercatino: 
http://lis77.bravepages.com
 (aggiornato *con foto*: 16/06/03)

 senza dover chiudere tutte le altre aperte
sull'icona della Tray l'ho messa, non so se avevi scaricato la precedente.
Ti ringrazio di tutti i suggerimenti.
ciao, omerosx

 sull'icona della Tray l'ho messa, non so se avevi scaricato la precedente.
io l'ho scaricata qualche minuto fa e il mio consiglio è quello di associare
automaticamente la funzione "mostra" al click (o doppio click) quando la
rubrica è aperta, in modo da velocizzare l'operazione
