Как поместить графику в TListBox
Определение момента прихода и ухода мыши с компонента
Убрать звук при нажатии Enter в TEdit
xRow := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0); xChr := SendMessage(Memo1.Handle, EM_LINEINDEX, Zeile, 0); xCol := Memo1.SelStart - ChrVor + 1;
Для этого надо послать сообщение 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;
// Необходимо установить стиль 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;
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;
uses ShellApi, Windows; SystemParametersInfo(SPI_SETBEEP,0,nil,0); //выключить SysTemparametersInfo(SPI_SETBEEP,1,nil,0); //включить