Напис on у два рядки

Чи можна на кнопках Button або SpeedButton записувати текст у caption у два рядки?

procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin i := GetWindowLong(Button1.Handle, GWL_STYLE); SetWindowLong(Button1.Handle, GWL_STYLE, i або BS_MULTILINE); Button1.Caption := "Ця кнопка в caption"e - " + #13#10 + "два рядки !"; end;

У Delphi 7 у TButton для цього є готова властивість - WordWrap.

Ігор Степанов (2006-05-15 19:56) [3]

Обидва запропоновані вище способи підходять тільки для простої кнопки типу Button. Однак для кнопок типу Speed ​​Button, які застосовуються на ToolBar, немає якості Handle, ні властивості WordWrap. Таким чином, обидва запропоновані варіанти не підходять.

Можливо є ще якийсь спосіб для кнопок типу Speed ​​Button?

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

тобі ж Maverick відповів уже:

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

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

> [4] allrussia (15.05.06 22:22)Це НЕ буде працювати для TSpeedButton.

Ігор Степанов (2006-05-17 19:37) [7]

Я мав на увазі ToolButton. У нього справді вищезгаданих властивостей Handle та WordWrap немає.

> Я мав на увазі ToolButton. У нього справді вищевказаних > властивостей Handle та WordWrap немає.перекривай ondraw

Ігор Степанов (2006-05-18 18:42) [9]

Чи не можна детальніше пояснити, що означає, "перекривай OnDraw"? Чи можна Вас попросити навести якийсь приклад?

Заздалегідь дякую за допомогу.

З повагою,Ігор Степанов

> Чи не можна докладніше пояснити, що означає, "перекривайТреба перекрити подію, що виникає при перемальовуванні зображення. Або перекрити метод Paint. Типу приклад малюємо квадратики з боків потоку timage

procedure TMoveImage.Paint; var Save: Boolean; begin якщо FSelected then з включеним 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)); w > 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 з внесеним Canvas do StretchDraw(DestRect, Picture.Graphic); finally FDrawing := Save; end; end;

Ігор Степанов (2006-05-28 21:26) [11]

У мене нічого не вийшло при перенесенні наведеного вище коду на кнопки ToolButton.

Чи не можна навести приклад написання тексту в два рядки саме длякнопок типу ToolButton?