![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как создать каретку своей собственной формыDelphi , ОС и Железо , Мышка и КурсорАвтор: http://www.swissdelphicenter.ch { The example below demonstrates creating custom caret: } unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Image1: TImage; Edit1: TEdit; procedure Memo1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Edit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin CreateCaret(Memo1.Handle, Image1.Picture.Bitmap.Handle, 0, 0); ShowCaret(Memo1.Handle); end; procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin CreateCaret(Edit1.Handle, 0, 10, 4); ShowCaret(Edit1.Handle); end; end. {The form file source (*.dfm) } object Form1: TForm1 Left = 192 Top = 107 Width = 544 Height = 375 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Image1: TImage Left = 12 Top = 4 Width = 16 Height = 16 AutoSize = True Picture.Data = { 07544269746D6170B6020000424DB602000000000000B6000000280000001000 0000100000000100100000000000000200000000000000000000100000000000 000000000000000080000080000000808000800000008000800080800000C0C0 C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF FF00000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000FF7FFF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7F 00000000FF7FFF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000 0000FF7FFF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 000000000000FF7FFF7FFF7F0000000000000000FF7FFF7FFF7FFF7F00000000 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000 0000000000000000FF7FFF7FFF7F00000000FF7FFF7FFF7FFF7F000000000000 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 000000000000000000000000FF7FFF7FFF7FFF7FFF7F00000000000000000000 0000000000000000000000000000FF7FFF7FFF7FFF7F00000000000000000000 0000000000000000000000000000FF7FFF7FFF7F000000000000000000000000 00000000000000000000000000000000FF7F0000000000000000000000000000 0000} end object Memo1: TMemo Left = 12 Top = 36 Width = 149 Height = 149 Lines.Strings = ('Memo1') TabOrder = 0 OnMouseDown = Memo1MouseDown end object Edit1: TEdit Left = 220 Top = 60 Width = 121 Height = 21 TabOrder = 1 Text = 'Edit1' OnMouseDown = Edit1MouseDown end end Приведенный код - пример создания пользовательского курсора (caret) в Delphi. Курсор обычно используется для указания позиции вставки в текстовом контроле, таком как Вот шаг за шагом, как это работает:
Обратите внимание, что это код предполагает, что изображение, используемое для курсора (в этом случае, Вот некоторые предложения по улучшению кода:
Как создать каретку своей собственной формы для Memo и Edit компонентов в Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Мышка и Курсор ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |