• Lunes 12 de Mayo de 2025, 09:41

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 - wako13

Páginas: 1 [2]
26
C++ Builder / Re: Tema De Windows Xp
« en: Viernes 28 de Julio de 2006, 02:20 »
Este Codigo sirve para cambiar el Fondo del escritorio des de tu aplicacion

Código:

void __fastcall TForm1::PonerPapelTapiz(void)
{
AnsiString Archivo="C:\\Tapiz.bmp";
if (FileExists(Archivo))
   {
       SystemParametersInfo( SPI_SETDESKWALLPAPER , 0 , Archivo.c_str(), 0 );
       ShowMessage("El papel tapiz, fué cambiado");
     }
 else ShowMessage("El archivo " + Archivo + " no existe!!!");
}

27
C++ Builder / Re: Exportar Stringgrid
« en: Jueves 27 de Julio de 2006, 21:00 »
Una forma de acelerar el envío de datos es hacerlo enviando grupos de celdas en vez de celda a celda

//by _LEO
// Creamos el array donde copiaremos los datos a enviar
int bounds[4] = {0, StringGrid1->RowCount-1, 0, StringGrid1->ColCount-1};
Variant data = VarArrayCreate(bounds, 3, varVariant);

// Copiamos el contenido del StringGrid en el array
for (int y=0; y<StringGrid1->RowCount; y++)
    for (int x=0; x<StringGrid1->ColCount; x++)
        data.PutElement(StringGrid1->Cells
  • [y], y, x);


//---> Usamos una instancia de excel abierta
Variant excel = GetActiveOleObject("Excel.Application");
Variant sheet = excel.OlePropertyGet("ActiveSheet");

// Seleccionamos el princio del rango
Variant range = sheet.OlePropertyGet("Range", "A1");

// Adaptamos el tamaño del rango a nuestro array
range = range.OlePropertyGet("Resize",
    StringGrid1->RowCount, StringGrid1->ColCount);

// Enviamos los datos del array
range.OlePropertySet("Value", data);

28
C++ Builder / Re: Conexion A Base De Datos
« en: Jueves 27 de Julio de 2006, 16:50 »
Pues si vas a usar los componentes ADO tienes que hacer lo siguiente:

- Una ADOConection con el cual vas a conectarte a tu base de datos
- Un ADOTable el cual va ligado al ADOConection, y tiene una propiedad TableName que       como su nombre lo indica va a llevar el nombre de la tabla a la cual quieres conectarte
- Un DataSource el cual está en la paleta data access, que tiene una propiedad DataSet,      ahi vas a poner el nombre del ADOTable a la cual quieres conectarte.
- Si quieres mostrar los datos que tiene una tabla tienes que agregar un DBGrid el cual esta en la paleta data controls, dicho control tiene una propiedad datasource el cual va ligado al datasource que se menciona arriba.

Recuerda que para ver los datos datos la ADOTable tiene que tener la propiedad Active a True

Bueno esto es a grandes rasgos como puedes conectarte a una base de datos mediante los componentes ADO

Saludos Cordiales.

29
C++ Builder / Re: Numeros A Letras
« en: Sábado 22 de Julio de 2006, 15:59 »
Aqui les dejo uno que funciona a la perfección.

//---------------------------------------------------------------------------
// Funcion que convierte un numero a su representacion en letras
// por Cesar Salazar Gonzalez.
// Nota, en Mexico/LatinoAmerica, utilizamos la coma para separar miles.
// ejemplo mil quinientas pesetas con 20 centavos, se representa asi
// 1,500.20  <-Formato mexico
// 1.500,20  <-Formato español
// manera de usarla
// AnsiString Cadena = NoToLet("12335.56);

AnsiString __fastcall NoToLet(AnsiString  CANTIDAD)
{
    AnsiString NUEVA_CANTIDAD,NUMERO,DECIMALES,LETRAS="";

// PARA LIMPIAR LAS COMAS..,en formato Mex..
    NUEVA_CANTIDAD="";
    for(int ad=1;ad<=CANTIDAD.Length();ad++)
        if(CANTIDAD[ad]!=',')
            NUEVA_CANTIDAD += CANTIDAD[ad];

//extraer la parte Entera, cuando es ".", en Formato Mex
// cambiar a "," cuando sea español
    if( NUEVA_CANTIDAD.Pos(".")> 0 ){
        NUMERO = NUEVA_CANTIDAD.SubString(1,NUEVA_CANTIDAD.Pos(".")-1);
        DECIMALES =" "+NUEVA_CANTIDAD.SubString(  NUEVA_CANTIDAD.Pos(".")+1,2)+"/100 M.N";
    }else{
        NUMERO= NUEVA_CANTIDAD;
        DECIMALES = ". 00/100 M.N.";
    }
   int p=1,l=1,des;
    int LARGO,LARGO2;
//   char N1='0',N2='0',N3='0';
   char N1,N2,N3;
   LARGO=NUMERO.Length();
   LARGO2=NUMERO.Length();
   while(l<=LARGO-1){
      if(LARGO2-3==0 || LARGO2-6==0 || LARGO2-9==0){
         p=3;
         des=3;
      }
      if(LARGO2-3==-1 || LARGO2-6==-1 || LARGO2-9==-1){
         p=2;
         des=2;
      }
      if(LARGO2-3==-2 || LARGO2-6==-2 || LARGO2-9==-2){
         p=1;
         des=1;
      }
///////////////////// numeros de Cienes.
      if(p==3){
         N1=NUMERO[l];
         N2=NUMERO[l+1];
         N3=NUMERO[l+2];
         switch(N1){
            case '0':
                  l++;
                  p--;
                  break;
            case '1':
                  if(N2=='0' && N3=='0'){
                        LETRAS.Insert(" CIEN ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }else{
                            LETRAS.Insert(" CIENTO ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }
                  break;
            case '2':
                        LETRAS.Insert(" DOSCIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '3':
                        LETRAS.Insert(" TRESCIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '4':
                        LETRAS.Insert(" CUATROCIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '5':
                        LETRAS.Insert(" QUINIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '6':
                        LETRAS.Insert(" SEISCIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '7':
                        LETRAS.Insert(" SETECIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '8':
                        LETRAS.Insert(" OCHOCIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
            case '9':
                        LETRAS.Insert(" NOVECIENTOS ",LETRAS.Length()+1);
                  l++;
                  p--;
                  break;
         }
      }
///////////////////// numeros de decenas.
      if(p==2){
         N1=NUMERO[l];
         N2=NUMERO[l+1];
         switch(N1){
            case '0':
                  l++;
                  p--;
                  break;
            case '1':
                  if(N2!='0'){
                     switch(N2){
                        case '1':
                                        LETRAS.Insert(" ONCE ",LETRAS.Length()+1);
                              break;
                        case '2':
                                        LETRAS.Insert(" DOCE ",LETRAS.Length()+1);
                              break;
                        case '3':
                                        LETRAS.Insert(" TRECE ",LETRAS.Length()+1);
                              break;
                        case '4':
                                        LETRAS.Insert(" CATORCE ",LETRAS.Length()+1);
                              break;
                        case '5':
                                        LETRAS.Insert(" QUINCE ",LETRAS.Length()+1);
                              break;
                        case '6':
                                        LETRAS.Insert(" DIECISEIS ",LETRAS.Length()+1);
                              break;
                        case '7':
                                        LETRAS.Insert(" DIECISIETE ",LETRAS.Length()+1);
                              break;
                        case '8':
                                        LETRAS.Insert(" DIECIOCHO ",LETRAS.Length()+1);
                              break;
                        case '9':
                                        LETRAS.Insert(" DIECINUEVE ",LETRAS.Length()+1);
                              break;
                     }
                  }else{
                            LETRAS.Insert(" DIEZ ",LETRAS.Length()+1);
                        }
                  l+=2;
                  p-=2;
                  break;
            case '2':
                  if(N2!='0'){
                            LETRAS.Insert(" VEINTI",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" VEINTE ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '3':if(N2!='0'){
                     LETRAS.Insert(" TREINTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" TREINTA ",LETRAS.Length()+1);
                            l+=2;
                     p-=2;
                  }
                  break;
            case '4':if(N2!='0'){
                     LETRAS.Insert(" CUARENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" CUARENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '5':if(N2!='0'){
                     LETRAS.Insert(" CINCUENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" CINCUENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '6':if(N2!='0'){
                     LETRAS.Insert(" SESENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" SESENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '7':if(N2!='0'){
                     LETRAS.Insert(" SETENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" SETENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '8':if(N2!='0'){
                     LETRAS.Insert(" OCHENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" OCHENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
            case '9':if(N2!='0'){
                     LETRAS.Insert(" NOVENTA Y ",LETRAS.Length()+1);
                     l++;
                     p--;
                  }else{
                     LETRAS.Insert(" NOVENTA ",LETRAS.Length()+1);
                     l+=2;
                     p-=2;
                  }
                  break;
         }
      }
///////////////////// numeros ordinarios.
      if(p==1){
         N1=NUMERO[l];
         switch(N1){
            case '0':
                  break;
            case '1':
                  LETRAS.Insert("UNO ",LETRAS.Length()+1);
                  break;
            case '2':
                        LETRAS.Insert("DOS ",LETRAS.Length()+1);
                  break;
            case '3':
                        LETRAS.Insert("TRES ",LETRAS.Length()+1);
                  break;
            case '4':
                        LETRAS.Insert("CUATRO ",LETRAS.Length()+1);
                  break;
            case '5':
                        LETRAS.Insert("CINCO ",LETRAS.Length()+1);
                  break;
            case '6':
                        LETRAS.Insert("SEIS ",LETRAS.Length()+1);
                  break;
            case '7':
                        LETRAS.Insert("SIETE ",LETRAS.Length()+1);
                  break;
            case '8':
                        LETRAS.Insert("OCHO ",LETRAS.Length()+1);
                  break;
            case '9':
                        LETRAS.Insert("NUEVE ",LETRAS.Length()+1);
                  break;
         }
         l++;
      }
      // miles
      if(N1!='0'){
             // en esta parte se pude insertar mas formatos
             // aun que creo que con billones es suficiente.

         if(LARGO2==11 || LARGO2==12 || LARGO2==10)
            if (LARGO2==7 && N1=='1')
                    LETRAS =" UN BILLON ";
             else
                    LETRAS.Insert(" BILLONES ",LETRAS.Length()+1);
         if(LARGO2==8 || LARGO2==9 || LARGO2==7)
            if (LARGO2==7 && N1=='1')
                    LETRAS = " UN MILLON "  ;
             else
                    LETRAS.Insert(" MILLONES ",LETRAS.Length()+1);
         if(LARGO2==5 || LARGO2==6 || LARGO2==4)
            if (LARGO2==4 && N1=='1')
                    LETRAS = " MIL ";
             else
                    LETRAS.Insert(" MIL ",LETRAS.Length()+1);
      }
      LARGO2-=des;
   }
    return "("+(LETRAS+"PESOS "+DECIMALES)+")";
}

30
C++ Builder / Re: Econvert
« en: Viernes 21 de Julio de 2006, 18:11 »
Puedes poner tu codigo para checarlo o darnos mas pistas para poder ayudarte...

31
C++ Builder / Re: Ansistring
« en: Martes 18 de Julio de 2006, 02:43 »
Pues no estoy seguro pero al parecer se suman el valor ASCII de cada letra, me explico:

Sp  = 103 + 132 = 235
SW = 103 + 107 = 210

es por eso que SW te aparece primero por q' la suma tiene menor valor

Si fuera de esta forma:

SP = 103 + 100 = 203
SW = 103 + 107 = 210

SP te apareceria primero...

bueno es la explicacion que le puedo dar a este asunto

Si alguien tiene la respuesta correcta favor de postearla.. :D

Saludos Cordiales

32
C++ Builder / Re: Sobrecarga Del Operador <
« en: Viernes 7 de Julio de 2006, 16:30 »
Podrias poner mas acerca de tu problema
o poner tu codigo fuente para darnos mas informacion

33
C++ Builder / Re: Como Creo Un Exe En Bcb
« en: Jueves 6 de Julio de 2006, 17:32 »
En el Menú Project->Options
en la pestaña Packages desmarca la opción
"Build with runtime packages"
y en la pestaña Linker desmarca la opción
"Use dynamic RTL"

Compilas tu programa y tu exe ya es portable para cualquier maquina

34
C++ Builder / Re: Uso De Qreport
« en: Martes 16 de Mayo de 2006, 19:08 »
favor de mandar el manual tambien a esta direccion :P

mnc139@gmail.com

Gracias!

35
C++ Builder / Re: Como Reproducir Wav O Mp3
« en: Jueves 11 de Mayo de 2006, 16:14 »
Pues el Builder trae un reproductor integrado en la pestaña system

Le tienes q' pasar el nombre y la ubicacion del archivo a reproducir.... algo asi:

MediaPlayer1->FileName="C:\Musica.mp3";
MediaPlayer1->Open();

36
C++ Builder / No Permitir Grabar Archivos Al Hd
« en: Viernes 28 de Abril de 2006, 01:47 »
Hola a todos:

Mi planteamiento es el siguiente:

No permitir grabar archivos con ciertas extensiones (en este caso *.mp3) al disco duro... alguien sabe de alguna rutina q' pueda realizar esto.. de antemano gracias!

Páginas: 1 [2]