![]() |
![]() ![]() ![]() ![]() |
|
Создать неактивные пиктограммы для TSpeedButton и TBitBtn во время выполненияDelphi , Компоненты и Классы , КнопкиСоздать неактивные пиктограммы для TSpeedButton и TBitBtn во время выполнения
Оформил: DeeCo
procedure AddDisableBMP(SB : array of TObject);
var
BM, SBM : TBitmap;
w, x, y, NewColor, i : integer;
PixelColor : TColor;
begin
BM := TBitmap.Create;
SBM := TBitmap.Create;
try
for i := 0 to High(SB) do
begin
if (SB[i] is TSpeedButton) then
BM.Assign((SB[i] as TSpeedButton).Glyph)
else if (SB[i] is TBitBtn) then
BM.Assign((SB[i] as TBitBtn).Glyph)
else
Exit;
if not Assigned(BM) or (BM.Width <> BM.Height) then Exit;
w := BM.Width;
SBM.Width := w * 2;
SBM.Height := w;
SBM.Canvas.Draw(0, 0, BM);
for x := 0 to w - 1 do
for y := 0 to w - 1 do
begin
PixelColor := ColorToRGB(BM.Canvas.Pixels[x, y]);
NewColor := Round((((PixelColor shr 16) + ((PixelColor shr 8) and $00FF) +
(PixelColor and $0000FF)) div 3)) div 2 + 96;
BM.Canvas.Pixels[x, y] := RGB(NewColor, NewColor, NewColor);
end;
SBM.Canvas.Draw(w, 0, BM);
if (SB[i] is TSpeedButton) then with (SB[i] as TSpeedButton) do
begin
Glyph.Assign(SBM);
NumGlyphs := 2;
end
else
with (SB[i] as TBitBtn) do
begin
Glyph.Assign(SBM);
NumGlyphs := 2;
end;
BM := TBitmap.Create;
SBM := TBitmap.Create;
end;
finally
BM.Free;
SBM.Free;
end;
end;
Перевод контента на русский язык: Данный код - процедура Delphi, которая создает и присваивает отключенный битмап (BMP) коллекции объектов Шаг за шагом:
В целом, этот код создает отключенный вариант глифа каждой кнопки, конвертируя ее в серый и затем присваивая ее обратно оригинальным кнопкам как новый глиф. Некоторые предложения:
Создать неактивные пиктограммы для компонентов TSpeedButton и TBitBtn, изменяя их глифы с помощью процедуры AddDisableBMP. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||