Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание программы для редактирования иконок [D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Konan ©   (2004-11-08 12:29:00) 

Господа, помогите пожалуйста. Какие компоненты нужно для того, чтобы мне при загрузке какого-либо изображения, на него было наложена решётка, как в программаж для создания иконок?


easy   (2004-11-08 13:41:00) [1]

ps: если ищешь компоненты, может лучше сразу взять готовый прог?
http://www.microangelo.us/


easy   (2004-11-08 13:38:00) [2]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure FormPaint(Sender: TObject);
 private
   { Private declarations }
   icoBmp: TBitmap;
   icoMask: TBitmap;
   bmpBuf: TBitmap;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 icoBmp := TBitmap.Create;
 icoBmp.Width := 32;
 icoBmp.Height := 32;
 icoMask := TBitmap.Create;
 icoMask.Width := 32;
 icoMask.Height := 32;
 icoBmp.Canvas.Draw(0, 0, application.icon);
 DrawIconEx(icoMask.Canvas.Handle, 0, 0, application.icon.Handle, 32, 32, 0, 0, DI_Mask);
 bmpBuf := TBitmap.Create;
 bmpBuf.Height := 512;
 bmpBuf.Width := 512;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 icoBmp.Free;
 icoMask.Free;
 bmpBuf.Free;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
 i, j: integer;
 clr: TColor;
begin
 for i := 0 to 32 do
   for j := 0 to 32 do begin
     clr := icoBmp.Canvas.Pixels[i, j];
     if icoMask.Canvas.Pixels[i, j] = clWhite then clr := clFuchsia;
     bmpBuf.Canvas.Brush.Color := clr;
     bmpBuf.Canvas.FillRect(rect(i * 16, j * 16, i * 16 + 15, j * 16 + 15));
   end;
 Canvas.Draw(0, 0, bmpBuf);
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо