mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.delphi
Titolo: Primo elemento Tree

Salve a tutti,
Come si fa a fare in modo che facendo click su un TreeView mi
restituisca sempre il primo nodo?
Esempio
AA
  1
   2
BB
  2
   3
                Se clikko su 3 mi deve restituire BB
Grazie 1000
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Puoi fare un ciclo che guarda il parent del nodo finchè non è nil.
var
  Node: TTreeNode;
begin
  Node := TreeView.Selected;
  while Node.Parent <> nil do
    Node := Node.Parent;
  ShowMessage(Node.Text);
end;
-- 
Lis
ICQ@Home #7317603sette     ICQ@Work #16285702tre
Mercatino: 
http://lis77.bravepages.com
 (aggiornato *con foto*: 16/06/03)

Newsgroup: it.comp.lang.delphi
Titolo: programmi

Dove posso trovare in rete dei sorgenti di una chat scritta in delphi?

www.torry.net
--
Consonni Davide
DavideC...@Virgilio.it
webmaster of
http://www.traduzioniellepi.com





dove posso trovare in rete dei sorgenti di un 
programma di chat scritti in Delphi?


naturalmente freeware vi ringrazio anticipatamente 
cordiali saluti



non postare in html grazie.


Newsgroup: it.comp.lang.delphi
Titolo: Stream ed Excel Aiuto!!! vi prego

 Ho caricato da un file res in un Resurcestream un file di excel ora sto 
cercando di aprirlo senza salvarlo in un file come posso fare...
Questo è il mio codice
procedure TForm1.Button1Click(Sender: TObject);
var
  Res: TResourceStream;
  oXL, oWB, oSheet: Variant;
  s:TStream;
begin
 Res:=TResourceStream.Create(hinstance, 'MYXLS',RT_RCDATA);
 oXl:= CreateOleObject('Excel.Application');
 Ora come posso aprirlo?????????????
GRazie a tutti ciao
--- posted by geoForum on 
http://www.delphiedintorni.it

imho, semplicemente non puoi.
Crei un file tmp e lo fai aprire ad excel per poi cancellarlo in
uscita.
AS

mmm ma il woorkboox in VBA carica gli stream... come è possibile???


questa non la sapevo..
 quale metodo usi in vba per gli stream?
Posta posta posta....
AS
as

No l'ho visto in esempio
Workbooks.Open(reader.read)

Newsgroup: it.comp.lang.delphi
Titolo: Derivazione oggetti.

Ciao a tutti.
Ho un piccolo quesito:
Se creo un mio componente derivandolo da un componente che ha
determinate proprieta' published (ovvero visibili nell'object
inspector), posso rendere queste proprieta' private o protette?
Lo scopo e' quello di nascondere all'object inspector delle proprieta'
(che non mi servono) che sono gia' state dichiarate published
nell'oggetto derivato.
Io ho gia' provato a ri-dichiarare la proprieta' nella sezione private o
protected o anche nella public in questo modo:
type 
  MioOggetto = class(VecchioOggetto)
  private
    property <nome_proprieta'>;
  protected
  public
  published
  end;
Il compilatore non da problemi...ma alla fine quando uso il mio oggetto
la proprieta' si vede comunque nell'object inspector.
Se qualcuno ha la soluzione sono tutt'occhi! :)  CIAO!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

   end;
Mmm a quanto ne so e' proprio cosi' che si fa.. hai provato a metterlo
protected invece che private? sei sicuro di aver ricompilato tutto
correttamente?
ciao!
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

La ridichiarazione puņ diminuire la protezione delle proprietą ma non
aumentarla, quindi non potrai mai rendere private una proprietą che č gią
published.
Se proprio non la vuoi vedere nell'Object Inspector la puoi rendere public,
altrimenti ti conviene utilizzare una classe TCustom... come fa Borland nei
source della VCL, dichiarando le proprietą protected.
Ciao.
Gianluca.


Capisco l'utilità pratica di quello che stai cercando di fare, ma questo
viola uno dei concetti di base della progettazione OOP: ogni classe derivata
puo essere un "sostituto" della classe da cui deriva (credo che sui chiami
principio di sostituzione di Liskov). Questo ha un notevole impatto sulla
capacità di un linguaggio di implementare il polimorfismo. Immagina che la
tua classe implementi un'interfaccia, se tu potessi fare quello che
descrivi, un classe figlia potrebbe anche non implementarla +, in quanto
potrebbe non esporre + metodi che nel padre erano disponibili. Grosso
casino.
Ciao,
G.

 inspector), posso rendere queste proprieta' private o protette?
A parte tutte le giustissime risposte degli altri partecipanti al newsgroup
c'è una ulteriore possibilità che deriva dal tipo di classe che intendi
derivare.
NBel tuo caso un componente che, presumo, sia standard di Delphi.
In questo caso molto probabilmente esiste una sua superclasse o classe
genitore che contiene quasi tutte le proprietà che ti servono però su un
livello di visibilità inferiore.
Es. TMemo deriva da TCustomMemo che, se spulci i sorgenti è uguale a TMemo
solamente che ha le proprietà non published.
Prova a vagliare anche la possibilità di cambiare classe da derivare.
Saluti.
Newsgroup: it.comp.lang.delphi
Titolo: DbBarCode

Ciao a tutti...
avrei bisogno di qualche indicazione su dove posso trovare nella rete un
componente per la gestione dei BarCode... da utilizzare in D6.
Grazie a tutti per le risposte.
Saluti
Sparta

 ha scritto nel messaggio
news:oFIvpN6u...@news.osra.loc...


 ha scritto nel messaggio
news:oFIvpN6u...@news.osra.loc...


Newsgroup: it.comp.lang.delphi
Titolo: Come fa? email e antivirus

Ciao a tutti!
Come fa Norton Antivirus 2003 a intercettare le e-mail in arrivo e quelle
che escono senza modificare i settaggi di pop e smtp dei client di posta?
Vorrei fare una cosa simile con i componenti indy...
Grazie in anticipo, Chris
-- 
--------------------------------------------------------------------
http://www.mutantpenguins.net
- Spaghetti GameDev & Computer Graphics -
--------------------------------------------------------------------

 Vorrei fare una cosa simile con i componenti indy...
Credo agisca da sniffer sulla porta alla quale i due protocolli lavorano.
--
- Carlo -
"Imparare senza riflettere o riflettere senza imparare non vi porta alla
buona comprensione" Confucio

 client di posta? Vorrei fare una cosa simile con i componenti indy...
Sicuro che non modifica i settaggi? Mi sembra che in qualche modo faccia da
proxy per la posta in uscita, e per quella in ingresso si configuri come
plugin del client di posta.

Newsgroup: it.comp.lang.delphi
Titolo: Stringgrid a colori

Stò tentando di intercettare l'evento OnDrewCell dello
Stringgrid ma non riescoa colorare il testo come voglio:
if Odd(ARow) then begin
  TStringgrid(sender).Canvas.Brush.Color:=clgray;
  TStringgrid(sender).Canvas.Font.Color:=clwhite;
  TStringgrid(sender).Canvas.Rectangle(Rect);
  TStringgrid(sender).Canvas.TextRect(Rect,0,0,'prova');
end else begin
  TStringgrid(sender).Canvas.Brush.Color:=clwhite;
  TStringgrid(sender).Canvas.Font.Color:=clblack;
end;
..vengono colorate le celle ma il testo non viene fuori..
..avete mai affrontato questo problema?

 ha scritto nel messaggio news:ta3aa.27505$zo2.7...@news2.tin.it...

Newsgroup: it.comp.lang.delphi
Titolo: Paradox e Password

Ciao, ho un programmino che usa una tabella master e varie details
(Paradox).
Ora dato che i dati contenuti nella tabella master sono dati personali (i
detail sono collegati con codice clienti e quindi difficili da interpretare
dall'esterno) , vorrei poter limitare l'accesso solo a determinati utenti.
La tabella Master inoltre dovrebbe impedire la lettura anche a programmi
esterni es. database Desktop.
Per creare la master uso la seguente procedura (creazione runtime):
procedure TDM.CreaApriAnagrafica(tbPath:String='');
begin
    tbAnagrafica.TableName:='Anagrafica';
    tbAnagrafica.DatabaseName := ExtractFilePath(Application.ExeName) +
tbPath;
    ForceDirectories(tbAnagrafica.DatabaseName);
    if not tbAnagrafica.Exists then
    begin
         with tbAnagrafica do
         begin
         Active := False;
         TableType := ttParadox;
         with IndexDefs do
            begin
            Clear;
            Add('', 'ID_CANDIDATO', [ixPrimary, ixUnique]);
            Add('CognomeIndx', 'Cognome', [ixCaseInsensitive]);
            end;
         CreateTable;
         end;
    end;
    tbAnagrafica.Open;
end;

 esterni es. database Desktop.
Ho usato quesa tecnica:
con DataBaseDesktop ho assegnato le password di protezione (puoi addirittura
nascondere una colonna oppure renderla di sola lettura in funzione
dell'utente che accede)
Poi da programma ho chiesto user e password e tramite "Session.addPassword"
l'ho inviata al database.
Per quanto ne so... funziona!
--
Emilio Panozzo
mailto: 
emip...@tin.it
Newsgroup: it.comp.lang.delphi
Titolo: DB - Componente SDAC SQL Server

ciao a tutti!
un paio di domandine....
1)vi scrivo perchè sarei intenzionato ad acquistare una serie di componenti
SDAC della CoreLab per adoperare SQL Server nelle mie applicazioni, qualcuno
ha già lavorato con questi componenti 
http://crlab.com/index.html
, esiste di
meglio sul mercato?
2) vorrei realizzare un'applicazione a n strati, business-object, layer-db
ecc. esiste la possibilità di utilizzare un componente della palette di
delphi (tipo quelli per ADO per esempio) senza necessariamente incollarlo in
un form, ma dichiarandolo e instanziarlo in una unit senza form? per
intenderci come si programma con ADO in pagine ASP.
vi ringrazio per l'attenzione
Roberto

 intenderci come si programma con ADO in pagine ASP.
si.
Dichiari un handle e usi il metodo Create:
var
  TuoDataset: TAdoDataset;
begin
  TuoDataset := TAdoDataset.Create(Nil);
  try
    TuoDataset.Qualcosa := Qualcosaltro
    TuoDataset.FaiQualcosa;
  finallly
    TuoDataset.Free
  end;
end;
Bye
A

Newsgroup: it.comp.lang.delphi
Titolo: Win2k e Shutdown

Come posso spegnere il computer attraverso un programma se il sistema
operativo è Windows 2000?
Per Win95/98 è abbastanza semplice... ma non sembra funzionare in Win2k...
Grazie,
  Luca

Mi rispondo da solo... in caso a qualcuno interessasse...
Bye,
  Luca
________________
var
  TokenHandle: THandle;
  NewState, PreviousState: TTokenPrivileges;
  ReturnLength: DWORD;
begin
  // Request the right to shutdown Windows NT/2000 (not needed for Windows
95/98/ME)
  if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, TokenHandle) then RaiseLastWin32Error;
  try
    NewState.PrivilegeCount := 1;
    if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege',
NewState.Privileges[0].LUID) then RaiseLastWin32Error;
    NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    ReturnLength := 0;
    if not AdjustTokenPrivileges(TokenHandle, False, NewState,
SizeOf(NewState), PreviousState, ReturnLength) then RaiseLastWin32Error;
  finally
    CloseHandle(TokenHandle);
  end;
  // Shutdown Windows
  if not ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN or EWX_POWEROFF, 0) then
RaiseLastWin32Error;
end;

Newsgroup: it.comp.lang.delphi
Titolo: Windows 2000 & Delphi 5

Ciao a tutti,
Vorrei passare a Windows 2000 professional.
Quali casini potrei avere sviluppando con Delphi 5 (pro) ?
Considerate che utilizzo:
BDE + Paradox or DBase or ODBC + Sql Server 7
DLL
OLE Automation
grazie
Solid Snake IT

 > news:95oios$s1v$1...@fe1.cs.interbusiness.it...


Grazie a tutti mi avete convinto !
ciao
Solid Snake IT

 wrote in message
news:95oios$s1v$1...@fe1.cs.interbusiness.it...

Newsgroup: it.comp.lang.delphi
Titolo: Informazioni libro delphi e automatismi elettrici!!!

Salve, mi servirebbe un'informazione riguardo ad un libro delphi, vorrei
sapere se esiste qualche testo nel quale vengono proposti e trattati
esempi
di applicazioni delphi per l'interfacciamento con elettronica e
automazione
tipo plc o schede elettroniche, oppure realizzazione di software per
videosorveglianza.
Il libro mi interessa anche se in lingua inglese.
Vorrei sapere inoltre se esiste e il titolo di tale libro e dove poterlo
acquistare.
Grazie in anticipo che chi mi voglia rispondere!!!

 videosorveglianza.
queste cose sono INDIPENDENTI dal linguaggio.
Quando ti connetti ad un device via seriale quello che conta è il 
protocollo di tale device, a prescindere se usi delphi, vb, c++, 
powerbuilder o qualsiasi altra cosa.
A

 ha scritto nel messaggio
