![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ToolButton и Image [D6, Win95/98]
Serg_lys © (2004-07-16 19:07:00)Здравствуйте! Расскажу, о моем проекте более конкретно. В проекте есть инструментальная панель Toolbar и компонент Image. Панель Toolbar связана с компонентом ImageList и на ней расположены кнопки Toolbutton, содержащие изображения от ImageList, например, пять ToolButton с изображением квадратиков разных цветов.
Задача: нажимаем левой клавишей мыши по кнопке ToolButton, тем самым выделяя ее, затем щелкаем левой клавишей мыши по Image. В результате на Image должен появиться квадратик от ToolButton, с возможностью перемещения его на Image с помощью мыши. Как это сделать программно?
grom (2004-07-18 11:47:00) [1]var
Form1: TForm1;
fon,kvadrat:TBitmap;
i:Integer;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
fon:=TBitMap.Create;
kvadrat:=TBitMap.Create;
//ImageList1.GetBitmap(0,kvadrat);
//kvadrat.Transparent:=True;
fon.LoadFromFile('sky.bmp');
Image1.Canvas.Draw(0,0,fon);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
i:=1;
Image1.Canvas.Draw(0,0,fon);
Image1.Canvas.Draw(x-ImageList1.Width div 2,y-ImageList1.Height div 2,kvadrat);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if i=0 then exit;
Image1.Canvas.Draw(0,0,fon);
Image1.Canvas.Draw(x-ImageList1.Width div 2,y-ImageList1.Height div 2,kvadrat);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
i:=0;
//Image1.Canvas.Draw(0,0,fon);
end;
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
kvadrat.Assign(nil);
Image1.Canvas.Draw(0,0,fon);
ImageList1.GetBitmap(0,kvadrat);
end;
procedure TForm1.ToolButton2Click(Sender: TObject);
begin
kvadrat.Assign(nil);
Image1.Canvas.Draw(0,0,fon);
ImageList1.GetBitmap(1,kvadrat);
end;
procedure TForm1.ToolButton3Click(Sender: TObject);
begin
kvadrat.Assign(nil);
Image1.Canvas.Draw(0,0,fon);
ImageList1.GetBitmap(2,kvadrat);
end;
procedure TForm1.ToolButton4Click(Sender: TObject);
begin
kvadrat.Assign(nil);
Image1.Canvas.Draw(0,0,fon);
ImageList1.GetBitmap(3,kvadrat);
end;
procedure TForm1.ToolButton5Click(Sender: TObject);
begin
kvadrat.Assign(nil);
Image1.Canvas.Draw(0,0,fon);
ImageList1.GetBitmap(4,kvadrat);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
fon.free;
kvadrat.free;
end;
end.
grom (2004-07-16 19:23:00) [2]с возможностью перемещения его на Image
может лучше двигать Image с помощью мыши вместе с квадратиком
по форме ?
Или обязательно квадратик в Image ?