• Viernes 29 de Marzo de 2024, 11:26

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Unsire

Páginas: [1]
1
C++ Builder / Re: Indexado en tabla paradox
« en: Lunes 13 de Junio de 2011, 03:45 »
A ver, a ver, a ver. Me parece que andamos medio confundidos. La información que tengas en una tabla siempre va a aparecer como haya sido introducida, al final de todos los registros existentes, y si lo que quieres es ordenar los datos de una tabla ya existente y que todo eso se guarde entonces lo que tienes que hacer es una consulta ORDEY BY, enviar todos esos datos a una nueva tabla y después sustituir la tabla vieja, solo así se puede hacer, porque el Query es para hacer consultas, si quieres modificar tienes que usar UPDATE, etc.

2
C++ Builder / Re: Concatenar
« en: Viernes 10 de Junio de 2011, 02:35 »
Supongo que quieres algo como esto:
Código: C++
  1.  
  2. int longitud;
  3.         String texto;
  4.         texto=Edit1->Text;
  5.         longitud=texto.Length();
  6.         if(longitud==5)
  7.         {
  8.                 ShowMessage("La longitud es correcta");
  9.                 //más instrucciones
  10.         }
  11.         else
  12.         {
  13.                 ShowMessage("ERROR: La longitud del texto introducido debe ser igual a 5");
  14.                 Edit1->Clear();
  15.         }
  16.  
  17.  

3
C++ Builder / Re: Indexado en tabla paradox
« en: Viernes 10 de Junio de 2011, 02:16 »
Prueba de la siguiente forma:

Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT Apellidos,Nombre FROM Usuarios ORDER BY Apellidos");
Query1->Open();

Y si quieres que te los ordene de forma ascendente agrega ASC al final o DESC para descendente.

4
C++ Builder / Re: Hacer portable una aplicacion de Base de Datos
« en: Jueves 9 de Junio de 2011, 02:15 »
En el caso de C++Builder esto se hace selecionando Project->Options y luego en la pestaña Packages desactivar la opción "Build with runtime packages" y después en la pestaña Linker desactivar donde dice "Use dynamic RTL". Pero no estoy completamente seguro de que se pueda hacer portable con todo y base de datos.

5
C++ Builder / Re: Indexado en tabla paradox
« en: Jueves 9 de Junio de 2011, 01:58 »
En lugar de un TTable usa un TQuery y haz una consulta de la forma:
Query1->SQL->Add("SELECT LastName,FirstName FROM employee ORDER BY Lastname");

6
C++ Builder / Re: combobox
« en: Jueves 9 de Junio de 2011, 01:56 »
Bueno, mejor te pongo un ejemplo. Lo hice en C++Builder 5 con la base de datos BCDEMOS
Código: C++
  1.  
  2. void __fastcall TForm1::Button1Click(TObject *Sender)
  3. {
  4.         Query1->SQL->Clear();
  5.         Query1->SQL->Add("SELECT LastName,FirstName FROM employee");
  6.         Query1->Open();
  7.         Query1->First();
  8.  
  9.         ComboBox1->Clear();
  10.         int i,n;
  11.         String nombre,apellido;
  12.         n=Query1->RecordCount;
  13.         for(i=0;i<n;i++)
  14.         {
  15.                 nombre=Query1->FieldByName("FirstName")->AsString;
  16.                 apellido=Query1->FieldByName("LastName")->AsString;
  17.                 ComboBox1->Items->Add(nombre+" "+apellido);
  18.                 Query1->Next();
  19.  
  20.  
  21.         }
  22.         Query1->Close();
  23.  
  24. }
  25. //---------------------------------------------------------------------------
  26.  
  27.  
  28.  

Cualquier duda estoy aquí para aclararla.

7
C++ Builder / Re: Concatenar
« en: Jueves 9 de Junio de 2011, 01:41 »
Supongo que puedes hacer algo como lo siguiente:
1. Hacer una consulta  a la tabla y guardar los valores que quieres en una variable
2. Después añadir en el combobox la cadena resultante de la suma de las variables de la siguiente forma:
ComboBox1->Items->Add(var1+var2+var3);. Todo esto lo vas haciendo con un ciclo for
3. Cierras la consulta y listo......

Espero hayas entendido.

8
C++ Builder / Re: Uso de FormatFloat??
« en: Domingo 21 de Marzo de 2010, 20:32 »
Sencillo, por ejemplo

78.36/13=6.0276923076923076923076923076923
resultado=6.0276923076923076923076923076923;
Para mostrarlo en un Edit con tres decimales se hace simplemente
Edit1->Text=FormatFloat("0.000",resultado);

Edit1->Text=FormatFloat(resultado,"0.000");

Prueba de las 2 formas, no estoy muy seguro cual es la correcta.
Saludos.

9
C++ Builder / Re: Error "Invalid floating point operation"
« en: Domingo 21 de Marzo de 2010, 20:12 »
Revisa también el separador de decimales en tu configuración regional, una vez me pasó que yo ponía 3.46 y mi teclado estaba configurado para interpretar 3,46.
parece que tu código está bien, un consejo, siempre usa variables double aunque estés introduciendo datos enteros.

10
C++ Builder / Re: una manita con una consulta??
« en: Domingo 21 de Marzo de 2010, 19:49 »
Código: Text
  1.   
  2.  
  3.  ADOQuery1->SQL->Text = "UPDATE DiabetesMellitus_AnualMunicipios  SET ID_Control = '"+String(ID1)+"', P_Control = '"+String(P1)+"',ID_Informacion = '"+String(ID2)+"',P_Informacion = '"+String(P2)+"', ID_Promocion1 = '"+String(ID3)+"', P_Promocion ='"+String(P3)+"', ID_Promocion2 = '"+String(ID4)+"',ID_General = '"+String(IDG)+"'  where Año = '"+parametro+"'";// AND Localidad = '"+String(parametro3)+"'";
  4.  
  5.  ADOQuery1->Open(); 
  6.  
  7.  
  8.  

Sencillo, quita todos los "+String...", solo pon:
ADOQuery1->SQL->Text = "UPDATE DiabetesMellitus_AnualMunicipios  SET ID_Control = 'ID1', P_Control = 'P1', etc.
ESpero haberte ayudado, cualquier duda mi msn es: eddy_ef@hotmail.com
Saludos.

11
C++ Builder / Re: Exportar StrinGrid a Block de Notas
« en: Sábado 7 de Marzo de 2009, 02:20 »
Muy sencillo amigo mío, hazlo de la siguiente forma:
Código: C++
  1.  
  2. TStringList *file = new TStringList();
  3.      int col,row;
  4.      file->Clear();
  5.      for(row=0;row<StringGrid1->RowCount;row++)
  6.      {
  7.           AnsiString linea="";
  8.           for(col=0;col<StringGrid1->ColCount;col++)
  9.                linea+=StringGrid1->Cells[col][row]+",";
  10.  
  11.           linea.Delete(linea.Length(),1);
  12.           file->Append(linea);
  13.      }
  14.      SaveDialog1->Title="Guardar tabla como:";
  15.      if(SaveDialog1->Execute())
  16.           file->SaveToFile(SaveDialog1->FileName);
  17.  
  18.  

Ahora si no quieres usar un SaveDialog y guardarlo directamente en una carpeta entonces ponlo así:
file->SaveToFile("C:archivos/tu_archivo.txt");
Suerte!.. :lol:

12
C++ Builder / Re: Drag and Drop de imagenes
« en: Lunes 2 de Marzo de 2009, 23:16 »
Tal vez el siguiente código te pueda ayudar un poco:
Código: C++
  1.  
  2. TControl* control = static_cast<TControl*>(Sender);
  3. static bool pulsado = false;
  4. static TPoint posicion;
  5.  
  6. if (!pulsado && Shift.Contains(ssLeft))
  7.     posicion = Point(X, Y);
  8.  
  9. pulsado = Shift.Contains(ssLeft);
  10. if (pulsado)
  11. {
  12.     control->Left += X - posicion.x;
  13.     control->Top  += Y - posicion.y;
  14.  
  15.  
Ponlo en el Evento OnMouseMove del objeto que quieras mover, en esta caso un TImage y para que no se vea cuadrada pon la propiedad Transparent=true;

13
C++ Builder / Re: Limpiar un TImage
« en: Lunes 2 de Marzo de 2009, 22:23 »
Ok, por nada, para eso estamos!.. :P

14
C++ Builder / Re: Limpiar un TImage
« en: Lunes 2 de Marzo de 2009, 20:57 »
Entoces hazlo así:
Form1->Image1->Picture=NULL;
Me parece que con eso se resuelve el problema.

15
C++ Builder / Re: correxion de codigo
« en: Lunes 2 de Marzo de 2009, 20:39 »
Pues eso es muy sencillo, solo tienes que hacerlo de la siguiente forma:
Image1->Picture->SaveToFile("carpeta/"+nombre_imagen+".jpg");
Donde nombre_imagen es una variable alfanúmerica
Compruebas si ya existe esa imagen, si existe entonces le puedes cambiar el nombre tomando el mismo y sumándole 1 (o la cantidad que quieras) y listo.
Suerte!. :rolleyes:

16
C++ Builder / Re: Limpiar un TImage
« en: Lunes 2 de Marzo de 2009, 20:23 »
Creo que esto te puede servir.
Image1->Picture->Bitmap->FreeImage();
Suerte!.  :D

17
C++ Builder / Re: Edicion de un StringGrid
« en: Jueves 26 de Febrero de 2009, 02:19 »
Hola, para hacer lo que quieres es algo más o menos como el siguiente código, yo lo he usado y funciona a la parfección  B)
Código: C++
  1.  
  2.     TRect rect = Rect;
  3.      StringGrid1->Canvas->Font = StringGrid1->Font;
  4.  
  5.      if (ACol>=0 && State.Contains(gdFixed))
  6.      {
  7.           rect.right++;
  8.           rect.Bottom++;
  9.           StringGrid1->Canvas->Font->Color = clBlack;
  10.           StringGrid1->Canvas->Brush->Style = bsClear;
  11.           StringGrid1->Canvas->Font->Style = TFontStyles()<< fsBold;
  12.           DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),
  13.           StringGrid1->Cells[ACol][ARow].Length(), &rect,
  14.           DT_CENTER +2 | DT_CENTER +3 );
  15.      }
  16.      else
  17.      {
  18.           StringGrid1->Canvas->FillRect(rect);
  19.           if(ACol>=2)
  20.                DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),StringGrid1->Cells[ACol][ARow].Length(), &rect,DT_RIGHT | DT_RIGHT );
  21.           else
  22.                DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),StringGrid1->Cells[ACol][ARow].Length(), &rect,DT_CENTER | DT_CENTER );
  23.      }
  24.  
  25.  

Páginas: [1]