Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Вниз

Написание Button.Caption в две строки   Найти похожие ветки 

 
Igor Stepanov   (2006-05-12 18:07) [0]

Уважаемые мастера,

Можно ли на кнопках Button или SpeedButton записывать текст в caption в две строки?

С уважением,

Игорь Степанов


 
Maverick ©   (2006-05-12 18:26) [1]

Можно :)

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;


 
begin...end ©   (2006-05-12 19:00) [2]

В Delphi 7 у TButton для этого есть готовое свойство -- WordWrap.


 
Igor Stepanov   (2006-05-15 19:56) [3]

Уважаемые мастера,

Оба предложенных выше способа подходят только для простой кнопки типа Button. Однако для кнопок типа Speed Button, которые применяются на ToolBar, нет ни свойства Handle, ни свойства WordWrap. Таким образом, оба предложенных варианта не подходят.

Может быть есть какой-нибудь ещё способ для кнопок типа Speed Button?

Заранее благодарю.

С уважением,

Игорь Степанов


 
allrussia   (2006-05-15 22:22) [4]

Igor Stepanov

тебе же Maverick ответил уже:

SpeedButton1.Caption := "Line1" + #13#10 + "Line2" +...

можешь написать функцию какуюнибудь SetWrapCaption которая в зависимости от длины кнопки разбивает строку


 
Джо ©   (2006-05-15 22:37) [5]

> [4] allrussia   (15.05.06 22:22)

Это НЕ будет работать для TSpeedButton.


 
Джо ©   (2006-05-15 22:38) [6]

> [5] Джо ©   (15.05.06 22:37)

Хех, сорри, работает :)


 
Igor Stepanov   (2006-05-17 19:37) [7]

Извините, пожалуйста.

Я имел в виду ToolButton. У него действительно вышеуказанных свойств Handle и WordWrap нет.

Как быть?

С уважением,

Игорь Степанов


 
tesseract ©   (2006-05-17 20:50) [8]


> Я имел в виду ToolButton. У него действительно вышеуказанных
> свойств Handle и WordWrap нет.

перекрывай ondraw


 
Igor Stepanov   (2006-05-18 18:42) [9]

Нельзя ли поподробнее объяснить, что значит, "перекрывай OnDraw"?
Можно ли Вас попросить привести какой-нибудь пример?

Заранее благодарю за помощь.

С уважением, Игорь Степанов


 
tesseract ©   (2006-05-19 10:33) [10]


> Нельзя ли поподробнее объяснить, что значит, "перекрывай
> 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-28 21:26) [11]

Уважаемый Tesseract,

У меня ничего не получилось при переносе приведённого выше кода на кнопки ToolButton.

Нельзя ли привести пример написания текста в две строчки именно для кнопок типа ToolButton?

Заранее благодарю.

С уважением,

Игорь Степанов



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
1-1148908777
AFfonya
2006-05-29 17:19
2006.07.09
CMD.EXE выполение произвольной команды


3-1147342800
Igor666
2006-05-11 14:20
2006.07.09
Помогите плз с транзакциями!!!


15-1150000043
Black Angel
2006-06-11 08:27
2006.07.09
Не могу поставит Delphi 2005 / Delphi 8


2-1150712400
msainc
2006-06-19 14:20
2006.07.09
Как искать?


2-1150726284
Кефир87
2006-06-19 18:11
2006.07.09
HELP!!! OVERLAY.TPU





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский