Напис 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?