Programación General > C++ Builder

 Modificacion De Ventanas E íconos

(1/3) > >>

jojobax_:
Hoy vi que un usuario posteo hace un tiempo como hacer para personalizar las ventanas, pero al bajar su ejemplo, este no funciono con mi borland 4. Mi pregunta es: es necesario usar skins o programas externos a borland o se puede hacer esto con un codigo ( para borland 4 )?

también necesito personalizar mis botones, los botones de los combobox, menúes, etc.  ( lo que sea posible ).

gracias, espero sus respuestas

el_shanky:
Recien me fijé el post al que hacias referencia y es muy interesante!

Entonces... deduciendo si el chabón pudo para el borland 6 y le pasó el codigo al otro para el borland 1 OBVIAMENTE podes ahcerlo en el 4...

Ahora con respecto a los botones hay otro consejo muy bueno en otro post donde te dice que uses un TImage y le pongas las imagenes del boton y el codigo que queres que haga lo pones en el evento OnClick!  (el segudno estado del boton lo podes poner en el evento OnMouseUp)

Nunca habia necesitado mejorar estéticamente nada pero ahora que los prové y andadn de 10... los voy a tener en cuenta para proximas aplicaciones

Ahora... Tmb existen packs de objetos que se integran al Broland para mejorar esteticamente nustyras aplicaciones... El tema s que son pagas... Pero.. te dejan usarlas! :o

fijate... http://www.sunisoft.com/

Spero que te ayude! salute

jojobax_:
gracias, lo de las imágenes lo hago asi.
lo que no puedo ver es el ejemplo que el pibe dio, porque lo compilo con el borland 6. y el codigo que puso lo entiendo a medias.

vos que sos una maza por favor pasame como usar el codigo o un ejemplo  con un borland mas viejo.

millones de gracias

el_shanky:
Es que lo que el flaco puso es una funcion que ahce todo esto (lo cual no me puse a deducir x que no hay ganas...):


--- Código: Text --- void BitmapToRgn(TForm *form, TImage *img){   form->BorderStyle = bsNone;    Graphics::TBitmap *bmp =       dynamic_cast< Graphics::TBitmap* >( img->Picture->Bitmap );    form->SetBounds( form->Left, form->Top, bmp->Width, bmp->Height );   img->SetBounds( 0, 0, bmp->Width, bmp->Height );   form->Brush->Bitmap = bmp;    int tamanyoImagen = bmp->Width * bmp->Height * 4;   std::auto_ptr< BITMAPINFO > lpbmi( new BITMAPINFO );   std::auto_ptr< BYTE > bits( new BYTE[tamanyoImagen] );    ZeroMemory( lpbmi.get(), sizeof(BITMAPINFO) );   lpbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);   lpbmi->bmiHeader.biWidth = bmp->Width;   lpbmi->bmiHeader.biHeight = bmp->Height;   lpbmi->bmiHeader.biPlanes = 1;   lpbmi->bmiHeader.biBitCount = 32;   lpbmi->bmiHeader.biCompression = BI_RGB;   lpbmi->bmiHeader.biSizeImage = tamanyoImagen;    GetDIBits( bmp->Canvas->Handle, bmp->Handle, 0, bmp->Height,       bits.get(), lpbmi.get(), DIB_RGB_COLORS );    DWORD colorTransparente = reinterpret_cast<DWORD*>       ( bits.get() )[ bmp->Width * (bmp->Height-1) ];    HRGN rgn = CreateRectRgn( 0, 0, form->Width, form->Height );   HRGN rgnTemp = CreateRectRgn( 0, 0, form->Width, form->Height );   CombineRgn( rgn, rgn, rgnTemp, RGN_DIFF );   DeleteObject( rgnTemp );   for (int y=0; y < bmp->Height; ++y)   {       DWORD *pixel = &reinterpret_cast<DWORD*>           ( bits.get() )[ bmp->Width * (bmp->Height - 1 - y) ];       int ancho = 0;        for (int x=0; x <= bmp->Width; ++x)       {           if ( x != bmp->Width && pixel[x] != colorTransparente )               ancho++;           else               if ( ancho > 0 )               {                   rgnTemp = CreateRectRgn( x - ancho, y, x, y + 1 );                   CombineRgn( rgn, rgn, rgnTemp, RGN_OR );                   DeleteObject( rgnTemp );                   ancho = 0;               }       }   }   SetWindowRgn( form->Handle, rgn, true );   DeleteObject( rgn );}  
Y despues la llama a esa misma función con un __fastcall inmediatamente abajo!


--- Código: Text ---  __fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){  BitmapToRgn( this, Image1 );}  
=> prová copiarlas y ponerlas en tu .CPP junto con el

--- Código: Text ---#include <memory> 

y fijate que error te tira! a mi me anda de 10!

Salute despues me, decis...

jojobax_:
disculpa que te joda tanto, pero no podrias mandarme en un zip o como quieras el cpp o un ejemplo con su exe??

mil gracias de nuevo. espero tu respuesta.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa