Newsgroup: it.comp.programmare.win32
Titolo: Domanda cretina [BC++B database]

Ciao,
con un normale doppio click su una riga di una TDBGrid
vorrei fare aprire una normale dialog con i dati
del record di quella riga. Il codice dell'evento
che ho scritto è:
PazQuery->GotoBookmark(
(void *)ListaPazienti->SelectedRows->Items[0].c_str());
FPazienti->Show();
dove:
PazQuery è una TADOQuery,
ListaPazienti la TDBGrid coi record, (li prende
da una query eseguita da PazQuery),
FPazienti la dialog da aprire, che pure lei usa PazQuery
per leggere i dati.
Lancio il programma e come faccio doppioclick sulla
DBgrid ListaPazienti mi dice "Undefined Symbol
'ListaPazienti'". Eppure ListaPazienti e il metodo
che ho scritto appartengono alla stessa classe,
quella del form principale... PERCHE' non la vede
allora????
So che probabilmente quando lo scoprirò mi darò
del coglione per non averlo capito subito da solo,
ma nel frattempo accetto suggerimenti... cosa c'è
di assolutamente ovvio ed evidente che invece non vedo?

 di assolutamente ovvio ed evidente che invece non vedo?
quel msg di errore non ha nulla a che fare con i nomi nel codice..
sembra + che quel 'ListaPazienti' non sia definito nella query che recupera
i dati

 allora????
Prova a postare il codice (o almeno una parte del codice) che hai inserito
nell'evento
void __fastcall TForm1::ListaPazientiDblClick(TObject *Sender)
{
 
}
P.S.: io quella griglia l'avrei chiamata DBGridListaPazienti cosě da avere
un minimo di mnemonica quando riprenderai il codice tra 6 mesi...
Steve.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 > allora????
Prova anche a ricompilare il tutto con "Build NomeProgetto" dal menù
Project e verifica che non ci siano errori o warnings.


 per leggere i dati.
A meno la VCL sia cosi' cambiata fra BCB e Delphi, a GotoBookmark
occorre passare un TBookmark, inizializzato con GetBookmark.
scusate il C arrugginito
TBookmark pRec2Edit = PazQuery->GetBookmark;
try
  FPazienti->ShowModal();    // edit current record
  PazQuery->GotoBookmark(pRec2Edit);
finally
  PazQuery->FreeBookmark(pRec2Edit);
end;
Saluti
Paolo Arosio

 end;
Ma con GetBookmark non hai possibilità di specificare
QUALE record vuoi... ritorna da sola un bookmark al
record selezionato in quel momento? E se sono selezionati
più record come si comporta?

TBookmark pRec2Edit = PazQuery->GetBookmark;
^^^
Attenzione, in BCB le classi VCL devono essere definiti come puntatori
all'oggetto.
-- 
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".

all'oggetto.
E` un pò oscuro: le *istanze* di classi VCL devono essere definite
come puntatori alla classe (nel rispetto di Delphi).


 Paolo Arosio wrote:

Il dataset (la query) ha sempre 1 ed un solo record corrente (quello che
va in edit se chiami query->Edit()).
Saluti
Paolo Arosio

 come puntatori alla classe (nel rispetto di Delphi).
Ok, ma il typedef di TBookmark e'
type TBookmark = Pointer;
cioe' un tipo base (se ti riferivi a quello). Cmq, credo basti far
riferimento all'esempio in help (_credo_ ci siano anche per il BCB).
Saluti
Paolo Arosio

cioe' un tipo base (se ti riferivi a quello). 
Sě, anche in BCB č cosě:
typedef void *TBookmark;


Paolo Arosio wrote:

Sì, il DATASET... ma a me interessa avere un riferimento al
record della riga doppioclickata in quel momento nella TDBGRID.
Un click su una riga della TDBGrid setta automaticamente il
cursore del dataset a quel record?

 
Mi sono risposto da solo: sě, il TDBGrid setta automaticamente
il cursore del dataset al record selezionato... Azz ma perchč
non le scrivono da qualche parte 'ste cose?? :-)