Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 15
1

Delphi поставить текст под углом, угол сам вводишь

24.05.2018, 21:00. Показов 1358. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте, у меня возник вопрос. Мне с помощью компонента Edit нужно вводить угол наклона, чтобы текст был под этим углом.Помогите пожалуйста, срочно надо
Как можно это сделать?
Вот код:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
procedure TForm1.Button1Click(Sender: TObject);
function Tekst(n,k:integer):integer;
var i,h,z:integer;
    c,s,s1,s2,s3,s4,s5,s6,s7,q,w,e,r,t,y,u,o:string;
 
 
begin
    q:=('Как это было:');
    w:=('У попа была собака - он ее любил.');
    e:=('Она съела кусок мяса - он ее убил.');
    r:=('Убил и закопал и на могиле написал:');
    t:=(':было это Как  ');
    y:=('.любил ее он - собака была попа У');
    u:=('.убил ее он - мяса кусок съела Она');
    o:=(':написал могиле на и закопал и Убил');
    for i:=1 to strtoint(Edit2.Text) do
    c:=c+' ';
    for i:=1 to length(q) do
    s:=s+q[i]+c;
    for i:=1 to length(w) do
    s1:=s1+w[i]+c;
    for i:=1 to length(e) do
    s2:=s2+e[i]+c;
    for i:=1 to length(r) do
    s3:=s3+r[i]+c;
    for i:=1 to length(t) do
    s4:=s4+t[i]+c;
    for i:=1 to length(y) do
    s5:=s5+y[i]+c;
    for i:=1 to length(u) do
    s6:=s6+u[i]+c;
    for i:=1 to length(o) do
    s7:=s7+o[i]+c;
    if n > 0 then
    begin
      {sleep(500);}
      z:=k-n+1;
      for i:=1 to 500 do
      h := Form1.Canvas.TextHeight('H');
      Form1.Canvas.TextOut(10, (k-n)*h*5,IntToStr(z));
      Form1.Canvas.TextOut(10, (k-n)*h*5+h,s);
      Form1.Canvas.TextOut(10, (k-n)*h*5+2*h,s1);
      Form1.Canvas.TextOut(10, (k-n)*h*5+3*h,s2);
      Form1.Canvas.TextOut(10, (k-n)*h*5+4*h,s3);
   end;
   if z mod 2<>0 then
   begin
      h := Form1.Canvas.TextHeight('H');
      Form1.Canvas.TextOut(10, (k-n)*h*5+h,s4);
      Form1.Canvas.TextOut(10, (k-n)*h*5+2*h,s5);
      Form1.Canvas.TextOut(10, (k-n)*h*5+3*h,s6);
      Form1.Canvas.TextOut(10, (k-n)*h*5+4*h,s7);
   end;
 
 
end;
 
var n,h,k:integer;
begin
   try
   k := strtoint(Edit1.Text);
   except
   exit;
   end;
   n:=k;
   h := Form1.Canvas.TextHeight('H');
   Form1.Height:=h*n*6;
   Form1.Canvas.FillRect(Rect(0,0,Form1.Width, Form1.Height));
   for n:=k DownTo 0 do Tekst(n,k);
end;
 
procedure TForm1.FormResize(Sender: TObject);
begin
   form1.Invalidate;
   form1.Update;
 
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2018, 21:00
Ответы с готовыми решениями:

Тело брошено под углом к горизонту. Найдите угол бросания и начальную скорость
1. тело брошено под углом к горизонту . найдите угол бросания и начальную скорость если наибольшая...

Текст под углом
Здравствуйте. Помогите пожалуйста ниписать текст по вертикали. t.Format(&quot;%g&quot;,L); ...

Текст под углом
Здесь рассказано, как вывести текст на канву под заданным углом... Почему у меня ничего не...

Текст под углом в прямоугольнике
Как правильно нарисовать текст вертикально, в центре заданного прямоугольника на QPainter ? ...

1
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
24.05.2018, 21:48 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure AngleTextOut(
    ACanvas: TCanvas; Angle, X, Y: Integer; Text: string);
var
  NewFontHandle,
  OldFontHandle: hFont;
  LogRec       : TLogFont;
begin
  GetObject(ACanvas.Font.Handle, SizeOf(LogRec), Addr(LogRec));
  LogRec.lfEscapement := Angle * 10;
  LogRec.lfOrientation := LogRec.lfEscapement;
  NewFontHandle := CreateFontIndirect(LogRec);
  OldFontHandle := SelectObject(ACanvas.Handle, NewFontHandle);
  ACanvas.TextOut(X, Y, Text);
  NewFontHandle := SelectObject(ACanvas.Handle, OldFontHandle);
  DeleteObject(NewFontHandle);
end;
1
24.05.2018, 21:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2018, 21:48
Помогаю со студенческими работами здесь

Тело бросили под углом. Через какое время угол вектора скорости с горизонтом будет равен половине нач. угла
Дано Vo и начальный угол (в буквенном виде). Чему равно время поворота вектора скорости на половину...

Каким будет угол заломления если луч будет падать под углом 50?
ЛУч света падает на границу раздела двух прозрачных сред под углом 35 градусов и заламывается под...

Как написать текст под нужным углом?
Привет Всем. Как повернуть (написать g.drawString(...)) текст под нужным углом?

Подскажите как вывести текст в форме под углом
подскажите сабж, я то нашел один пример а он неработает, хотя и ошибок не выкидывает.


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

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