Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 19-06-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cita:
Empezado por Angel.Matilla Ver Mensaje
Gracias por la sugerencia bucanero. Entiendo el sentido del código que me pones en Delphi, pero me pierdo al pasarlo a Builder. Supongo que la instrucción repeat será el equivalente al Next() de Builder, para que avance al siguiente registro de la tabla o query. Pero si es así hay algo en el código que no me cuadra: Si después de asignar cada nivel del TreeView avanzas un registro dejo sin leer parte de cada fila del query. O estoy interpretando mal la idea.
La instrucción repeat es similar al while con la evaluación de la condición al final del bucle, he traducido mi código al similar en C++ con tus nombres de campos y variables:

Código:
  Query->First();
  while ( !fMenu->Query->Eof ) {
    //inserta el nodo del primer campo 
    Nodo[0] = LisMun->Items->Add(Nil, fMenu->Query->Fields->FieldByNumber(1)->AsString);
    do {
      //inserta el nodo del segundo campo 	
      Nodo[1] = LisMun->Items->Add(Nodo[0], fMenu->Query->Fields->FieldByNumber(2)->AsString);
      do {
        //inserta el nodo del tercer campo 		  
	newNodo = new TMyRec;
        newNodo->Codigo = fMenu->Query->Fields->FieldByNumber(4)->AsInteger;	  
        Nodo[2] = LisMun->Items->AddChildObject(Nodo[1], fMenu->Query->Fields->FieldByNumber(3)->AsString, newNodo);
	// avanza en la consulta
        fMenu->Query->Next();

 	// repite el bucle hasta final de la consulta o 
        // hasta que cambie el segundo campo de la tabla 
      } while ( !fMenu->Query->Eof && 
                    (Nodo[2]->Text == fMenu->Query->Fields->FieldByNumber(2)->AsString));
      // repite el bucle hasta final de la consulta o 
      // hasta que cambie el primer campo de la tabla 	  
    } while ( !fMenu->Query->Eof && 
                (Nodo[1]->Text == fMenu->Query->Fields->FieldByNumber(1)->AsString));
  }
el código funciona siempre que la consulta SQL este ordenada pro PARTIDO, COMARCA y MUNICIPIO.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TTreeView en un objeto cepriego OOP 2 18-02-2008 17:19:22
Componente TTreeView zvf OOP 4 05-08-2006 17:42:46
ScrollBar en TTreeView jzk OOP 0 08-03-2005 18:56:15
Novato con TTreeView MaGNa OOP 2 03-11-2004 13:02:25
Cargar un TTreeView desde una tabla hibero OOP 8 15-07-2004 19:43:33


La franja horaria es GMT +2. Ahora son las 13:29:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi