Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.0.6

Озеров Валентин

Шрифт:

Массив Edit-компонентов

Procedure DoSomethingWithEditControls;

Var K: Integer;

 EditArray: Array[0..99] of Tedit;

begin

 Try

For K:= 0 to 99 do begin

EditArray[K]:= TEdit.Create(Self);

EditArray[K].Parent:= Self;

SetSomeOtherPropertiesOfTEdit; {Устанавливаем необходимые свойства TEdit}

Left:= 100; Top:= K*10;

OnMouseMove:= WhatToDoWhenMouseIsMoved; {Что-то
делаем при перемещении мыши}

end;

DoWhateverYouWantToDoWithTheseEdits; {Делаем все что хотим с полученным массивом Edit-компонентов}

 Finally

 For K:= 0to 99do EditArray[K].Free;

end;

Примечание: узнать доступные свойства компонента можно непосредственно в инспекторе объектов и (или) в текстовом режиме вашей формы (щелкните на форме правой кнопкой мыши и выберите пункт View as Text)

Label

3D-рамка для текстовых компонентов

Один из примеров создания текстового компонента с трехмерной декоративной контурной рамкой (для создания компонента потребовалось около получаса. Он демонстрирует только принцип получения рамки. Я не стал колдовать над свойствами типа ParentFont…, т.к. это заняло бы еще немало времени и места).

unit IDSLabel;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;

type TIDSLabel = class(TBevel)

private

 { Private declarations }

 FAlignment: TAlignment;

 FCaption: String;

 FFont: TFont;

 FOffset: Byte;

 FOnChange: TNotifyEvent;

 procedure SetAlignment(taIn : TAlignment);

 procedure SetCaption(const strIn: String);

 procedure SetFont(fntNew: TFont);

 procedure SetOffset(bOffNew: Byte);

protected

{ Protected declarations }

 constructor Create(compOwn: TComponent); override;

 destructor Destroy; override;

 procedure Paint; override;

public

{ Public declarations }

published

{ Published declarations }

 property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;

 property Caption: String read FCaption write SetCaption;

 property Font: TFont read FFont write SetFont;

 property Offset: Byte read FOffset write SetOffset;

 property OnChange: TNotifyEvent read FOnChange write FOnChange;

end;

implementation

constructor TIDSLabel.Create;

begin

 inherited Create(compOwn);

 FFont:= TFont.Create;

 with compOwn as TForm do FFont.Assign(Font);

 Offset:= 4;

 Height:= 15;

end;

destructor TIDSLabel.Destroy;

begin

 FFont.Free;

 inherited Destroy;

end;

procedure TIDSLabel.Paint;

var

 wXPos, wYPos : Word;

begin

 {Рисуем
рамку}

 inherited Paint;

 {Назначаем шрифт}

 Canvas.Font.Assign(Font);

 {Вычисляем вертикальную позицию}

 wYPos:= (Height – Canvas.TextHeight(Caption)) div 2;

 {Вычисляем горизонтальную позицию}

 wXPos:= Offset;

 case alignment of

 taRightJustify: wXPos:= Width – Canvas.TextWidth(Caption) – Offset;

 taCenter: wXPos := (Width – Canvas.TextWidth(Caption)) div 2;

 end;

 Canvas.Brush:= Parent.Brush;

 Canvas.TextOut(wXPos,wYPos,Caption);

end;

procedure TIDSLabel.SetAlignment;

begin

 FAlignment:= taIn;

 Invalidate;

end;

procedure TIDSLabel.SetCaption;

begin

 FCaption:= strIn;

 if Assigned(FOnChange) then FOnChange(Self);

 Invalidate;

end;

procedure TIDSLabel.SetFont;

begin

 FFont.Assign(fntNew);

 Invalidate;

Поделиться:
Популярные книги

Идеальный мир для Лекаря 15

Сапфир Олег
15. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 15

Младший сын князя

Ткачев Андрей Сергеевич
1. Аналитик
Фантастика:
фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Младший сын князя

Попала, или Кто кого

Юнина Наталья
Любовные романы:
современные любовные романы
5.88
рейтинг книги
Попала, или Кто кого

Имперец. Том 4

Романов Михаил Яковлевич
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 4

Проданная Истинная. Месть по-драконьи

Белова Екатерина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Проданная Истинная. Месть по-драконьи

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Приручитель женщин-монстров. Том 2

Дорничев Дмитрий
2. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 2

Путь Шедара

Кораблев Родион
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Путь Шедара

Последний Паладин. Том 4

Саваровский Роман
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 4

Возрождение Феникса. Том 1

Володин Григорий Григорьевич
1. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.79
рейтинг книги
Возрождение Феникса. Том 1

Я все еще не князь. Книга XV

Дрейк Сириус
15. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я все еще не князь. Книга XV

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

В теле пацана

Павлов Игорь Васильевич
1. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана