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

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

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

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

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

vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
.pas
-------
unit Unit20;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, dxSkinsCore, dxSkinMcSkin,
  dxSkinscxPCPainter, cxCustomData, cxTL, cxTextEdit, cxTLdxBarBuiltInMenu, cxFilter, cxData, cxDataStorage, cxEdit, DB,
  cxDBData, cxSplitter, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
  cxGridDBBandedTableView, cxInplaceContainer, cxClasses, cxGridLevel, cxGrid;
 
type
  TForm20 = class(TForm)
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxTreeList1: TcxTreeList;
    cxTreeList1Column1: TcxTreeListColumn;
    SplitterMain: TcxSplitter;
    cxGrid1DBBandedTableView1: TcxGridDBBandedTableView;
    procedure cxGrid1DBBandedTableView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept:
        Boolean);
    procedure cxGrid1DBBandedTableView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure cxGrid1DBBandedTableView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  private
    FDragAccept: Boolean;
    FNewBand: TcxGridBand;
    FGridBandHeaderMovingObject: TcxGridBandHeaderMovingObject;
    FBandDragAccept: Boolean;
    FDraggedBandID: Integer;
    FOgrigY: Integer;
  public
  end;
 
type
  TcxGridBandHeaderMovingObjectAccess = class(TcxGridBandHeaderMovingObject);
 
var
  Form20: TForm20;
 
implementation
 
{$R *.dfm}
 
procedure TForm20.cxGrid1DBBandedTableView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var
    Accept: Boolean);
var
  a: Boolean;
begin
  a := true;
  Accept := Source = cxTreeList1;
  FDragAccept := Accept;
  if not Accept then Exit;
  if not Assigned(FGridBandHeaderMovingObject) then
    begin
      FOgrigY := Y;
      FNewBand := cxGrid1DBBandedTableView1.Bands.Add;
      FNewBand.Caption := cxTreeList1.FocusedNode.Values[0];
      FNewBand.Index := 0;
      FNewBand.Width := 100;
      FDraggedBandID := FNewBand.ID;
      FGridBandHeaderMovingObject := TcxGridBandHeaderMovingObject.Create(TcxGridSite(Sender));
      cxTreeList1.EndDrag(False);
      FGridBandHeaderMovingObject.Init(Mouse.CursorPos, cxGrid1DBBandedTableView1.ViewInfo.GetHitTest(10, 10));
      TcxGridBandHeaderMovingObjectAccess(FGridBandHeaderMovingObject).BeginDragAndDrop;
      cxGrid1DBBandedTableView1.Controller.PressedBand := FNewBand;
    end;
end;
 
procedure TForm20.cxGrid1DBBandedTableView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if Assigned(FGridBandHeaderMovingObject) then
    begin
      FGridBandHeaderMovingObject.CurMousePos := cxGrid1.ClientToScreen(Point(X, Y + FOgrigY));
      TcxGridBandHeaderMovingObjectAccess(FGridBandHeaderMovingObject).DragAndDrop(
       cxGrid1.ScreenToClient(Mouse.CursorPos), FBandDragAccept);
    end;
end;
 
procedure TForm20.cxGrid1DBBandedTableView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y:
    Integer);
begin
  if Assigned(FGridBandHeaderMovingObject) then
    begin
      TcxGridBandHeaderMovingObjectAccess(FGridBandHeaderMovingObject).EndDragAndDrop(FBandDragAccept);
      FreeAndNil(FGridBandHeaderMovingObject);
      if not FBandDragAccept then
        cxGrid1DBBandedTableView1.Bands.Delete(cxGrid1DBBandedTableView1.Bands.FindItemID(FDraggedBandID).Index);
    end;
end;
 
end.
 
.dfm
-------
 
object Form20: TForm20
  Left = 0
  Top = 0
  Caption = 'Form20'
  ClientHeight = 503
  ClientWidth = 889
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object cxGrid1: TcxGrid
    Left = 255
    Top = 0
    Width = 634
    Height = 503
    Align = alClient
    TabOrder = 2
    object cxGrid1DBBandedTableView1: TcxGridDBBandedTableView
      OnDragOver = cxGrid1DBBandedTableView1DragOver
      OnMouseMove = cxGrid1DBBandedTableView1MouseMove
      OnMouseUp = cxGrid1DBBandedTableView1MouseUp
      DataController.Summary.DefaultGroupSummaryItems = <>
      DataController.Summary.FooterSummaryItems = <>
      DataController.Summary.SummaryGroups = <>
      OptionsView.GroupByBox = False
      Bands = <
        item
          Caption = #1054#1073#1098#1077#1082#1090' 1'
          Width = 189
        end
        item
          Caption = #1054#1073#1098#1077#1082#1090' 2'
          Width = 143
        end
        item
          Caption = #1054#1073#1098#1077#1082#1090' 3'
          Width = 169
        end>
    end
    object cxGrid1Level1: TcxGridLevel
      GridView = cxGrid1DBBandedTableView1
    end
  end
  object cxTreeList1: TcxTreeList
    Left = 0
    Top = 0
    Width = 250
    Height = 503
    Align = alLeft
    Bands = <
      item
      end>
    DragMode = dmAutomatic
    OptionsData.Editing = False
    OptionsData.Deleting = False
    OptionsData.Inserting = True
    OptionsView.Headers = False
    TabOrder = 0
    Data = {
      00000500490100000F00000044617461436F6E74726F6C6C6572310100000012
      000000546378537472696E6756616C75655479706505000000445855464D5400
      00060000001A043E04400435043D044C04445855464D54000007000000120435
      04420432044C0420003100445855464D5400000700000012043504420432044C
      0420003200445855464D5400000700000012043504420432044C042000330044
      5855464D5400000700000012043504420432044C042000340001000000000000
      001200040000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF0100000008
      000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF0200000008000000000000
      000000FFFFFFFFFFFFFFFFFFFFFFFF0300000008000000000000000000FFFFFF
      FFFFFFFFFFFFFFFFFF0400000008020000000000000000FFFFFFFFFFFFFFFFFF
      FFFFFF0A0001000000}
    object cxTreeList1Column1: TcxTreeListColumn
      DataBinding.ValueType = 'String'
      Position.ColIndex = 0
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
  end
  object SplitterMain: TcxSplitter
    Left = 250
    Top = 0
    Width = 5
    Height = 503
    ResizeUpdate = True
    Control = cxTreeList1
  end
end
 


Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 21:34 29-12-2011 | Исправлено: vladman, 21:35 29-12-2011
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум 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