![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Создовая программу, я столкнулся со следующим "препятствием":
У мну в программу создаются динамически кнопки. Проблема в том, что когда я устанавливаю заголовок для кнопки, то её ширина остаётся стандартной, а текст бывает длинее этой ширины и получается некрасиво (текст вылазиет из ширины кнопки). Как можно сделать, чтобы ширина была норм. Вот например: в HTML можно прописать в атрибуте "style" padding-left: 10px; padding-right: 10px; и будет всё класс. Получается слева и справа отступ от текста 10 пикселей. Как можно сделать в delphi так? |
|
#2
|
||||
|
||||
|
Смотри в сторону TCanvas.TextWidth
|
|
#3
|
|||
|
|||
|
У мну ошибка!!
Программа запускается, но выдаётся ошибка. Вот код: Код:
procedure Pages(Actions,NmPage: String);
var
IndexPage: Integer;
TW: TCanvas;
begin
with MainForm do begin
if Actions='Next' then begin
SetLength(Btns,Length(Btns)+1);
IndexPage:=Length(Btns)-1;
Btns[IndexPage]:=TBitBtn.Create(MenuBtns);
with Btns[IndexPage] do begin
Parent:=MenuBtns;
Caption:=NmPage;
TW:=TCanvas.Create;
Width:=TW.TextWidth(NmPage);
Visible:=true;
TW.Free;
end;
end;
MenuBtns.Repaint;
end;
end;Последний раз редактировалось NightSoldier, 04.06.2009 в 15:39. |
|
#4
|
|||
|
|||
|
Код:
var
TextSize: TSize;
begin
GetTextExtentPoint32(GetDC(Button1.Handle), @Button1.Caption[1],
Length(Button1.Caption), TextSize);
Button1.Width := TextSize.cx + 20; // длина кнопки = длине текста + 20px
end; |
|
#5
|
|||
|
|||
|
Спс!
Тему можно закрывать |