![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Написание Button.Caption в две строки [D7, Win2k, WinXP]
Igor Stepanov © (2006-05-12 18:07:00)Уважаемые мастера,
Можно ли на кнопках Button или SpeedButton записывать текст в caption в две строки?
С уважением,
Игорь Степанов
Igor Stepanov (2006-05-28 21:26:00) [1]Уважаемый Tesseract,
У меня ничего не получилось при переносе приведённого выше кода на кнопки ToolButton.
Нельзя ли привести пример написания текста в две строчки именно для кнопок типа ToolButton?
Заранее благодарю.
С уважением,
Игорь Степанов
tesseract (2006-05-19 10:33:00) [2]
> Нельзя ли поподробнее объяснить, что значит, "перекрывай
> OnDraw"?
Надо перекрыть событие возникающее при перерисовке изображения. Либо
перекрыть метод Paint.
Типа пример рисуем квадратики по бокам потока timage
procedure TMoveImage.Paint;
var
Save: Boolean;
begin
if FSelected then
with inherited Canvas do
begin
brush.color:=clBlack;
if imtype[2]='G' then
begin
// Левый
FillRect(Rect(0, height div 2-2, 4, height div 2+2));
// Правый
FillRect(Rect(width-4,height div 2 -2,width,height div 2 +2));
height:=5;
end
else
if imtype[2]='V' then
begin
// Верхний
FillRect(Rect(width div 2-2,0,width div 2+2, 4));
// Нижний
FillRect(Rect(width div 2-2,height-4,width div 2+2,height));
width:=5;
end
else
begin
// Верхний левый
FillRect(Rect(0, 0, 4, 4));
// Нижний левый
FillRect(Rect(0,height-4,4,height));
// Левый
FillRect(Rect(0, height div 2-2, 4, height div 2+2));
// Верхний
FillRect(Rect(width div 2-2,0,width div 2+2, 4));
// Верхний правый
FillRect(Rect(width-4,0,width,4));
// Нижний правый
FillRect(Rect(width-4,height-4,width,height));
// Нижний
FillRect(Rect(width div 2-2,height-4,width div 2+2,height));
// Правый
FillRect(Rect(width-4,height div 2 -2,width,height div 2 +2));
end;
end;
Save := FDrawing;
FDrawing := True;
try
with inherited Canvas do
StretchDraw(DestRect, Picture.Graphic);
finally
FDrawing := Save;
end;
end;
Igor Stepanov (2006-05-18 18:42:00) [3]Нельзя ли поподробнее объяснить, что значит, "перекрывай OnDraw"?
Можно ли Вас попросить привести какой-нибудь пример?
Заранее благодарю за помощь.
С уважением, Игорь Степанов
tesseract (2006-05-17 20:50:00) [4]
> Я имел в виду ToolButton. У него действительно вышеуказанных
> свойств Handle и WordWrap нет.
перекрывай ondraw
Igor Stepanov (2006-05-17 19:37:00) [5]Извините, пожалуйста.
Я имел в виду ToolButton. У него действительно вышеуказанных свойств Handle и WordWrap нет.
Как быть?
С уважением,
Игорь Степанов
Джо (2006-05-15 22:38:00) [6]> [5] Джо © (15.05.06 22:37)
Хех, сорри, работает :)
Джо (2006-05-15 22:37:00) [7]> [4] allrussia (15.05.06 22:22)
Это НЕ будет работать для TSpeedButton.
allrussia (2006-05-15 22:22:00) [8]Igor Stepanov
тебе же Maverick ответил уже:
SpeedButton1.Caption := 'Line1' + #13#10 + 'Line2' +...
можешь написать функцию какуюнибудь SetWrapCaption которая в зависимости от длины кнопки разбивает строку
Igor Stepanov (2006-05-15 19:56:00) [9]Уважаемые мастера,
Оба предложенных выше способа подходят только для простой кнопки типа Button. Однако для кнопок типа Speed Button, которые применяются на ToolBar, нет ни свойства Handle, ни свойства WordWrap. Таким образом, оба предложенных варианта не подходят.
Может быть есть какой-нибудь ещё способ для кнопок типа Speed Button?
Заранее благодарю.
С уважением,
Игорь Степанов
begin...end (2006-05-12 19:00:00) [10]В Delphi 7 у TButton для этого есть готовое свойство -- WordWrap.
Maverick (2006-05-12 18:26:00) [11]Можно :)
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i := GetWindowLong(Button1.Handle, GWL_STYLE);
SetWindowLong(Button1.Handle, GWL_STYLE, i or BS_MULTILINE);
Button1.Caption := 'У этой кнопки в caption'e - ' + #13#10 + 'две строчки !';
end;