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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2013, 21:52   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Восклицание WYSIWYG рисование текста на Image

Доброго времени суток!

В дизайнере, TLabel расположено над TImage в удобных, для юзера, координатах.

Как нарисовать текст от Tlabel, точно там же где расположен TLabel?

Вот код:
Код:
begin
  Img := TBitmap.Create;
  try
    Img.Assign(fSrcBitmap);
    bMode := GetBkMode(Img.Canvas.Handle);
    SetBkMode(Img.Canvas.Handle, TRANSPARENT);
    for i := 0 to Count - 1 do
    begin
      Img.Canvas.Font := Items[i].Text.Font;
      Img.Canvas.TextOut(Items[i].Text.Top, Items[i].Text.Left, Items[i].Text.Caption);
    end;
    SetBkMode(Img.Canvas.Handle, bMode);
    aSsignTo.Picture.Assign(Img);
  finally
    FreeAndNil(Img);
  end;
end;
Вот вид в дизайнере:


Вот вид на печати:


Как исправить? Как добиться результата по принципу WYSIWYG (Как видишь, так и будет).
Человек_Борща вне форума Ответить с цитированием
Старый 06.09.2013, 22:04   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В Text.Top и Text.Left координаты относительно чего? Если не левого верхнего угла Image, то пересчитать их (ScreenToClient, ScreenToClient)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.09.2013, 22:34   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В редакторе лежит WorkAreaGr:TGroupBox, внутри него TImage с Align:=alClient, т.к. TImage нельзя сделать Parent'ом для TLabel. Итого, координаты идут относительно TGroupBox. Как быть?

Получается мне надо как-то координаты из квадрата(TRect) TGroupBox перевести в координаты в квадрате TImage.

Последний раз редактировалось Человек_Борща; 06.09.2013 в 22:39.
Человек_Борща вне форума Ответить с цитированием
Старый 06.09.2013, 22:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var p: TPoint;

  p:=Image1.ScreenToClient(Label1.ClientToScreen(Point(0,0)));
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование и редактирование объектов Image ZLoy_molo4nik Мультимедиа в Delphi 2 15.05.2012 16:50
Рисование на Canve Image Alexsandr Общие вопросы Delphi 0 12.03.2012 18:15
Считыванием координат с файла и рисование в image! VinDiz Помощь студентам 2 15.01.2012 11:22
Рисование в image! За ранее огромное спасибо!!! Evgent_0 Помощь студентам 0 30.11.2011 21:39
рисование изображений без формы и image. eldalex Помощь студентам 3 01.09.2010 09:37