⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prdatafields.pas

📁 是 delphi6的函数库
💻 PAS
字号:
unit prDataFields;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TfrmDataFields = class(TForm)
    lstDatasets: TListBox;
    lsbFields: TListBox;
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure lstDatasetsClick(Sender: TObject);
    procedure lsbFieldsDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure lstDatasetsDrawItem(Control: TWinControl; Index: Integer;
      ARect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }

  public
    { Public declarations }
    DF:TList;
  end;

var
  frmDataFields: TfrmDataFields;

implementation

uses PReport, PRDesigner;

{$R *.DFM}
procedure TfrmDataFields.Button1Click(Sender: TObject);
begin
  if lsbFields.ItemIndex >=0 then
    Modalresult := mrOk;
end;

procedure TfrmDataFields.Button2Click(Sender: TObject);
begin
  Modalresult := mrCancel;
end;

procedure TfrmDataFields.lstDatasetsClick(Sender: TObject);
var j:integer;
begin
try
  lsbFields.Clear;
  if TDatasetDef(DF[lstDatasets.ItemIndex]).slFieldLabel.Count>0 then
  for j:=0 to TDatasetDef(DF[lstDatasets.ItemIndex]).slFieldLabel.Count-1 do
    lsbFields.Items.Add(TDatasetDef(DF[lstDatasets.ItemIndex]).slFieldLabel[j]);
except end;    
end;

procedure TfrmDataFields.lsbFieldsDblClick(Sender: TObject);
begin
 if lsbFields.ItemIndex >=0 then Modalresult := mrOk;
end;

procedure TfrmDataFields.FormCreate(Sender: TObject);
var i,j:integer;
begin

  DF:=TList.Create;
  DF:=frmPRDesigner.myDatasets; //传递数据

  lstDatasets.Clear;
try
  for i:=0 to DF.Count-1 do
    lstDatasets.Items.Add(TDatasetDef(DF[i]).sDefine);
  lsbFields.Clear;
  for j:=0 to TDatasetDef(DF[0]).slFieldLabel.Count-1 do
    lsbFields.Items.Add(TDatasetDef(DF[0]).slFieldLabel[j]);
 lstDatasets.ItemIndex:=0; //必须有 否则
 lsbFields.ItemIndex:=0;  //必须有
except end;
end;

procedure TfrmDataFields.lstDatasetsDrawItem(Control: TWinControl;
  Index: Integer; ARect: TRect; State: TOwnerDrawState);
var
  Image: TImage;
  r: TRect;
begin
  r := ARect;
  r.Right := r.Left + 18;
  r.Bottom := r.Top + 16;
  OffsetRect(r, 2, 0);
  with TListBox(Control) do
  begin
    Canvas.FillRect(ARect);
    if Control = lstDatasets then
      Image := Image1 else
      Image := Image2;
    Canvas.BrushCopy(r, Image.Picture.Bitmap, Rect(0, 0, 18, 16),
      Image.Picture.Bitmap.TransparentColor);
    Canvas.TextOut(ARect.Left + 20, ARect.Top + 1, Items[Index]);
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -