22
TALLER DE PROGRAMACION EN C++ BUILDER Ejemplo de un convertidor de divisas sencillo La interfaz de usuario esta formada por: De la paleta standard: Tres etiquetas Label, un cuadro de texto Edit, una Lista desplegable ComboBox y dos Botones Button. //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; float cambio[20]; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add("Dolares"); ComboBox1->Items->Add("Marcos Alemanes"); ComboBox1->Items->Add("Francos Suizos"); ComboBox1->Items->Add("Francos Alemanes"); ComboBox1->Items->Add("Libras Esterlinas"); cambio[0]=154.2; cambio[1]=970.3; cambio[2]=108.30; cambio[3]=23.2; cambio[4]=164.2; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int codigo; float valor,endivisa; char cadena[25]; try {valor=StrToFloat(Edit1->Text); endivisa=valor/cambio[ComboBox1->ItemIndex]; Label3->Caption =FloatToStr(endivisa)+ " " +ComboBox1->Text; } catch(Exception& E)

Taller de Programacion C++ Builder

Embed Size (px)

DESCRIPTION

Taller de Programacion C++ Builder

Citation preview

Page 1: Taller de Programacion C++ Builder

TALLER DE PROGRAMACION EN C++ BUILDER

Ejemplo de un convertidor de divisas sencillo

La interfaz de usuario esta formada por:

De la paleta standard:

Tres etiquetas Label, un cuadro de texto Edit, una Lista desplegable ComboBox y dos Botones Button.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float cambio[20];

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

ComboBox1->Items->Add("Dolares");

ComboBox1->Items->Add("Marcos Alemanes");

ComboBox1->Items->Add("Francos Suizos");

ComboBox1->Items->Add("Francos Alemanes");

ComboBox1->Items->Add("Libras Esterlinas");

cambio[0]=154.2;

cambio[1]=970.3;

cambio[2]=108.30;

cambio[3]=23.2;

cambio[4]=164.2;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int codigo;

float valor,endivisa;

char cadena[25];

try

{valor=StrToFloat(Edit1->Text);

endivisa=valor/cambio[ComboBox1->ItemIndex];

Label3->Caption =FloatToStr(endivisa)+ " " +ComboBox1->Text;

}

catch(Exception& E)

Page 2: Taller de Programacion C++ Builder

{

MessageDlg(E.Message, mtError, TMsgDlgButtons() << mbOK, 0);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if ((Key>='a'&& Key<='z')||(Key>='A'&& Key<='Z'))

{

ShowMessage("Numero Invalido");

Edit1->ReadOnly=true;

}

else

Edit1->ReadOnly=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Click(TObject *Sender)

{

Label3->Caption ="Valor del Cambio" ;

}

//----------------------------------------------------------------------------------------------------------------------------------------------------------

TALLER DE C++ BUILDER Ejemplo para darle formato a un texto.

De la paleta estándar Utilizar los siguientes componentes.

3 GroupBox

12 RadioButtons

2 Buttons

1 Label

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

Page 3: Taller de Programacion C++ Builder

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

// Cambiar el estilo de la fuente

if (RadioButton1->Checked)

Label1->Font->Style = TFontStyles();

if (RadioButton2->Checked)

Label1->Font->Style = TFontStyles()<< fsItalic;

if (RadioButton3->Checked)

Label1->Font->Style = TFontStyles()<< fsBold;

if (RadioButton4->Checked)

Label1->Font->Style = TFontStyles()<< fsBold << fsItalic;

// Cambiar el color de la fuente

if (RadioButton5->Checked)

Label1->Font->Color=clBlack;

if (RadioButton6->Checked)

Label1->Font->Color=clBlue;

if (RadioButton7->Checked)

Label1->Font->Color=clRed;

if (RadioButton8->Checked)

Label1->Font->Color=clGreen;

// Cambiar el tipo de la fuente

if (RadioButton9->Checked)

Label1->Font->Name="MS Sans Serif";

if (RadioButton10->Checked)

Label1->Font->Name="Times New Roman";

if (RadioButton11->Checked)

Label1->Font->Name="Arial";

if (RadioButton12->Checked)

Label1->Font->Name="Courier New";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

Page 4: Taller de Programacion C++ Builder

TALLER DE PROGRAMACION AVANZADA C++ BUILDER

Ejemplo de un editor de texto sencillo

La interfaz de usuario esta formada por:

De la paleta standard:

Una etiqueta Label, un cuadro de texto edit, un MainMenu, un Memo.

De la paleta Additional:

Dos Shapes, siete BitBtn.

Un control Image que contien un icono con una mano para indicarle al usario el recuadro de texto donde tiene que introducir el

nombre del archivo. Si este no se introduce cuando se quiere Abrir o Guardar un archivo, o no existe el archivo al ejecutarse

cualquiera de los dos metodos, SaveToFile o LoadFromFile, debe gestionarse un manipulador de excepciones que controle el

error o errores que se puedan producir.

De la paleta Dialogs:

Un OpenDialog, un SaveDialog y un PrintDialog.

//---------------------------------------------------------------------------

#include <vcl\vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn7Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn4Click(TObject *Sender)

{

Memo1->Clear();

Memo1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)

{

Memo1->CopyToClipboard();

Memo1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

Memo1->CutToClipboard();

Memo1->SetFocus();

}

Page 5: Taller de Programacion C++ Builder

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)

{

Memo1->PasteFromClipboard();

Memo1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn5Click(TObject *Sender)

{

try

{

Memo1->Lines->LoadFromFile(Edit1->Text);

}

catch (Exception &exception)

{

ShowMessage("No se puede cargar el archivo");

}

Memo1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn6Click(TObject *Sender)

{

try

{

Memo1->Lines->SaveToFile(Edit1->Text);

}

catch (Exception &exception)

{

ShowMessage("No se puede guardar el archivo");

}

Memo1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Abrir1Click(TObject *Sender)

{

OpenDialog1->Filter = "Text files (*.txt)|*.TXT";

OpenDialog1->Execute();

Edit1->Text=OpenDialog1->FileName;

Memo1->Lines->LoadFromFile(Edit1->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Guardar1Click(TObject *Sender)

{

SaveDialog1->Filter = "Text files (*.txt)|*.TXT";

SaveDialog1->Execute();

Edit1->Text=SaveDialog1->FileName;

Memo1->Lines->SaveToFile(Edit1->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Imprimir1Click(TObject *Sender)

{

PrintDialog1->Execute();

}

//---------------------------------------------------------------------------

Page 6: Taller de Programacion C++ Builder

TALLER DE C++ BUILDER - USO DEL COMPONENTE TIMER

COMPONENTES USADOS:

DE LA PALETA ESTÁNDAR:

4 Labels.

Modificar las siguientes propiedades en tiempo de diseño

Label1->Caption=ALTURA

Label2->Caption=0

Label3->Caption=NUMEO DE REBOTES

Label4->Caption=0

DE LA PALETA ADDITIONAL:

2 Shapes.

1 StatusBar.

Modificar las siguientes propiedades en tiempo de diseño

Shape1->Height=25

Shape1->Left=32

Shape1->Top=64

Shape1->Shape=stRectangle

Shape1->Brush->Color=clOlive

Shape1->Brush->Style=bsBDiagonal

Shape1->Height=217

Shape1->Left=32

Shape1->Top=88

DE LA PALETA SYSTEM:

3 Timers.

Modificar las siguientes propiedades en tiempo de diseño

Timer1->Enabled=false

Timer2->Enabled=false

Timer1->Interval=1

Timer2->Interval=1

Timer3->Interval=1

With the Canvas object, you can set the properties of a pen for drawing lines, a brush for filling shapes, a font for writing text, and

an array of pixels to represent the image.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "math.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float altura,altini;

int contreb=0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)

{

Form1->Canvas->MoveTo(97,303);// El objeto CanvasProvides access to the drawing area of the form.

Form1->Canvas->LineTo(550,303);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

if (Shape1->Left==90)

{Timer1->Enabled =false;

Timer2->Enabled =true;

}

Page 7: Taller de Programacion C++ Builder

Shape1->Left=Shape1->Left+2;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)

{

if (Shape1->Top>=280)

{

contreb++;

Label4->Caption=contreb;

altura=altura*0.70;

Label2->Caption=altura;

Shape1->Top=64*altini/altura;

Shape1->Left= Shape1->Left+1;

if(Shape1->Top>=280)

Shape1->Top=280;

if (altura<=0.5)

{Shape1->Top=280;

Timer2->Enabled =false;

}

}

if (Shape1->Top<280)

{Shape1->Top=Shape1->Top+3;

Shape1->Left=Shape1->Left+1;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

AnsiString cadena = "";

if (InputQuery("Caida libre", "Digite el valor de la altura", cadena))

{altura=StrToInt(cadena);

altini=altura;

Label2->Caption=altura;

Timer1->Enabled=true;}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer3Timer(TObject *Sender)

{

StatusBar1->Panels->Items[3]->Text = Now().TimeString();

StatusBar1->Panels->Items[1]->Text = Now().DateString();

}

//---------------------------------------------------------------------------

Page 8: Taller de Programacion C++ Builder

TALLER DE C++ BUILDER USO DEL COMPONENTE STATUSBAR

COMPONENTES UTILIZADOS:

DE LA PALETA STANDARD:

3 GroupBox

9 RadioButtons

1 Button

DE LA PALETA WIN32

1 StatusBar

DE LA PALETA SYSTEM:

1 Timer

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

int PosXIni, PosYIni; // Declare at the top of the form’s

Word Agno, NMes, Dia, Hora, Min, Seg, MSeg;

bool bandera1=true,bandera2=false,bandera3=false;

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

if (Shift.Contains(ssLeft))

{StatusBar1->Panels->Items[0]->Text = "X Inicial: " + IntToStr(PosXIni);

StatusBar1->Panels->Items[1]->Text = "Y Inicial: " + IntToStr(PosYIni);

StatusBar1->Panels->Items[2]->Text = "X Final: " + IntToStr(X);

StatusBar1->Panels->Items[3]->Text = "Y Final: " + IntToStr(Y);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

AnsiString mes,dias;

TDateTime actual = Date();

TDateTime DiaSem = Date();

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[0]->Width=80;

StatusBar1->Panels->Items[0]->Text="";

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[1]->Width=80;

StatusBar1->Panels->Items[1]->Bevel=pbRaised;

StatusBar1->Panels->Items[1]->Text="";

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[2]->Width=80;

StatusBar1->Panels->Items[2]->Text="";

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[3]->Width=80;

StatusBar1->Panels->Items[3]->Bevel=pbRaised;

StatusBar1->Panels->Items[3]->Text="";

DecodeDate(actual, Agno, NMes, Dia);

switch(NMes)

{

Page 9: Taller de Programacion C++ Builder

case 1: mes="Enero";

break;

case 2: mes="Febrero";

break;

case 3: mes="Marzo";

break;

case 4: mes="Abril";

break;

case 5: mes="Mayo";

break;

case 6: mes="Junio";

break;

case 7: mes="Julio";

break;

case 8: mes="Agosto";

break;

case 9: mes="Septiembre";

break;

case 10: mes="Octubre";

break;

case 11: mes="Noviembre";

break;

case 12: mes="Diciembre";

break;

}

switch(DiaSem.DayOfWeek())

{

case 1: mes="Domingo";

break;

case 2: dias="Lunes";

break;

case 3: dias="Martes";

break;

case 4: dias="Miercoles";

break;

case 5: dias="Jueves";

break;

case 6: dias="Viernes";

break;

case 7: dias="Sabado";

break;

}

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[4]->Width=280;

StatusBar1->Panels->Items[4]->Text="Hoy es " + dias+ " " + IntToStr(Dia) + " del Mes " + mes + " del Año "+ IntToStr(Agno);

StatusBar1->Panels->Add();

StatusBar1->Panels->Items[5]->Width=150;

StatusBar1->Panels->Items[5]->Bevel=pbRaised;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

{

PosXIni = X;

PosYIni = Y;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

{

if (RadioButton1->Checked)

Form1->Canvas->Brush->Color = clRed;

if (RadioButton2->Checked)

Form1->Canvas->Brush->Color = clYellow;

if (RadioButton3->Checked)

Form1->Canvas->Brush->Color = clBlue;

Page 10: Taller de Programacion C++ Builder

if (RadioButton4->Checked)

Form1->Canvas->Brush->Style = bsDiagCross;

if (RadioButton5->Checked)

Form1->Canvas->Brush->Style = bsFDiagonal;

if (RadioButton6->Checked)

Form1->Canvas->Brush->Style = bsCross;

if (bandera1)

{

Form1->Canvas->Rectangle(PosXIni, PosYIni, X, Y);

StatusBar1->Panels->Items[0]->Text = "";

StatusBar1->Panels->Items[1]->Text = "";

StatusBar1->Panels->Items[2]->Text = "";

StatusBar1->Panels->Items[3]->Text = "";

}

if (bandera2)

{

Form1->Canvas->Ellipse(PosXIni, PosYIni, X, Y);

StatusBar1->Panels->Items[0]->Text = "";

StatusBar1->Panels->Items[1]->Text = "";

StatusBar1->Panels->Items[2]->Text = "";

StatusBar1->Panels->Items[3]->Text = "";

}

if (bandera3)

{

Form1->Canvas->MoveTo(PosXIni, PosYIni);

Form1->Canvas->LineTo(X, Y);

StatusBar1->Panels->Items[0]->Text = "";

StatusBar1->Panels->Items[1]->Text = "";

StatusBar1->Panels->Items[2]->Text = "";

StatusBar1->Panels->Items[3]->Text = "";

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form1->Repaint();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

TDateTime actual = Now();

DecodeTime(actual, Hora, Min, Seg, MSeg);

StatusBar1->Panels->Items[5]->Text="La Hora es " + IntToStr(Hora) + " : "+

IntToStr(Min)+ " : "+IntToStr(Seg);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

bandera1=true;

bandera2=false;

bandera3=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

bandera1=false;

bandera2=false;

bandera3=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

bandera1=false;

bandera2=true;

bandera3=false;

}

Page 11: Taller de Programacion C++ Builder

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton7Click(TObject *Sender)

{

bandera1=true;

bandera2=false;

bandera3=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton8Click(TObject *Sender)

{

bandera1=false;

bandera2=true;

bandera3=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton9Click(TObject *Sender)

{

bandera1=false;

bandera2=false;

bandera3=true;

}

//---------------------------------------------------------------------------

TALLER DE C++ BUILDER COMPONENTE ANIMATE

COMPONENTES USADOS:

DE LA PALETA STANDARD:

3 Buttons

DE LA PALETA WIN32:

1 Animate

Propiedades principales del componente Animate.

FileName =especifica la ruta de acceso del archivo de video .avi

StartFrame=1 // especifica la primera vista que se visualiza cuando se activa el control.

StopFrame=71 // especifica la ultima vista del video. (cuando es 0 se ejecuta hasta el final)

Repetitions=0 // especifica el numero de veces que se va a repetir el video (un valor 0 indica indefinido)

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Animate1->FileName ="C:/Archivos de programa/Borland/CBuilder5/Examples/MFC/General/Cmnctrls/dillo.avi"; // si el archivo

esta en otra ruta, cámbiela por esa ruta.

Animate1->Play(0,71,0);

}//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Animate1->Stop();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Close();

Page 12: Taller de Programacion C++ Builder

}

//---------------------------------------------------------------------------

TALLER DE C++ BUILDER

En la forma 1 5 StaticText 1 Timer 1 BitButton

Modificar las siguientes propiedades en tiempo de diseño

object Form1: TForm1 Color = clWhite object StaticText1: TStaticText Left = 84 Top = 152 Width = 18 Height = 33 BorderStyle = sbsSunken Caption = 'J' Color = clWhite object StaticText2: TStaticText Left = 224 Top = 52 Width = 21 Height = 33 BorderStyle = sbsSunken Caption = 'A' Color = clWhite object StaticText3: TStaticText Left = 264 Top = 152 Width = 12 Height = 33 BorderStyle = sbsSunken Caption = 'I' Color = clWhite object StaticText4: TStaticText Left = 396 Top = 152 Width = 23 Height = 33 BorderStyle = sbsSunken Caption = 'R' Color = clWhite object StaticText5: TStaticText Left = 336 Top = 252 Width = 25 Height = 33 BorderStyle = sbsSunken Caption = 'O' Color = clWhite object BitBtn1: TBitBtn Caption = 'Siguiente' Visible = False

Page 13: Taller de Programacion C++ Builder

object Timer1: TTimer Interval = 150 /--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h"//incluir para enlazare con la forma 2 #include <stdlib.h>//incluir #include <stdio.h>//incluir #include <time.h>//incluir //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" int i = 0; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { randomize(); if (i==100) { Timer1->Enabled =false; BitBtn1->Visible =true; } else { StaticText1->Left=StaticText1->Left+1; StaticText1->Font->Color=TColor (random(2147483647)); StaticText2->Top=StaticText2->Top+1; StaticText2->Font->Color=TColor (random(2147483647)); StaticText3->Font->Color=TColor (random(2147483647)); StaticText4->Left=StaticText4->Left-1; StaticText4->Font->Color=TColor (random(2147483647)); StaticText5->Top=StaticText5->Top-1; StaticText5->Font->Color=TColor (random(2147483647)); i++; } } //--------------------------------------------------------------------------- void __fastcall TForm1::BitBtn1Click(TObject *Sender) { Form2->Show(); //muestra la segunda forma } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { } //---------------------------------------------------------------------------

Page 14: Taller de Programacion C++ Builder

En la forma 2

1 RichEdit 1 BitButton

Modificar las siguientes propiedades en tiempo de diseño

object RichEdit1: TRichEdit Left = 24 Top = 40 Width = 473 Height = 249 Lines.Strings = ('') ReadOnly = True ScrollBars = ssVertical TabOrder = 0

//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //incluir esta librería para enlazarse con la forma 1 #include "Unit2.h" #include <string.h> //incluir //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { Form1->Close(); // cierra la forma 1 } //--------------------------------------------------------------------------- void __fastcall TForm2::FormCreate(TObject *Sender) { /*aquí se carga el archivo en el RichEdit. El archivo debe tener extension rtf y la ubicación en el disco depende de su computador.*/ char const *Path = "C:\\Mis documentos\\Algoritmos de planificacion.rtf"; RichEdit1->Lines->LoadFromFile(Path); } //--------------------------------------------------------------------------- void __fastcall TForm2::BitBtn1Click(TObject *Sender) { if (RichEdit1->SelLength) { int Size = RichEdit1->SelLength; //captura la longitud del texto seleccionado del RichEdit1 Size++; //Adiciona un espacio para el carácter nulo char *Buffer = new char[Size]; //Crea una variable dinámica Buffer RichEdit1->GetSelTextBuf(Buffer,Size);//captura el texto seleccionado y lo copia en Buffer //aquí pregunta por las direcciones que hay en su documento if (strstr(Buffer,"http://www.cecar.edu.co")!=NULL) { WinExec("C:\\Archivos de programa\\Internet Explorer\\iexplore.exe http://www.cecar.edu.co",SW_SHOW);//

abre el explorador de internet

Page 15: Taller de Programacion C++ Builder

} delete Buffer; //borra lo que contiene la variable } else ShowMessage("No ha seleccionado link"); } //---------------------------------------------------------------------------

Curso de C++ Builder

Sonidos

En este ejemplo se creará un formulario que contendrá un componente MediaPlayer que servirá para reproducir ficheros .WAV.

Utilizaremos la gestión de excepciones para controlar la correcta ejecución del programa.

Crear y configurar el proyecto.

En primer lugar, crear el directorio Sonidos. y, si procede, una nueva aplicación ( File | New Application).

Guardar proyecto: Salvar Unit1.cpp como Ppal.cpp y Project1.bpr como Sonidos.bpr

Configurar el formulario.

Configurar el formulario para que tenga el aspecto mostrado en la figura siguiente:

Cambiar el título (Caption por Sonidos) y añadir los siguientes componentes:

Cuatro botones normales (Button) llamados (Name): LogoffBtn, MSSoundBtn, ErrorBtn y OtrosBtn con el texto (Caption)

indicado en la figura anterior.

Un botón BitBtn para terminar.

Un control MediaPlayer (pestaña System) no visible (Visible=false).

Un cuadro de diálogo OpenDialog (pestaña Dialogs).

Escribir los gestores de eventos asociados a la pulsación de los botones.

La gestión de las interrupciones capturadas se realiza con una función común cuyo prototipo es:

void Error (AnsiString & name, Exception & e); que se escribirá por encima de todas las funciones de Ppal.cpp. Así, los gestores

de los eventos OnClick asociados a los botones serán los siguientes:

//--------------------------------------------------------------

void __fastcall TForm1::LogoffBtnClick(TObject *Sender)

{

MediaPlayer1->FileName = "C:\\WINDOWS\\MEDIA\\Logoff.wav";

try {

MediaPlayer1->Open();

MediaPlayer1->Wait = true;

MediaPlayer1->Play();

MediaPlayer1->Close();

}

catch (Exception & e) {

Error (MediaPlayer1->FileName, e);

}

}

//--------------------------------------------------------------

void __fastcall TForm1::MSSoundBtnClick(TObject *Sender)

{

MediaPlayer1->FileName = "C:\\WINDOWS\\MEDIA\\The Microsoft Sound.wav";

Page 16: Taller de Programacion C++ Builder

try {

MediaPlayer1->Open();

MediaPlayer1->Wait = true;

MediaPlayer1->Play();

MediaPlayer1->Close();

}

catch (Exception & e) {

Error (MediaPlayer1->FileName, e);

}

}

//--------------------------------------------------------------

void __fastcall TForm1::ErrorBtnClick(TObject *Sender)

{

MediaPlayer1->FileName = "C:\\WINDOWS\\MEDIA\\NoEsta.wav";

try {

MediaPlayer1->Open();

MediaPlayer1->Wait = true;

MediaPlayer1->Play();

MediaPlayer1->Close();

}

catch (Exception & e) {

Error (MediaPlayer1->FileName, e);

}

}

//--------------------------------------------------------------

void __fastcall TForm1::OtrosBtnClick(TObject *Sender)

{

OpenDialog1->Title = "Abrir un fichero de sonido";

OpenDialog1->Filter = "Ficheros de sonido (*.wav) | *.WAV";

OpenDialog1->InitialDir = "C:\\WINDOWS";

if (OpenDialog1->Execute())

{

MediaPlayer1->FileName = OpenDialog1->FileName;

try {

MediaPlayer1->Open();

MediaPlayer1->Wait = true;

MediaPlayer1->Play();

MediaPlayer1->Close();

}

catch (Exception & e) {

Error (MediaPlayer1->FileName, e);

}

} // if (OpenDialog1->Execute())

}

//--------------------------------------------------------------

void Error (AnsiString & name, Exception & e)

{

ShowMessage ("Fallo en la reproducción del fichero de sonido: " + name +

"\nExcepción: " + AnsiString(e.ClassName()) +

"\nDetalles: " + AnsiString(e.Message));

}

//--------------------------------------------------------------

Cuando se ejecuta este programa, si se pulsa en el botón Error (se supone que el fichero de sonido que se quiere reproducir no

existe) aparece la siguiente ventana:

Page 17: Taller de Programacion C++ Builder

En cambio, si se quiere reproducir un fichero cuyo formato no sea .wav aparece la siguiente ventana:

TALLER DE C++ BUILDER COMPONENTE ANIMATE

COMPONENTES USADOS:

DE LA PALETA STANDARD:

3 Buttons

DE LA PALETA WIN32:

1 Animate

Propiedades principales del componente Animate.

FileName =especifica la ruta de acceso del archivo de video .avi

StartFrame=1 // especifica la primera vista que se visualiza cuando se activa el control.

StopFrame=71 // especifica la ultima vista del video. (cuando es 0 se ejecuta hasta el final)

Repetitions=0 // especifica el numero de veces que se va a repetir el video (un valor 0 indica indefinido)

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Animate1->FileName ="C:/Archivos de programa/Borland/CBuilder5/Examples/MFC/General/Cmnctrls/dillo.avi"; // si el archivo

esta en otra ruta, cámbiela por esa ruta.

Animate1->Play(0,71,0);

}//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Animate1->Stop();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Close();

}

Page 18: Taller de Programacion C++ Builder

Taller de Rompecabezas

1 Panel, 15 Buttons

object Panel1: TPanel

Left = 72

Top = 24

Width = 185

Height = 185

BorderStyle = bsSingle

object Button2: TButton

Left = 48

Top = 8

Width = 41

Height = 41

Caption = '2'

object Button3: TButton

Left = 88

Top = 8

Width = 41

Height = 41

Caption = '3'

object Button4: TButton

Left = 128

Top = 8

Width = 41

Height = 41

Caption = '4'

object Button5: TButton

Left = 8

Top = 48

Width = 41

Height = 41

Caption = '5'

object Button6: TButton

Left = 48

Top = 48

Width = 41

Height = 41

Caption = '6'

object Button7: TButton

Left = 88

Top = 48

Width = 41

Height = 41

Caption = '7'

object Button8: TButton

Left = 128

Top = 48

Width = 41

Height = 41

Caption = '8'

object Button9: TButton

Left = 8

Top = 88

Width = 41

Height = 41

Caption = '9'

object Button10: TButton

Page 19: Taller de Programacion C++ Builder

Left = 48

Top = 88

Width = 41

Height = 41

Caption = '10'

object Button11: TButton

Left = 88

Top = 88

Width = 41

Height = 41

Caption = '11'

object Button12: TButton

Left = 128

Top = 88

Width = 41

Height = 41

Caption = '12'

object Button13: TButton

Left = 8

Top = 128

Width = 41

Height = 41

Caption = '13'

object Button14: TButton

Left = 48

Top = 128

Width = 41

Height = 41

Caption = '14'

object Button15: TButton

Left = 88

Top = 128

Width = 41

Height = 41

Caption = '15'

object Button1: TButton

Left = 8

Top = 8

Width = 41

Height = 41

Caption = '1'

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int i,j,k;

int m[4][4];

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

Page 20: Taller de Programacion C++ Builder

void __fastcall TForm1::FormCreate(TObject *Sender)

{

k=0;

for (i=0;i<=3;i++)

for (j=0;j<=3;j++)

{

k++;

m[i][j]=k;

}

m[3][3]=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button15Click(TObject *Sender)

{

k=StrToInt(Button15->Caption);

for (i=0;i<=3;i++)

for (j=0;j<=3;j++)

{

if (m[i][j]==k)//encuentra el dato

{

if (m[i-1][j]==0&&i>0)

{

m[i-1][j]=k;

m[i][j]=0;

Button15->Top=Button15->Top-Button15->Height;

i=j=4;

}

else

if (m[i+1][j]==0&&i<3)

{

m[i+1][j]=k;

m[i][j]=0;

Button15->Top=Button15->Top+Button15->Height;

i=j=4;

}

else

if (m[i][j-1]==0&&j>0)

{

m[i][j-1]=k;

m[i][j]=0;

Button15->Left=Button15->Left-Button15->Width;

i=j=4;

}

else

if (m[i][j+1]==0&&j<3)

{

m[i][j+1]=k;

m[i][j]=0;

Button15->Left=Button15->Left+Button15->Width;

i=j=4;

}

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button12Click(TObject *Sender)

{

k=StrToInt(Button12->Caption);

for (i=0;i<=3;i++)

for (j=0;j<=3;j++)

{

if (m[i][j]==k)//encuentra el dato

{

if (m[i-1][j]==0&&i>0)

Page 21: Taller de Programacion C++ Builder

{

m[i-1][j]=k;

m[i][j]=0;

Button12->Top=Button12->Top-Button12->Height;

i=j=4;

}

else

if (m[i+1][j]==0&&i<3)

{

m[i+1][j]=k;

m[i][j]=0;

Button12->Top=Button12->Top+Button12->Height;

i=j=4;

}

else

if (m[i][j-1]==0&&j>0)

{

m[i][j-1]=k;

m[i][j]=0;

Button12->Left=Button12->Left-Button12->Width;

i=j=4;

}

else

if (m[i][j+1]==0&&j<3)

{

m[i][j+1]=k;

m[i][j]=0;

Button12->Left=Button12->Left+Button12->Width;

i=j=4;

}

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button11Click(TObject *Sender)

{

k=StrToInt(Button11->Caption);

for (i=0;i<=3;i++)

for (j=0;j<=3;j++)

{

if (m[i][j]==k)//encuentra el dato

{

if (m[i-1][j]==0&&i>0)

{

m[i-1][j]=k;

m[i][j]=0;

Button11->Top=Button11->Top-Button11->Height;

i=j=4;

}

else

if (m[i+1][j]==0&&i<3)

{

m[i+1][j]=k;

m[i][j]=0;

Button11->Top=Button11->Top+Button11->Height;

i=j=4;

}

else

if (m[i][j-1]==0&&j>0)

{

m[i][j-1]=k;

m[i][j]=0;

Button11->Left=Button11->Left-Button11->Width;

i=j=4;

}

Page 22: Taller de Programacion C++ Builder

else

if (m[i][j+1]==0&&j<3)

{

m[i][j+1]=k;

m[i][j]=0;

Button11->Left=Button11->Left+Button11->Width;

i=j=4;

}

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button14Click(TObject *Sender)

{

k=StrToInt(Button14->Caption);

for (i=0;i<=3;i++)

for (j=0;j<=3;j++)

{

if (m[i][j]==k)//encuentra el dato

{

if (m[i-1][j]==0&&i>0)

{

m[i-1][j]=k;

m[i][j]=0;

Button14->Top=Button14->Top-Button14->Height;

i=j=4;

}

else

if (m[i+1][j]==0&&i<3)

{

m[i+1][j]=k;

m[i][j]=0;

Button14->Top=Button14->Top+Button14->Height;

i=j=4;

}

else

if (m[i][j-1]==0&&j>0)

{

m[i][j-1]=k;

m[i][j]=0;

Button14->Left=Button14->Left-Button14->Width;

i=j=4;

}

else

if (m[i][j+1]==0&&j<3)

{

m[i][j+1]=k;

m[i][j]=0;

Button14->Left=Button14->Left+Button14->Width;

i=j=4;

}

}

}

}

//---------------------------------------------------------------------------