Programlama yapalım ve Öğrenelim. - Delphi Eğitim66
  Ana Sayfa
  .NET Eğitim Notları
  Visual C# .NET Örnek Kodları
  VisualBasic.NET Örnek Kodları
  J# Örnekleri
  ASP.NET Örnek Kodları
  Delphi Eğitim
  => Delphi Eğitim1
  => Delphi Eğitim2
  => Delphi Eğitim3
  => Delphi Eğitim4
  => Delphi Eğitim5
  => Delphi Eğitim6
  => Delphi Eğitim7
  => Delphi Eğitim8
  => Delphi Eğitim9
  => Delphi Eğitim10
  => Delphi Eğitim11
  => Delphi Eğitim13
  => Delphi Eğitim14
  => Delphi Eğitim15
  => Delphi Eğitim16
  => Delphi Eğitim17
  => Delphi Eğitim18
  => Delphi Eğitim19
  => Delphi Eğitim20
  => Delphi Eğitim21
  => Delphi Eğitim22
  => Delphi Eğitim23
  => Delphi Eğitim24
  => Delphi Eğitim25
  => Delphi Eğitim26
  => Delphi Eğitim27
  => Delphi Eğitim28
  => Delphi Eğitim29
  => Delphi Eğitim30
  => Delphi Eğtim31
  => Delphi Eğitim32
  => Delphi Eğitim33
  => Delphi Eğitim34
  => Delphi Eğitim35
  => Delphi Eğitim36
  => Delphi Eğitim37
  => Delphi Eğitim38
  => Delphi Eğitim39
  => Delphi Eğitim40
  => Delphi Eğitim41
  => Delphi Eğitim42
  => Delphi Eğitim43
  => Delphi Eğitim44
  => Delphi Eğitim45
  => Delphi Eğitim46
  => Delphi Eğitim47
  => Delphi Eğitim48
  => Delphi Eğitim49
  => Delphi Eğitim50
  => Delphi Eğitim51
  => Delphi Eğitim52
  => Delphi Eğitim53
  => Delphi Eğitim54
  => Delphi Eğitim55
  => Delphi Eğitim56
  => Delphi Eğitim57
  => Delphi Eğitim58
  => Delphi Eğitim59
  => Delphi Eğitim60
  => Delphi Eğitim61
  => Delphi Eğitim62
  => Delphi Eğitim63
  => Delphi Eğitim64
  => Delphi Eğitim65
  => Delphi Eğitim66
  => Delphi Eğitim67
  => Delphi Eğitim68
  => Delphi Eğitim69
  => Delphi Eğitim70
  => Delphi Eğitim71
  => Delphi Eğitim72
  => Delphi Eğitim73
  => Delphi Eğitim74
  => Delphi Eğitim75
  => Delphi Eğitim76
  => Delphi Eğitim77
  => Delphi Eğitim78
  => Delphi Eğitim79
  => Delphi Eğitim80
  => Delphi Eğitim81
  => Delphi Eğitim82
  => Delphi Eğitim83
  => Delphi Eğitim84
  => Delphi Eğitim85
  => Delphi Eğitim86
  => Delphi Eğitim87
  => Delphi Eğitim88
  => Delphi Eğitim89
  => Delphi Eğitim90
  => Delphi Eğitim91
  => Delphi Eğitim92
  => Delphi Eğitim93
  => Delphi Eğitim94
  => Delphi Eğitim95
  => Delphi Eğitim96
  => Delphi Eğitim97
  => Delphi Eğitim98
  => Delphi Eğitim99
  => Delphi Eğitim100
  => Delphi Eğitim101
  => Delphi Eğitim102
  => Delphi Eğitim103
  => Delphi Eğitim104
  => Delphi Eğitim105
  => Delphi Eğitim106
  => Delphi Eğitim107
  => Delphi Eğitim108
  => Delphi Eğitim109
  => Delphi Eğitim110
  => Delphi Eğitim111
  => Delphi Eğitim112
  => Delphi Eğitim113
  => Delphi Eğitim114
  => Delphi Eğitim115
  => Delphi Eğitim116
  => Delphi Eğitim117
  => Delphi Eğitim118
  => Delphi Eğitim119
  => Delphi Eğitim120
  => Delphi Eğitim121
  => Delphi Eğitim122
  => Delphi Eğitim123
  => Delphi Eğitim124
  => Delphi Eğitim125
  => Delphi Eğitim126
  => Delphi Eğitim127
  => Delphi Eğitim128
  => Delphi Eğitim129
  => Delphi Eğitim130
  => Delphi Eğitim131
  => Delphi Eğitim132
  => Delphi Eğitim133
  => Delphi Eğitim134
  => Delphi Eğitim135
  => Delphi Eğitim136
  => Delphi Eğitim137
  => Delphi Eğitim138
  => Delphi Eğitim139
  => Delphi Eğitim140
  => Delphi Eğitim141
  => Delphi Eğitim142
  => Delphi Eğitim143
  => Delphi Eğitim144
  => Delphi Eğitim145
  => Delphi Eğitim146
  => Delphi eğitim147
  => Delphi Eğitim148
  => Delphi Eğitim149
  => Delphi Eğitim150
  => Delphi Eğitim151
  => Delphi Eğitim152
  => Delphi Eğitim153
  => Delphi Eğitim154
  => Delphi Eğitim155
  => Delphi Eğitim156
  => Delphi Eğitim157
  => Delphi Eğitim158
  => Delphi Eğitim159
  => Delphi Eğitim160
  => Delphi Eğitim161
  => Delphi Eğitim162
  => Delphi Eğitim164
  => Delphi Eğitim165
  => Delphi Eğitim166
  => Delphi Eğitim167
  => Delphi Eğitim168
  => Delphi Eğitim169
  => Delphi Eğitim170
  => Delphi Eğitim171
  => Delphi Eğitim172
  => Delphi Eğitim173
  => Delphi Eğitim174
  => Delphi Eğitim175
  => Delphi Eğitim176
  => Delphi Eğitim177
  => Delphi Eğitim178
  => Delphi Eğitim179
  => Delphi Eğitim180
  => Delphi Eğitim181
  => Delphi Eğitim182
  => Delphi Eğitim183
  => Delphi Eğitim184
  => Delphi Eğitim185
  => Delphi Eğitim186
  => Delphi Eğitim187
  => Delphi Eğitim188
  => Delphi Eğitim189
  => Delphi Eğitim190
  => Delphi Eğitim191
  => Delphi Eğitim192
  => Delphi Eğitim193
  => Delphi Eğitim194
  => Delphi Eğitim195
  => Delphi Eğitim196
  => Delphi Eğitim197
  => Delphi Eğitim198
  => Delphi Eğitim199
  => Delphi Eğitim200
  => Delphi Eğitim201
  => Delphi Eğitim202
  => Delphi Eğitim203
  => Delphi Eğitim204
  => Delphi Eğitim205
  => Delphi Eğitim206
  => Delphi Eğitim207
  => Delphi Eğitim208
  => Delphi Eğitim209
  => Delphi Eğitim210
  => Delphi Eğitim211
  => Delphi Eğitim212
  => Delphi Eğitim213
  => Delphi Eğitim214
  => Delphi Eğitim215
  => Delphi Eğitim216
  => Delphi Eğitim217
  => Delphi Eğitim218
  => Delphi Eğitim219
  => Delphi Eğitim220
  => Delphi Eğitim221
  => Delphi Eğitim222
  => Delphi Eğitim223
  => Delphi Eğitim224
  => Delphi Eğitim225
  => Delphi Eğitim226
  => Delphi Eğitim227
  => Delphi Eğitim228
  => Delphi Eğitim229
  => Delphi Eğitim230
  => Delphi Eğitim231
  => Delphi Eğitim232
  => Delphi Eğitim233
  => Delphi Eğitim234
  => Delphi Eğitim235
  => Delphi Eğitim236
  => Delphi Eğitim237
  => Delphi Eğitim238
  => Delphi Eğitim239
  => Delphi Eğitim240
  => Delphi Eğitim241
  => Delphi Eğitim242
  İletişim

