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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 01:59   #1
syrga
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 14
Радость перемещение текста

Здравствуйте! помогите заменить слово "ТОМСК" на "ТЕКСТ"(или на любой другой) в процедуре procedure masXY:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls,vital, jpeg;
 const
  m=43;
type
  TForm1 = class(TForm)
    Peremechenie: TButton;
    Image1: TImage;
    Timer1: TTimer;
    Rastajenie: TButton;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure PeremechenieClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure RastajenieClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Tmas=array [1..m] of real;
procedure new_matr(var matr1:Tmatrix);
procedure masXY(var masX,masY:Tmas);
var
  Form1: TForm1;
  x,y,p:integer;
  matr:Tmatrix;
  vec:Tvector;
  masX,masY,TempmasX,TempmasY:Tmas;
  k,z1,z2:real;
  b:real;
  implementation

//uses vital;

{$R *.dfm}
{Обнуляем матрицу}
procedure new_matr(var matr1:Tmatrix);
var
 i,j:byte;
begin
for i:=1 to n do
 for j:=1 to n do matr1[i,j]:=0
end;

{Задаем массив точек из которых состоит слово}
procedure masXY(var masX,masY:Tmas);
 begin
  {Т}
  masX[1]:=150;
  masY[1]:=150;
  masX[2]:=160;
  masY[2]:=150;
  masX[3]:=170;
  masY[3]:=150;
  masX[4]:=170;
  masY[4]:=160;
  masX[5]:=170;
  masY[5]:=170;
  masX[6]:=170;
  masY[6]:=180;
  masX[7]:=180;
  masY[7]:=150;
  masX[8]:=190;
  masY[8]:=150;
  {О}
  masX[9]:=210;
  masY[9]:=150;
  masX[10]:=220;
  masY[10]:=150;
  masX[11]:=230;
  masY[11]:=150;
  masX[12]:=210;
  masY[12]:=160;
  masX[13]:=210;
  masY[13]:=170;
  masX[14]:=210;
  masY[14]:=180;
  masX[15]:=220;
  masY[15]:=180;
  masX[16]:=230;
  masY[16]:=180;
  masX[17]:=230;
  masY[17]:=170;
  masX[18]:=230;
  masY[18]:=160;
  {М}
  masX[19]:=250;
  masY[19]:=150;
  masX[20]:=250;
  masY[20]:=160;
  masX[21]:=250;
  masY[21]:=170;
  masX[22]:=250;
  masY[22]:=180;
  masX[23]:=260;
  masY[23]:=160;
  masX[24]:=270;
  masY[24]:=150;
  masX[25]:=270;
  masY[25]:=160;
  masX[26]:=270;
  masY[26]:=170;
  masX[27]:=270;
  masY[27]:=180;
  {С}
  masX[28]:=290;
  masY[28]:=150;
  masX[29]:=300;
  masY[29]:=150;
  masX[30]:=290;
  masY[30]:=160;
  masX[31]:=290;
  masY[31]:=170;
  masX[32]:=290;
  masY[32]:=180;
  masX[33]:=300;
  masY[33]:=180;
  masX[34]:=310;
  masY[34]:=180;
  masX[35]:=310;
  masY[35]:=150;
  {К}
  masX[36]:=330;
  masY[36]:=150;
  masX[37]:=330;
  masY[37]:=160;
  masX[38]:=330;
  masY[38]:=170;
  masX[39]:=330;
  masY[39]:=180;
  masX[40]:=335;
  masY[40]:=160;
  masX[41]:=340;
  masY[41]:=150;
  masX[42]:=340;
  masY[42]:=170;
  masX[43]:=345;
  masY[43]:=180;
 end;

{Процедура движения объекта}
procedure TForm1.PeremechenieClick(Sender: TObject);
var  i:byte;
begin
  for i:=1 to m do
    begin
     Image1.Canvas.Pen.Color:=clWhite;  {Цвет линии}
     image1.Canvas.Brush.Color:=clWhite; {Заливка}
     Image1.Canvas.Ellipse(trunc(TempmasX[i]),trunc(TempmasY[i]),trunc(TempmasX[i]+5),trunc(TempmasY[i]+5));
     Image1.Canvas.Ellipse(trunc(masX[i]),trunc(masY[i]),trunc(masX[i]+5),trunc(masY[i]+5));
    end;
  z1:=1;
  z2:=1;
  new_matr(matr);
  matr[1,1]:=1;
  matr[2,2]:=1;
  matr[3,3]:=1;
  masXY(masX,masY);
  Timer1.Enabled:=true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var
 i:byte;
