Вниз
Скачать: CL | DM;

Работа с TImages   Найти похожие ветки 

 
Skiter   (2004-11-01 23:02) [0]

Как передвигать TImages по форме я знаю,
а как избавиться от мерцания при перемещении?

..и еще..

Одна картинка накладывается на другую.
Верхней из них выставлено свойство Transparent,
как при щелчке в прозрачной области "цеплять"
нижнюю картинку?


 
_student   (2004-11-01 23:10) [1]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Image1: TImage;
   Image2: TImage;
   Image3: TImage;
   Image4: TImage;
   Image5: TImage;
   Image6: TImage;
   procedure FormCreate(Sender: TObject);
 procedure MyImageMouseUp(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure MyImageMouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);

   procedure MyImageMouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
     private

   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 x2,y2:integer;
 flag:boolean;
implementation

{$R *.dfm}

procedure TForm1.MyImageMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
//
 x2:=x;
 y2:=y;
 flag:=true;
 if   sender is TImage then
  begin
    (sender as TImage).BringToFront;

   end;

end;

procedure TForm1.MyImageMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin

If flag=true Then
 begin
  (Sender As TImage).Left:=(Sender As TImage).Left+x-x2;
  (Sender As TImage).Top:=(Sender As TImage).Top+y-y2;
 end;

end;

procedure TForm1.MyImageMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
//
flag:=false;

end;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=0 to ComponentCount-1 do
 begin
  if   Components[i] is TImage then
  begin
    (Components[i] as TImage).OnMouseDown:=MyImageMouseDown;
    (Components[i] as TImage).OnMouseUp:=MyImageMouseUp;
    (Components[i] as TImage).OnMouseMove:=MyImageMouseMove;
   end;
 end;
end;

end.


 
Skiter   (2004-11-02 11:43) [2]

Спасибо попробую!


 
Skiter   (2004-11-02 17:20) [3]

Это простое перемещение!......
Мерцание не исчезло...........
И второй вопрос не был учтен!.


 
Mihey_temporary ©   (2004-11-02 19:01) [4]

DoubleBuffered := True;



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1098657565
Profi
2004-10-25 02:39
2004.11.14
Заболел!!!


1-1099384580
Роман
2004-11-02 11:36
2004.11.14
Сохранение данных


14-1098458364
Gero
2004-10-22 19:19
2004.11.14
Программы для тестирования железа


4-1097141154
lightix
2004-10-07 13:25
2004.11.14
Узнать ID активного приложения


8-1092003941
Vince
2004-08-09 02:25
2004.11.14
Антиалиасинг кривой Безье




   Наверх