Panel3D

unit Panel3D;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  ExtCtrls;

 

type

  TPanelText3DBevel = (bvNone3,bvLowered3,bvRaised3,bvShadow3);

  TPanel3DVertAlignment = (vaTop,vaCenter,vaBottom);

  TPanel3DRePaintCT = (rpAll,rpCaption,rpTitle);

  TPanel3D = class(TPanel)

  private

    FAlignmentTitle: TAlignment;

    FBevelCaption: TPanelText3DBevel;

    FBevelTitle: TPanelText3DBevel;

    FBorderTitle: TPanelBevel;

    FColorTitle: TColor;

    FFontTitle: TFont;

    FHColorCaption: TColor;

    FHColorTitle: TColor;

    FRePaintCT: TPanel3DRePaintCT;

    FSColorCaption: TColor;

    FSColorTitle: TColor;

    FShadowSizeCaption: Byte;

    FShadowSizeTitle: Byte;

    FVertAlignment: TPanel3DVertAlignment;

    FTitle: String;

    procedure DoDrawCaption(var Rect: TRect;Flags: Word);

    procedure DoDrawShadowText(ColorHigh,ColorLow: TColor;Rect: TRect;

      SH: Byte;Text: String;BevelState: TPanelText3DBevel;Flags: Word;

      AFont: TFont);

    procedure DoDrawTitle(var Rect: TRect;Flags: Word);

    function IsFontTitleStored: Boolean;

    procedure SetAlignmentTitle(Value: TAlignment);

    procedure SetBevelCaption(Value: TPanelText3DBevel);

    procedure SetBevelTitle(Value: TPanelText3DBevel);

    procedure SetBorderTitle(Value: TPanelBevel);

    procedure SetColorTitle(Value: TColor);

    procedure SetFontTitle(Value: TFont);

    procedure SetHColorCaption(Value: TColor);

    procedure SetHColorTitle(Value: TColor);

    procedure SetRePaintCT(Value: TPanel3DRePaintCT);

    procedure SetSColorCaption(Value: TColor);

    procedure SetSColorTitle(Value: TColor);

    procedure SetShadowSizeCaption(Value: Byte);

    procedure SetShadowSizeTitle(Value: Byte);

    procedure SetTitle(Value: String);

    procedure SetVertAlignment(Value: TPanel3DVertAlignment);

  protected

    procedure Paint; override;

  public

    constructor Create(AOwner: TComponent); override;

    destructor Destroy; override;

  published

    property AlignmentTitle: TAlignment read FAlignmentTitle

      write SetAlignmentTitle default taLeftJustify;

    property BevelCaption: TPanelText3DBevel read FBevelCaption

      write SetBevelCaption default bvRaised3;

    property BevelTitle: TPanelText3DBevel read FBevelTitle

      write SetBevelTitle default bvRaised3;

    property BorderTitle: TPanelBevel read FBorderTitle

      write SetBorderTitle default bvNone;

    property ColorTitle: TColor read FColorTitle

      write SetColorTitle default clBtnFace;

    property FontTitle: TFont read FFontTitle

      write SetFontTitle stored IsFontTitleStored;

    property HColorCaption: TColor read FHColorCaption

      write SetHColorCaption default clBtnHighLight;

    property HColorTitle: TColor read FHColorTitle

      write SetHColorTitle default clBtnHighLight;

    property RePaintCT: TPanel3DRePaintCT read FRePaintCT

      write SetRePaintCT default rpAll;

    property SColorCaption: TColor read FSColorCaption

      write SetSColorCaption default clBtnShadow;

    property SColorTitle: TColor read FSColorTitle

      write SetSColorTitle default clBtnShadow;

    property ShadowSizeCaption: Byte read FShadowSizeCaption

      write SetShadowSizeCaption default 1;

    property ShadowSizeTitle: Byte read FShadowSizeTitle

      write SetShadowSizeTitle default 1;

    property Title: String read FTitle write SetTitle;

    property VertAlignment: TPanel3DVertAlignment read FVertAlignment

      write SetVertAlignment default vaCenter;

  end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

  RegisterComponents('3DElements', [TPanel3D]);

end;

 

{

  class TPanel3D

  ~~~~~~~~~~~~~~

}

constructor TPanel3D.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  FAlignmentTitle:=taLeftJustify;

  FBevelCaption:=bvRaised3;

  FBevelTitle:=bvRaised3;

  FBorderTitle:=bvNone;

  FColorTitle:=clBtnFace;

  FFontTitle:=TFont.Create;

  FHColorCaption:=clBtnHighLight;

  FHColorTitle:=clBtnHighLight;

  FRePaintCT:=rpAll;

  FSColorCaption:=clBtnShadow;

  FSColorTitle:=clBtnShadow;

  FShadowSizeCaption:=1;

  FShadowSizeTitle:=1;

  FTitle:='';{Name;}

  FVertAlignment:=vaCenter;

end;

 

destructor TPanel3D.Destroy;

begin

  FFontTitle.Free;

  inherited Destroy;

end;

 

 

procedure TPanel3D.DoDrawShadowText(ColorHigh,ColorLow: TColor;Rect: TRect;

  SH: Byte;Text: String;BevelState: TPanelText3DBevel;Flags: Word;AFont: TFont);

var

  R: TRect;

begin

  {High shadow text}

  if BevelState <> bvShadow3 then

  begin

    R:=Rect;

    OffsetRect(R,-SH,-SH);

    Canvas.Font.Color:=ColorHigh;

    if Enabled then

      DrawText(Canvas.Handle,PChar(Text),Length(Text),R,Flags);

  end;

  {Low shadow text}

  R:=Rect;

  OffsetRect(R,SH,SH);

  Canvas.Font.Color:=ColorLow;

  DrawText(Canvas.Handle,PChar(Text),Length(Text),R,Flags);

  {Text}

  Canvas.Font:=AFont;

  if not Enabled then Canvas.Font.Color:=clGrayText;

  DrawText(Canvas.Handle,PChar(Text),Length(Text),Rect,Flags);

