Programación Y Desarrollo Web
:: 
 
Apache ASP C/C++ C++ Builder


CSS Delphi HTML Java


JavaScript MySQL PHP


SQL Server Visual C++ W3C  
 
 
 
.: Inicio  ::  Código  ::  C++ Builder :.
 
 
 
 
  Manuales
  Código
  Trucos Windows
  Descargas
  Vínculos
 
 
 
.:: Código C++ Builder ::.

• Volumen 
• Filtro 
 

 
• Creación de formas

Para cualquier forma, puedes usar botones para ver el cambio.

"Forma Elíptica"

  {
    //tomar el área cliente del Form
    const RECT RClient = GetClientRect();
    //crear una región elíptica
    const HRGN hMyRgn = CreateEllipticRgn(0,0,RClient.right,RClient.bottom);
    SetWindowRgn(Handle, hMyRgn, true);
  }


"forma triangular"

  {
    TPoint P[3];
    //punto inicial
    P[0].x = 0;
    P[0].y = 0;
    //determina lo ancho del triangulo
    P[1].x = Form1->Width;
    P[1].y = 0;
    //punto de altura
    P[2].x = Form1->Width/2;
    P[2].y = Form1->Height;
    //crea área poligono
    HRGN MyRgn = CreatePolygonRgn(P,3,WINDING);
    //introducir la región deseada
    SetWindowRgn(Handle,MyRgn,true);
  }

 

 
• Crear archivo de ayuda

1.- generar el archivo de contenido en word y guardarlo con la extensión rtf.
2.- ejecutar el compilador de ayuda llamado "hcw.exe". ejecutarlo en modo ms-dos
3.- crear un nuevo proyecto o abrir uno existente.
4.- incluir en la opción de files al archivo creado con la extensión rtf.
5.- guardar el archivo con la extensión hpj.
6.- compilar el archivo.

Despué de esto, debemos incluir el archivo a C++ Builder.
En el menú principal de C++ Builder, seleccionar:
  Proyect / Option / Application / Helpfile, aquí debes de incluir la ruta del archivo hlp.

Para mandar llamar el archivo de ayuda el código es:
Application ->HelpCommand(Help_Contents,0);

 

 
• Simulador de Base de Datos

Se utilizan 3 edits, un botón y un memo de la paleta standard, y un updown de la paleta win32

  //declarar la siguiente variable global, despué de "TForm1 *Form1;"
  int linea=0;

En el evento OnClick del botón, copiar el siguiente código:

  //se declara una variable de tipo ansistring para guardar el texto de los edits
  AnsiString registro;
  //se separa el contenido de los edits mediante comas
  //se indica el final del registro con "@"
  registro=Edit1->Text+","+Edit2->Text+","+Edit3->Text+"@";
  //se agrega la variable registro al memo
  Memo1->Lines->Add(registro);
  //se limpian los edits y regresa el foco al edit1
  Edit1->Clear();
  Edit2->Clear();
  Edit3->Clear();
  Edit1->SetFocus();

En el evento OnChangingEx del updown, copiar el siguiente código:

  //Esta variable tomará el texto de la línea del memo que se muestre
  AnsiString regtemp;

  if(Direction==updDown && linea>0)
    linea++;
  else if(Direction==updUp && linea<Memo1->Lines->Count-1)
    linea--;
  regtemp = Memo1->Lines->Strings[linea];
  Edit1->Text = regtemp.SubString(1,regtemp.Pos(",")-1);
  regtemp = regtemp.Delete(1,regtemp.Pos(","));
  Edit2->Text = regtemp.SubString(1,regtemp.Pos(",")-1);
  regtemp = regtemp.Delete(1,regtemp.Pos(","));
  Edit3->Text = regtemp.SubString(1,regtemp.Pos("@")-1);

 

 
• Volumen

Para los que quieren realizar un reproductor multimedia
Puedes utilizar un trackbar para el voluumen y un label para mostrar su valor

Tomamos el estado del volumen al comenzar el programa para actualizar el trackbar, para eso declaramos una variable de tipo DWORD

  DWORD volumen;

En el evento OnCreate de la forma, copiar el siguiente código:

  waveOutGetVolume(0,&volumen);
  TrackBar1->Max=0xFFFF;
  TrackBar1->Position=0xFFFF-(volumen & 0xFFFF);
  Label1->Caption=IntToStr(abs(100-(TrackBar->Position*100)/0xFFFF))+" %";

En el evento OnChange del trackbar, copiar el siguiente código:

  int volumen = 0xFFFF-TrackBar->Position;
  //MAKELONG(canal izquierdo, canal derecho)
  waveOutSetVolume(0,MAKELONG(volumen,volumen));
  Label1->Caption=IntToStr(abs(100-(TrackBar->Position*100)/0xFFFF))+" %";

• nota: la función de éste código, es modificar el volumen de Windows, no es un volumen propio como el del Media Player o Winamp

 

 
• Filtro

Copiar el siguiente código, en el evento OnChange del edit que va a capturar el texto para el filtro

  if (Edit1->Text=="" || Edit1->Text==" ")
    Table1->Filtered=false;
  else {
    //la siguiente línea ignora si las letras son mayúsculas o minúsculas
    Table1->FilterOptions<<foCaseInsensitive;
    //con el asterisco, se hace una consulta de los registros donde el campo comience con lo contenido en el edit
    Table1->Filter="Nombre='"+Edit1->Text+"*'";
    Table1->Filtered=true;
  }

 
 
 
[  Inicio  ¦  Mapa del Sitio  ¦  Contacto  ]
 
 
 
Página diseñada por: TSUI Jorge Alejandro Mendoza Torres.
Sitio optimizado para ie5+/Firefox 2.0; res 800 x 600.
 
Hosted by www.Geocities.ws

1