 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
digisoft1 Cdt

Registrado: 16 Oct 2002Mensajes: 5
|
Publicado: Mar 22 Oct, 2002 8:47 pm Asunto: Cambiar la apariencia de las formas |
|
|
Como puedo hacer para que una forma que he creado tome la apariencia que deseo y no la que traen por defecto? _________________ Agradesco Mucho la colaboracion, saludos a todos. |
|
| Volver arriba |
|
 |
john Invitado
|
|
| Volver arriba |
|
 |
Bart Invitado
|
Publicado: Mie 23 Oct, 2002 2:47 am Asunto: Una muy sencilla para hacer un form que no sea cuadrado |
|
|
Dibuja por ejemplo un circulo, digamos de color blanco.
Luego, dale al form el color negro por defecto.
Y después, en las propiedades del form quita los bordes, elige none para esta propiedad y activa el color transparente para el negro,
Lo unico que te queda por hacer es programar tu mismo las funciones basicas por ejemplo de movimiento de la pantalla, ya que al quitar los bordes quitaste el título, y sin él no puedes mover el form, etc.
Si deseas un ejemplo, avisame.
Saludos,
Bart.- |
|
| Volver arriba |
|
 |
jhonalba Ens


Registrado: 24 Ago 2002Mensajes: 40Ubicación: Colombia
|
Publicado: Mie 23 Oct, 2002 7:46 pm Asunto: Ayuda |
|
|
Hol Bart, con que propiedad hago transparente al color negro de mi forma.
Disculpamme pero no te entiendo..
Me gustria un ejemplo si no es mucha molestia.
Chaolin. |
|
| Volver arriba |
|
 |
john Invitado
|
Publicado: Mie 23 Oct, 2002 7:50 pm Asunto: Ayuda |
|
|
| Perdon, tambien Me gustaria un ejemplo si no es mucha molestia. |
|
| Volver arriba |
|
 |
Bart Invitado
|
Publicado: Jue 24 Oct, 2002 2:51 am Asunto: Transparencias |
|
|
Hola!
La propiedad para activar las transparencias se llama TRANSPARENT COLOR, hay que ponerla en TRUE, y elegir por ejemplo color negro en TRANSPARENT COLOR VALUE.
Esto hace que todo lo pintado de negro, inclusive el texto dentro de un control tipo memo pase a ser transparente.
Estas propiedades son del form.
Luego, para mover el form resultante les armé este trozo de código, hay que optimizarlo, lo hice rápido, pero funciona:
(Les recomiendo crear un form, sacarle el borde, crear una elipse blanca, elegir como transparente el color negro en el form y pegar este código, adaptando los nombres de los objetos).
Saludos.
Bart.-
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Form_Circular_Unit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_Principal *Form_Principal;
bool BotonPresionado;
int Xant, Yant;
//---------------------------------------------------------------------------
__fastcall TForm_Principal::TForm_Principal(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm_Principal::ElipseMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
BotonPresionado = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm_Principal::ElipseMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
BotonPresionado = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm_Principal::ElipseMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
int MoverX=0, MoverY=0;
if (Xant == 0 || Yant == 0) { Xant = X; Yant = Y; }
if (BotonPresionado == true && Y > Yant) { MoverY +=1; }
if (BotonPresionado == true && Y < Yant) { MoverY -=1; }
if (BotonPresionado == true && X > Xant) { MoverX +=1; }
if (BotonPresionado == true && X < Xant) { MoverX -=1; }
if (BotonPresionado == true) {
Form_Principal->Top = Form_Principal->Top + MoverY;
Form_Principal->Left = Form_Principal->Left + MoverX;
Xant = X ; Yant = Y ;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm_Principal::TextoDblClick(TObject *Sender)
{
if (Texto->Font->Color == clBlack) {
Texto->Font->Color = clBlue;
} else {
Texto->Font->Color = clBlack;
}
}
//--------------------------------------------------------------------------- |
|
| Volver arriba |
|
 |
Bart Invitado
|
Publicado: Jue 24 Oct, 2002 2:54 am Asunto: Como les hago llegar el ejemplo? |
|
|
| Tienen una dirección de mail para enviarles el ejemplo??? |
|
| Volver arriba |
|
 |
Bart Invitado
|
Publicado: Jue 24 Oct, 2002 11:07 pm Asunto: Comantario IMPORTANTE |
|
|
Probé el ejemplo en varias PCs, anda 10 puntos en Windows 2000 y XP, pero en 9x no existen las transparencias. En estos casos hay que bajar un programita tipo glass2k o similar.
Saludos. |
|
| Volver arriba |
|
 |
TJOSE Invitado
|
Publicado: Vie 25 Oct, 2002 3:43 pm Asunto: |
|
|
En el evento OnLoad del formulario por lo siguiente
Para una elipse
const RECT RClient = GetClientRect();
const HRGN hMyRgn = CreateEllipticRgn(0, 0, RClient.right, RClient.bottom);
SetWindowRgn(Handle, hMyRgn, true);
para un triangulo
TPoint P[3];
P[0].x = 0;
P[0].y = 0;
P[1].x = Width;
P[1].y = 0;
P[2].x = static_cast<int>(Width / 2);
P[2].y = Height;
HRNG MyRgn = CreatePolygonRgn(P, 3, WINDING);
SetWindowRgn(Handle, MyRgn, true);
para otra forma jugar un poco con los puntos.
Saludo
TJOSE |
|
| Volver arriba |
|
 |
John Invitado
|
Publicado: Sab 26 Oct, 2002 6:28 am Asunto: Gracias |
|
|
Hola Bart, Muchas gracias por el ejemplo, y disculpa las molestias.
Saludos. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|