end;

 

procedure TPanel3D.DoDrawCaption(var Rect: TRect;Flags: Word);

begin

  Canvas.Font:=Font;

  if FBevelCaption = bvNone3 then

    DrawText(Canvas.Handle,PChar(Caption),Length(Caption),Rect,Flags)

  else

    case FBevelCaption of

      bvRaised3 : DoDrawShadowText(FHColorCaption,FSColorCaption,Rect,

                   FShadowSizeCaption,Caption,FBevelCaption,Flags,Font);

      bvLowered3: DoDrawShadowText(FSColorCaption,FHColorCaption,Rect,

                   FShadowSizeCaption,Caption,FBevelCaption,Flags,Font);

      bvShadow3 : DoDrawShadowText(0,FSColorCaption,Rect,

                   FShadowSizeCaption,Caption,FBevelCaption,Flags,Font);

    end;

end;

 

procedure TPanel3D.DoDrawTitle(var Rect: TRect;Flags: Word);

begin

  Canvas.Font:=FontTitle;

  if FBevelTitle = bvNone3 then

    DrawText(Canvas.Handle,PChar(Title),Length(Title),Rect,Flags)

  else

    case FBevelTitle of

      bvRaised3 : DoDrawShadowText(FHColorTitle,FSColorTitle,Rect,

                   FShadowSizeTitle,Title,FBevelTitle,Flags,FontTitle);

      bvLowered3: DoDrawShadowText(FSColorTitle,FHColorTitle,Rect,

                   FShadowSizeTitle,Title,FBevelTitle,Flags,FontTitle);

      bvShadow3 : DoDrawShadowText(0,FSColorTitle,Rect,

                   FShadowSizeTitle,Title,FBevelTitle,Flags,FontTitle);

    end;

end;

 

procedure TPanel3D.Paint;

var

  Rect,R: TRect;

  TopColor,BottomColor: TColor;

  H: Integer;

const

  Alignments: array[TAlignment] of Word = (DT_LEFT,DT_RIGHT,DT_CENTER);

 

  procedure AdjustColors(Bevel: TPanelBevel);

  begin

    TopColor:=clBtnHighlight;

    if Bevel = bvLowered then TopColor:=clBtnShadow;

    BottomColor:=clBtnShadow;

    if Bevel = bvLowered then BottomColor:=clBtnHighlight;

  end;

 