begin
  for i:=1 to m do
   begin
    Image1.Canvas.Pen.Color:=clWhite;
    Image1.Canvas.Brush.Color:=clWhite;
    Image1.Canvas.Ellipse(trunc(masX[i]),trunc(masY[i]),trunc(masX[i]+5),trunc(masY[i]+5));{:=clWhite}
   end;
  for i:=1 to m do
   begin
    vec[1]:=masX[i];
    vec[2]:=masY[i];
    vec[3]:=1;
    matr[1,3]:=z2;
    matr[2,3]:=z1;
    mul_matrix_vect(matr,vec,vec);
    masX[i]:=vec[1];
    masY[i]:=vec[2];
     Image1.Canvas.Pen.Color:=clBlue;
     image1.Canvas.Brush.Color:=clBlue;
     Image1.Canvas.Ellipse(trunc(masX[i]),trunc(masY[i]),trunc(masX[i]+5),trunc(masY[i]+5));
   {if (masX[i]=240) or (masY[i]=240) then Timer1.Enabled:=false;}
   end;
  z1:=z1+0.01;
  z2:=z2+0.01;
  end;

Последний раз редактировалось Stilet; 05.05.2012 в 12:03.
syrga вне форума Ответить с цитированием
Старый 05.05.2012, 02:19   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
begin
  {Т}
  masX[1]:=150;
  masY[1]:=150;
  masX[2]:=160;
  masY[2]:=150;
  masX[3]:=170;
  masY[3]:=150;
  masX[4]:=170;
  masY[4]:=160;
  masX[5]:=170;
  masY[5]:=170;
  masX[6]:=170;
  masY[6]:=180;
  masX[7]:=180;
  masY[7]:=150;
  masX[8]:=190;
  masY[8]:=150;
  {Е}
  masX[9]:=
  masY[9]:=
  masX[10]:=
  masY[10]:=
  masX[11]:=
  masY[11]:=
  masX[12]:=
  masY[12]:=
  masX[13]:=
  masY[13]:=
  masX[14]:=
  masY[14]:=
  masX[15]:=
  masY[15]:=
  masX[16]:=
  masY[16]:=
  {К}
  masX[17]:=330;
  masY[17]:=150;
  masX[18]:=330;
  masY[18]:=160;
  masX[19]:=330;
  masY[19]:=170;//дальше не исправил
  masX[39]:=330;
  masY[39]:=180;
  masX[40]:=335;
  masY[40]:=160;
  masX[41]:=340;
  masY[41]:=150;
  masX[42]:=340;
  masY[42]:=170;
  masX[43]:=345;
  masY[43]:=180;
  {С}
  masX[28]:=290;
  masY[28]:=150;
  masX[29]:=300;
  masY[29]:=150;
  masX[30]:=290;
  masY[30]:=160;
  masX[31]:=290;
  masY[31]:=170;
  masX[32]:=290;
  masY[32]:=180;
  masX[33]:=300;
  masY[33]:=180;
  masX[34]:=310;
  masY[34]:=180;
  masX[35]:=310;
  masY[35]:=150;
  {Т}
  masX[1]:=150;
  masY[1]:=150;
  masX[2]:=160;
  masY[2]:=150;
  masX[3]:=170;
  masY[3]:=150;
  masX[4]:=170;
  masY[4]:=160;
  masX[5]:=170;
  masY[5]:=170;
  masX[6]:=170;
  masY[6]:=180;
  masX[7]:=180;
  masY[7]:=150;
  masX[8]:=190;
  masY[8]:=150;
 end;
Вам осталось рассчитать координаты для буквы Е
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.05.2012 в 02:28.
BDA на форуме Ответить с цитированием
Старый 05.05.2012, 02:22   #3
syrga
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 14
По умолчанию

Спасибо, а как?
syrga вне форума Ответить с цитированием
Старый 05.05.2012, 02:26   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Пожалуйста.
Я не знаю, как
Без всего проекта ничего сказать не могу, куда какую координату писать.
Кстати, я наврал. Там нужно правильно указать индексы массива, но это невозможно сделать, пока не создашь букву Е и не изменишь размеры MasX и MasY. На мой взгляд, такой способ задания крайне неэффективен.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.05.2012 в 02:30.
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение в БД Михаил Юрьевич Общие вопросы Delphi 3 02.10.2011 01:14
Выбор последнего записанного текста (именно текста а не значения) из соседнего листа Uralmaster Microsoft Office Excel 1 28.01.2011 21:06
Генератор текста, Анализатор текста, График, С++ darel Помощь студентам 0 14.03.2010 20:15
перемещение текста по монитору StakanpORTvejna Общие вопросы Delphi 5 12.10.2008 17:59
Перемещение компонентов _SERGEYX_ Общие вопросы Delphi 2 10.04.2008 13:33