Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Celda Selecionada en Un DBGrid

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Celda Selecionada en Un DBGrid Responder citando

Buenos Días

Como puedo saber que celda tengo selecionada en un DBGrid

Código:
void __fastcall TConForm::DBGrid1CellClick(TColumn *Column)


asi si puedo saber que columna pero que fila dentro del evento

gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Pero que quieres hacer exactamente???
algo asi??:

Código:
if( StringGrid1->Col == 3 )

if( StringGrid1->Row == 3 )



o asi:

Código:


int ekis,igriega;

TPoint pos = StringGrid1->ScreenToClient(Mouse->CursorPos);
TGridCoord pos_grid = StringGrid1->MouseCoord(pos.x, pos.y);
POINT MousePos;
GetCursorPos(&MousePos);

ekis=pos_grid.X;
igriega=pos_grid.Y;


en esta ultimo, en ekis tendriamos la columna y en igriega la fila donde está el ratónl.


Ultima edición por hetorsc el Jue 06 Mar, 2008 4:58 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

lo que quiero hacer es saber extraer el dato al que hay el la celda de un DBGrid al que se le da Click

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Código:

 int ekis,igriega;

TPoint pos = StringGrid1->ScreenToClient(Mouse->CursorPos);
TGridCoord pos_grid = StringGrid1->MouseCoord(pos.x, pos.y);
POINT MousePos;
GetCursorPos(&MousePos);

ekis=pos_grid.X;
igriega=pos_grid.Y;

ShowMessage(StringGrid1->Cells[ekis][igriega]) ;



Aqui te sale un mensaje con el contenido de la celda donde hagas clic
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Buenas Tardes

hola gracias por responder, lo que tu me dices funciona pero hay un problemita ya que depende el tamaño del Grid, por que si este tiene muchos registros me da la posicion solo de los que esten visibles, es decir que si el grid tiene 500 registros y por el tamaño de mismo solo me muestra 10 cuando me mueva sobre este, me da el mismo valor horizontal, lo que yo mas necesito es algo como
Código:
void __fastcall TConForm::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)

donde me diga el valor de columna y la fila pero no para un StringGrid sino para un DBGrid


saludos

alguna idea mas ..
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Mira aqui, te aclaran algo:

https://cppbuilder.es/viewtopic.php?t=11351&highlight=datasource
https://cppbuilder.es/viewtopic.php?t=10280&highlight=datasource
https://cppbuilder.es/viewtopic.php?t=10068&highlight=datasource

Yo hice algo parecido.
Lo que hice fue meter en un popupmenu todos los valores de una columna:

Código:

String aux;
aux= Column->FieldName;//aqui guardo el nombre de la columna

ADOConnection1->Close();
ADOConnection1->ConnectionString =
                "Provider=MSDASQL.1;"
                "Persist Security Info=False;"
                "Data Source=" + Form3->Edit1->Text + ";" //Nombre del origen de datos -- igual al nombre del DSN
                "Extended Properties=DATABASE="+ Form3->Edit2->Text +";" //Nombre de tu base de datos contenida el server de MySQL
                "OPTION=0;"
                "PORT="+ Form3->Edit3->Text +";"  //Puerto
                "SERVER="+ Form3->Edit4->Text +";" //La dirección IP del server (ejemplo)
                "UID="+ Form3->Edit5->Text +";" // Nombre de usuario
                "PASSWORD="+ Form3->Edit6->Text +""; // Password
ADOConnection1->Open();
ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("Select DISTINCT " + aux + " from " + nombre tabla + " where "+ aux + " is not null;");// con este select sacamos todos los valores de la columna que no sean nulos y sin repetir
ADOQuery1->Active=true;
DBGrid1->DataSource->DataSet->First();// y ahora vamos recorriendo los resultados del SELECT desde el primero
PopupMenu1->Items->Clear();// limpiamos el popupmenu
   while(!DBGrid1->DataSource->DataSet->Eof)
   {
      String menu = "PopupMenu1";
      String nombre= DBGrid1->Columns->Items[0]->Field->AsString;
      TMenuItem *Item = NewItem(nombre, NULL, false, true, OnClick, 0, menu);//creamos un nuevo item para el popupmenu
      PopupMenu1->Items->Insert(0, Item);// añadimos ese nuevo item
      DBGrid1->DataSource->DataSet->Next(); //pasamos al siguiente
   }

POINT MousePos;
GetCursorPos(&MousePos);
PopupMenu2->Popup(MousePos.x, MousePos.y);



no se si te servira de ayuda.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Buenos Días

Gracias por todo si me funciono de maravilla, gracias

Seth
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.