begin

  Rect:=GetClientRect;

  Canvas.Brush.Color:=Color;

  Canvas.FillRect(Rect);

  Rect.Top:=Rect.Top-(FontTitle.Height div 2)+FShadowSizeTitle;

  if BevelOuter <> bvNone then

  begin

    AdjustColors(BevelOuter);

    Frame3D(Canvas,Rect,TopColor,BottomColor,BevelWidth);

  end;

  Frame3D(Canvas,Rect,Color,Color,BorderWidth);

  if BevelInner <> bvNone then

  begin

    AdjustColors(BevelInner);

    Frame3D(Canvas,Rect,TopColor,BottomColor,BevelWidth);

  end;

  with Canvas do

  begin

    Brush.Style:=bsClear;

    if FRePaintCT <> rpTitle then

    begin

      Font:=Self.Font;

      R:=Rect;

      H:=DrawText(Canvas.Handle,PChar(Caption),-1,R,

          (DT_CALCRECT or DT_EXPANDTABS or DT_VCENTER or DT_WORDBREAK)

          or Alignments[Alignment]);

      with Rect do

      begin

        if FTitle <> '' then

          Top:=Top-(FontTitle.Height div 2)+FShadowSizeTitle;

        case FVertAlignment of

          vaTop   : begin

                      Top:=Top+FShadowSizeCaption;

                      Bottom:=Top+H+FShadowSizeCaption;

                    end;

          vaCenter: begin

                      Top:=(((Bottom+Top)-H) div 2)+FShadowSizeCaption;;

                      Bottom:=Top+H+FShadowSizeCaption;;

                    end;

          vaBottom: Top:=Bottom-H-FShadowSizeCaption;

        end;

        Left:=Left+FShadowSizeCaption;

        Right:=Right-FShadowSizeCaption;

      end;

      {Draw Caption text}

      DoDrawCaption(Rect,(DT_EXPANDTABS or

        DT_VCENTER or DT_WORDBREAK) or Alignments[Alignment]);

    end;

    {Draw Title}

    if (FTitle <> '') and (FRePaintCT <> rpCaption) then

    begin

      Font:=Self.FontTitle;

      {Rect:=R;}

      Rect:=GetClientRect;

      with Rect do

      begin

        H:=TextWidth(FTitle);

        case FAlignmentTitle of

          taLeftJustify : begin

                            Left:=Left+5;

                            if H < (Width-5) then

                              Right:=Left+H;

                          end;

          taCenter      : begin

                            if H > Width then

                              Left:=0

                            else

                              Left:=(Width div 2)-(H div 2);

                              Right:=(Width div 2)+(H div 2);

                          end;

          taRightJustify: begin

                            Right:=Right-5;

                            if H < (Width-5) then

                              Left:=Right-H;

                          end;

        end;

        Bottom:=Top+TextHeight('W')+FShadowSizeTitle;

      end;

      Brush.Color:=FColorTitle;

      R:=Rect;

      with Rect do

      begin

        Left:=Left-FShadowSizeTitle;

        Right:=Right+FShadowSizeTitle;

      end;

      FillRect(Rect);

      case FBorderTitle of

        bvRaised : Frame3D(Canvas,Rect,clBtnHighlight,clBtnShadow,BevelWidth);

        bvLowered: Frame3D(Canvas,Rect,clBtnShadow,clBtnHighlight,BevelWidth);

      end;

      Rect:=R;

      Brush.Style:=bsClear;

      DoDrawTitle(Rect,(DT_EXPANDTABS or DT_VCENTER));

    end;

  end;

end;

 

function TPanel3D.IsFontTitleStored: Boolean;

begin

  Result:=not ParentFont;

end;

 

procedure TPanel3D.SetAlignmentTitle(Value: TAlignment);

begin

  FAlignmentTitle:=Value;

  Invalidate;

end;

 

procedure TPanel3D.SetBevelCaption(Value: TPanelText3DBevel);

begin

  if FBevelCaption <> Value then

  begin

    FBevelCaption:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetBevelTitle(Value: TPanelText3DBevel);

begin

  if FBevelTitle <> Value then

  begin

    FBevelTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetBorderTitle(Value: TPanelBevel);

begin

  if FBorderTitle <> Value then

  begin

    FBorderTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetColorTitle(Value: TColor);

begin

  if FColorTitle <> Value then

  begin

    FColorTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetFontTitle(Value: TFont);

begin

  FFontTitle.Assign(Value);

  Invalidate;

end;

 

procedure TPanel3D.SetHColorCaption(Value: TColor);

begin

  if FHColorCaption <> Value then

  begin

    FHColorCaption:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetHColorTitle(Value: TColor);

begin

  if FHColorTitle <> Value then

  begin

    FHColorTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetRePaintCT(Value: TPanel3DRePaintCT);

begin

  if FRePaintCT <> Value then

  begin

    FRePaintCT:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetSColorCaption(Value: TColor);

begin

  if FSColorCaption <> Value then

  begin

    FSColorCaption:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetSColorTitle(Value: TColor);

begin

  if FSColorTitle <> Value then

  begin

    FSColorTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetShadowSizeCaption(Value: Byte);

begin

  if FShadowSizeCaption <> Value then

  begin

    FShadowSizeCaption:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetShadowSizeTitle(Value: Byte);

begin

  if FShadowSizeTitle <> Value then

  begin

    FShadowSizeTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetTitle(Value: String);

begin

  if FTitle <> Value then

  begin

    FTitle:=Value;

    Invalidate;

  end;

end;

 

procedure TPanel3D.SetVertAlignment(Value: TPanel3DVertAlignment);

begin

  if FVertAlignment <> Value then

  begin

    FVertAlignment:=Value;

    Invalidate;

  end;

end;

 

end.

 

Delphi - .....................................

 

ListBx3D

unit ListBx3D;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

 

