Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Получить Bitmap радио кнопок

Советы » Bitmap » Получить Bitmap радио кнопок

{ 
  Diese Funktion liefert ein Bitmap eines RadioButton. 

  Parameter: 
  Checked = RadioButton ausgewahlt 
  Hot = RadioButton aktiv (funktioniert nur unter XP und 
  bewirkt z.B. unter Luna einen hellroten Rand) 
  BgColor = Hintergrundfarbe des RadioButton 

  Wichtig: 
  Die Bitmap sollte nach Ausfuhrung der Funktion wieder freigegeben werden! 
  XP-Styles werden erst ab Delphi7 unterstutzt. 
}


 Code:{$IFDEF VER150}

 uses

Themes; {$ENDIF} function

GetRadioButtonBitmap(Checked, Hot : boolean; BgColor : TColor): TBitmap; const

CtrlState : array

[boolean] of

integer = (DFCS_BUTTONRADIO, DFCS_BUTTONRADIO or

DFCS_CHECKED); var

CBRect : TRect; {$IFDEF VER150} Details : TThemedElementDetails; {$ENDIF} BgOld : TColor; ChkBmp : TBitmap; ThemeOK : boolean; x, x2, y : integer; begin

Result := nil

; try

Result := TBitmap.Create; ChkBmp := TBitmap.Create; ThemeOK := False; with

Result do

begin

Width := 16; Height := 16; with

Canvas do

begin

Brush.Color := BgColor; FillRect(ClipRect); ChkBmp.Assign(Result); CBRect := ClipRect; CBRect.Top := 1; CBRect.Left := 1; {$IFDEF VER150} if

ThemeServices.ThemesAvailable then

begin

//ab WinXP if

Checked = True then

begin

if

Hot = True then

Details := ThemeServices.GetElementDetails(tbRadioButtonCheckedHot) else

Details := ThemeServices.GetElementDetails(tbRadioButtonCheckedNormal); end

else

begin

if

Hot = True then

Details := ThemeServices.GetElementDetails(tbRadioButtonUncheckedHot) else

Details := ThemeServices.GetElementDetails(tbRadioButtonUncheckedNormal); end

; ThemeServices.DrawElement(Handle, Details, CBRect); //Prufen ob es tatsachlich geklappt hat (Win2003 liefert leere Images!) for

x := 15 downto

0 do

for

y := 15 downto

0 do

if

ChkBmp.Canvas.Pixels[x, y] <> Pixels[x, y] then

begin

ThemeOK := True; break; end

; end

; {$ENDIF} if

ThemeOK = False then

begin

//alles vor WinXP CBRect.Left := ClipRect.Left + 2; CBRect.Right := ClipRect.Right - 1; CBRect.Top := ClipRect.Top + 2; CBRect.Bottom := ClipRect.Bottom - 1; DrawFrameControl(Handle, CBRect, DFC_BUTTON, CtrlState[Checked]); end

; end

; end

; finally

end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com