Плоское мемо

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Плоское мемо

Сообщение Troublemaker » 24.05.2008 13:21:09

Решил разместить на форме длинный текст >250 знаков. Единственный подходящий контрол - TMemo. Но я не хочу, чтобы оно выделялось своей рамкой. Пишу:
Код: Выделить всё
  Memo1.BorderStyle:=bsNone;
  Memo1.BorderWidth:=0;
Однако, толку никакого - как было утопленное, так и осталось. Чего делать?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Плоское мемо

Сообщение shade » 24.05.2008 14:02:49

Есть ещё свойство, Control3D или что-то типа того, точно не помню как обзывается, его нужно установить в false
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Плоское мемо

Сообщение Troublemaker » 24.05.2008 14:46:19

shade писал(а):Control3D
Вот такое компилировать не хочет: TControl(Memo1).ctl3d:=false; или (Memo1 as TControl).ctl3d:=false; - Error: identifier idents no member "ctl3d". Хотя по наследованию видно, что это приватная пропертя тконтрола, которая должна наследоваться.
А вот такое: Memo1.ParentCtl3D:=false; ни на что не влияет.
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Плоское мемо

Сообщение dymken » 24.05.2008 15:39:26

А в лазаре Ctl3D приватный? Не знал... Может просто это свойство не работает и его временно спрятали?

А вообще доступ к приватным и защищенным полям и методам объекта осуществляется через т.н. Crack-классы. По сути это хак.
Не знаю как в FPC, но в Delphi работает следующий метод:

Объяви следующий тип:
type
TCrackMemo = class(TMemo);

А в своем коде:
TCrackMemo(Memo1).Ctl3D := False;
dymken
новенький
 
Сообщения: 11
Зарегистрирован: 10.01.2008 11:50:14

Re: Плоское мемо

Сообщение Troublemaker » 24.05.2008 15:50:43

dymken писал(а):в лазаре Ctl3D приватный? Не знал
Ой! Не приват, а: protected property TControl.Ctl3D: Boolean
dymken писал(а):TCrackMemo = class(TMemo);

Хм... попробую, но не понимаю, почему он должен сработать?

Добавлено спустя 6 минут 53 секунды:
Может быть дело в том, что:

Ctl3D is provided for backward compatibility. It is not used by 32-bit versions of Windows or NT4.0 and later.
(хелп по Д-7)?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Плоское мемо

Сообщение Timid » 24.05.2008 18:26:28

Вероятно. Если не поддерживается чисто формально, то не будет и работать.
А почему бы не попробовать WebBrowser - он не имеет рамки.
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Плоское мемо

Сообщение Troublemaker » 25.05.2008 06:19:48

Timid писал(а):почему бы не попробовать WebBrowser
А где он живет? В штатной поставке не наблюдаю.
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

Рейтинг@Mail.ru