type

  TListBox3DBevel = (bvNone,bvLowered,bvRaised,bvShadow);

  TListBox3DPressState = (bvNonePress,bvPress);

  TListBox3D = class(TCustomListBox)

  private

    FHighLightColor: TColor;

    FShadowColor: TColor;

    FBevel: TListBox3DBevel;

    FShadowSize: Byte;

    FPressState: TListBox3DPressState;

    procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;

    procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;

    procedure DoDrawShadowText(ColorHigh,ColorLow: TColor;Rect: TRect;

      Index: Integer;State: TOwnerDrawState);

    function GetTextHeight: LongInt;

    procedure SetBevel(Value: TListBox3DBevel);

    procedure SetHighLightColor(Value: TColor);

    procedure SetShadowColor(Value: TColor);

    procedure SetShadowSize(Value: Byte);

  protected

    procedure DrawItem(Index: Integer; Rect: TRect;

      State: TOwnerDrawState); override;

    procedure MeasureItem(Index: Integer; var Height: Integer); override;

  public

    constructor Create(AOwner: TComponent); override;

  published

    property HighLightColor: TColor read FHighLightColor

      write SetHighLightColor default clBtnHighLight;

    property ShadowColor: TColor read FShadowColor

      write SetShadowColor default clBtnShadow;

    property Bevel: TListBox3DBevel read FBevel

      write SetBevel default bvRaised;

    property ShadowSize: Byte read FShadowSize

      write SetShadowSize default 1;

    property PressState: TListBox3DPressState read FPressState

      write FPressState default bvNonePress;

    {}

    property Align;

    property BorderStyle;

    property Color;

    property Columns;

    property Ctl3D;

    property DragCursor;

    property DragMode;

    property Enabled;

    property ExtendedSelect;

    property Font;

    property IntegralHeight;

    property ItemHeight;

    property Items;

    property MultiSelect;

    property ParentColor;

    property ParentCtl3D;

    property ParentFont;

    property ParentShowHint;

    property PopupMenu;

    property ShowHint;

    property Sorted;

    property Style;

    property TabOrder;

    property TabStop;

    property TabWidth;

    property Visible;

    property OnClick;

    property OnDblClick;

    property OnDragDrop;

    property OnDragOver;

    property OnEndDrag;

    property OnEnter;

    property OnExit;

    property OnKeyDown;

    property OnKeyPress;

    property OnKeyUp;

    property OnMouseDown;

    property OnMouseMove;

    property OnMouseUp;

    property OnStartDrag;

  end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

  RegisterComponents('3DElements', [TListBox3D]);

end;

 

{

  class TListBox3D

  ~~~~~~~~~~~~~~~~

}

constructor TListBox3D.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  Style:=lbOwnerDrawFixed;

  FHighLightColor:=clBtnHighLight;

  FShadowColor:=clBtnShadow;

  FBevel:=bvRaised;

  FShadowSize:=1;

  FPressState:=bvNonePress;

end;

 

procedure TListBox3D.DoDrawShadowText(ColorHigh,ColorLow: TColor;Rect: TRect;

  Index: Integer;State: TOwnerDrawState);

var

  R: TRect;

  OldColor: TColor;

  Flags: Word;

begin

  Flags:=DT_VCENTER or DT_SINGLELINE;

  OldColor:=Canvas.Font.Color;

  {High shadow text}

  if FBevel <> bvShadow then

  begin

    R:=Rect;

    OffsetRect(R,-FShadowSize,-FShadowSize);

    Inc(R.Left,2+FShadowSize);

    Canvas.Font.Color:=ColorHigh;

    if Enabled then

      DrawText(Canvas.Handle,PChar(Items[Index]),Length(Items[Index]),

        R,Flags);

  end;

  {Low shadow text}

  if (FBevel = bvShadow) and (odSelected in State) then

  else

  begin

    R:=Rect;

    OffsetRect(R,FShadowSize,FShadowSize);

    Inc(R.Left,2+FShadowSize);

    Canvas.Font.Color:=ColorLow;

    DrawText(Canvas.Handle,PChar(Items[Index]),Length(Items[Index]),

      R,Flags);

   end;

  {Text}

  Canvas.Font.Color:=OldColor;

  if not Enabled then Canvas.Font.Color:=clGrayText;

  Inc(Rect.Left,2+FShadowSize);

  DrawText(Canvas.Handle,PChar(Items[Index]),Length(Items[Index]),

    Rect,Flags);

end;

 

