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




Вниз

проблема с созданием класса (простая :)) 


masterdim   (2002-03-22 11:32) [0]

Уважаемые мастера!
Проблемка у меня тут возникла: хочу переопределить свойство Caption в RxButton-е, чтоб много символов было... Создаю новый тип так:

type
TMyRxSpeedButton = class(TRxSpeedButton)
private
FCaption: array[1..1000] of Char;
public
property Caption: array[1..1000] of Char read FCaption write FCaption;
end;

а Delphi мне ругается, что "Identifier expected bur "ARRAY" found" :((



Внук   (2002-03-22 11:38) [1]

type
TCaptionArray:array[1..1000] of Char;

TMyRxSpeedButton = class(TRxSpeedButton)
private
FCaption:TCaptionArray;
public
property Caption:TCaptionArray read FCaption write FCaption;
end;



masterdim   (2002-03-22 13:53) [2]

здорово!
только на кнопке симолы после 255-го не появляются :(
не подскажете - чего сделать?



MBo   (2002-03-22 15:37) [3]

положи мемо на панель или bevel, переключай bevelouter, вот тебе и кнопка.



Внук   (2002-03-22 15:39) [4]

"не подскажете - чего сделать?" - А что уже сделано? ;-)
Каков у Вас механизм перевода значения свойства Caption в графическое изображение? Это ведь уже не такой простой вопрос, как SUBJ. Поэтому подробно объяснять не буду, Вы уж не обижайтесь (не имею в настоящий момент такой возможности). Может, кто другой поможет. Однако, без кода Вашего класса это почти нереально.
Но вот пара намеков: передача надписи на кнопку происходит в стандартной кнопке TButton унаследованной процедурой SetTextBuf (см. исходники)
procedure TControl.SetTextBuf(Buffer: PChar);
begin
Perform(WM_SETTEXT, 0, Longint(Buffer));
Perform(CM_TEXTCHANGED, 0, 0);
end;
Как видим - это посылка сообщения. Класс TButton базируется на стандартном оконном классе Windows BUTTON. Поэтому похоже, что стандартная кнопка не умеет отображат на себе строку больше 255 символов, и придется переписывать Вам свой компонент практически с нуля. Это если есть интерес. А иначе проще найти готовый, наверняка где-то есть.



Внук   (2002-03-22 15:46) [5]

Не обратил внимания на класс кнопки - TRxSpeedButton. Тогда проще, наверное. Это потомок TGraphicControl, у него можно процедуру отрисовки перекрыть всегда. Только все равно странно... Код бы надо посмотреть.




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




Наверх





Память: 0.72 MB
Время: 0.056 c
1-9566            DenKop                2002-03-24 15:14  2002.04.04  
Извлечение иконок


4-9669            sanjok                2002-02-02 21:23  2002.04.04  
Как запустить внешнее приложение из своей программы


14-9615           Alx2                  2002-02-22 08:23  2002.04.04  
С Днем Модератора!


1-9512            Linux                 2002-03-23 07:56  2002.04.04  
ListBox


4-9674            Ewgenij               2002-02-04 23:26  2002.04.04  
CreateDesktop