| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > SpeedButton форматирование текста влево |
| Автор: pashkasan 18.12.2008, 20:05 |
| привет, есть такая проблема: стандартный компонент TSpeedButton SpeedButton1.width=300 SpeedButton1.height=50 SpeedButton1.Margin=0 SpeedButton1.Layout=blGlyphLeft программно меняем текст на SpeedButton1.Caption := 'Pashka San +7 4242 406666'#13#10'Call duration 12:35'; вопрос: как сделать так чтоб 'Call duration 12:35' выводилось слева как и первая стока, у меня получается отступ гдет в пять пробелов (может баг в Delphi 7?) если кто знает как в эту кнопку поместить два TLabel вместо Caption, было бы вообще отлично нужно именно для TSpeedButton, тк используется компонента в которой есть кнопка которая наследует это класс Tnx! |
| Автор: Christoph 19.12.2008, 00:53 |
| То не баг а выравнивание по центру....по ходу нельзя выравнять название кнопки по левому краю... |
| Автор: NewDima 19.12.2008, 20:36 | ||||||||||||
для справки, текст на этой кнопке выводится процедурой
как видно она экспортируется из user32.dll, не надо грешить на delphi.
Никак, TSpeedButton наследует TGraphicControl
в отличие от TSpeedButton, TButton наследует TWinControl:
с ним помутить можно было бы, но скажу тебе, что это бред
что-то непонятно изъясняешься |
| Автор: pashkasan 21.12.2008, 16:40 |
| может кому пригодится function CaptionWrap(Line1: String; Line2: String): String; var len1,len2: integer; Line1new, Line2new: String; lbl: Tlabel; space_px_width: Integer; x: string; y: integer; begin // space_px_width := 3; lbl:=Tlabel.Create(nil); lbl.Caption := Line1; len1:= lbl.Width; lbl.Caption := Line2; len2:= lbl.Width; line1new := Line1; if (len2 > len1) then repeat line1new:= line1new + #32; until StrLen(PAnsiChar(line1new)) = (StrLen(PAnsiChar(Line1)) + round((len2-len1)/space_px_width)); line2new := Line2; if (len1 > len2) then repeat line2new:= line2new + #32; until StrLen(PAnsiChar(line2new)) = (StrLen(PAnsiChar(Line2)) + round((len1-len2)/space_px_width)); result := Line1new + #10 + Line2new; end; |