procedure TListBox3D.DrawItem(Index: Integer; Rect: TRect;

  State: TOwnerDrawState);

var

  R: TRect;

begin

  if Assigned(OnDrawItem) then OnDrawItem(Self,Index,Rect,State)

  else

  begin

    Canvas.FillRect(Rect);

    if odSelected in State then

    begin

      R:=Rect;

      DrawFrameControl(Canvas.Handle,R,DFC_BUTTON,DFCS_BUTTONPUSH);

    end;

    if Index < Items.Count then

    begin

      Canvas.Brush.Style:=bsClear;

      if FBevel = bvNone then

      begin

        Canvas.Font:=Font;

        Canvas.TextOut(Rect.Left+2,Rect.Top,Items[Index]);

      end

      else

        if (odSelected in State) and (FPressState = bvPress) then

          case FBevel of

            bvRaised : DoDrawShadowText(FShadowColor,FHighLightColor,

              Rect,Index,State);

            bvLowered: DoDrawShadowText(FHighLightColor,FShadowColor,

              Rect,Index,State);

            bvShadow : DoDrawShadowText(0,FShadowColor,Rect,Index,State);

          end

        else

          case FBevel of

            bvRaised : DoDrawShadowText(FHighLightColor,FShadowColor,

              Rect,Index,State);

            bvLowered: DoDrawShadowText(FShadowColor,FHighLightColor,

              Rect,Index,State);

            bvShadow : DoDrawShadowText(0,FShadowColor,Rect,Index,State);

          end;

    end;

  end;

end;

 

procedure TListBox3D.CNDrawItem(var Message: TWMDrawItem);

var

  State: TOwnerDrawState;

begin

  with Message.DrawItemStruct^ do

  begin

    Inc(rcItem.Bottom);

    State:=TOwnerDrawState(WordRec(LongRec(itemState).Lo).Lo);

    Canvas.Handle:=hDC;

    Canvas.Font:=Font;

    Canvas.Brush:=Brush;

    if Integer(itemID) >= 0 then

      DrawItem(itemID,rcItem,State)

    else

      Canvas.FillRect(rcItem);

    if (Integer(itemID) >= 0) and (odSelected in State) then

      Canvas.Brush.Color:=clHighlight;

    if odFocused in State then

    begin

      InflateRect(rcItem,-2,-2);

      Canvas.Pen.Color:=clWindowFrame;

      Canvas.Brush.Color:=clBtnFace;

      DrawFocusRect(Canvas.Handle,rcItem);

    end;

    Canvas.Handle:=0;

  end;

end;

 

procedure TListBox3D.CNMeasureItem(var Message: TWMMeasureItem);

begin

  with Message.MeasureItemStruct^ do

    MeasureItem(itemID,Integer(itemHeight));

end;

 

function TListBox3D.GetTextHeight: LongInt;

var

  hdcf: HDC;

  TM: TTextMetric;

  SaveFont: HFont;

begin

  hdcf:=GetDC(0);

  SaveFont:=SelectObject(hdcf,Font.Handle);

  GetTextMetrics(hdcf,TM);

  Result:=TM.tmHeight;

  SelectObject(hdcf,SaveFont);

  ReleaseDC(0,hdcf);

end;

 

procedure TListBox3D.MeasureItem(Index: Integer; var Height: Integer);

begin

  Height:=GetTextHeight+2;

  if FBevel <> bvNone then

    Inc(Height,2*FShadowSize);

end;

 

procedure TListBox3D.SetBevel(Value: TListBox3DBevel);

begin

  if FBevel <> Value then

  begin

    FBevel:=Value;

    Invalidate;

  end;

end;

 

procedure TListBox3D.SetHighLightColor(Value: TColor);

begin

  if FHighLightColor <> Value then

  begin

    FHighLightColor:=Value;

    Invalidate;

  end;

end;

 

procedure TListBox3D.SetShadowColor(Value: TColor);

begin

  if FShadowColor <> Value then

  begin

    FShadowColor:=Value;

    Invalidate;

  end;

end;

 

procedure TListBox3D.SetShadowSize(Value: Byte);

begin

  if FShadowSize <> Value then

  begin

    FShadowSize:=Value;

    ItemHeight:=GetTextHeight+2;

    if FBevel <> bvNone then

      ItemHeight:=ItemHeight+2*FShadowSize;

    Invalidate;

  end;

end;

 

end.

 

Delphi - .....................................

 

Label3D

unit Label3D;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls,ExtCtrls;

 

type

  TLabel3DBevel = (bvNone,bvLowered,bvRaised,bvShadow);

  TLabel3D = class(TLabel)

  private

    FHighLightColor: TColor;

    FShadowColor: TColor;

    FBevel: TLabel3DBevel;

    FShadowSize: Byte;

    procedure DoDrawText(var Rect: TRect;Flags: Word);

    procedure SetBevel(Value: TLabel3DBevel);

    procedure SetHighLightColor(Value: TColor);

    procedure SetShadowColor(Value: TColor);

    procedure SetShadowSize(Value: Byte);

  protected

    procedure Paint; override;

  public

    constructor Create(AOwner: TComponent); override;

  published

    property HighLightColor: TColor read FHighLightColor

      write SetHighLightColor default clBtnHighLight;

    property ShadowColor: TColor read FShadowColor

      write SetShadowColor default clBtnShadow;

    property Bevel: TLabel3DBevel read FBevel

      write SetBevel default bvRaised;

    property ShadowSize: Byte read FShadowSize

      write SetShadowSize default 1;

  end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

  RegisterComponents('3DElements', [TLabel3D]);

end;

 

{

  class TLabel3D

  ~~~~~~~~~~~~~~

}

constructor TLabel3D.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  FHighLightColor:=clBtnHighLight;

  FShadowColor:=clBtnShadow;

  FBevel:=bvRaised;

  FShadowSize:=1;

end;

 

procedure TLabel3D.DoDrawText(var Rect: TRect;Flags: Word);

var

  Text: string;

 

procedure DoDrawShadowText(ColorHigh,ColorLow: TColor);

var

  R: TRect;

begin

  {High shadow text}

  if FBevel <> bvShadow then

  begin

    R:=Rect;

    OffsetRect(R,-FShadowSize,-FShadowSize);

    Canvas.Font.Color:=ColorHigh;

    if Enabled then

      DrawText(Canvas.Handle,PChar(Text),Length(Text),R,Flags);

  end;

  {Low shadow text}

  R:=Rect;

  OffsetRect(R,FShadowSize,FShadowSize);

  Canvas.Font.Color:=ColorLow;

  DrawText(Canvas.Handle,PChar(Text),Length(Text),R,Flags);

  {Text}

  Canvas.Font:=Font;

  if not Enabled then Canvas.Font.Color:=clGrayText;

  DrawText(Canvas.Handle,PChar(Text),Length(Text),Rect,Flags);

end;

 

begin

  Text:=GetLabelText;

  if (Flags and DT_CALCRECT <> 0) and ((Text = '') or ShowAccelChar and

    (Text[1] = '&') and (Text[2] = #0)) then Text:=Text+' ';

  if not ShowAccelChar then Flags:=Flags or DT_NOPREFIX;

  Canvas.Font:=Font;

  if FBevel = bvNone then

    DrawText(Canvas.Handle,PChar(Text),Length(Text),Rect,Flags)

  else

    case FBevel of

      bvRaised : DoDrawShadowText(FHighLightColor,FShadowColor);

      bvLowered: DoDrawShadowText(FShadowColor,FHighLightColor);

      bvShadow : DoDrawShadowText(0,FShadowColor);

    end;

end;

 

procedure TLabel3D.Paint;

const

  Alignments: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER);

var

  Rect: TRect;

begin

  with Canvas do

  begin

    if not Transparent then

    begin

      Brush.Color:=Self.Color;

      Brush.Style:=bsSolid;

      FillRect(ClientRect);

    end;

    Brush.Style:=bsClear;

    Rect:=ClientRect;

    DoDrawText(Rect,(DT_EXPANDTABS or DT_WORDBREAK) or

      Alignments[Alignment]);

  end;

end;

 

procedure TLabel3D.SetBevel(Value: TLabel3DBevel);

begin

  if FBevel <> Value then

  begin

    FBevel:=Value;

    Invalidate;

  end;

end;

 

procedure TLabel3D.SetHighLightColor(Value: TColor);

begin

  if FHighLightColor <> Value then

  begin

    FHighLightColor:=Value;

    Invalidate;

  end;

end;

 

procedure TLabel3D.SetShadowColor(Value: TColor);

begin

  if FShadowColor <> Value then

  begin

    FShadowColor:=Value;

    Invalidate;

  end;

end;

 

procedure TLabel3D.SetShadowSize(Value: Byte);

begin

  if FShadowSize <> Value then

  begin

    FShadowSize:=Value;

    Invalidate;

  end;

end;

 

 

end.

 

Delphi - .....................................

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol