Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 27.07.04 09:18

Лучшее из нашего FAQ   |x|
Как создать эквивалент TEdit но только с выравниваением вводимого текста по центру или по правой стороне?
TEdit не поддерживает выравниваение текста по центру и по правой стороне - лучше использовать компонент TMemo. Вам понадобится запретить пользователю нажимать Enter, Ctrl-Enter и всевозможные комбинации клавиш со стрелками, чтобы избежать появления нескольких сторк в Memo. Этого можно добиться и просматривая содержимое текста в TMemo в поисках кода возврата каретки (13) и перевода строки(10) на событиях TMemo Change и KeyPress. Можно также заменять код возврата каретки на пробел - для того чтобы позволять вставку из буфера обмена многострочного текста в виде одной строки.
Пример:

procedure TForm1.FormCreate(Sender: TObject);
begin
   Memo1.Alignment := taRightJustify;
   Memo1.MaxLength := 24;
   Memo1.WantReturns := false;
   Memo1.WordWrap := false;
end;

procedure MultiLineMemoToSingleLine(Memo : TMemo);
var
   t : string;
begin
   t := Memo.Text;
   if Pos(#13, t) > 0  then
       begin
           while Pos(#13, t) > 0 do
               delete(t, Pos(#13, t), 1);
           while Pos(#10, t) > 0 do
               delete(t, Pos(#10, t), 1);
           Memo.Text := t;
       end;
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin
   MultiLineMemoToSingleLine(Memo1);
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
   MultiLineMemoToSingleLine(Memo1);
end;



Комментарий от "Сэр Кот-Оборотень" (kotwlf@newmail.ru)
Вот так это можно сделать...

unit QEditAlignment;
interface
uses Windows, Messages, SysUtils, Classes, Controls, StdCtrls;

type
 TEdit_Alignment = class(TEdit)
 private
   FAlignment: TAlig! nment;  protected
   procedure CreateParams(var Params: TCreateParams); override;
   procedure SetAlignment(Value: TAlignment);
 public
   function GetControlsAlignment: TAlignment; override;
   constructor Create (AOwner: TComponent); override;

 published
   property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
 end;

procedure Register;

implementation

constructor TEdit_Alignment.Create (AOwner: TComponent);
Begin
inherited Create (AOwner);
Alignment:=FAlignment;
End;

procedure TEdit_Alignment.CreateParams(var Params: TCreateParams);
const
 Alignments: array[Boolean, TAlignment] of DWORD =
   ((ES_LEFT, ES_RIGHT, ES_CENTER),(ES_RIGHT, ES_LEFT, ES_CENTER));
begin
&nbs p;inherited CreateParams(Params);
 with Params do
 begin
   Style := Style or Alignments[UseRightToLeftAlignment, FAlignment];
 end;
end;

function TEdit_Alignment.GetControlsAlignment: TAlignment;
begin
 Result := FAlignment;
end;

procedure TEdit_Alignment.SetAlignment(Value: TAlignment);
begin
 if FAlignment <> Value then
 begin
   FAlignment := Value;
   RecreateWnd;
 end;
end;

procedure Register;
begin
 RegisterComponents('Standard', [TEdit_Alignment]);
end;

end.

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Чем KOL лучше?
    Я делал мод для вторых корсаров на VCL и решил перевести на KOL и MCK. В результате размер exe-шника стал чуть ли не в ...
  • TDrawing
    Добрый день. В хелпе сказано, что, создав объект класса TDrawing, можно рисовать на его канве и затем "воспроизвести" ...
  • Как перерисовать значение по формуле из табл. в DBgrid ?
    Как перерисовать значение, допустим, вычисляю процент наложения в документе и хочу зарисовать этот процент в ячейке ...
  • Как послать вместе с посылкой POST строку Referrer?
    В Referrer вставляется простой URL. Узнать бы точнее, куда это входит, в саму пересылаемую строку, или нет? И как точно ...
  • Игра готова
    Игра готова. К какому издателю лучше обратиться?
  • порты под ХР
    Требуется обращаться к LPT "поконтактно", а ХР не "пропускает" команды asm-a in al,dx и out dx,al.
  • порты под ХР
    Требуется обращаться к LPT "поконтактно", а ХР не "пропускает" команды asm-a in al,dx и out dx,al.
У нас большой выбор статей   |x|
Маленькие хитрости: Автоматическое сохранение и восстановление свойств формы
Очередная маленькая хитрость будет посвящена автоматическому сохранению и восстановлению свойств формы, таких как размер, позиция, состояние. Конечно, существует целый ряд пакетов компонент, у которых есть аналогичные функции, но мне, к примеру, не интересно ставить целый пакет только из-за нескольких функций. К тому же, часто за эти пакеты надо платить деньги. В общем, напишем свой компонент.
Новинки книжного рынка   |x|
Эффективное программирование TCP/IP. Библиотека программиста
Программирование TCP/IP может показаться очень простым, но это заблуждение. Многие программисты сталкиваются с тем, что написанное ими сетевое приложение недостаточно надежно. Часто причиной такого положения дел является неосторожное обращение с сетевыми протоколами. Поэтому основное внимание в данной книге уделено тонким вопросам функционирования семейства протоколов и способам работы с ними. Здесь изложены подтвержденные практикой советы, технические приемы и эвристические правила программирования TCP/IP для достижения максимальной производительности; показано, как избежать многих типичных ошибок. Каркас кода и библиотека функций дают возможность создавать приложения, не думая о низкоуровневых деталях. Основные идеи и концепции иллюстрируются многочисленными примерами. Вы станете лучше понимать внутреннее устройство TCP/IP и получите необходимые практические навыки работы с этим семейством протоколов.
Автор: Jon Snader
Опрос населения :)
Как вы нашли наш сайт?
»»» Поисковая система
»»» Рассылка
»»» Ссылка с другого сайта
»»» Через каталог сайтов
»»» Друг посоветовал
»»» Случайно
Для души

Хокку дня
Вспотевшая мышка
Коврик прогнула
В разгаре проекта.

Афоризмы
Сказав: "Я записал вас в наследники",- вы, как порядочный человек, должны немедленно умереть (Сэмюэль Батлер)

Фраза дня
Человеку свойственно ошибаться. И он пользуется этим свойством часто и с удовольствием.

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Хейден в Аризоне (США) вам грозит штраф, если вы будете приставать к лягушкам.
В Канадской провинции Альберта выпущенным из тюрьмы преступникам до сих пор полагается заряженный пистолет и конь, чтобы они "могли покинуть город".

И на закуску коротенький анекдот
"Не стой под стрелой!"
/ Чингачгук /.

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=3857421


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное