Jump to content


Photo

SKIN para Lazarus


  • Please log in to reply
5 replies to this topic

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 31 May 2012 - 01:13 PM

buenas amiguitos, despues de un tiempito vengo con una consulta..

resulta que prácticando quize ver si podía cambiar el estilo de los botones estandares que vienen en lazarus, primero busque información haber si se le podia poner skins a las aplicaciones o al menos cambiarle de apariencia a uno mas llamativo.... en la busqueda encontré programas DEMOS para delphi pero eran de pago... luego uno de ustedes publicó un post sobre la expansión de lazarus llamado "CODE thypon" el cual (ahora) trae unos componentes llamado "LAVA" y la apariencia es Hermosa...  (h)

En fin, viendo que estas alternativas requieren o bien previo pago o sino tener la expansion mencionada... decidí buscar más alternativas.

Ahora lo que me he dado cuenta es que algunas aplicaciones de terceros tienen una apariencia bien preciosa y lo que encontré es que algunos de estos lo que hacen es crean imagenes (sean bmp, png o jpg) de sus texturas y/o botones a los cuales me imagino los llamaran desde sus ejecutables para hacer creer que es su apariencia en sí cuando en verdad es solo como engañar al ojo (algo bien ingenioso).

Entonces decidí tratar de hacer algo parecido al menos con un boton, es aquí en donde tengo unos pequeños inconvenientes y quisiera que me den una mano o bien me corrijan si lo estoy haciendo mal...

para comenzar cree un form y le puse un "timage" luego consegui tres imagenes que simularían los tres estados de un BOTON al pasar el mouse (normal, encima, pulsado), convertí las tres imágenes en un recurso...


ahora bien los estados "norma"l y "encima" los logró con el siguiente evento del "Timage"

"OnMouseEnter"



delphi
  1. procedure TForm1.Image2MouseEnter(Sender: TObject);
  2. begin
  3.   Image2.Picture.LoadFromLazarusResource('encima'); // cuando situo el mouse encima
  4. end;



---------------

"OnMouseLeave"



delphi
  1. procedure TForm1.Image2MouseLeave(Sender: TObject);
  2. begin
  3.   Image2.Picture.LoadFromLazarusResource('normal');  // cuando retiro el mouse del boton
  4. end;



---------------

Bien, el problema que tengo es tratar de simular al darle clic y al soltar el clic, es decir que al darle un clic a la imagen este cambie su imagen al estado "Pulsado" hasta que suelte el clic, espero me comprendan y me ayuden ....

Saludos .....

PD: les adjunto mis avances....
:)
  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 31 May 2012 - 01:38 PM

Hola monchito, creo si entendí bien, solo reemplaza por estos eventos.



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.     Image1.Picture.LoadFromLazarusResource('encima');
  5. end;
  6.  
  7. procedure TForm1.Image1MouseLeave(Sender: TObject);
  8. begin
  9.   Image1.Picture.LoadFromLazarusResource('normal');
  10. end;
  11.  
  12. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  13.   Shift: TShiftState; X, Y: Integer);
  14. begin
  15.       Image1.Picture.LoadFromLazarusResource('normal');
  16. end;



Saludos

  • 0

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 31 May 2012 - 05:41 PM

Te recomiendo la lectura de este tema, concretamente este mensaje. Está en delphi, por lo tanto fácilmente trasladable a Lazarus.


PD. La última versión la tienes aquí.


Saludos.


  • 0

#4 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 02 June 2012 - 01:50 PM

Gracias le darè un vistazo..... (y)
  • 0

#5 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 01 July 2012 - 01:46 PM

Buenas amiguitos, disculpando la demora, al fin pude sincronizar los eventos del
mouse con una imagen que la hago pasar como botón para darle vida a un form.

les adjunto todo mi ejercicio y les pongo el código esencial por si a alguien
le puede servir...




delphi
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, LResources;
  9.  
  10. type
  11.  
  12.   { TForm1 }
  13.  
  14.   TForm1 = class(TForm)
  15.     Image1: TImage;
  16.     procedure FormCreate(Sender: TObject);
  17.     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
  18.       Shift: TShiftState; X, Y: Integer);
  19.     procedure Image1MouseEnter(Sender: TObject);
  20.     procedure Image1MouseLeave(Sender: TObject);
  21.     procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
  22.       Shift: TShiftState; X, Y: Integer);
  23.   private
  24.     { private declarations }
  25.   public
  26.     { public declarations }
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. implementation
  33.  
  34. {$R *.lfm}
  35.  
  36. { TForm1 }
  37.  
  38. procedure TForm1.FormCreate(Sender: TObject);
  39. begin
  40.  
  41. end;
  42.  
  43. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  44.   Shift: TShiftState; X, Y: Integer);
  45. begin
  46.   Image1.Picture.LoadFromLazarusResource('pulsar');
  47.   //ShowMessage('Hola....!!!');
  48. end;
  49.  
  50. procedure TForm1.Image1MouseEnter(Sender: TObject);
  51. begin
  52.   Image1.Picture.LoadFromLazarusResource('encima');
  53. end;
  54.  
  55. procedure TForm1.Image1MouseLeave(Sender: TObject);
  56. begin
  57.   Image1.Picture.LoadFromLazarusResource('normal');
  58. end;
  59.  
  60. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  61.   Shift: TShiftState; X, Y: Integer);
  62. begin
  63.   Image1.Picture.LoadFromLazarusResource('normal');
  64.   ShowMessage('Hola....!!!');
  65. end;
  66.  
  67. initialization
  68. {$I boton.lrs}
  69. end.





saludos....  :)
  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 02 July 2012 - 09:39 AM

Buen ejemplo.  (y)


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.