Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

(Components[i] asTCheckBox).Checked then begin

... сюда поместите ваш код ...

end;

end;

Кроме того, следующий код Delphi абсолютно корректен:

ifComponents[i] = CheckBox5 then Чтотоделаем;

Также, каждый компонент в Delphi имеет опубликованное (Published) свойство с именем 'Tag', значение которого вы можете задавать во время создания компонента, и затем, во время выполнения приложения, обращаться к нему для получения доступа к компоненту:

vari : Integer

begin

fori := 0 toComponentCount - 1 do

ifComponents[i] isTCheckBox then

with(Components[i] asTCheckBox) do

CaseTag of

1 : ifChecked thenDoSomethingOnBox1;

2 : ifChecked thenDoSomethingOnBox2;

… другое …

end;

end;

Для получения дополнительной информации, обратитесь к справке Delphi с ключевым словом «ComponentCount».

BitBtn

Кнопка с несколькими строчками текста III

Вот полный код проекта, создающего на кнопке во время выполнения две строчки текста.

programTwolnBtn;

usesForms,TwolnBtu in'TWOLNBTU.PAS' {Form1};

{$R *.RES}

begin

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Файл TWOLNBTU.TXT → TWOLNBTU.DFM

objectForm1: TForm1

Left = 202

Top = 98

Width = 320

Height = 176

Caption = 'Form1'

Font.Color = clRed

Font.Height = -12

Font.Name = 'Arial'

Font.Style = [fsBold]

PixelsPerInch = 96

OnActivate = ChgSpeedButton

OnCreate = ChgBitBtn

TextHeight = 15

objectSpeedButton1: TSpeedButton

Left = 144

Top = 24

Width = 65

Height = 45

Caption = 'Это двустрочный заголовок'

OnClick = ChgSpeedButton

end

object

BitBtn1: TBitBtn

Left = 32

Top = 24

Width = 69

Height = 37

Caption = 'Прерывание работы программы'

TabOrder = 0

OnClick = BitBtn1Click

end

end

Файл TWOLNBTU.PAS

unitTwolnbtu;

interface

usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;

typeTForm1 = class(TForm)

BitBtn1: TBitBtn;

SpeedButton1: TSpeedButton;

procedureChgBitBtn(Sender: TObject);

procedureChgSpeedButton(Sender: TObject);

procedureBitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

varForm1: TForm1;

implementation

{$R *.DFM}

procedureTForm1.ChgBitBtn(Sender: TObject);

VAR

R : TRect;

N : Integer;

Buff : ARRAY[0..255] OFChar;

BEGIN

WITHBitBtn1 DO BEGIN

Glyph.Canvas.Font := Self.Font;

Glyph.Width := Width-6;

Glyph.Height := Height-6;

R := Bounds(0,0,Glyph.Width,0);

StrPCopy(Buff, Caption);

Caption := '';

DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R, DT_CENTER ORDT_WORDBREAK ORDT_CALCRECT);

OffsetRect(R, (Glyph.Width-R.Right) DIV2, (Glyph.Height - R.Bottom) DIV2);

DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R, DT_CENTER ORDT_WORDBREAK);

END;

END;

procedureTForm1.ChgSpeedButton(Sender: TObject);

VAR

R : TRect;

N : Integer;

Buff : ARRAY[0..255] OFChar;

BEGIN

WITHSpeedButton1 DO BEGIN

Glyph.Canvas.Font := Self.Font;

Glyph.Width := Width-6;

Glyph.Height := Height-6;

R := Bounds(0,0,Glyph.Width,0);

StrPCopy(Buff, Caption);

Caption := '';

DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R,DT_CENTER ORDT_WORDBREAK ORDT_CALCRECT);

OffsetRect(R, (Glyph.Width-R.Right) DIV2, (Glyph.Height - R.Bottom) DIV2);

DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R,DT_CENTER ORDT_WORDBREAK);

END;

END;

procedureTForm1.BitBtn1Click(Sender: TObject);

begin

Close;

end;

end.

-Dennis Passmore

ComboBox

Хочу реализовать правильный выпадающий контрол (combo). Как это сделать?

Nomadicотвечает:

Когда-то потратил немало времени на разбор, как же все таки работают дропдаун-контролы. В итоге мной был написан маленький юнит, который я положил у себя в каталоге Demo для ознакомления интересующихся. Он маленький (его основная задача — показать принцип работы, а все остальное — как реализуешь), я думаю, что большинству он пригодиться, поэтому публикую здесь. Касательно твоего вопроса - реализуй вместо листбокса выпадающий контрол, который даст тебе функциональность дерева.

unitedit1;

interface

usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TPopupListbox = class(TCustomListbox)

protected

procedureCreateParams( varParams: TCreateParams); override;

procedureCreateWnd; override;

procedureMouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;

end;

TTestDropEdit = class(TEdit)

private

FPickList: TPopupListbox;

procedureCMCancelMode( varMessage: TCMCancelMode); messageCM_CancelMode;

procedureWMKillFocus( var Message: TMessage); messageWM_KillFocus;

protected

procedureCloseUp(Accept: Boolean);

procedureDropDown;

procedureWndProc( var Message: TMessage); override;

public

constructorCreate(Owner: TComponent); override;

destructorDestroy; override;

end;

implementation

{ TPopupListBox }

procedureTPopupListBox.CreateParams( varParams: TCreateParams);

begin

inherited;

withParams do begin

Style := Style orWS_BORDER;

ExStyle := WS_EX_TOOLWINDOW orWS_EX_TOPMOST;

WindowClass.Style := CS_SAVEBITS;

end;

end;

procedureTPopupListbox.CreateWnd;

begin

inheritedCreateWnd;

Windows.SetParent(Handle, 0);

CallWindowProc(DefWndProc, Handle, WM_SETFOCUS, 0, 0);

end;

procedureTPopupListbox.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

inheritedMouseUp(Button, Shift, X, Y);

TTestDropEdit(Owner).CloseUp((X >= 0) and(Y >= 0) and(X < Width) and(Y < Height));

end;

{ TTestDropEdit }

constructorTTestDropEdit.Create(Owner: TComponent);

begin

inheritedCreate(Owner);

Parent := Owner asTWinControl;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x