Desculpe-me pela falta de atençaõ


Que a Paz do Grande Arquiteto do Universo nos Ampare
[EMAIL PROTECTED]
Msn-> [EMAIL PROTECTED]
Dourado                                                                 SP



----- Original Message -----
From: "Luiz Escobar" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Thursday, June 01, 2006 4:46 AM
Subject: Re: [delphi-br] Botões redondos... codigofontebotão de bitmap´s...


>
> cara essa foi duro.... heheheh
> roda o scroll ai do mouse que vc vai ver o código, não mandei anexo,
> mandei no corpo do email...
>
> Luiz Escobar
>
>
>
>
> ------------- Segue mensagem original! -------------
>
> De: Francisco Thiago
> Data: Thu, 01 Jun 2006 00:52:18 -0300
> Para: delphi-br@yahoogrupos.com.br
> Assunto: Re: [delphi-br] Botões redondos... codigo fontebotão de
> bitmap´s...
>
> Como assim? Tá no final do e-mail!
>
> Thiago
>
> iTelefonica wrote:
>> Obrigado Luiz
>> Mas o codigo não veio pois é proibido via Lista. Mas valeu assim mesmo.
>> Obrigado
>> Clovito
>>
>>
>> Que a Paz do Grande Arquiteto do Universo nos Ampare
>> [EMAIL PROTECTED]
>> Msn-> [EMAIL PROTECTED]
>> Dourado
>> SP
>>
>>
>>
>> ----- Original Message -----
>> From: "Luiz Escobar"
>> To:
>> Sent: Wednesday, May 31, 2006 9:01 PM
>> Subject: RES: [delphi-br] Botões redondos... codigo fontebotão de
>> bitmap´s...
>>
>>
>>
>>> bom sei que vc quer um botão redondo, e isso parece dificil.. bom aqui
>>> tem
>>> um exemplo de um botão
>>> feito atravez de um bitmap, qualquer bitmap vira um botão...
>>> ele cria o efeito de Lighter, quando passa o mouse encima, Darker,
>>> quando
>>> clica, acertei esta parte, comia um pedaçinho da imagem quando era
>>> justa,
>>> Disabled, (essa eu implementei, ehehhehe), quando vc disabilita o
>>> botão...
>>> talvez ajude...
>>>
>>> como não sabia o endereço postei o código....
>>> se alguem gostar e implementar algo novo, posta ai....
>>>
>>> Luiz Escobar
>>>
>>>
>>>
>>> //==============================================================
>>> //jvBitmapButton.pas
>>> // versão 2.1c  modify by Luiz Escobar
>>> //---------------------------------------------------------------------------------------------------------------
>>> unit jvBitmapButton;
>>>
>>> interface
>>>
>>> uses
>>>  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
>>> Dialogs;
>>>
>>> type
>>>  TjvBitmapButton = class(TGraphicControl)
>>>  private
>>>    FBitmap: TBitmap;
>>>    FLighter: TBitmap;
>>>    FDarker: Tbitmap;
>>>    FDisabled: Tbitmap; // by Luiz Escobar
>>>    FPushDown:boolean;
>>>    FMouseOver:boolean;
>>>    FLatching: boolean;
>>>    FDown: boolean;
>>>    FHotTrack: boolean;
>>>    Fenable: boolean;  // by Luiz Escobar
>>>    procedure SetBitmap(const Value: TBitmap);
>>>    procedure MakeDarker;
>>>    procedure MakeLighter;
>>>    procedure MakeDisabled;  // by Luiz Escobar
>>>    procedure SetLatching(const Value: boolean);
>>>    procedure SetDown(const Value: boolean);
>>>    procedure SetHotTrack(const Value: boolean);
>>>    function  GetEnabled : Boolean; // by Luiz Escobar
>>>    procedure SetEnabled( const Value: boolean); // by Luiz Escobar
>>>    { Private declarations }
>>>  protected
>>>    { Protected declarations }
>>>    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
>>> Integer);override;
>>>    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y:
>>> Integer);override;
>>>    procedure MouseMove(Shift: TShiftState; X, Y: Integer);override;
>>>    procedure Click;override;
>>>    procedure CMMouseLeave(var Message:TMessage); message CM_MouseLeave;
>>>    procedure Loaded;override;
>>>    procedure Resize;override;
>>>  public
>>>    { Public declarations }
>>>    constructor Create(AOwner:TComponent);override;
>>>    destructor  Destroy;override;
>>>    procedure   Paint; override;
>>>  published
>>>    { Published declarations }
>>>    property Bitmap:TBitmap read FBitmap write SetBitmap;
>>>    property Down:boolean read FDown write SetDown;
>>>    property Latching:boolean read FLatching write SetLatching;
>>>    property HotTrack:boolean read FHotTrack write SetHotTrack;
>>>    property Enable:boolean read GetEnabled write SetEnabled; // by Luiz
>>> Escobar
>>>    property onclick;
>>>    property onmousedown;
>>>    property onmouseup;
>>>  end;
>>>
>>> procedure Register;
>>>
>>> implementation
>>>
>>> procedure Register;
>>> begin
>>>  RegisterComponents('ESC_UTIL', [TjvBitmapButton]);
>>> end;
>>>
>>> { TjvBitmapButton }
>>>
>>> function TjvBitmapButton.GetEnabled: boolean;  // by Luiz Escobar
>>> begin
>>>   result := enabled;
>>> end;
>>>
>>> procedure TjvBitmapButton.SetEnabled( const Value : boolean ); // by
>>> Luiz
>>> Escobar
>>> begin
>>>   enabled := value;
>>>   fenable := enabled;
>>>   Paint;
>>> end ;
>>>
>>> procedure TjvBitmapButton.Click;
>>> begin
>>>  inherited;
>>>  if FPushDown then
>>>    if assigned(onclick) then
>>>      onclick(self);
>>> end;
>>>
>>> constructor TjvBitmapButton.Create(AOwner: TComponent);
>>> begin
>>>  inherited;
>>>  width:=24;
>>>  height:=24;
>>>  FPushDown:=false;
>>>  FMouseOver:=false;
>>>  FLatching:=false;
>>>  FHotTrack:=true;
>>>  FDown:=false;
>>>  FBitmap:=TBitmap.create;
>>>  Fbitmap.width:=24;
>>>  Fbitmap.Height:=24;
>>>  Fbitmap.canvas.brush.color:=clgray;
>>>  FBitmap.canvas.FillRect (rect(1,1,23,23));
>>>  FLighter:=Tbitmap.create;
>>>  FDarker:=Tbitmap.create;
>>>  FDisabled:=Tbitmap.create; // by Luiz Escobar
>>>  Fenable := enabled;  // by Luiz Escobar
>>> end;
>>>
>>> destructor TjvBitmapButton.Destroy;
>>> begin
>>>  FBitmap.free;
>>>  FLighter.free;
>>>  FDarker.free;
>>>  FDisabled.free; // by Luiz Escobar
>>>  inherited;
>>> end;
>>>
>>> procedure TjvBitmapButton.MouseDown(Button: TMouseButton;
>>>  Shift: TShiftState; X, Y: Integer);
>>> begin
>>>  inherited;
>>>  if
>>> FBitmap.canvas.pixels[x,y]<>Fbitmap.canvas.pixels[0,FBitmap.height-1]
>>> then
>>>   FPushDown:=true
>>>   else
>>>   FPushDown:=false;
>>>  Paint;
>>>  if assigned(onmousedown) then
>>>    onmousedown(self,button,shift,x,y);
>>> end;
>>>
>>> procedure TjvBitmapButton.MouseUp(Button: TMouseButton; Shift:
>>> TShiftState;
>>>  X, Y: Integer);
>>> begin
>>>  inherited;
>>>  FPushDown:=false;
>>>  if Latching then
>>>    FDown:= not FDown
>>>  else
>>>    FDown:=false;
>>>  Paint;
>>>  if assigned(onmouseup) then
>>>    onmouseup(self,button,shift,x,y);
>>> end;
>>>
>>> procedure TjvBitmapButton.Paint;
>>> var Acolor:TColor;
>>> begin
>>>  inherited;
>>>  if assigned(FBitmap) then
>>>  begin
>>>    AColor:=FBitmap.canvas.pixels[0,FBitmap.height-1];
>>>    Fbitmap.transparent:=true;
>>>    Fbitmap.transparentcolor:=Acolor;
>>>    FLighter.transparent:=true;
>>>    Flighter.TransparentColor :=AColor;
>>>    FDarker.transparent:=true;
>>>    FDarker.TransparentColor :=AColor;
>>>    AColor:=FDisabled.canvas.pixels[0,FDisabled.height-1];
>>>    FDisabled.transparent:=true;
>>>    FDisabled.TransparentColor :=AColor;
>>>    if enabled  then begin // by Luiz Escobar
>>>       if FPushdown then  begin
>>>          canvas.draw(1,1,FDarker)
>>>       end else begin
>>>         if Down then
>>>           canvas.Draw(1,1,FDarker)
>>>         else if (FMouseOver and FHotTrack) then
>>>           canvas.draw(0,0,FLighter)
>>>         else canvas.Draw (0,0,FBitmap);
>>>       end;
>>>    end else canvas.Draw(0,0,FDisabled); // by Luiz Escobar
>>>  end;
>>> end;
>>>
>>> procedure TjvBitmapButton.SetBitmap(const Value: TBitmap);
>>> begin
>>>  FBitmap.assign(Value);
>>>  FBitmap.transparent:=true;
>>>  FBitmap.TransparentColor :=FBitmap.Canvas.pixels[0,FBitmap.Height-1];
>>>  width:=FBitmap.Width ;
>>>  height:=FBitmap.Height ;
>>>  MakeLighter;
>>>  MakeDarker;
>>>  MakeDisabled;
>>> end;
>>>
>>> procedure TjvBitmapButton.MakeDisabled; // procedure by Luiz Escobar
>>> var
>>>  c, x, y: Integer;
>>>  PxlColor: TColor;
>>>  R: TRect;
>>>  Offset, Flags: Integer;
>>>  DrawPressed: Boolean;
>>>  Image: TBitmap;
>>>  Bitmap: TBitmap;
>>> begin
>>>  FDisabled.Width := FBitmap.Width;
>>>  FDisabled.Height := FBitmap.Height;
>>>  FDisabled.PixelFormat := FBitmap.PixelFormat;
>>>  FDisabled.Assign( FBitmap );
>>>      for x := 0 to FBitmap.Width - 1 do
>>>        for y := 0 to FBitmap.Height - 1 do
>>>        begin
>>>          PxlColor := ColorToRGB(FBitmap.Canvas.Pixels[x, y]);
>>>          c := Round((((PxlColor shr 16) + ((PxlColor shr 8) and $00FF) +
>>> (PxlColor and $0000FF)) div 3)) div 2 + 96;
>>>          FDisabled.Canvas.Pixels[x, y] := RGB(c, c, c);
>>>        end;
>>>
>>> end;
>>>
>>> procedure TjvBitmapButton.MakeLighter;
>>> var p1,p2:Pbytearray;
>>>    x,y:integer;
>>>    rt,gt,bt:byte;
>>>    r,g,b:byte;
>>>    AColor:TColor;
>>> begin
>>>  FLighter.Width :=FBitmap.Width ;
>>>  FLighter.Height :=FBitmap.height;
>>>  Acolor:=colortorgb(FBitmap.canvas.pixels[0,FBitmap.height-1]);
>>>  rt:=GetRValue(Acolor);
>>>  gt:=GetGValue(AColor);
>>>  bt:=getBValue(AColor);
>>>  FBitmap.PixelFormat  :=pf24bit;
>>>  FLighter.PixelFormat :=pf24bit;
>>>  for y:=0 to Fbitmap.height-1 do
>>>  begin
>>>    p1:=Fbitmap.ScanLine [y];
>>>    p2:=FLighter.ScanLine [y];
>>>    for x:=0 to FBitmap.width-1 do
>>>    begin
>>>      if (p1[x*3]=bt)and (p1[x*3+1]=gt)and (p1[x*3+2]=rt) then
>>>      begin
>>>        p2[x*3]:=p1[x*3];
>>>        p2[x*3+1]:=p1[x*3+1];
>>>        p2[x*3+2]:=p1[x*3+2];
>>>      end
>>>      else
>>>      begin
>>>        p2[x*3]:=$FF-round(0.8*abs($FF-p1[x*3]));
>>>        p2[x*3+1]:=$FF-round(0.8*abs($FF-p1[x*3+1]));
>>>        p2[x*3+2]:=$FF-round(0.8*abs($FF-p1[x*3+2]));
>>>      end;
>>>    end;
>>>  end;
>>> end;
>>>
>>> procedure TjvBitmapButton.MakeDarker;
>>> var p1,p2:Pbytearray;
>>>    x,y:integer;
>>>    rt,gt,bt:byte;
>>>    r,g,b:byte;
>>>    AColor:TColor;
>>> begin
>>>  FDarker.Width :=FBitmap.Width ;
>>>  FDarker.Height :=FBitmap.height;
>>>  Acolor:=colortorgb(FBitmap.canvas.pixels[0,FBitmap.height-1]);
>>>  rt:=GetRValue(Acolor);
>>>  gt:=GetGValue(AColor);
>>>  bt:=getBValue(AColor);
>>>  FBitmap.PixelFormat :=pf24bit;
>>>  FDarker.PixelFormat :=pf24bit;
>>>  for y:=0 to Fbitmap.height-1 do
>>>  begin
>>>    p1:=Fbitmap.ScanLine [y];
>>>    p2:=FDarker.ScanLine [y];
>>>    for x:=0 to FBitmap.width-1 do
>>>    begin
>>>      if (p1[x*3]=bt)and (p1[x*3+1]=gt)and (p1[x*3+2]=rt) then
>>>      begin
>>>        p2[x*3]:=p1[x*3];
>>>        p2[x*3+1]:=p1[x*3+1];
>>>        p2[x*3+2]:=p1[x*3+2];
>>>      end
>>>      else
>>>      begin
>>>        p2[x*3]:=round(0.7*p1[x*3]);
>>>        p2[x*3+1]:=round(0.7*p1[x*3+1]);
>>>        p2[x*3+2]:=round(0.7*p1[x*3+2]);
>>>      end
>>>    end;
>>>  end;
>>> end;
>>>
>>>
>>>
>>>
>>> procedure TjvBitmapButton.CMMouseLeave(var Message: TMessage);
>>> begin
>>>  FMouseOver:=false;
>>>  Paint;
>>> end;
>>>
>>> procedure TjvBitmapButton.Loaded;
>>> begin
>>>  inherited;
>>>  if not FBitmap.Empty then
>>>  begin
>>>    MakeDarker;
>>>    MakeLighter;
>>>    MakeDisabled;
>>>  end;
>>> end;
>>>
>>> procedure TjvBitmapButton.SetLatching(const Value: boolean);
>>> begin
>>>  FLatching := Value;
>>>  if not FLatching then
>>>  begin
>>>    FDown:=false;
>>>    paint;
>>>  end;
>>> end;
>>>
>>> procedure TjvBitmapButton.SetDown(const Value: boolean);
>>> begin
>>>  if FLatching then
>>>  begin
>>>    FDown := Value;
>>>    paint;
>>>  end
>>>  else
>>>  begin
>>>    FDown:=false;
>>>    paint;
>>>  end;
>>> end;
>>>
>>> procedure TjvBitmapButton.Resize;
>>> begin
>>>  inherited;
>>>  if assigned(Fbitmap) then
>>>  begin
>>>    width:=FBitmap.width+1;
>>>    height:=FBitmap.Height+1;
>>>  end
>>>  else
>>>  begin
>>>    width:=24;
>>>    height:=24;
>>>  end;
>>> end;
>>>
>>>
>>> procedure TjvBitmapButton.SetHotTrack(const Value: boolean);
>>> begin
>>>  FHotTrack := Value;
>>> end;
>>>
>>> procedure TjvBitmapButton.MouseMove(Shift: TShiftState; X, Y: Integer);
>>> var Value:boolean;
>>> begin
>>>  inherited;
>>>  Value:=
>>> FBitmap.canvas.pixels[x,y]<>Fbitmap.canvas.pixels[0,FBitmap.height-1];
>>>  if value<>FMouseOver then
>>>  begin
>>>    FMouseOver:=value;
>>>    Paint;
>>>  end;
>>>  if assigned(onmousemove) then
>>>    onmousemove(self,shift,x,y);
>>> end;
>>>
>>> end.
>>>
>>>
>>>
>>> --
>>> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>>>
>>>
>>>
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
> _______________________________________________________
> Navegue com o Yahoo! Acesso Grátis, assista aos jogos do Brasil na Copa e
> ganhe prêmios de hora em hora!
> http://br.yahoo.com/artilheirodacopa/
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
> PUBLICIDADE
>
>
>
>
> --------------------------------------------------------------------------------
> Links do Yahoo! Grupos
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/delphi-br/
>
> Para sair deste grupo, envie um e-mail para:
> [EMAIL PROTECTED]
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
>
>
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a