Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сделать квадратик как в Windows?.. 
:(
    Опции темы
Kurt
Дата 4.10.2003, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Подскажите, пожалуйста:
хочу, чтоб на форме по нажатиям мышки был такой же квадратик, как и у Windows, когда выделяешь объекты.
Т.е. квадратик, к-й может растягиваться и сжиматься. (нажал, протянул, отпустил).
Кроме того, на форме есть рисунок и квадратик должен "работать" поверх него.
Буду искренне рад ответу...


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
<Spawn>
Дата 4.10.2003, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Думаю этого тебе хватит:
Код
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Image1: TImage;
   procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 IsDown:Boolean=False;
 DownPoint:TPoint;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
IsDown:=True;
DownPoint.X:=X;
DownPoint.Y:=Y;
end;

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

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var
MaxX, MinX, MaxY, MinY:integer;
begin
if IsDown then
begin
 Self.Repaint;
 if DownPoint.X<X then
 begin
   MinX:=DownPoint.X;
   MaxX:=X;
 end
 else
 begin
   MinX:=X;
   MaxX:=DownPoint.X;
 end;

 if DownPoint.Y<Y then
 begin
   MinY:=DownPoint.Y;
   MaxY:=Y;
 end
 else
 begin
   MinY:=Y;
   MaxY:=DownPoint.Y;
 end;
 Canvas.DrawFocusRect(Rect(Point(MinX, MinY),Point(MaxX, MaxY)));
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Self.DoubleBuffered:=True;
end;

end.



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 4.10.2003, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Если хочется чтобы только при нажатии левой кнопки мышки происходило рисование, то можешь добваить проверку:
Код
if IsDown and (ssLeft in Shift) then


Это сообщение отредактировал(а) <Spawn> - 4.10.2003, 21:59


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
cot
Дата 5.10.2003, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 4.6.2003

Репутация: нет
Всего: нет



В FAQ это есть посмотри!
PM MAIL   Вверх
Kurt
Дата 5.10.2003, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



cot, спасибо большое!
Замечательно работает!!! smile.gif
Аж сердце радуется и поет!
Люди! Это действительно работает! biggrin.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
p0s0l
Дата 5.10.2003, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Kurt, а что с вариантом Spawn'а ?



--------------------
С уважением, г-н Посол.
PM   Вверх
Kurt
Дата 6.10.2003, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Цитата(Kurt @ 5.10.2003, 09:53)
cot, спасибо большое!
Замечательно работает!!!  smile.gif
Аж сердце радуется и поет!
Люди! Это действительно работает!  biggrin.gif

ХА-ХА-ХА! p0sol, не поверишь, но эта реплика относилась к <Spawn>. biggrin.gif
Просто при наборе ответа на радостях (мне надо было срочно сдавать "проект", а без квадратика ничего не получалось) попутал имена.
<Spawn>, извини.
Спасибо за ответ.
ОЧЕНЬ помог! biggrin.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.