Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 06-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por eduarcol
Debido que este componente no tiene el evento onPaint lo cambie por el TControlBar
Amigo, eso es un kludge

En lugar de cambiar el panel por un ControlBar, podrías redefinir el método Paint del panel o bien insertarle un PaintBox. Aquí un ejemplito:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    PaintBox1: TPaintBox;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    procedure PaintBox1Paint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

type
  TTriVertex = record
    X, Y: LongInt;
    Red: Word;
    Green: Word;
    Blue: Word;
    Alpha: Word;
  end;

function GradientFill(
  DC: HDC; var Vertex: TTriVertex; NumVertex: ULONG; Mesh: Pointer; NumMesh,
  Mode: ULONG): BOOL; stdcall; external msimg32;

procedure GradientRect(DC: HDC; R: TRect; Color1, Color2: TColor);
var
  Vertices: array[0..1] of TTriVertex;
  Rect: TGradientRect;
  Color: Integer;

begin
  Color := ColorToRgb(Color1);
  Vertices[0].X := R.Left;
  Vertices[0].Y := R.Top;
  Vertices[0].Red := $100*GetRValue(Color);
  Vertices[0].Green := $100*GetGValue(Color);
  Vertices[0].Blue := $100*GetBValue(Color);
  Vertices[0].Alpha := 0;

  Color := ColorToRgb(Color2);
  Vertices[1].X := R.Right;
  Vertices[1].Y := R.Bottom;
  Vertices[1].Red := $100*GetRValue(Color);
  Vertices[1].Green := $100*GetGValue(Color);
  Vertices[1].Blue := $100*GetBValue(Color);
  Vertices[1].Alpha := 0;

  Rect.UpperLeft := 0;
  Rect.LowerRight := 1;

  GradientFill(DC, Vertices[0], 2, @Rect, 1, GRADIENT_FILL_RECT_H);
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  Paintbox1.Canvas.Brush.Color := clNavy;
  GradientRect(Paintbox1.Canvas.Handle, Paintbox1.ClientRect, clWhite, clNavy);
end;

end.

// Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Inmovilizar columnas en Stringgrid CamiloU OOP 0 14-09-2007 23:44:45
Inmovilizar paneles gaby_stars Varios 0 20-04-2006 20:58:55
inmovilizar filas en un DBGrid minos Varios 1 02-10-2004 05:14:59
Inmovilizar columnas de un DBgrid mgaray Varios 4 28-09-2004 21:35:42
Inmovilizar Columnas en un DBGrid JANDREGUE Varios 7 27-08-2004 00:41:21


La franja horaria es GMT +2. Ahora son las 09:35:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi