1 (edited by adiziktdy 2019-02-05 12:31:52)

Topic: [РЕШЕНО] Обрамление надписи (Label)

Возможно ли сделать? Честно, не нашла как sad

https://b.radikal.ru/b10/1902/06/36406c7ee351.jpg


Заранее спасибо за ответ.

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Нашла в интернете пример

var
  ww, hh: Integer;
begin
  Canvas.Font.Size:=18;
  Canvas.Font.Color:=clRed;
  Canvas.Brush.Style:=bsClear;
 
  ww:=Canvas.TextWidth('Hello World');
  hh:=Canvas.TextHeight('Hello World');
  //// Or...
  //Canvas.GetTextSize('Hello World', ww, hh);
 
  Canvas.Rectangle(80, 60, 80+ww, 60+hh);
  Canvas.TextOut(80,60,'Hello World');
end;

Я так понимаю, нужно в переменные добавить Canvas:TCanvas;

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Упс sad

https://c.radikal.ru/c14/1902/81/bc49a1bfda27.jpg

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Исправила ошибки синтаксиса

procedure GLForm_OnShow (Sender: TObject; Action: string);
var
Canvas:TCanvas;
ww, hh: Integer;
begin
  GLForm.Canvas.Font.Size:=18;
  GLForm.Canvas.Font.Color:=clRed;
  GLForm.Canvas.Brush.Style:=bsClear;

  ww:=GLForm.Canvas.TextWidth('Hello World');
  hh:=GLForm.Canvas.TextHeight('Hello World');

  GLForm.Canvas.Rectangle(80, 60, 80+ww, 60+hh);
  GLForm.Canvas.TextOut(80,60,'Hello World');
end;

но ничего на прорисовалось

Yana

5 (edited by k245 2019-02-05 11:29:14)

Re: [РЕШЕНО] Обрамление надписи (Label)

Зачем же так усложнять себе жизнь? Если вы будете рисовать скриптами интерфейс, то вся магия быстрой и лёгкой разработки исчезнет )). Для разукрашивания можно использовать свойства компонентов:


http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5042&download=0

Post's attachments

Attachment icon цвета.png 25.45 kb, 167 downloads since 2019-02-05 

Визуальное программирование: блог и телеграм-канал.

Re: [РЕШЕНО] Обрамление надписи (Label)

k245 wrote:

Для разукрашивания можно использовать свойства компонентов:
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5042&download=0

Это у меня есть, если вы заметили мне нужен BorderStyle:=bsSingle для Label. Как это сделать?

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

В журнале успеваемости студентов колонки: лабораторные, домашние и индивидуальные задания объединены одной шапкой. В TableGrid я могу назначать названия колонок. Объединять из нельзя. В общем, можно выкрутиться либо Panel, либо GroupBox (что не очень по-моему) sad.

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Процедура работает при событии GlForm_Button1_OnClick, а не GLForm_OnShow!!!

https://b.radikal.ru/b26/1902/03/7d7d0fc01d4e.jpg

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Используйте компонент Edit вместо Label

Dmitry.

Re: [РЕШЕНО] Обрамление надписи (Label)

DriveSoft wrote:

Используйте компонент Edit вместо Label

Точно! Спасибо.

Но опыт пригодится wink

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Можно сделать скриншот заголовка из Excle, обрезать  и вставить картинкой smile

Визуальное программирование: блог и телеграм-канал.

Re: [РЕШЕНО] Обрамление надписи (Label)

adiziktdy wrote:

Исправила ошибки синтаксиса

procedure GLForm_OnShow (Sender: TObject; Action: string);
var
Canvas:TCanvas;
ww, hh: Integer;
begin
  GLForm.Canvas.Font.Size:=18;
  GLForm.Canvas.Font.Color:=clRed;
  GLForm.Canvas.Brush.Style:=bsClear;

  ww:=GLForm.Canvas.TextWidth('Hello World');
  hh:=GLForm.Canvas.TextHeight('Hello World');

  GLForm.Canvas.Rectangle(80, 60, 80+ww, 60+hh);
  GLForm.Canvas.TextOut(80,60,'Hello World');
