Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 01.08.2008, 17:38   #1
rivers
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 16
Печаль Caption в BitBtn!!!

Добрый день(вечер), начну с того что у меня возникла проблема при написании проекта, собственно она заключается в том, что когда мне нужно вывести какой нибудь длинный текст на кнопку, он у меня выводится в строчку! Тогда я полез в инспектор свойств кнопки, и нашел там свойство WordWarp, ставлю значение тру и компилирую проект заново... ,и все равно текст выводится в строчку . Ладно, хорошо. Тогда зашел я на сайт делфиворлд нашел компонент баттон нашел как сделать так чтобы текст выводился построчно, скомпилировал и все зашибись...
Но блин пол кода той самой функции выведения построчно я вообще не понимаю!!!
Тогда уж я решил обратиться сюда! Дело в том что мне нужно вывести длииный текст в несколько строк так чтобы все слова были видны на кнопке, И ПРИ этом мне необходимо сделать что бы я мог управлять переходом на другую строчку, ну например:
вот строчка: 1. Huhtamaki 227mm 2. Alcan 185mm
строчка выведется на мою кнопку это таким образом:
1. Huhtamaki
227mm 2.
Alcan 185mm
а мне нужно чтобы он вывел так:
1. Huhtamaki
227mm
2. Alcan
185mm
Как это сделать?? как управлять переносом текста?



Не стану создавать еще одной темы напишу прямо тут.
Еще одна проблема, но она другая, в том что мне нужно сделать так чтобы текст выводился на рисунке, а не рядом с ним, тот код который я скачал позволяет сделать это правда после того как компилятор проходит эту часть кода с кэпшеном больше ничего не получается сделать, то есть изменить шрифт, стиль, маштаб и тд.
rivers вне форума Ответить с цитированием
Старый 01.08.2008, 17:59   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
  BitBtn1.Caption:='Строка1'#13'Строка2'#13'Строка3'#13'Строка4';
_Dmitry вне форума Ответить с цитированием
Старый 01.08.2008, 18:13   #3
rivers
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 16
По умолчанию

Спасибо! А второй вопрос?
rivers вне форума Ответить с цитированием
Старый 01.08.2008, 18:19   #4
rivers
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 16
По умолчанию

Еще есть вопросик по кнопкам
У меня есть допустим пять кнопок, человек вводит с клавиатуры число от 1 до 5, затем нада поменять название той кнопки, которое ввел пользователь.
Т.е. пользователь вводит 3, то нужно у 3-й кнопки поменять название.
Можно с помощью массива типа баттон
только блин есть маленький ньюанс, как в этот массив записать все кнопки не прописывая это в ручную...
rivers вне форума Ответить с цитированием
Старый 01.08.2008, 19:42   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,230
Сообщение

Можно и без массива:
Код:
procedure TForm1.Button10Click(Sender: TObject);
const CntrlNam :string = 'Button%d';
var N :Integer;
    S :String;
begin
 N := StrToIntDef(Edit1.Text, 1);
 S := Edit2.Text;
 TButton( FindComponent(Format(CntrlNam, [N])) ).Caption := S;
end;
const CntrlNam :string = 'Button%d'; - шаблон имени компонента, если надо другой, то пишут часть имени контрола, до порядкового номера(вместо выделенного красным цветом текста).
Alter вне форума Ответить с цитированием
Старый 03.08.2008, 20:14   #6
rivers
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 16
По умолчанию

А как быть с этим:
Цитата:
Не стану создавать еще одной темы напишу прямо тут.
Еще одна проблема, но она другая, в том что мне нужно сделать так чтобы текст на кнопку выводился на рисунке, а не рядом с ним, тот код который я скачал позволяет сделать это правда после того как компилятор проходит эту часть кода с кэпшеном больше ничего не получается сделать, то есть изменить шрифт, стиль, маштаб и тд.

Последний раз редактировалось rivers; 03.08.2008 в 22:24.
rivers вне форума Ответить с цитированием
Старый 03.08.2008, 22:11   #7
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,230
Сообщение

Да, кое что добавлю к написаноному. При кнопках и компонентах разного типа, нужно изменить(то что красным) на тот тип контрола, к которому обращаются: TButton( FindComponent(Format(CntrlNam, [N])) ).Caption := S;

Проверить тип можно так:
Код:
if (FindComponent(Format(CntrlNam, [N])) is TBitButton) then {что-то делаем};
Alter вне форума Ответить с цитированием
Старый 04.08.2008, 02:51   #8
Minimus
Пользователь
 
Аватар для Minimus
 
Регистрация: 03.08.2008
Сообщений: 43
Хорошо

Здесь лежат компоненты от JEDI (почти 25МБа - более 600 разных компонентов и классов)
JVCL334CompleteJCL1102-Build3072.zip
Честно говоря компонентов уйма. После установки на закладке политры jvButtons найди jvSpeedButton. Я думаю это то что тебе нужно.

ЗЫ: Чтобы установить все это добро нужно сделать следующее:
1. Распакуй архив в надежное место (в папку с дельфями, например).
2. Запусти jcl\jcl\install.bat
3. Запусти jvcl\install.bat
4. Enjoy

ЗЫ2:Компонентов действительно очень много!!!
ЗЫ3:Я ставил на D5 и D7 и D2006. На TurboDelphi не ставиться!

ЗЫ4:Точно не уверен, но вроде бы RxLib поставляется в комплекте,
так что если уже стоит RxLib - то могут возникнуть конфликты имен.

Зацени красотищу на картинке - и все без единой строчки кода.
Изображения
Тип файла: jpg trava.JPG (9.6 Кб, 145 просмотров)

Последний раз редактировалось Minimus; 04.08.2008 в 03:53.
Minimus вне форума Ответить с цитированием
Старый 04.08.2008, 19:41   #9
rivers
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 16
По умолчанию

Чувак спасибо конечно за компоненты, но я на твоем скрине вижу, что текс рядом с картинкой, а не на ней А мне нужно именно что бы текст выводился на картинку!!
rivers вне форума Ответить с цитированием
Старый 05.08.2008, 11:35   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
но я на твоем скрине вижу, что текс рядом с картинкой, а не на ней А мне нужно именно что бы текст выводился на картинку!!
А вот сердиться на помошь ну никак незачем.
Я бы на твоем месте так решал:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TBitBtn=class(Buttons.TBitBtn)
   procedure wp(var w:TWMPaint); message wm_paint;
  end;
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

{ TBitBtn }

procedure TBitBtn.wp(var w: TWMPaint);
var x,y:integer;    c:TCanvas;
begin
inherited;
c:=TCanvas.Create;
c.Handle:=GetDC(Handle);
c.Brush.Style:=bsClear;
 x:=Width div 2; y:=Height div 2;
c.TextOut(x,y,'Кнопка');

end;

end.
Здесь переписан обработчик закраски, и просто выведен текст.
Капшн кнопки занулен, вместо него в обработчике текст, он как раз и будет выведен на рисунке
Stilet вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цвет caption в Tbutton EdNovice Компоненты Delphi 5 31.05.2008 22:57
caption в цыкле nikleb Общие вопросы Delphi 3 18.04.2008 15:23
BitBtn и ее Bitmap Yogik™ Помощь студентам 2 19.11.2007 18:12
Кнопка BitBtn Yurek Общие вопросы Delphi 10 05.11.2007 19:42
Чем можно заменить объект BitBtn? frai Компоненты Delphi 3 14.04.2007 12:42