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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2014, 16:57   #1
shonty
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 13
По умолчанию Выравнивание текста на канве по правому краю

Здравствуйте.

Составил график функции. В зависимости от введённых аргументов, значения на оси Y меняются от двузначных до 7-ми значных.

Естественно, что возникает желание выровнять их по правому краю.

Такая возможность существует? (или придётся Label-ей на канву набросать)


(На рисунке вывод только около одной засечки, но будет против каждой.)
shonty вне форума Ответить с цитированием
Старый 22.10.2014, 17:53   #2
Foreseen
Техножрец
Форумчанин
 
Аватар для Foreseen
 
Регистрация: 04.07.2014
Сообщений: 289
По умолчанию

Попробуй так
Код:
Form1.Canvas.TextOut(x-Form1.Canvas.TextWidth(s), y, s);
— Двери есть везде. Просто нужно знать, как в них войти.
Foreseen вне форума Ответить с цитированием
Старый 22.10.2014, 19:18   #3
shonty
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 13
По умолчанию

Спасибо большое Работает

а то я уже в гугл закинул "lazarus canvas text align right" , а тут так всё просто))))
shonty вне форума Ответить с цитированием
Старый 22.10.2014, 19:41   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

зацени мою самоделку
Код:
// Начальная точка вывода текста на канве внутри прямоугольника Rect
// с выравниванием горизонтальным и вертикальным
// для вывода предельных величин графика функции (по углам)
function GetTextPosition(const Text: string;                 // текст
                         const Canvas: TCanvas;              // канва
                         const Rect: TRect;                  // прямоугольник отрисовки
                         const TextMargin: Integer;          // размер полей
                         const Alignment: TAlignment;        // гориз. выравнивание
                         const Layout: TTextLayout): TPoint; // верт. выравнивание
var
  th, tw: Integer;
begin
  tw:= Canvas.TextWidth(Text);
  th:= Canvas.TextHeight(Text);

  case Alignment of
    taLeftJustify  : Result.x:= TextMargin;
    taCenter       : Result.x:= ((Rect.Right - Rect.Left) div 2) - (tw div 2);
    taRightJustify : Result.x:= (Rect.Right - Rect.Left) - tw - TextMargin;
  end; //case

  case Layout of
    tlTop:    Result.y:= TextMargin;
    tlCenter: Result.y:= ((Rect.Bottom - Rect.Top) div 2) - (th div 2);
    tlBottom: Result.y:= (Rect.Bottom - Rect.Top) - th - TextMargin;
  end; // case
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.10.2014, 19:21   #5
shonty
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 13
По умолчанию

min@y™, извини, но не смог заценить твоё творение. Я нутром чувствую, что твой код - это высший пилотаж, но вот так и не смог его запустить, из-за моего весьма скромного опыта в программировании.
shonty вне форума Ответить с цитированием
Старый 23.10.2014, 19:24   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
не смог его запустить
даже экспериметировать не стал?
дать тебе программу-лабу, где он используется?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.10.2014, 19:27   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем чего-то придумывать? Все уже придумали. drawtext например
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.10.2014, 19:29   #8
shonty
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 13
По умолчанию

Вчера вечером юзал но не долго.
Скинь если не сложно пример. Или хотя бы скрин для наглядности.
shonty вне форума Ответить с цитированием
Старый 23.10.2014, 19:29   #9
shonty
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 13
По умолчанию

Вчера вечером юзал но не долго.
Скинь если не сложно пример. Или хотя бы скрин для наглядности.
shonty вне форума Ответить с цитированием
Старый 23.10.2014, 20:52   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от shonty Посмотреть сообщение
Вчера вечером юзал но не долго.
Скинь если не сложно пример. Или хотя бы скрин для наглядности.
вотъ.
ёёёёёёёё
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнивание ссылки по правому краю. HTML NewLamer&Programer Помощь студентам 11 28.06.2016 10:42
Выравнивание текста по правому краю Chowder Паскаль, Turbo Pascal, PascalABC.NET 1 16.03.2014 23:14
Выравнивание текста по правому краю С++ Bullrock Помощь студентам 0 07.06.2012 23:27
Выравнивание содержимого страницы по правому краю Krasi JavaScript, Ajax 1 11.07.2010 14:42