news:eh5u8o$bi$1...@newsreader1.mclink.it...

I'm protected by SpamBrave
http://www.spambrave.com/

sbobbas ha scritto:

Direi proprio di no.
Personalmente il Delphi non si presta molto bene ad azionare impianti 
elettronici che andrebbero invece controllati con altri linguaggi, 
diciamo assembly o c.
Il delphi lo puoi usare per l'interfaccia grafica,
Ciao gianmarco

 elettronici che andrebbero invece controllati con altri linguaggi,
Personalmente, in questi ultimi 4 anni, ho sviluppato drivers per 
apparecchiature elettroniche di vario genere (stampanti, lettori badges, 
macchinari come i drink dispensers, etcc..), con Delphi, e senza alcun tipo 
di problema. L'unica cosa che serve, come ha detto Alberto, è il protocollo 
di comunicazione dell'apparecchiatura che devi interfacciare.
Potresti motivare la tua risposta con casi pratici?
Acqua 

 ha scritto nel messaggio
news:AVFZg.930$pL3...@tornado.fastwebnet.it...

I'm protected by SpamBrave
http://www.spambrave.com/

 di delphi ed elettronica automazione,
Quello che posso dirti è:
Cerca su google rs232 tutorial per capire come comunicare con le seriali.
Esistono comunque già dei componenti per Delphi che che si occupano di ciò. 
Cerca su 
www.torry.net
Fatti dare dal produttore, il *protocollo di comunicazione* per quella 
specifica apparecchiatura.
Una volta che hai il protocollo in mano e hai capito come inviare e ricevere 
dati dalla seriale il gioco è fatto.
Acqua 

 Il delphi lo puoi usare per l'interfaccia grafica,
direi che è un po riduttivo... :-))
A.

 
Io aggiungo con le Async Pro risolvi il problema sulle seriali.
Dan
Newsgroup: it.comp.lang.delphi
Titolo: treeview sempre aperta

Salve volevo sapere se è possibile lasciare una treeview sempre aperta,setto
la proprietà autoexpand := true;questo funziona se ho solo un items se ne ho
+ di uno si apre solo il 
primo.vi
 faccio un esempio in caso non sia stato
chiaro.
+Itemes1
  subitem1
  subitem2
con un solo item e settando autoexpand := true. All'avvio dell'applicazione
tutto ok
se invece ho2 item lasciando settato sempre autoexpand := true, rimane
aperta solo il primo esempio:
+Items1
  subitem1
  subitem2
+Items2.
io in vece voglio che si veda cosi
+Itemes1
  subitem1
  subitem2
+Itemes2
  subitem1
  subitem2.
ciao Marcello

 la proprietā autoexpand := true;questo funziona se ho solo un items se ne
ho...

Newsgroup: it.comp.lang.delphi
Titolo: Comportamento "strano" di while...do

Ciao a tutti,
ma queste due istruzioni:
while (port1c.b0 = false) do application.ProcessMessages;
while ( not port1c.b0 ) do application.ProcessMessages;
non dovrebbero essere virtualmente identiche ? tenuto conto che 
port1c.b0 è una variabile booleana ?
stasera mi ristudio il while e le condizioni va...
ZioGian

 non dovrebbero essere virtualmente identiche ?
Sì, dovrebbero. Perché lo chiedi?
-- 
Jax
====
Non si può unificare un paese che conta 256 tipi di formaggi. (De
Gaulle)

 
Prob...perche sono pazzo e un po stonato...avevo dei problemi con del 
codice li attorno, ma le istruzioni fanno effettivamente la stessa cosa.
Ero solo un po frustrato io, dopo 2 ore di caxxio perche non fa quello 
che deve...
Sorry.
ZioGian
Newsgroup: it.comp.lang.delphi
Titolo: Stampa di un file testo...

Salve, vi espongo il mio problema:
devo stampare un testo su di una stampante ad aghi e non voglio che questa
mi stampi in grafica; se creo il file e lo stampo via DOS tramite il type
reindirizzato su porta la stampa č un a scheggia; con la mia applicazione le
ho provate tutte ma č sempre lenta .... AIUTO !!
Ciao, Luca

 Ciao, Luca
Ciao, Antò.



Nelle TI o nelle FAQ (non ricordo quale delle due) di borland (non so
se ci arrivi dal sito ufficiale o dal sito della community) c'č un
articolo che spiega come mandare dei dati raw ad una stampante tra
quelle configurate nel sistema, utilissimo per stampare a caratteri su
qualsiasi tipo di stampante (anche laser, testato e funzionante).
Non ricordo il titolo dell'articolo ma se cerchi "print" nell'elenco
delle TI / FAQ dovresti trovarlo senza problemi.
Phelipe
    by Phelipe de Sterlich
===============================
ELCO Sistemi Gestione del Tempo
e-mail: 
fi...@elcosistemi.it
http://www.elcosistemi.it
===============================
Public PGP Key available
===============================

 Ciao, Luca
Ciao
.G

 fosse un file di testo e scrivendo con WriteLn le righe del file.
Se non erro non funziona con NT e 2000.
Io ho risolto utilizzando le API di Windows per la gestione dello spooler
(unit WinSpool in Delphi). É un po laborioso ma poi va che é un piacere!
Ciao, Davide

Se non erro non funziona con NT e 2000.
A parte quello, non funziona neanche con stampanti remote, mentre il
metodo indicato nella TI Borland funzia perfettamente in entrambi i
casi.
Phelipe
    by Phelipe de Sterlich
===============================
ELCO Sistemi Gestione del Tempo
e-mail: 
 
fi...@elcosistemi.it
 
assis...@elcosistemi.it


 Phelipe
Ma avete provato con AssignPrn ?
E non funziona sotto 2000?
Buono a sapersi!
ciao
Sergio

Newsgroup: it.comp.lang.delphi
Titolo: il cursore alla fine della parola..

Ciao a tutti,
il problema di questa sera è il seguente..:
ho un bel Tedit... nel quale inserisco una parola .. poi premento un tasto
funzione mi si attiva un'altra finestra.
Alla chiusura della finestra il focus deve tornare al edit che l'ha
chiamata... e fin qui tutto ok.
Il problema è che vorrei che il cursore apparisse non all'inizio della
stringa gia' scritta ma alla fine.. dando la possibilita' di continuare a
scrivere....
grazie mille.

edit1.SetFocus;
edit1.SelStart:=length(edit1.Text)+1;
Ciao!!
--
Marco Kregar
marco....@FirebirdSQL.it
www.FirebirdSQL.it
"over the bench the goat sings, under the bench the goat dies"
Newsgroup: it.comp.lang.delphi
Titolo: CVS e delphi

Ciao a tutti,
spero di non essere troppo ot, ma in fondo questo messaggio riguarda
proprio la gestione dei progetti delphi.
Io uso il classico Cvs, nella "distribuzione" cvs-nt, come sistema di
controllo di versione, ma mi sono ritrovato con qualche problemuccio. 
Praticamente mi ha incasinato un file pas. Avevo paura per i dfm, che
salvo come testo, invece, trak, mi ha incasinato un pas. Mi ha fatto
il merge di 2 versioni in un file. 
Credo dipenda proprio da come cvs gestisce i conflitti. Quindi se non
trovo la soluzione lo abbandonero'.
In fondo si usa un sistema di controllo di versione per tranquillita'
ma se capitano ste cose, c'e' da star poco tranquilli.
Vengo al dunque. Qualcuno usa cvs ed e' in grado di dirmi se sbaglio
qualcosa o se devo adottare precauzioni particolari?
Oppure
Qualcuno usa un sistema di controllo di versione? Quale? Io ho delphi
pro quindi niente teamsource, e non vorrei proprio usare Vss.
Consigli?
Qualcuno usa FreeVcs?
Ciao grazie.
Massimiliano

Se hai avuto modo di leggere il mio ultimo post in tema di vcs, avresti visto
che denunciavo la scarsa affidabilita' del merge automatico di questi
software, questo non per rimproverarti ma per darti il seguente consiglio:
Fate un riunione tutto il team e stabilite questa regola:
Chi fa il checkout (cioe' si scarica il sorgente sul suo pc per lavorarci
sopra) blocca il sorgente sul repository. Questo impedira' a chiunque di fare
il checkout dello stesso sorgente in scrittura.
Se dovete lavorare in piu' persone sullo stesso file (pessima idea), uno locka
e gli altri si scaricano il file in readonly, lo sproteggono, ci lavorano
sopra, poi a modifiche finite rifanno il checkout e, sulla propria macchina,
fanno *A MANO* il merge. A Merge  finito, si fa il checkin del file, il numero
di versione viene incrementato e, a turno, tutti possono fare checkout, e
aggiungere le proprie modifiche con la certezza di lavorare sull'ultima
release sempre aggiornata.
Spero di essermi spiegato, sono appena tornato in ufficio e ho la pancia piena
che mi opprime la mente....
Ciao
-- 
Morde. 
morde[at]programmer[.]net

>>>>>
versione codice 1
======
versione codice 2
<<<<<<
(o qualcosa del genere ora non ricordo preciso mi e' capitato solo una
volta)
a te basta scegliere quale delle 2 preferisci, e cancellare l'altra,
anche io all'inizio mi ero panicato ma non era nulla, anzi e' fatto
abbastanza bene dato che e' facile scegliere la parte buona del
codice.
Comunque io prima di un merge preventivamente faccio un bel commit
cosi al + recupero la revisione precedente dei file in conflitto.
Un appunto:
Ti consiglio di non usare le "CVS keyword" perche' nei merging fanno
un casino incredibile (in modo speciale $Log$)
Ciao
-- 
.     _  _______  ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_
  /| // /__  __/  Kirys <My e-mail is a working antispam e-mail>
 / |/ \   / /     Kirys Tech 2000: 
http://www.kt2k.com
/__|\__\ /_/ 2000 ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_ļ,ø*°`°*ø,ļ_

 wrote:
dimenticavo per i conflitti e' utile
http://sourceforge.net/projects/conflicteditor/
per avere una visuale + chiara :)

Newsgroup: it.comp.lang.delphi
Titolo: Scusatemi... Delphi e Fax..

Lo so, ho già postato questa domanda un pò di volte...
..ma le risposte non sono quelle che cerco!
Io sto tentando di ricevere fax tramite delphi per poi poterli mettere in un
canvas e stamparli su una stampante PDF...
ho trovato un pò di documentazione sulle TAPI, ma tra tutte le funzioni non
ho mai visto quella per leggere i dati che arrivano!
Possibile che nessuno in Internet abbia mai realizzato un programmino anche
stupido per ricevere i fax? E' una funzione "di nicchia" ??
Mah, intanto aspetto e proseguo su altri frangenti...
Mi continuo però a porre questa domanda... "Come mai per Linux esistono Fax
server, PDF Maker....e le soluzioni non si portano anche in Windows??"
Grazie
Mauro

server, PDF Maker....e le soluzioni non si portano anche in Windows??"
La risposta M$ la conosce benissimo....
Ciao
Morde

Non sò se può esserti di aiuto qui c'è un componente per fax freeware
http://commlinx.com.au/tfax.htm
ciao Max

 server, PDF Maker....e le soluzioni non si portano anche in Windows??"
non si portano "gratis" intendi dire? forse perche' chi programma sotto win
non adora, in genere, lavorare gratis :)
Ciao, Sandro

Newsgroup: it.comp.lang.delphi
Titolo: Hint durevole

è possibile aumentare la durata di visualizzazione dell'Hint o ancor
meglio persistere la sua presenza fino a quando non sposto il mouse su
un altro controllo?
Ciao e grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao,
per aumentare la durata della visualizzazione dell' hint
guarda TApplication.HintHidePause
es:
Application.HintHidePause := 5000;//  5 sec
bye Max

Newsgroup: it.comp.lang.delphi
Titolo: 8 byte -> 1 double precision floating point

Salve a tutti, ho un vettore di 8 byte, devo "trasformarlo" in 1 Double. Per 
"trasformare" intendo mapparlo bit per bit su un double. Come posso fare? 



var
  D, X: Double;
  DBytes: array [0..7] of Byte absolute D;
begin
  X := 0.0;
  D := -3.1415927;
  ShowMessageFmt('[PRIMA] D = %10.7f - X = %10.7f', [D, X]);
  Move(DBytes, X, SizeOf(X));
  ShowMessageFmt('[DOPO] D = %10.7f - X = %10.7f', [D, X]);
end;
Newsgroup: it.comp.lang.delphi
Titolo: Stampa Form

Ho un problema di questo tipo:
Devo stampare un modulo, già costruito in excel, di quelli per le procedure 
ISO9000 ecc. e compilarlo con dei valori che l'applicazione legge da alcuni 
strumenti di controllo.
Io ho fatto così:
 Ho salvato in bitmap il modulo fatto in excel.
Ho inserito la bitmap su una form
Vado a leggere i valori sui miei strumenti e li carico in alcune Tstring che 
ho sovrapposto alla bitmap in punti dove mi serviva compilare la tabella 
ISO9000 con i valori letti.
Faccio una stampa della form con la funzione FormIso.Print;
Il tutto funziona egregiamente, senonche dopo qualche giorno di 
funzionamento la stampa della Form mi produce un foglio A4 completamente 
nero.
Uscendo dall'applicazione e rientrando la stampa torna a funzionare, ma dopo 
un pò.... riecco il foglio nero.
Uso Delphi5 e non ci salto fuori.
Helpme.
Ciao.

 Faccio una stampa della form con la funzione FormIso.Print;
non era + semplice questa qui:
1) creare una copia del foglio excel originale
2) aprirla con ole automation
3) scrivere nelle celle i valori
4) salvare dando un nome calcolato in base a qualhe algoritmo, in modo
da avere uno storico
5) stampare
6) chiudere la sessione excel
:-|
AS

 ha scritto nel messaggio 
news:1158146150.5...@e3g2000cwe.googlegroups.com...

Newsgroup: it.comp.lang.delphi
Titolo: bloccare la cancellazione di un record

Uso un pulsante per la cancellazione dei record di un archivio. L'azione
viene presa da un actionlist.
Nell'evento before delete del componente Tquery, ho messo un messaggio che
avvisa il cliente se veramente vuol cancellare il record.
Come faccio ad interrompere la cancellazione nel caso il cliente non volesse
cancellare il record?
...una cosa del tipo query.state.cancel , che cancelli lo stato di insert
del database, possibile che non esiste?
Ciao e grazie
Gianni Giusti
-----------------------
Di NO! alla censura su internet. Firma la petizione di Punto-Informatico.
http://www.punto-informatico.it/petizione.asp
----------------------





Basta che chiami la Abort, sul before 
delete.


 


(Guarda la posta elettronica).


________________________________
 David 
Marcucci  

                
Programmatore 

            Direzione 
Sistemi Informativi
   SITA S.p.a.
Newsgroup: it.comp.lang.delphi
Titolo: Delphi scrivere campi pagina web

Salve a tutti. Ho in mente di creare un programmino che sia in grado di 
compilare i campi di una pagina web. Un classico esempio sarebbe quello 
di compilare i campi di una registrazione per un casella di posta 
elettronica. Avevo pensato di sviluppare il sudetto soft praticamente 
trovando nella pagina html il tag ricercato ( es: <imput type=text 
Nome= 'UserId' Valore='') ed assegnandogli il valore tramite delphi. Ma 
mi sa che ho intrapreso la strada sbagliata, xche sul web non ho trovato 
niente del genere. Premetto che non parlo di una mia pagina web ma in 
generale,che so, potrebbe essere yahoo virgilio etc.... 
Suggerimenti????? Grazie Mille ciaoooooooo!
--- posted by geoForum on 
http://www.delphiedintorni.it



Usa TWebBrowser
Saluti  Giuseppe


Ok.Ma come faccio a scrivere sui campi che mi interessano?c'è un modo 
per intercettarli? perchè non voglio farlo manualmente ma in base a dei 
dati che passo io di default, che so tramite un file ini o un database.
Grazie ciao!


 
Per compilare i campi di un form puoi usare:
WebBrowser1.OleObject.Document.GetElementById('NomeCampo').Value 
:= 'Valore 1';
Naturalmente 'Valore 1' è un valore stringa che puoi prelevare da un file
.ini, un db, etc.
Per fare clic su un pulsante:
WebBrowser1.OleObject.Document.GetElementById('NomePulsante').Click();
'NomePulsante' è il nome dell'oggetto pulsante sulla pagina web.
Giuseppe

Ciao, l'argomento mi interessa.
Mi puoi dare qualche link dove guardarmi un po' di documentazione?
Grazie mille,
David
-- 
******
L'uomo č padrone di ciň che ha da dire ma č schiavo di ciň che ha detto.
****** 

 David
In Google cerca "msdn webbrowser" e prendi il primo risultato.
Giuseppe

altri tips interessanti li trovi su
http://www.swissdelphicenter.ch/en/internet.php
ciao

ok risolto grazie mille alla prox!!!!!

Newsgroup: it.comp.lang.delphi
Titolo: NMFTP

Qualcuno ha provato ad utilizzare questo componente inserito in Delphi
5? Sono stati riscontrati problemi? A me a volte non risce a chidere
la sessione e mi lascia il collegamento pendente, bloccando
l'applicazione.
Grazie e chi mi puņ aiutare.

 Grazie e chi mi può aiutare.
Newsgroup: it.comp.lang.delphi
Titolo: Decimali in Currency

Vorrei tenere 9 decimali in un Currency? Come faccio?
Ho un tipo di dato che restituisce un double con 13 decimali, tipo:
13,9044343003433.
Assegnando il valore ad un Currency mi vengono tagliati i decimali alle 4
cifre, quindi 13,9044.
Come posso fargli tenere 9 decimali?
Ho provato l'istruzione RoundTo ma stessa cosa!
Grazie a chi mi saprà rispondere.

 cifre, quindi 13,9044.
Questo è tratto dalla guida in linea di delphi7:
Currencyis a fixed-point data type that minimizes rounding errors in 
monetary calculations. It is stored as a scaled 64-bit integer with the 
*four least significant digits* implicitly representing decimal places. 
When mixed with other real types in assignments and expressions, 
Currency values are automatically divided or multiplied by 10000.
-- 
Alberto Salvati
A *Neapolitan* delphi developer who is studing c# & .Net
"Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso!"

Newsgroup: it.comp.lang.delphi
Titolo: Grid to Excel

Ciao a tutti.
Ho trovato questo codice per esportare una StringGrid in Excel, senza usare
l'ole:
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
const AValue: string);
var L:Word;
const
 {$J+}
 CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
 {$J-}
begin
 L:=Length(AValue);
 CXlsLabel[1]:=8+L;
 CXlsLabel[2]:=ARow;
 CXlsLabel[3]:=ACol;
 CXlsLabel[5]:=L;
 XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
 XlsStream.WriteBuffer(Pointer(AValue)^, L);
end;
function SaveAsExcelFile(AGrid: TStringGrid; AFileName: string): Boolean;
const
  {$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
  CXlsEof: array[0..1] of Word = ($0A, 00);
var FStream: TFileStream;
    I,J: Integer;
begin
 Result:=False;
 FStream:=TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
 try
   CXlsBof[4]:=0;
   FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
   for i:=0 to AGrid.ColCount-1 do
     for j:=0 to AGrid.RowCount-1 do
       XlsWriteCellLabel(FStream, I, J, AGrid.cells[i, j]);
   FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
   Result:=True;
 finally
   FStream.Free;
 end;
end;
Qualcuno mi spiega come funziona? :-)
Grazie, Chris

 l'ole:
Ti ha risposto, e credo nel migliore dei modi, Andrea Magni sul NG di Cantů.
Ad ogni modo non fa altro che salvare su file, in un formato Excel
compatibile, il valore delle celle.
Tutti i valori che non sono direttamente inerenti ai valori delle celle sono
i byte specifici del formato simil Excel.
Ciao
Matteo

 i byte specifici del formato simil Excel.
Capito. Ovviamente il formato file di Excel, come tutti i prodotti microsoft
e' undocumented, vero? :-)
Ciao, Chris

 ha scritto nel messaggio
news:b4a9nb$2dej$1...@newsreader1.mclink.it...

Credo proprio di sě. Mi hai fatto venire in mente questa pagina web...
http://www.rekombinant.org/article.php?sid=1437
Ciao
Matteo
Newsgroup: it.comp.lang.delphi
Titolo: Dischi rimovibili e Cache

Raga, ho bisogno di un aiutino.
Ho trovato un po' di documentazione relativa alla funzione
NtSetSystemInformation() con cui è possibile (dicono) forzare lo svuotamento
delle cache dei dispositivi (nel mio caso flashmemory) semplicemente
impostanto a -1 il valore minimo e massimo della dimensione della cache.
Io ho bisogno di poter usare in maniera "tranquilla" questi bei dispositivi
di memorizzazione, quindi l'ideale sarebbe fare tutte le operazioni di
in/out e poi, alla fine, lanciare un bel "svuota la cache" oppure fare tutte
le operazioni dicendo al SO di NON usare la cache e, perciò, scrivendo
SUBITO i dati..
Qualcuno ha (o ha avuto) nel presente (o nel passato) questa necessità ?
E' possibile sapere (tramite opportuno messaggio di Win$ozz) quando tutte le
operazioni di scrittura su uno di questi aggeggi sono terminate ? Che ne so,
un apposito Notify .......
Certo, posso sempre dire all'utente di guardare il led e quando smette di
lampeggiare può scollegare dall'usb, però non è molto carino.
Grazie
Andrea

devi x forza scrivere direttamente sul device?
Non puoi creare i tuoi files su c e, una volta terminata la loro 
creazione, li copi sul device?
AS


 creazione, li copi sul device?
Il problema non cambia, anzi, forse lo peggiora perchč i tempi aumentano.
Il discorso č il seguente: come faccio a sapere se tutte le opčerazioni dis
crittura sul device sono state effettivamente fatte (quindi la cache
scaricata) ?
Io devo poter dare all'utente un showmessage( "adesso puoi staccare il
device dall'usb" ).
Andrea
Newsgroup: it.comp.lang.delphi
Titolo: Aprire 1 programma 2 volte

Salve ragazzi,
    Mi piacerebbe fare un programma che mi permetta di aprire 2 volte un
programma che non si lascia aprire più di una volta...
Come ad esempio ICQ... lo apri la prima volta... e se tenti di aprirlo una
seconda volta non ti lascia...
...ho trovato un programmino tattico che mi permette di farlo... MULTI
ICQ... fikissimo... però non ho capito molto bene il suo funzionamento...
come ha fatto lo stregone che ha programmato sto gingillo?... magari
paciocca qualcosa direttamente nell'exe dell'ICQ?... o forse chissà che...
...giusto ora mi viene in mente Ultima Online... heheh... così posso
gironzolare con 2 personaggi contemporaneamente (sempre se il server di
ultima non capisce che ci sono due ip uguali connessi e non mi lasci fare il
tutto)... ma ci sono anche altri
programmi che mi piacerebbe aprire contemporaneamente...
aiutatemiiiiiii! ehhehe... grazie a tutti voi :)
GattoMark

aiutatemiiiiiii! ehhehe... grazie a tutti voi :)
come ti ho detto non vedo soluzioni identiche per ogni programma che non si
lascia avviare più di una volta.
Ciao !!
Antonio Tarolla

 passarlo ?
GattoMark pensa:
io credo che le procedure per controllare se un programma è aperto siano
sempre le stesse... nei miei pensieri gira questo piccolo pensiero... e non
riuscirò a farlo uscire finchè qualcuno non mi fa un esempio che mi dimostri
il contrario... :P hehehe... cosa si controlla per vedere se un programma è
aperto!? posso modificare quella cosa che mi dice che il programma
aperto?!?... se ad esempio è una stringa... metterci "B" al posto di "A"?...
hehhehe..
ditemi se ho scritto cavolate e se i miei pensieri sono un pò caproni...
hehehe :)
miaoooooooooooooooo! Mark

paciocca qualcosa direttamente nell'exe dell'ICQ?...
Penso che tu non possa fare qualcosa di universale, ovvero valido per tutti
i programmi. Dipende in che modo è fatto il controllo. Ci sono varie
tecniche per impedire che un programma venga aperto + volte. Ad esempio
potrebbe fare un controllo sulla finestra, vedere se è già aperta una
finestra con quel nome e in tal caso non creare quella nuova.
Oppure potrebbe aver implementato un controllo ancora + serio con i comandi
GlobalFindAtom(), GlobalAddAtom() etc...
Ti ripeto, puoi creare un'applicazione che ti permette di creare istanze
multiple di un programma che normalmente non  lo permette, ma devi scoprire
la tecnica che utilizza per impedirlo. Quelle che ti ho detto io sono solo
un paio di tecniche, ma le possibilità sono moltissime!
Ciao
--
- Carlo -
BSSoftware Tips Mailing-List Support

 aperto!?
Bisogna chiederlo a chi ha scritto il programma...
Piccola teoria (mia personale) sul MultiICQ: probabilmente resetta un mutex
in modo che il controllo con la WaitForSingleObject dia sempre Timeout (che
in caso normale significa che non ci sono altre istanze in esecuzione)...
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply

^.^< GattoMark >^.^<

Newsgroup: it.comp.lang.delphi
Titolo: Ottimizzazione DB con TDatabase

Ciao a tutti!
Utilizzo i componenti Kadao per gestire in modo semplice e veloce i DB
Access. Vorrei sapere se è possibile ottimizzare il database tramite
qualche metodo... sicuramente avrete visto che molti DB consentono
l'ottimizzazione delle tabelle, e tra questi c'è anche Access... ma
come fare per farlo via codice??
Grazie per l'attenzione!
Ciao

 ha scritto nel messaggio 
news:1145975859.0...@e56g2000cwe.googlegroups.com...
Ciao a tutti!
Utilizzo i componenti Kadao per gestire in modo semplice e veloce i DB
Access. Vorrei sapere se è possibile ottimizzare il database tramite
qualche metodo...
Premetto che di DB ne so pochissimo. Ricordo di aver letto da qualche parte 
che MS Access fa una copia dei dati su un nuovo DB... praticamente ne crea 
uno nuovo, crea le tabelle, inserisce i record.
Ho letto una leggenda?

 ha scritto nel messaggio

Beccati stò link .... con guida illustrata....
Compacting an Access database with ADO and Delphi
 
http://delphi.about.com/od/sqlservermsdeaccess/l/aa091801a.htm
GP 

Grazie GP !

Newsgroup: it.comp.lang.delphi
Titolo: Allineamento grid

Salve a tutti,
come faccio ad allineare a destra una colonna di una griglia ?
GRAZIE
--
Posted from 
mta16-acc.tin.it
 [212.216.176.47] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 come faccio ad allineare a destra una colonna di una griglia ?
doppio click sulla griglia, aggiungi tutti i campi, selezioni il campo
che ti interessa, nella prop Alignment: taRightJustify.

>
come faccio ad allineare a destra una colonna di una griglia ?
<<
Se si tratta di una dbgrid, come suggerisce C.Bosich, altrimenti usa
OnDrawCell (v. help) per disegnare sul canvas della grid il tuo testo
allineato a dx:
with Sender as TStringGrid do
  DrawText(Canvas.Handle, PChar(Cells[Col, Row]), -1, Rect, DT_VCENTER +
DT_SINGLELINE + DT_RIGHT);
 altrimenti scarica un componente griglia da uno dei soliti siti
http://torry.rimini.com
http://developers.href.com
hth
Paolo Arosio

Newsgroup: it.comp.lang.delphi
Titolo: Delhpi 3/4/5

Salve.
C'e' qualcuno che potrebbe vendermi la vesrione 3 o 4 o 5 di Delhi Ita (o
Eng) Standard comprensiva di manuale?
Oppure segnalarmi ditte che potrebbero vendere il software?
Grazie.
 BedBaol

 wrote in news:pfSW9.54495$0v.1682933
@
news1.tin.it
:

Contattami privatamente.
se...@freemail.it
Newsgroup: it.comp.lang.delphi
Titolo: D5 Vs. Delphi 2007

Una curiosità: Quale versione di Delphi genera, partendo dallo stesso
codice, L'eseguibile più performante?
Oppure il risultato è lo stesso?



Dipende da quello che fa il programma: D5 e D2007, a parità di piattaforma
win32, generano codici differenti in quanto la vlcl e la rtl sono diverse..
D2007 sicuramente ha linker, compiler e librerie ottimizzate rispetto a D5.
Comunque, mi ripeto, dipende molto da cosa fa il programma.
-- 
Morde

 Oppure il risultato è lo stesso?
Di che tipo di programma parliamo?
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 Oppure il risultato è lo stesso?
Concordo con quanto gia' indicato da Morde, ed aggiungo che D2007
include le librerie FastMM e FastCode. Il passaggio da D7 a D2007 di
alcune mie applicazioni che facevano un intenso uso della memoria ha
portato ad un ottimo incremento di performance, in alcuni cas anche del
70%.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

> Di che tipo di programma parliamo?
In realta' era una domanda un po' generica, nel senso che volevo
sapere se nel complesso le performance migliorano. I programmi sono i
più disparati. Dagli accessi a DB con interrogazioni o elaborazioni
sui dati, alla generazione di files PDF per l'invio delle fatture ai
clienti (con l'accesso quindi agli spool di stampa).
In generale i miei sono tutti programmi gestionali.

Vik ha scritto:

In tal caso, puoi non preoccuparti di questa domanda generica, perché 
qualsiasi differenza ci sia sarà impercettibile, dal punto di vista del 
compilato.


 ha scritto nel messaggio 
news:22f339ac-6d91-44e0...@m73g2000hsh.googlegroups.com...


 tutto in Run time error ed anche in Debuggin.
brrrrrrrrrrrrrrrrr
A.

Newsgroup: it.comp.lang.delphi
Titolo: [OT] One million codegear license to russia

Un milione di licenze vendute da codegear alla russia per le universita.
http://www.infoworld.com/article/08/02/01/codegear-russia_1.html
Altro che morto... delphi sembra vivo e vegeto, quantomeno all'estero..
-- 
Morde

 ha scritto:

siiiiiii va bhe !!!!!

 siiiiiii va bhe !!!!!
"Don't feed the troll."
-- 
Morde

 [...]
Chissà se è stato concesso un buono sconto... ;-)
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 Chissà se è stato concesso un buono sconto... ;-)
Anche nick hodges l'ha ripreso ufficialmente,
http://blogs.codegear.com/nickhodges/2008/02/01/39019/
direi che si sono assicurati stipendi per altri 20 anni.. ;-)
-- 
Morde

 direi che si sono assicurati stipendi per altri 20 anni.. ;-)
Bravo Morde!
Sentiti ringraziamenti per la bella notizia che hai divulgato
Ciao

 Ciao
ooooooooooooooooooooooooooohhhhh !!!!! se non lo faceva non dormivo la
notte !!!
Newsgroup: it.comp.lang.delphi
Titolo: Sblocco del database

Ciao a tutti. Devo cancellare un database Access dall'hard disk appena 
termina l'esecuzione della mia applicazione (e' una brutta cosa, ma mi 
hanno chiesto una demo all'ultimo minuto).
Per fare questo imposto ADOConnection1.Connected = False, e richiamo la 
funzione DeleteFile della unit Windows. Cio' nonostante, quando tento di 
cancellare il file del database non succede assolutamente nulla.
Avete qualche suggerimento su come possa "polverizzare" il database, 
anche se per qualche motivo risultasse ancora in uso dalla mia 
applicazione o dal motore di Access?
MT
-- 
There's no place like 127.0.0.1

 ha scritto nel messaggio 
news:faQVe.60682$4g5.3...@news4.tin.it...

Probabilmente non riesci a cancellarlo perchè il file risulta ancora in
uso anche se ti sei appena disconnesso.... prova ad inserire subito
dopo la DeleteFile (ed eventualmente anche subito prima) una
Application.ProcessMessages;
Sinceramente non mi sembra un grande idea quella di cancellare
il database Access per fare una demo... basta che l'utente ne faccia
una copia dal file system quando la tua applicazione è ancora aperta.
Posso darti un suggerimento... cerca il componente AVLock
ti permetterà di fare delle demo molto customizzabili in un tempo
abbastanza rapido.
Ciao,
Riccardo
--
* Immolo - Motore di ricerca immobiliare
* web: 
http://www.immolo.it

 una copia dal file system quando la tua applicazione è ancora aperta.
L'obiettivo non e' quello di evitare che copino il database, il che non 
e' un problema in questo caso particolare, ma quello di non sporcare il 
filesystem dell'utente lasciandogli un file indesiderato.
Grazie per la risposta.
MT

 MT


Newsgroup: it.comp.lang.delphi
Titolo: combinazioni ricorsive

Scusate se mi permetto,
ma è da poco che mi son messo a studiare programmazione delphi.
Avrei in mente di fare un piccolo programmino che stampi a video (anche 
grezzamente)
tutte le combinazioni possibili di ad esempio 5 numeri per classe 3.
Non mi interessa calcolare il fattoriale, ma proprio avere a video tutte le 
combinazioni.
Come posso fare?
Grazie
Saluti
 
 

 combinazioni.
prova a dare un occhio
http://tinyurl.com/6ldjk3l
-- 
-------------------------------
per scrivere in privato
togliere "1975nosp"
to reply remove "1975nosp"

Newsgroup: it.comp.lang.delphi
Titolo: Thread & Socket

Salve a Tutti,
avrei bisogno di imparare come utilizzare la programmazione multithreaded
sotto windows e l'utilizzo dei socket per implementare una stuttura
client/server in delphi, potreste indicami qualche sito con tutorial e
manuali?
Grazie

"Morpheus" ha scritto nel messaggio

Prova a vedere se e' ancora valido:
http://www.pergolesi.demon.co.uk/prog/threads/ToC.html
--
Ciao.
ACSH
[D4]
---------------------------
Chi fa da se'
fatica il doppio
Newsgroup: it.comp.lang.delphi
Titolo: RefreshRecord e Key violation

Salve,
utilizzo Delphi 2005 ed ho il seguente problema con dbExpress che non riesco 
a risolvere.
La versione esatta di Borland Developer Studio è la 9.0.1882.30496 Update 2.
Ho un ClientDataset (su cui devo eseguire un "RefreshRecord"), che riceve i 
dati da un Provider che a sua volta recupera record mediante un SQLDataset 
da un Database Firebird.
Il PacketRecords del ClientDataset NON è impostato a -1 pertanto il Provider 
recupera TOT record per pacchetto.
L'UpdateMode del provider è impostato su upWhereKeyOnly, e sul componente 
SQLDataset sono stati impostati opportunamente i campi aggiungendo pfInKey 
nei ProviderFlags della chiave primaria.
Succede che, dopo avere eseguito un semplice RefreshRecord sul 
ClientDataset, al successivo recupero di record eseguito dal Provider (e 
quindi dopo essermi spostato sull'ultimo record attualmente presente nel 
ClientDataset quando cerco di spostarmi ulteriormente di un record) viene 
generato un errore di "key violaton".
Se non eseguo alcun RefreshRecord il problema del "key violaton" non si 
manifesta ed il provider riesce a rifornire il ClientDataset correttamente 
senza alcun problema.
Suppongo, supportato anche da diversi test effettuati, che questo "key 
violation" si verifichi perchè dopo aver effettuato il 
ClientDataset.RefreshRecord il Provider sembra andare a riprendere l'ultimo 
record restituito all'interno del pacchetto precedentemente fornito al 
ClientDataset anzichè restituire i record successivi a partire dall'ultimo 
record restituito nel pacchetto precedente.
Spero di essere stato chiaro... e spero che qualcuno possa essermi di aiuto.
Grazie per l'attenzione,
Riccardo
-- 
* Immolo - Portale immobiliare
* 
http://www.immolo.it

 da un Database Firebird. [...]
Temo che il tuo problema sia dovuto al fatto che il CDS utilizza i campi 
chiave per recuperare, tramite una WHERE, i dati aggiornati del record 
inserito e/o modificato; quindi, se la chiave del record è generata lato 
server, la versione del record lato client, presente nel CDS, non 
possiede tale valore e quindi non può sincronizzare i dati del record 
con quelli presenti sul DB.
Il mio consiglio è quello di reperire la chiave da attribuire al record 
dal server e assegnarla lato client, in modo che il record venga salvato 
con la chiave univoca definitiva, attraverso una specifica stored o 
vista creata sul DB FireBird.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

   Marco.
Grazie comunque,

Newsgroup: it.comp.lang.delphi
Titolo: Conversione di un header c - Pointer to bstr

Ciao a tutti,
vorrei chiedere una dritta su come trattare questo problema. Sto
importando in Delphi (v.5) un header scritto in C, mi sono imbattuto
nella funzione che segue:
Versione C:
virtual HRESULT STDMETHODCALLTYPE GetDeviceProperties	(
long lDeviceID,
long lDevicePropertyType,
IUnknown* lpValue ) = 0;
Come vedete lpValue (il valore restituito da questa funzione è un
puntatore a un tipo iunknown e credo di avere capito che può essere
trattato in delphi come un puntatore. Il parametro lDevicePropertyType
speficica l'informazione che si vuole ottenere dalla funzione che sarà
restituito in lpValue e quest ultimo può essere tra le altre cose "a
pointer to BSTR string.". In delphi ho riscritto la funzione come
segue:
  function GetDeviceProperties(
    lDeviceID: LongInt;
    lDevicePropertyType: TDeviceProperty;
    lpValue: Pointer
  ): HRESULT; stdcall;
Vi sembra giusta questa trasposizione? Interpreto lpValue come un
puntatore, così adesso quando mi restituisce un puntatore ad un BStr
vorrei leggere il contenuto (una stringa!), ma ottengo solo violazioni
di accesso alla memoria.
Cosa mi suggerite?
Ringrazio in anticipo per ogni suggerimento,
ilvecchioalex


Una BSTR equivale ad un WideString. Quindi, un BSTR* e' uguale ad un
^WideString. Ma, ripeto, il fatto che nella funzione C ci sia un IUnknown mi
fa pensare che quel puntatore non vada typecastato cosi' "alla leggera". Se
hai qualche informazione in piu' magari si puo' capire meglio.
Ciao,
Stefano

...

 Ciao Stefano,
è stata la prima cosa che ho pensato quando ho letto IUnknown, ma mi è
sembrata troppo generica per essere una interfaccia ad un oggetto.
L'header proviene dall'SDK fornito dalla Creative per la gestione del
DAP Jukebox e probabilmente devo andare a leggermi qualche release
precedente dello stesso SDK per trovare qualche informazione in più su
questo parametro. Grazie per l'interessamento, ti farò sapere quando
saprò qualche informazione in più.
Buon lavoro,
ilvecchioalex

 Ciao Stefano,
Per cortesia quotare meglio, grazie.
-- 
Morde. 
(morde at programmer dot net)