Плоское мемо

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

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

Ответить
Аватара пользователя
Troublemaker
постоялец
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток
Контактная информация:

Плоское мемо

Сообщение Troublemaker »

Решил разместить на форме длинный текст >250 знаков. Единственный подходящий контрол - TMemo. Но я не хочу, чтобы оно выделялось своей рамкой. Пишу:

Код: Выделить всё

  Memo1.BorderStyle:=bsNone;
  Memo1.BorderWidth:=0;
Однако, толку никакого - как было утопленное, так и осталось. Чего делать?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Есть ещё свойство, Control3D или что-то типа того, точно не помню как обзывается, его нужно установить в false
Аватара пользователя
Troublemaker
постоялец
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток
Контактная информация:

Сообщение Troublemaker »

shade писал(а):Control3D
Вот такое компилировать не хочет: TControl(Memo1).ctl3d:=false; или (Memo1 as TControl).ctl3d:=false; - Error: identifier idents no member "ctl3d". Хотя по наследованию видно, что это приватная пропертя тконтрола, которая должна наследоваться.
А вот такое: Memo1.ParentCtl3D:=false; ни на что не влияет.
dymken
новенький
Сообщения: 11
Зарегистрирован: 10.01.2008 10:50:14

Сообщение dymken »

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

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

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

А в своем коде:
TCrackMemo(Memo1).Ctl3D := False;
Аватара пользователя
Troublemaker
постоялец
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток
Контактная информация:

Сообщение Troublemaker »

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)?
Timid
постоялец
Сообщения: 290
Зарегистрирован: 21.11.2007 20:33:15

Сообщение Timid »

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

Сообщение Troublemaker »

Timid писал(а):почему бы не попробовать WebBrowser
А где он живет? В штатной поставке не наблюдаю.
Ответить