PDA

Ver la Versión Completa : Abrir archivo o programa con doble clic en item de TListBox


aguml
25-06-2020, 13:14:18
La idea es que cuando haga doble clic sobre uno de los items del ListBox me ejecute el path que tiene abriendose el ejecutable o fichero o directorio. Lo tengo así y funciona pero me gustaría saber si hay algun modo mejor sin usar un bucle:
void __fastcall TForm1::ListBoxCoincidenciasDblClick(TObject *Sender)
{
OpenPathSelected(ListBoxCoincidencias);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListBoxSeleccionadosDblClick(TObject *Sender)
{
OpenPathSelected(ListBoxSeleccionados);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenPathSelected(TListBox *LB)
{
for (int i = 0; i < LB->Items->Count; i++) {
if(LB->Selected[i]){
ShellExecute(NULL, L"open", LB->Items->Strings[i].c_str(), NULL, NULL, SW_SHOWNORMAL);
break;
}
}
}

Neftali [Germán.Estévez]
25-06-2020, 14:29:42
Si estás haciendo el recorrido para saber cual es el elemento seleccionado, no hace falta hacerlo.
La propiedad ItemIndex te da el índice del seleccionado.
Para conocer el elemento seleciconado, en Delphi sería algo así:
ListBox1.Items[ListBox1.ItemIndex];


Supongo que podrías hacer algo así:

LB->Items[LB->ItemIndex]



O similar. No controlo de sintaxis en C++

aguml
25-06-2020, 23:40:02
Ok, gracias. Mañana lo cambio. Era tan evidente que se me pasó 😅

aguml
27-06-2020, 03:09:29
Funcionó a la perfección, gracias.