fasthorse
08-07-2008, 09:54:59
Hola, tengo el código para seleccionar una imagen, pero la selecciono con un fondo blanco perfilado en negro, y quiero hacer que la selección sea transparente para que se vea la imagen entera y no con algo blanco en el medio... y también además de poder copiar, pegar y cortar esa selección, quiero también darle opciones como que me cambie de color, pero no se cómo hacerlo tampoco...
Os pongo el código que uso en la selección, a ver si me podéis ayudar:
void __fastcall TForm1::Seleccionar(TObject *Sender) //seleccionar
//un trozo d imagen
{
seleccion=true;
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
pintando=true;
Imagen->Canvas->MoveTo(X,Y);
origen.x=X;
origen.y=Y;
}
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->Rectangle(origen.x, origen.y, X,Y);
destino=Rect(0,0,300,300);
Imagen->Canvas->CopyRect(destino, Imagen->Canvas, destino);
dest=destino;
ini=X;
fin=Y;
}
}
//------------------------------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(X,Y);
pintando=false;
}
}
Os pongo el código que uso en la selección, a ver si me podéis ayudar:
void __fastcall TForm1::Seleccionar(TObject *Sender) //seleccionar
//un trozo d imagen
{
seleccion=true;
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
pintando=true;
Imagen->Canvas->MoveTo(X,Y);
origen.x=X;
origen.y=Y;
}
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->Rectangle(origen.x, origen.y, X,Y);
destino=Rect(0,0,300,300);
Imagen->Canvas->CopyRect(destino, Imagen->Canvas, destino);
dest=destino;
ini=X;
fin=Y;
}
}
//------------------------------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(X,Y);
pintando=false;
}
}