Недавно добавленные исходники

•  TDictionary Custom Sort  514

•  Fast Watermark Sources  878

•  3D Designer  1 809

•  Sik Screen Capture  1 458

•  Patch Maker  1 465

•  Айболит (remote control)  1 390

•  ListBox Drag & Drop  1 163

•  Доска для игры Реверси  21 337

•  Графические эффекты  1 339

•  Рисование по маске  1 278

•  Перетаскивание изображений  1 091

•  Canvas Drawing  965

•  Рисование Луны  803

•  Поворот изображения  758

•  Рисование стержней  804

•  Paint on Shape  489

•  Генератор кроссвордов  750

•  Головоломка Paletto  661

•  Теорема Монжа об окружностях  842

•  Пазл Numbrix  609

•  Заборы и коммивояжеры  835

•  Игра HIP  551

•  Игра Go (Го)  523

•  Симулятор лифта  544

•  Программа укладки плитки  505

•  Генератор лабиринта  561

•  Проверка числового ввода  521

•  HEX View  596

•  Физический маятник  522

•  Задача коммивояжера  556

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



TLabel и TEdit без контейнера



Автор: Mike Scott

Один компьютерщик рассказывает другому:
- Представляешь,вчера возвращаюсь с работы чуть раньше обычного, а у жены в постели - незнакомый мужик. И глаза у обоих хитрые-хитрые... Я сразу неладное заподозрил,кинулся к компу, пытаюсь выйти в Интернет - а они, с%ки, пароль сменили...

При размещении на форме, создается TLabel, расположенный выше поля редактирования. При перемещении поля редактирования, TLabel "следует" за ним. При удалении поля редактирования, TLabel также удаляется. Имеется свойство LabelCaption, так что вы можете редактировать заголовок Tlabel. Вероятно вам потребуются и другие свойства TLabel, типа Font, но этот код только демонстрирует технологию, так что развивайте его по своему усмотрению.


unit LblEdit;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TLabelEdit = class(TEdit)
  private
    FLabel: TLabel;
    procedure WMMove(var Msg: TWMMove); message WM_MOVE;
  protected
    procedure SetParent(Value: TWinControl); override;
    function GetLabelCaption: string; virtual;
    procedure SetLabelCaption(const Value: string); virtual;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property LabelCaption: string read GetLabelCaption write
      SetLabelCaption;

  end;

procedure Register;

implementation

constructor TLabelEdit.Create(AOwner: TComponent);

begin
  inherited Create(AOwner);

  { создаем TLabel }
  FLabel := TLabel.Create(nil);
  FLabel.Caption := 'Edit label';
end;

procedure TLabelEdit.SetParent(Value: TWinControl);

begin
  { убеждаемся, что TLabel имеет того же родителя что и TEdit }
  if (Owner = nil) or not (csDestroying in Owner.ComponentState) then
    FLabel.Parent := Value;
  inherited SetParent(Value);
end;

destructor TLabelEdit.Destroy;

begin
  if (FLabel <> nil) and (FLabel.Parent = nil) then
    FLabel.Free;
  inherited Destroy;
end;

function TLabelEdit.GetLabelCaption: string;

begin
  Result := FLabel.Caption;
end;

procedure TLabelEdit.SetLabelCaption(const Value: string);

begin
  FLabel.Caption := Value;
end;

procedure TLabelEdit.WMMove(var Msg: TWMMove);

begin
  inherited;

  { заставляем TLabel 'прилипнуть' к верху TEdit }
  if FLabel <> nil then
    with FLabel do
      SetBounds(Msg.XPos, Msg.YPos - Height, Width, Height);
end;

procedure Register;
begin
  RegisterComponents('Samples', [TLabelEdit]);
end;

initialization
  { Мы используем TLabel, поэтому для обеспечения
  "поточности" необходима регистрация }
  RegisterClass(TLabel);
end.





Похожие по теме исходники

Расширение компонента TEdit

База данных без BDE

БД без BDE

Кривая Безье

 

Bezier Curves (кривые Безье)

Splay Line (Безье)

Сплайн на 8 точек (Безье)

Text Bezier Curve (Безье)

 

Кривые Безье на OpenGL




Copyright © 2004-2022 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram