Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Unit
  DevExpressCEB;
 
Interface
 
Uses
  SysUtils,
  Classes,
  Controls,
  cxControls,
  cxContainer,
  cxEdit,
  cxTextEdit,
  cxClasses,
  Types,
  cxMRUEdit,
  cxGridCustomView,
  cxGridCustomTableView,
  cxGridBandedTableView,
  cxMemo;
 
Type
  TcxMemoCEB = Class(TcxMemo)
  Private
    Procedure EditPopupMenuClick(Sender: TObject);
  Protected
    Function DoShowPopupMenu(AMenu: TComponent; X, Y: Integer): Boolean;
      Override;
    Procedure DoContextPopup(MousePos: TPoint; Var Handled: Boolean); Override;
    Procedure UpdateEditPopupMenuItems(APopupMenu: TComponent); Virtual;
    Function GetEditPopupMenuInstance: TComponent; Virtual;
    Procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); Override;
  End;
 
  TcxTextEditCEB = Class(TcxTextEdit)
  Private
    Procedure EditPopupMenuClick(Sender: TObject);
  Protected
    Function DoShowPopupMenu(AMenu: TComponent; X, Y: Integer): Boolean;
      Override;
    Procedure DoContextPopup(MousePos: TPoint; Var Handled: Boolean); Override;
    Procedure UpdateEditPopupMenuItems(APopupMenu: TComponent); Virtual;
    Function GetEditPopupMenuInstance: TComponent; Virtual;
    Procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); Override;
  End;
 
  TcxMRUEditCEB = Class(TcxMRUEdit)
  Private
    Procedure EditPopupMenuClick(Sender: TObject);
  Protected
    Function DoShowPopupMenu(AMenu: TComponent; X, Y: Integer): Boolean;
      Override;
    Procedure DoContextPopup(MousePos: TPoint; Var Handled: Boolean); Override;
    Procedure UpdateEditPopupMenuItems(APopupMenu: TComponent); Virtual;
    Function GetEditPopupMenuInstance: TComponent; Virtual;
    Procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); Override;
  End;
 
Procedure Register;
 
Implementation
 
Uses
  Menus;
   
Procedure Register;
Begin
  RegisterComponents('CEB', [TcxMemoCEB, TcxTextEditCEB, TcxMRUEditCEB]);
End;
 
{ TcxMemoCEB }
 
Procedure TcxMemoCEB.DoContextPopup(MousePos: TPoint; Var Handled: Boolean);
Var
  P: TPoint;
Begin
  Inherited;
  If Not Handled Then
  Begin
    If (MousePos.X = -1) And (MousePos.Y = -1) Then
      P := ClientToScreen(Point(0, 0))
    Else
      P := ClientToScreen(MousePos);
    Handled := (Assigned(dxISpellChecker) And
      dxISpellChecker.QueryPopup(PopupMenu, MousePos)) Or
      DoShowPopupMenu(PopupMenu, P.X, P.Y);
  End;
End;
 
Function TcxMemoCEB.DoShowPopupMenu(AMenu: TComponent; X, Y: Integer): Boolean;
Begin
  If Assigned(AMenu) Then
    Result := Inherited DoShowPopupMenu(AMenu, X, Y)
  Else
  Begin
    UpdateEditPopupMenuItems(GetEditPopupMenuInstance);
    Result := Inherited DoShowPopupMenu(GetEditPopupMenuInstance, X, Y);
    EditingChanged;
  End;
End;
 
Procedure TcxMemoCEB.EditPopupMenuClick(Sender: TObject);
Begin
  //
End;
 
Function TcxMemoCEB.GetEditPopupMenuInstance: TComponent;
 
Function NewItem(Const ACaption: String; ATag: Integer): TMenuItem;
Begin
  Result := TMenuItem.Create(Self);
  With Result Do
  Begin
    Caption := ACaption;
    Tag := ATag;
    OnClick := EditPopupMenuClick;
  End;
End;
 
Var
  APopupMenu: TPopupMenu;
Begin
  If Assigned(PopupMenu) Then
  Begin
    Result := PopupMenu;
    Exit;
  End;
  APopupMenu := TPopupMenu.Create(Self);
  PopupMenu := APopupMenu;
 
  Result := APopupMenu;
End;
 
Procedure TcxMemoCEB.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
Var
  Handled: Boolean;
Begin
  If Button <> mbRight Then
    Inherited MouseDown(Button, Shift, X, Y)
  Else
    DoContextPopup(Point(X, Y), Handled);
End;
 
Procedure TcxMemoCEB.UpdateEditPopupMenuItems(APopupMenu: TComponent);
Begin
  If Not (APopupMenu Is TPopupMenu) Then
    Exit;
  InnerMemo.ReadOnly := Not DataBinding.CanModify Or ActiveProperties.ReadOnly;
 
  InnerMemo.ReadOnly := RealReadOnly;
End;
 
{ TcxTextEditCEB }
 
Procedure TcxTextEditCEB.DoContextPopup(MousePos: TPoint; Var Handled: Boolean);
Var
  P: TPoint;
Begin
  Inherited;
  If Not Handled Then
  Begin
    If (MousePos.X = -1) And (MousePos.Y = -1) Then
      P := ClientToScreen(Point(0, 0))
    Else
      P := ClientToScreen(MousePos);
    Handled := (Assigned(dxISpellChecker) And
      dxISpellChecker.QueryPopup(PopupMenu, MousePos)) Or
      DoShowPopupMenu(PopupMenu, P.X, P.Y);
  End;
End;
 
Function TcxTextEditCEB.DoShowPopupMenu(AMenu: TComponent;
  X, Y: Integer): Boolean;
Begin
  If Assigned(AMenu) Then
    Result := Inherited DoShowPopupMenu(AMenu, X, Y)
  Else
  Begin
    UpdateEditPopupMenuItems(GetEditPopupMenuInstance);
    Result := Inherited DoShowPopupMenu(GetEditPopupMenuInstance, X, Y);
    EditingChanged;
  End;
End;
 
Procedure TcxTextEditCEB.EditPopupMenuClick(Sender: TObject);
Begin
  //
End;
 
Function TcxTextEditCEB.GetEditPopupMenuInstance: TComponent;
 
Function NewItem(Const ACaption: String; ATag: Integer): TMenuItem;
Begin
  Result := TMenuItem.Create(Self);
  With Result Do
  Begin
    Caption := ACaption;
    Tag := ATag;
    OnClick := EditPopupMenuClick;
  End;
End;
 
Var
  APopupMenu: TPopupMenu;
Begin
  If Assigned(PopupMenu) Then
  Begin
    Result := PopupMenu;
    Exit;
  End;
  APopupMenu := TPopupMenu.Create(Self);
  PopupMenu := APopupMenu;
 
  Result := APopupMenu;
End;
 
Procedure TcxTextEditCEB.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
Var
  Handled: Boolean;
Begin
  If Button <> mbRight Then
    Inherited MouseDown(Button, Shift, X, Y)
  Else
    DoContextPopup(Point(X, Y), Handled);
End;
 
Procedure TcxTextEditCEB.UpdateEditPopupMenuItems(APopupMenu: TComponent);
Begin
  If Not (APopupMenu Is TPopupMenu) Then
    Exit;
  InnerTextEdit.ReadOnly := Not DataBinding.CanModify Or
    ActiveProperties.ReadOnly;
 
  InnerTextEdit.ReadOnly := RealReadOnly;
End;
 
{ TcxMRUEditCEB }
 
Procedure TcxMRUEditCEB.DoContextPopup(MousePos: TPoint; Var Handled: Boolean);
Var
  P: TPoint;
Begin
  Inherited;
  If Not Handled Then
  Begin
    If (MousePos.X = -1) And (MousePos.Y = -1) Then
      P := ClientToScreen(Point(0, 0))
    Else
      P := ClientToScreen(MousePos);
    Handled := (Assigned(dxISpellChecker) And
      dxISpellChecker.QueryPopup(PopupMenu, MousePos)) Or
      DoShowPopupMenu(PopupMenu, P.X, P.Y);
  End;
End;
 
Function TcxMRUEditCEB.DoShowPopupMenu(AMenu: TComponent;
  X, Y: Integer): Boolean;
Begin
  If Assigned(AMenu) Then
    Result := Inherited DoShowPopupMenu(AMenu, X, Y)
  Else
  Begin
    UpdateEditPopupMenuItems(GetEditPopupMenuInstance);
    Result := Inherited DoShowPopupMenu(GetEditPopupMenuInstance, X, Y);
    EditingChanged;
  End;
End;
 
Procedure TcxMRUEditCEB.EditPopupMenuClick(Sender: TObject);
Begin
  //
End;
 
Function TcxMRUEditCEB.GetEditPopupMenuInstance: TComponent;
 
Function NewItem(Const ACaption: String; ATag: Integer): TMenuItem;
Begin
  Result := TMenuItem.Create(Self);
  With Result Do
  Begin
    Caption := ACaption;
    Tag := ATag;
    OnClick := EditPopupMenuClick;
  End;
End;
 
Var
  APopupMenu: TPopupMenu;
Begin
  If Assigned(PopupMenu) Then
  Begin
    Result := PopupMenu;
    Exit;
  End;
  APopupMenu := TPopupMenu.Create(Self);
  PopupMenu := APopupMenu;
 
  Result := APopupMenu;
End;
 
Procedure TcxMRUEditCEB.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
Var
  Handled: Boolean;
Begin
  If Button <> mbRight Then
    Inherited MouseDown(Button, Shift, X, Y)
  Else
    DoContextPopup(Point(X, Y), Handled);
End;
 
Procedure TcxMRUEditCEB.UpdateEditPopupMenuItems(APopupMenu: TComponent);
Begin
  If Not (APopupMenu Is TPopupMenu) Then
    Exit;
  InnerTextEdit.ReadOnly := Not DataBinding.CanModify Or
    ActiveProperties.ReadOnly;
 
  InnerTextEdit.ReadOnly := RealReadOnly;
End;
 
End.
 

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 09:05 19-02-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru