Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
1

Как задать объект (как на рисунке)?

19.10.2014, 20:22. Показов 1171. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Название: 2014-10-19_192124.png
Просмотров: 51

Размер: 813 байт
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2014, 20:22
Ответы с готовыми решениями:

Задать поле структуры как объект класса
Здравствуйте. Объявляю в отдельном файле заготовку для структуры. Одним из её полей делаю объект...

Как задать условие командой, пока объект существует, продолжать действие, иначе - вывести что-либо?
Как задать условие командой, пока объект существует, продолжать действие, иначе - вывести что-либо?

Как программно сделать такую текстуру как на прилагаемом рисунке?
Как программно сделать такую текстуру как на прилагаемом рисунке или что то похожее

Диаграмма направленности. Как сделать изображение таким, как на черно-белом рисунке
Добрый день. Не подскажете, как сделать изображение таким, как на черно-белом рисунке(в смысле...

19
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
19.10.2014, 20:40  [ТС] 2
процедурой пожалуйста
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.10.2014, 21:03 3
Лучший ответ Сообщение было отмечено Mr.Gadget как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure ris(x,y,a:integer;cv:TCanvas);
var b:integer;
begin
b:=a div 2;
with cv do
 begin
  moveto(x-a-b,y-b);lineto(x-b,y-b);
  lineto(x-b,y-a-b);lineto(x-a,y-a-b);
  lineto(x,y-2*a-b);lineto(x+a,y-a-b);
  lineto(x+b,y-a-b);lineto(x+b,y-b);
  lineto(x+a+b,y-b);lineto(x+a+b,y-a);
  lineto(x+2*a+b,y);lineto(x+a+b,y+a);
  lineto(x+a+b,y+b);lineto(x-a-b,y+b);
  lineto(x-a-b,y+a);lineto(x-2*a-b,y);
  lineto(x-a-b,y-a);lineto(x-a-b,y-b);
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ris(200,200,30,form1.Canvas);
end;
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 19:34  [ТС] 4
Юрий, а как сделать чтобы этот обьект вставлялся при кликании мышкой на поле для рисования? В моем случае поле - image1.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.10.2014, 19:42 5
Лучший ответ Сообщение было отмечено Mr.Gadget как решение

Решение

Delphi
1
2
3
4
5
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ris(x,y,15,Image1.Canvas);
end;
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 19:54  [ТС] 6
Может быть я Вам не правильно объяснил? В общем у меня есть поле для рисования (image1). Мне нужно сделать так, чтобы при кликании на объект RadioButton (функция-выбор рисуемой фигуры) потом при кликании неограниченное количество раз на image1 вставляло соответственное количество таких объектов. Сейчас же я нажимаю на RadioButton
и у меня сразу вставляет такой объект.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.10.2014, 20:00 7
Цитата Сообщение от terassa94 Посмотреть сообщение
при кликании мышкой на поле для рисования
Где здесь RadioButton? Мозг увеличится, еще заходи, а пока до свидания.
0
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 20:05  [ТС] 8
НУ у меня в проекте. Есть блок с выбором инструментов для рисования (РадиоБаттоны) , и при выборе одного с них, при последующих кликах на Image 1 должны вставляться такие значки.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.10.2014, 20:21 9
Delphi
1
2
3
4
5
6
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Radiobutton1.Checked then
ris(x,y,15,Image1.Canvas);
end;
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 20:42  [ТС] 10
А как мне быть, если процедура такая уже использовалась для рисования другой фигуры?

Добавлено через 6 минут
Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
unit Unit1_o;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Spin;
 
type
  TForm1_o = class(TForm)
    Image1: TImage;
    RadioGroup1: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Button1: TButton;
    Button2: TButton;
    ColorDialog1: TColorDialog;
    ColorDialog2: TColorDialog;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    RadioButton9: TRadioButton;
    GroupBox2: TGroupBox;
    RadioButton10: TRadioButton;
    RadioButton11: TRadioButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    UpDown1: TUpDown;
    Edit2: TEdit;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RadioButton4Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1_o: TForm1_o;
 
implementation
uses Unit1;
var x1,y1:integer;
 
 
 
 
{$R *.dfm}
 
procedure TForm1_o.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
x1:=x;
y1:=y;
 
end;
 
procedure TForm1_o.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
image1.Canvas.Polygon([point(x1,y1),point(x1+10, y1+(y-y1)div 2),point(x,y), point(x1,y1)]);
end;
 
 
 
procedure ris(x,y,a:integer;cv:TCanvas);
var b:integer;
begin
b:=a div 2;
with cv do
 begin
  moveto(x-a-b,y-b);lineto(x-b,y-b);
  lineto(x-b,y-a-b);lineto(x-a,y-a-b);
  lineto(x,y-2*a-b);lineto(x+a,y-a-b);
  lineto(x+b,y-a-b);lineto(x+b,y-b);
  lineto(x+a+b,y-b);lineto(x+a+b,y-a);
  lineto(x+2*a+b,y);lineto(x+a+b,y+a);
  lineto(x+a+b,y+b);lineto(x-a-b,y+b);
  lineto(x-a-b,y+a);lineto(x-2*a-b,y);
  lineto(x-a-b,y-a);lineto(x-a-b,y-b);
 end;
end;
 
procedure TForm1_o.RadioButton4Click(Sender: TObject);
begin
ris(200,200,30,image1.Canvas);
end;
 
 
procedure TForm1_o.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ris(x,y,15,Image1.Canvas);
end;
 
 
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.10.2014, 21:01 11
Delphi
1
2
3
4
5
6
7
procedure TForm1_o.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
x1:=x;
y1:=y;
 
end;
А для чего Вам нужны эти x1,y1?
И потом я писал не
Delphi
1
2
3
4
5
procedure TForm1_o.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ris(x,y,15,Image1.Canvas);
end;
а так
Delphi
1
2
3
4
5
6
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Radiobutton1.Checked then//или другой
ris(x,y,15,Image1.Canvas);
end
Добавлено через 29 секунд
А процедуру ris поставьте первой.

Добавлено через 3 минуты
А если в этой процедуре нужно несколько действий делать, то так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Radiobutton1.Checked then//или другой
ris(x,y,15,Image1.Canvas)
else if Radiobutton2.Checked then...
else if Radiobutton3.Checked then...
else
 begin
  x1:=x;
  y1:=y
 end;
end
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 21:21  [ТС] 12
x1, y1 нужны для построения 1-ой фигуры
0
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
20.10.2014, 22:21  [ТС] 13
Самый большой объект ставится сам при нажатии RadioButton. как сделать чтобы он не ставился? Чтобы при нажатии RadioButton кликая по Image1 они ставились сами.
Миниатюры
Как задать объект (как на рисунке)?  
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.10.2014, 18:21 14
Так уберите Button1 совсем, большой объект при нажатии этой кнопки же был.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.10.2014, 18:24 15
Вот у меня так
Вложения
Тип файла: rar Рисунок стрелки.rar (166.7 Кб, 2 просмотров)
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
21.10.2014, 20:06  [ТС] 16
Юр, а какая будет процедура для рисования произвольной линии?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.10.2014, 20:12 17
Совсем уже что-ли?
0
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
21.10.2014, 20:13  [ТС] 18
Я просто только начинаю учить графику в Делфи.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.10.2014, 20:16 19
Так задай координаты двух точек и напиши
Delphi
1
lineto(x1,y1); moveto(x2,y2);
1
Фиговый студент
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
21.10.2014, 20:18  [ТС] 20
0
21.10.2014, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2014, 20:18
Помогаю со студенческими работами здесь

Как сделать, чтоб моя программы стояла рядышком с другими (чужими) окнами, как на рисунке
Есть форма. Она простая. На нём указала поверх всех окон StayOnTop. Но мне надо, чтоб моя форма и...

Как вывести в эксель таблицу с 1с как на рисунке?
Как вывести в эксель таблицу с 1с как на рисунке?

Как сделать треугольник, как на рисунке?
Здравствуйте, как можно реализовать такой треугольник (см. вложение) с помощью вложенных циклов?...

Как напечатать символ, как на рисунке?
Друзья! Есть файл *.txt, созданный в тектовом редакторе (не в MS Office Word) Я копирую из него...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru