PDA

View Full Version : چطوری یک فایل عکس کوچک در فرم می توان حرکت داد؟



Valadi
دوشنبه 13 شهریور 1385, 23:37 عصر
چطوری یک فایل عکس کوچک در فرم می توان حرکت داد؟
البته منظورم اینه که یک عکس کوچک را با جهت نمای کیبورد به حرکت در بیاوریم ؟

حامی2
سه شنبه 14 شهریور 1385, 07:46 صبح
می توانید عکس را در قالب یک TImage وارد کنید سپس روی رویداد 0nKeypress که در آن با شرط تعیین می کنید که فقط کلیدهای جهت نما باشد دو خاصیت Top و left عکسTImage را عوض می کنید البته باید محدوده فرم را در نظر داشته باشید

dkhatibi
چهارشنبه 15 شهریور 1385, 12:12 عصر
این برنامه رو ببین

vesal
پنج شنبه 16 شهریور 1385, 00:12 صبح
این برنامه رو ببین

با اجازت من یکم دست کاریش کردم حرکت با ماوس رو هم بهش اضافه کردم

این کد یونیت

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
Edit1: TEdit;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
FDragOfs: Integer;
FDragging: Boolean; { Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
37:form1.Image1.Left:=form1.Image1.Left-strtoint(edit1.Text);
38:form1.Image1.top:=form1.Image1.top-strtoint(edit1.Text);
39:form1.Image1.left:=form1.Image1.left+strtoint(e dit1.Text);
40:form1.Image1.Top:=form1.Image1.top+strtoint(edi t1.Text);
end;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDragOfs := (TImage(Sender).Width div 2);
TImage(Sender).Left := TImage(Sender).Left+X-FDragOfs;
TImage(Sender).Top := TImage(Sender).Top+y-FDragOfs;
FDragging := True;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FDragging then
begin
TImage(Sender).Left := TImage(Sender).Left+X-FDragOfs;
TImage(Sender).Top := TImage(Sender).Top+y-FDragOfs
end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDragging := False;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.


اینک کد فرم

object Form1: TForm1
Left = 192
Top = 114
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
OnKeyDown = FormKeyDown
PixelsPerInch = 96
TextHeight = 13
object Image1: TImage
Left = 16
Top = 8
Width = 49
Height = 49
Picture.Data = {
07544269746D6170F6040000424DF604000000000000760000 00280000003000
000030000000010004000000000080040000C30E0000C30E00 00100000000000
00000000000000008000008000000080800080000000800080 00808000008080
8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF 00FFFF0000FFFF
FF004444444C44444444C4C444444444C4C44444444C444444 444444CCC44444
444C44C444444444C44C44444444CCC4444444CC4444444444 4C4C4444444444
4C4C44444444444CC4444C444444444444C44C44444444444C 44C44444444444
4C444C444CCCC444CC44C4444444444444C44CC444CCCC444C 444C44C4444CCC
444C444444444444444C444CCC4444C44C44C44C4444444444 C44444444C4444
4444C4444444444C44C4C4C4444CC444CC44444444CCC44444 444CC444CC4444
C4C4CC4C44C44CCC44444444CCC4CCC44444444CCC44C44C4C C44444C44C4444
4444444CC44C44CC44444444444C44C4444C4444C44C444444 4444CC4CCCCC4C
C4444444444C44C444444444C44C444444444CC4CCCCCCC4CC 444444444C44C4
4444444C44C4444444444CC4CCCCCCC4CC4444444444C44C44 44444C44C44444
4444CC4CCCCCCCCC4CC444444444C44C444444C44C44444444 44CC4CCCCCCCCC
4CC4444444444C44C444CC44C44444444444CC4CCCC4CCCC4C C44444444444C4
4CC4444C4444444444444CC4CC4C4CC4CC4444444444444C44 4C4CC44444444C
CC44CCCC4C4C4C4CCCC44CCC44444444CC44C44444444CCCCC CCCCC4CC4C4CC4
CCCCCCCCCC44444444C444444444CCC444CCCC4CC4CCC4CC4C CCC444CCC44444
444C4444444CC44CCC4444CCC4CCC4CCC4444CCC44CC444444 44444444CC4CCC
CCCCCCCCC4CCC4CCCCCCCCCCCC4CC4444444444444C4CCCCCC CCCCC44CCCCC44
CCCCCCCCCCC4C444444444444CC4CCCCCCCC444CCCCCCCCC44 4CCCCCCCC4CC44
444444444C4CCCCCCCC4CCCCCCCCCCCCCCC4CCCCCCCC4C4444 4444444CC4CCCC
CCCC444CCCCCCCCC444CCCCCCCC4CC444444444444C4CCCCCC CCCCC44CCCCC44
CCCCCCCCCCC4C4444444444444CC4CCCCCCCCCCCC4CCC4CCCC CCCCCCCC4CC444
44444444444CC44CCC4444CCC4CCC4CCC4444CCC44CC444444 4444444444CCC4
44CCCC4CC4CCC4CC4CCCC444CCC44444444CC44444444CCCCC CCCCC4CC4C4CC4
CCCCCCCCCC44444444C44CC44444444CCC44CCCC4C4C4C4CCC C44CCC44444444
CC44444C4444444444444CC4C44C44C4CC4444444444444C44 4CCC44C4444444
4444CC4CCCC4CCCC4CC44444444444C44CC444C44C44444444 44CC4CCCCCCCCC
4CC4444444444C44C444444C44C444444444CC4CCCCCCCCC4C C444444444C44C
4444444C44C4444444444CC4CCCCCCC4CC4444444444C44C44 444444C44C4444
44444CC4CCCCCCC4CC444444444C44C444444444C44C444444 4444CC4CCCCC4C
C4444444444C44C444444444C44C44444444444CC44C44CC44 444444444C44C4
444CC44C44C44CCC44444444CCC4CCC44444444CCC44C44C44 C4C4C4444CC444
CC44444444CCC44444444CC444CC4444C4C4C44C4444444444 C44444444C4444
4444C4444444444C44C44C44C4444CCC444C44444444444444 4C444CCC4444C4
4C444C444CCCC444CC44C4444444444444C44CC444CCCC444C 444C4444444444
44C44C44444444444C44C444444444444C4444CC4444444444 4C4C4444444444
4C4C44444444444CC4444444CCC44444444C44C444444444C4 4C44444444CCC4
4444}
OnMouseDown = Image1MouseDown
OnMouseMove = Image1MouseMove
OnMouseUp = Image1MouseUp
end
object Edit1: TEdit
Left = 24
Top = 80
Width = 121
Height = 21
TabOrder = 0
Text = '2'
OnKeyDown = FormKeyDown
end
end

mhrdad
یک شنبه 15 فروردین 1389, 09:47 صبح
سلام دوستان ببخشيد ميشه كدي بهم معرفي كنيد كه باعث حركت مورب يك عكس در فرم بشه؟

morrteza323
جمعه 20 فروردین 1389, 12:16 عصر
سلام دوستان ببخشيد ميشه كدي بهم معرفي كنيد كه باعث حركت مورب يك عكس در فرم بشه؟
دوتا دستور زیر رو تو یه button بنویس تا با هر با کلیک عکس مورب حرکت کنه.
image1.left:=image1.left+10
image1.top:=image1.top+10