Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2009, 01:38   #1
INCIC
Пользователь
 
Регистрация: 28.05.2009
Сообщений: 22
По умолчанию Нужно понять как сделать перетаскивание кнопок Баттон в Делфи

Дело в том что кнопки Баттон создаются визуально в процедуре Баттон2клик, как сделать чтобы эти кнопки перетаскивались?


unit Unit1;

interface

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

type
TForm1 = class(TForm)
LabeledEdit2: TLabeledEdit;
Button2: TButton;
GroupBox1: TGroupBox;
Button1: TButton;
GroupBox2: TGroupBox;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
btn: TButton;
begin
randomize;
for i := 0 to 10 do begin
btn := TButton.Create(Button2);
btn.Name := 'Btn' + IntToStr(i);
btn.Top := i * 30 + 20;
btn.Left := 5;
btn.Parent := GroupBox1;
btn.Width := 100;
btn.Caption:=inttostr(random(7))+': '+inttostr(random(7));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
for i := 0 to Form1.ControlCount - 1 do begin
for j := 0 to Form1.Controls[i].ComponentCount - 1 do begin
if Form1.Controls[i].Components[j] is TButton then
(Form1.Controls[i].Components[j] as TButton).Caption := '2:6';
end;
end;
end;


end.
INCIC вне форума Ответить с цитированием
Старый 08.06.2009, 02:07   #2
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Обробатывай события OnMouseMove

Код:
//Cоздаешь кнопку
Button.OnMouseDown := ButtonMouseMove;
//Что-то делаешь
end;

procedure TForm1.ButtonMouseMove(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
//Перетаскиваешь
end;

Последний раз редактировалось Evgeniy26; 08.06.2009 в 03:53.
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 02:33   #3
INCIC
Пользователь
 
Регистрация: 28.05.2009
Сообщений: 22
По умолчанию

Вот на счёт //перетаскивашь по подробнее пожалуйста
И ещё мне нужно не для одной кнопки..и не для той которая уже есть на форме..а для тех которые появляются при нажатии на неё

Последний раз редактировалось INCIC; 08.06.2009 в 02:44.
INCIC вне форума Ответить с цитированием
Старый 08.06.2009, 03:06   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Дак я написал когда кнопку создаешь пишешь:
Код:
var
  Button: TButton;
..........................................
begin
  Button := TButton.Create(Owner);
  Button.Parent := Form1;
  Button.OnMouseMove := ButtonMouseMove;
  Form1.InsertComponent(Button); 
end;          

procedure TForm1.ButtonMouseMove(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  (Sender as TButton).Perform(WM_SYSCOMMAND, $F012, 0);
end;

Последний раз редактировалось Evgeniy26; 08.06.2009 в 03:34.
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 08:37   #5
INCIC
Пользователь
 
Регистрация: 28.05.2009
Сообщений: 22
По умолчанию

Спасиба)проверю)
INCIC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать билдер? (делфи) zotox Помощь студентам 4 24.09.2008 00:43
Как сделать отбор нужно информации TaLi4 БД в Delphi 1 09.06.2008 16:27
Как сделать поиск по компу на делфи gred Помощь студентам 6 21.04.2008 22:51
как при помоши делфи сделать графику nata1111 Помощь студентам 12 24.03.2007 01:45