end;

но ничего на прорисовалось

Если мне память не изменяет, вот так должно прорисоваться:

procedure GLForm_OnShow (Sender: TObject; Action: string);
var
Canvas:TCanvas;
ww, hh: Integer;
begin
  SendMessage(GLForm.Handle,274,61728,0);
  Application.ProcessMessages;

  GLForm.Canvas.Font.Size:=18;
  GLForm.Canvas.Font.Color:=clRed;
  GLForm.Canvas.Brush.Style:=bsClear;

  ww:=GLForm.Canvas.TextWidth('Hello World');
  hh:=GLForm.Canvas.TextHeight('Hello World');

  GLForm.Canvas.Rectangle(80, 60, 80+ww, 60+hh);
  GLForm.Canvas.TextOut(80,60,'Hello World');
end;

13 (edited by k245 2019-02-06 12:47:53)

Re: [РЕШЕНО] Обрамление надписи (Label)

mapcreatormail wrote:

  SendMessage(GLForm.Handle,274,61728,0);
  Application.ProcessMessages;

Волшебное заклинание подействовало! smile

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5044&download=0

Post's attachments

Attachment icon Рисование на канве.png 10.43 kb, 164 downloads since 2019-02-06 

Визуальное программирование: блог и телеграм-канал.

Re: [РЕШЕНО] Обрамление надписи (Label)

А совет от админа быстрее и красивше  big_smile

https://a.radikal.ru/a14/1902/f8/85c1e6ea1e65.jpg

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

Волшебное заклинание подействовало! smile

Волшебство пропадёт, если форму минимизировать и развернуть.

Можно вынести код в отдельную процедуру и вызывать её в GLForm_OnShow и GLForm_OnResize.

procedure CanvasShow ();
var
  Canvas:TCanvas;
  ww, hh: Integer;
begin
  GLForm.Canvas.Font.Size:=18;
  GLForm.Canvas.Font.Color:=clRed;
  GLForm.Canvas.Brush.Style:=bsClear;

  ww:=GLForm.Canvas.TextWidth('Hello World');
  hh:=GLForm.Canvas.TextHeight('Hello World');

  GLForm.Canvas.Rectangle(80, 60, 80+ww, 60+hh);
  GLForm.Canvas.TextOut(80,60,'Hello World');
end;

procedure GLForm_OnResize (Sender: TObject);
begin
  Application.ProcessMessages;
  CanvasShow;
end;

procedure GLForm_OnShow (Sender: TObject; Action: string);
begin
  SendMessage(GLForm.Handle,274,61728,0);
  GLForm_OnResize(GLForm);
end;

Но если перетащить форму за пределы экрана, волшебство опять исчезнет.

А совет от админа быстрее и красивше.

Я только показал, что при использовании Canvas надо перерисовывать форму.

Re: [РЕШЕНО] Обрамление надписи (Label)

mapcreatormail wrote:

Я только показал, что при использовании Canvas надо перерисовывать форму.

И вам спасибо. Когда-нибудь пригодится.

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

adiziktdy wrote:

А совет от админа быстрее и красивше  big_smile

https://a.radikal.ru/a14/1902/f8/85c1e6ea1e65.jpg

Добрый день!
Можете поделиться проектом с журналом посещений занятий.
Необходимо что-то подобное, для примера рассмотрел бы
Ваш проект. Заранее благодарен.

Re: [РЕШЕНО] Обрамление надписи (Label)

Проект пока заморожен к сожалению и не доведен до логического конца, но для примера пожалуйста.
База данных MySQL (в setting.ini указать свой host и username)

Ссылку на скачивание пришлю на e-mail

Yana

Re: [РЕШЕНО] Обрамление надписи (Label)

adiziktdy wrote:

Проект пока заморожен к сожалению и не доведен до логического конца, но для примера пожалуйста.
База данных MySQL (в setting.ini указать свой host и username)

Ссылку на скачивание пришлю на e-mail

Большое спасибо!
Скачаю и рассмотрю

Re: [РЕШЕНО] Обрамление надписи (Label)

Vickus wrote:

Большое спасибо!

Пожалуйста.

Yana