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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2010, 14:42   #21
RadioButton
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
А приведите, пожалуйста, Ваш код.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure RadioButton1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RadioButton1EndDock(Sender, Target: TObject; X, Y: Integer);


    { Private declarations }
  public
    { Public declarations }
  end;

var ax,ay:integer;

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RadioButton1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 TRadioButton(sender).DragKind:=dkDock;
 TRadioButton(sender).BeginDrag(true,50);
 ax:=x;ay:=y;
end;

procedure TForm1.RadioButton1EndDock(Sender, Target: TObject; X,
  Y: Integer);
var r:TPoint;
begin
 with TWinControl(sender) do begin
  Parent:=self;
  r:=ScreenToClient(Point(x,y));
  Left:=r.x-ax;
  top:=r.y-ay;
 end;
end;


end.

Последний раз редактировалось Stilet; 12.08.2010 в 15:30.
RadioButton вне форума Ответить с цитированием
Старый 11.08.2010, 14:48   #22
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

вот Вы всё оставили, как есть, а Вам уже написали код для перемещения кнопок без всяких доков.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 11.08.2010, 15:10   #23
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Мне всё равно не понятно, что нужно сделать
r9m вне форума Ответить с цитированием
Старый 12.08.2010, 15:00   #24
RadioButton
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от r9m Посмотреть сообщение
Мне всё равно не понятно, что нужно сделать
чтобы можно было мышкой двигать кнопку по форме,но после каждого второго перетаскивания или после двойного щелчка по кнопке она отсоединяется от формы,нужно чтоб не отсоединялась.
RadioButton вне форума Ответить с цитированием
Старый 12.08.2010, 15:29   #25
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

RadioButton, Вы нарочно мои посты игнорируете? Вот Вам код, ВМЕСТО Вашего (радиокнопки свойства по дефолту):
Код:
procedure TForm1.rb1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  rb1.Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.rb1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     ReleaseCapture;
     rb1.Checked := not rb1.Checked;

end;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 12.08.2010, 18:40   #26
RadioButton
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
вот Вы всё оставили, как есть, а Вам уже написали код для перемещения кнопок без всяких доков.
я поменял,но их все равно нельзя перемещать,может быть я сделал что-то не так,если не затруднит,скиньте пожалуйста какой должен быть код?
RadioButton вне форума Ответить с цитированием
Старый 12.08.2010, 18:44   #27
RadioButton
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
RadioButton, Вы нарочно мои посты игнорируете? Вот Вам код, ВМЕСТО Вашего (радиокнопки свойства по дефолту):
Код:
procedure TForm1.rb1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  rb1.Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.rb1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     ReleaseCapture;
     rb1.Checked := not rb1.Checked;

end;
unit Unit1;

interface

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

type
TForm1 = class(TForm)
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure RadioButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RadioButton1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.RadioButton1MouseMove(Sender : TObject; Shift: TShiftState; X,
Y: Integer);
begin
RadioButton1.Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.RadioButton1MouseDown(Sender : TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
RadioButton1.Checked := not RadioButton1.Checked;

end;

попробовал вот так,с дефолтными значениями они не перемещаются по форме
RadioButton вне форума Ответить с цитированием
Старый 12.08.2010, 18:47   #28
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Вот посмотри проект:
Button.rar

P.S.: Для оформления кода, пользуйтесь тэгом [СODE][/СODE]
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 12.08.2010 в 18:49.
DIgorevich вне форума Ответить с цитированием
Старый 12.08.2010, 18:57   #29
RadioButton
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Вот посмотри проект:
Вложение 28655

P.S.: Для оформления кода, пользуйтесь тэгом [СODE][/СODE]
спасибо,работает лучше,но теперь нельзя переместить кнопку,в которой точка,то есть чтобы переместить два раза одну кнопку,нужно переместить ее первый раз,потом кликнуть на нее,и только тогда можно перемещать второй раз.
RadioButton вне форума Ответить с цитированием
Старый 12.08.2010, 19:02   #30
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Поставь код:
Код:
  (Sender as TRadioButton).Perform(WM_SYSCOMMAND, $F012, 0);
В обработку события НЕ OnClick, а в MouseMove.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual C++ Двойное ветвление через радиокнопки. Jabodav Помощь студентам 5 30.01.2010 18:55