Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Создание программы для редактирования иконок   Найти похожие ветки 

 
Konan   (2004-11-08 12:29) [0]

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


 
easy ©   (2004-11-08 13:38) [1]

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.


 
easy ©   (2004-11-08 13:41) [2]

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



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
4-1105019957
microprogs
2005-01-06 16:59
2005.02.20
Процедура - прерывание... (Как в ДОСе)


1-1107852549
Denis
2005-02-08 11:49
2005.02.20
Как проскроллить RichEdit до выделеного участка текста?


3-1106648690
Sergilov
2005-01-25 13:24
2005.02.20
Как узнать текущий формат даты в Access???


14-1107266227
AlexG
2005-02-01 16:57
2005.02.20
Что мне добавить и нравится ли структура?


6-1102708946
=alexlp=
2004-12-10 23:02
2005.02.20
Как узнать активен ли TServerSocket.