Компоненты

         Координаты курсора в TMemo

         Величина табуляции в TMemo

         Как поместить графику в TListBox

         Определение момента прихода и ухода мыши с компонента

         Прокрутить текст в TMemo

         Убрать звук при нажатии Enter в TEdit


Координаты курсора в TMemo

xRow := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);
xChr := SendMessage(Memo1.Handle, EM_LINEINDEX, Zeile, 0);
xCol := Memo1.SelStart - ChrVor + 1;

Величина табуляции в TMemo

        Для этого надо послать сообщение EM_SetTabStops компоненте TMemo, в котором необходимо указать два параметра. Количество передаваемых значений и величины табуляций. Если первый параметр равняется нулю, то второй параметр игнорируется и величина табуляции сбрасывается в значение по умолчанию (32). Иначе, устанавливается величина указанная во втором параметре, причем, при единичном значении все величины табуляций будут равны, а при большем значении величины берутся из переданного массива.


{Установка одной величины табуляции}
const TabInc: longint = 40;
begin
  SendMessage(Memo1.Handle, EM_SetTabStops, 1, Longint(@TabInc));
end;

{Установка двух величин табуляции}
const TabInc: array [1..2] of longint = (10, 30);
begin
  SendMessage(Memo1.Handle, EM_SetTabStops, 2, Longint(@TabInc));
end;

Как поместить графику в TListBox

// Необходимо установить стиль ListBox'а в lbOwnerDrawFixed или 
// lbOwnerDrawVariable. В первом случае высота строк будет фиксированной. 
var
  Form1: TForm1;
  Bit:TBitmap;

implementation

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
        Rect: TRect; State: TOwnerDrawState);
var cc: TCanvas;
begin
  cc:=(Control as TListBox).Canvas cc.FillRect(rect);
  cc.Draw(Rect.Left+100,Rect.Top,Bit);
  cc.TextOut(Rect.Left,Rect.Top,'safsdf');
end;

procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
        var Height: Integer);
begin
  if index=1 then Height:=24 else Height:=16;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Bit:=TBitmap.Create;
  Bit.LoadFromFile('c:\image\image1.bmp');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Bit.Destroy;
end;

Определение момента прихода и ухода мыши с компонента

//Для этого нужно создать потомок от нужного компонента.

type
  TBoard=class(TPanel)
  public
    procedure CMMouseEnter (var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE;
  end;

var
  Form1: TForm1;
  Board: TBoard;

implementation

{$R *.DFM}
procedure TBoard.CMMouseEnter(var Message: TMessage);
begin
  Form1.Label1.Caption:='Мышь на панели';
end;

procedure TBoard.CMMouseLEAVE (var Message: TMessage);
begin
  Form1.Label1.Caption:='Мышь вне панели';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Board:=TBoard.Create(self);
  Board.Parent:=Form1;
  Board.Visible:=True;
  Board.Left:=100;
  Board.Top:=100;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Board.Destroy;
end;

Прокрутить текст в TMemo

procedure TForm1.Button1Click(Sender: TObject);
var line: integer;
begin
  line := 16;
  Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, line, 0);
  Memo1.Perform(EM_SCROLLCARET, 0, 0);
end;

Убрать звук при нажатии Enter в TEdit

uses ShellApi, Windows;

SystemParametersInfo(SPI_SETBEEP,0,nil,0); //выключить 

SysTemparametersInfo(SPI_SETBEEP,1,nil,0); //включить 
main_back.gif (3425 bytes)
Используются технологии uCoz