亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? unitasdbgrids.pas

?? 仿速達界面控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
procedure TGridDataLink.UpdateData;
begin
  FInUpdateData := True;
  try
    if FModified then
      FGrid.UpdateData;
    FModified := False;
  finally
    FInUpdateData := False;
  end;
end;

function TGridDataLink.GetMappedIndex(ColIndex: Integer): Integer;
begin
  if (0 <= ColIndex) and (ColIndex < FFieldCount) then
    Result := FFieldMap[ColIndex]
  else
    Result := -1;
end;

procedure TGridDataLink.Reset;
begin
  if FModified then
    RecordChanged(nil)
  else
    Dataset.Cancel;
end;

function TGridDataLink.IsAggRow(Value: Integer): Boolean;
begin
  Result := False;
end;

procedure TGridDataLink.BuildAggMap;
begin
end;

{ TColumnTitle }

constructor TColumnTitle.Create(Column: TColumn);
begin
  inherited Create;
  FLayerCaption := TStringList.Create;
  FColumn := Column;
  FFont := TFont.Create;
  FFont.Assign(DefaultFont);
  FFont.OnChange := FontChanged;
end;

destructor TColumnTitle.Destroy;
begin
  FFont.Free;
  FLayerCaption.Free;
  inherited Destroy;
end;

procedure TColumnTitle.Assign(Source: TPersistent);
begin
  if Source is TColumnTitle then
  begin
    if cvTitleAlignment in TColumnTitle(Source).FColumn.FAssignedValues then
      Alignment := TColumnTitle(Source).Alignment;
    if cvTitleColor in TColumnTitle(Source).FColumn.FAssignedValues then
      Color := TColumnTitle(Source).Color;
    if cvTitleCaption in TColumnTitle(Source).FColumn.FAssignedValues then
      Caption := TColumnTitle(Source).Caption;
    if cvTitleFont in TColumnTitle(Source).FColumn.FAssignedValues then
      Font := TColumnTitle(Source).Font;
  end
  else
    inherited Assign(Source);
end;

function TColumnTitle.DefaultAlignment: TAlignment;
begin
  Result := taLeftJustify;
end;

function TColumnTitle.DefaultColor: TColor;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := FColumn.GetGrid;
  if Assigned(Grid) then
    Result := Grid.FixedColor
  else
    Result := clBtnFace;
end;

function TColumnTitle.DefaultFont: TFont;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := FColumn.GetGrid;
  if Assigned(Grid) then
    Result := Grid.TitleFont
  else
    Result := FColumn.Font;
end;

function TColumnTitle.DefaultCaption: string;
var
  Field             : TField;
begin
  Field := FColumn.Field;
  if Assigned(Field) then
    Result := Field.DisplayName
  else
    if FColumn.RowNumber then
      Result := '行號'
    else
      Result := FColumn.FieldName;
end;

procedure TColumnTitle.FontChanged(Sender: TObject);
begin
  Include(FColumn.FAssignedValues, cvTitleFont);
  FColumn.Changed(True);
end;

function TColumnTitle.GetAlignment: TAlignment;
begin
  if cvTitleAlignment in FColumn.FAssignedValues then
    Result := FAlignment
  else
    Result := DefaultAlignment;
end;

function TColumnTitle.GetColor: TColor;
begin
  if cvTitleColor in FColumn.FAssignedValues then
    Result := FColor
  else
    Result := DefaultColor;
end;

function TColumnTitle.GetCaption: string;
begin
  if cvTitleCaption in FColumn.FAssignedValues then
    Result := FCaption
  else
    Result := DefaultCaption;
end;

function TColumnTitle.GetFont: TFont;
var
  Save              : TNotifyEvent;
  Def               : TFont;
begin
  if not (cvTitleFont in FColumn.FAssignedValues) then
  begin
    Def := DefaultFont;
    if (FFont.Handle <> Def.Handle) or (FFont.Color <> Def.Color) then
    begin
      Save := FFont.OnChange;
      FFont.OnChange := nil;
      FFont.Assign(DefaultFont);
      FFont.OnChange := Save;
    end;
  end;
  Result := FFont;
end;

function TColumnTitle.IsAlignmentStored: Boolean;
begin
  Result := (cvTitleAlignment in FColumn.FAssignedValues) and
    (FAlignment <> DefaultAlignment);
end;

function TColumnTitle.IsColorStored: Boolean;
begin
  Result := (cvTitleColor in FColumn.FAssignedValues) and
    (FColor <> DefaultColor);
end;

function TColumnTitle.IsFontStored: Boolean;
begin
  Result := (cvTitleFont in FColumn.FAssignedValues);
end;

function TColumnTitle.IsCaptionStored: Boolean;
begin
  Result := (cvTitleCaption in FColumn.FAssignedValues) and
    (FCaption <> DefaultCaption);
end;

procedure TColumnTitle.RefreshDefaultFont;
var
  Save              : TNotifyEvent;
begin
  if (cvTitleFont in FColumn.FAssignedValues) then
    Exit;
  Save := FFont.OnChange;
  FFont.OnChange := nil;
  try
    FFont.Assign(DefaultFont);
  finally
    FFont.OnChange := Save;
  end;
end;

procedure TColumnTitle.RestoreDefaults;
var
  FontAssigned      : Boolean;
begin
  FontAssigned := cvTitleFont in FColumn.FAssignedValues;
  FColumn.FAssignedValues := FColumn.FAssignedValues - ColumnTitleValues;
  FCaption := '';
  RefreshDefaultFont;
  { If font was assigned, changing it back to default may affect grid title
    height, and title height changes require layout and redraw of the grid. }
  FColumn.Changed(FontAssigned);
end;

procedure TColumnTitle.SetAlignment(Value: TAlignment);
begin
  if (cvTitleAlignment in FColumn.FAssignedValues) and (Value = FAlignment) then
    Exit;
  FAlignment := Value;
  Include(FColumn.FAssignedValues, cvTitleAlignment);
  FColumn.Changed(False);
end;

procedure TColumnTitle.SetColor(Value: TColor);
begin
  if (cvTitleColor in FColumn.FAssignedValues) and (Value = FColor) then
    Exit;
  FColor := Value;
  Include(FColumn.FAssignedValues, cvTitleColor);
  FColumn.Changed(False);
end;

procedure TColumnTitle.SetFont(Value: TFont);
begin
  FFont.Assign(Value);
end;

procedure TColumnTitle.SetCaption(const Value: string);

  procedure SetLayerCaption;
  var
    P               : PChar;
    S               : string;
  begin
    FLayerCaption.Clear;
    P := PChar(FCaption);
    S := '';
    while P^ <> #0 do
    begin
      if P^ = '|' then
      begin
        FLayerCaption.Add(S);
        S := '';
      end
      else
      begin
        S := S + P^;
      end;
      Inc(P);
    end;
    FLayerCaption.Add(S);
  end;
var
  Grid              : TCustomASDBGrid;
begin
  if Column.IsStored then
  begin
    if (cvTitleCaption in FColumn.FAssignedValues) and (Value = FCaption) then
      Exit;
    FCaption := Value;
    SetLayerCaption;
    Include(Column.FAssignedValues, cvTitleCaption);
    Column.Changed(False);
  end
  else
  begin
    Grid := Column.GetGrid;
    if Assigned(Grid) and (Grid.Datalink.Active) and Assigned(Column.Field) then
      Column.Field.DisplayLabel := Value;
  end;
end;

{ TColumn }

constructor TColumn.Create(Collection: TCollection);
const
  CS                : WideString = '¥';
var
  Grid              : TCustomASDBGrid;
begin
  Grid := nil;
  if Assigned(Collection) and (Collection is TASDBGridColumns) then
    Grid := TASDBGridColumns(Collection).Grid;
  if Assigned(Grid) then
    Grid.BeginLayout;
  try
    inherited Create(Collection);
    FDropDownRows := 7;
    FButtonStyle := cbsAuto;
    FCurrencySymbol := CS[1];
    FFont := TFont.Create;
    FFont.Assign(DefaultFont);
    FFont.OnChange := FontChanged;
    FImeMode := imDontCare;
    FImeName := Screen.DefaultIme;
    FTitle := CreateTitle;
    FVisible := True;
    FExpanded := True;
    FRowNumber := False;
    FRowNumberFrom := 1;
    FStored := True;
    FWidthFixed := False;
  finally
    if Assigned(Grid) then
      Grid.EndLayout;
  end;
end;

destructor TColumn.Destroy;
begin
  FTitle.Free;
  FFont.Free;
  FPickList.Free;
  inherited Destroy;
end;

procedure TColumn.Assign(Source: TPersistent);
begin
  if Source is TColumn then
  begin
    if Assigned(Collection) then
      Collection.BeginUpdate;
    try
      RestoreDefaults;
      FieldName := TColumn(Source).FieldName;
      if cvColor in TColumn(Source).AssignedValues then
        Color := TColumn(Source).Color;
      if cvWidth in TColumn(Source).AssignedValues then
        Width := TColumn(Source).Width;
      if cvFont in TColumn(Source).AssignedValues then
        Font := TColumn(Source).Font;
      if cvImeMode in TColumn(Source).AssignedValues then
        ImeMode := TColumn(Source).ImeMode;
      if cvImeName in TColumn(Source).AssignedValues then
        ImeName := TColumn(Source).ImeName;
      if cvAlignment in TColumn(Source).AssignedValues then
        Alignment := TColumn(Source).Alignment;
      if cvReadOnly in TColumn(Source).AssignedValues then
        ReadOnly := TColumn(Source).ReadOnly;
      Title := TColumn(Source).Title;
      DropDownRows := TColumn(Source).DropDownRows;
      ButtonStyle := TColumn(Source).ButtonStyle;
      PickList := TColumn(Source).PickList;
      PopupMenu := TColumn(Source).PopupMenu;
      FVisible := TColumn(Source).FVisible;
      FExpanded := TColumn(Source).FExpanded;
    finally
      if Assigned(Collection) then
        Collection.EndUpdate;
    end;
  end
  else
    inherited Assign(Source);
end;

function TColumn.CreateTitle: TColumnTitle;
begin
  Result := TColumnTitle.Create(Self);
end;

function TColumn.DefaultAlignment: TAlignment;
begin
  if Assigned(Field) then
    Result := FField.Alignment
  else
    Result := taLeftJustify;
end;

function TColumn.DefaultColor: TColor;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := GetGrid;
  if Assigned(Grid) then
    Result := Grid.Color
  else
    Result := clWindow;
end;

function TColumn.DefaultFont: TFont;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := GetGrid;
  if Assigned(Grid) then
    Result := Grid.Font
  else
    Result := FFont;
end;

function TColumn.DefaultImeMode: TImeMode;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := GetGrid;
  if Assigned(Grid) then
    Result := Grid.ImeMode
  else
    Result := FImeMode;
end;

function TColumn.DefaultImeName: TImeName;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := GetGrid;
  if Assigned(Grid) then
    Result := Grid.ImeName
  else
    Result := FImeName;
end;

function TColumn.DefaultReadOnly: Boolean;
var
  Grid              : TCustomASDBGrid;
begin
  Grid := GetGrid;
  Result := (Assigned(Grid) and Grid.ReadOnly) or
    (Assigned(Field) and FField.ReadOnly);
end;

function TColumn.DefaultWidth: Integer;
var
  W                 : Integer;
  RestoreCanvas     : Boolean;
  TM                : TTextMetric;
begin
  if GetGrid = nil then
  begin
    Result := 64;
    Exit;
  end;
  with GetGrid do
  begin
    if Assigned(Field) then
    begin
      RestoreCanvas := not HandleAllocated;
      if RestoreCanvas then
        Canvas.Handle := GetDC(0);
      try
        Canvas.Font := Self.Font;
        GetTextMetrics(Canvas.Handle, TM);
        Result := Field.DisplayWidth * (Canvas.TextWidth('0') - TM.tmOverhang)
          + TM.tmOverhang + 4;
        if dgTitles in Options then
        begin
          Canvas.Font := Title.Font;
          W := Canvas.TextWidth(Title.Caption) + 4;
          if Result < W then
            Result := W;
        end;
      finally
        if RestoreCanvas then
        begin
          ReleaseDC(0, Canvas.Handle);
          Canvas.Handle := 0;
        end;
      end;
    end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲一区二区av在线| 三级不卡在线观看| 一区二区三区成人在线视频| 亚洲高清在线视频| 久久成人久久鬼色| 成人av资源在线观看| 欧美午夜在线观看| 精品国产一区二区三区久久久蜜月 | 久久久久久综合| 亚洲图片另类小说| 亚洲福利一二三区| 欧美一区二区三区视频免费播放| 97精品电影院| 日韩一区二区电影在线| 欧美国产一区二区在线观看| 亚洲人成精品久久久久久| 五月天欧美精品| 久久久综合精品| 欧美少妇bbb| 欧美婷婷六月丁香综合色| 欧美电视剧免费全集观看| 国产麻豆精品在线| 91影院在线免费观看| 91.成人天堂一区| 欧美va亚洲va在线观看蝴蝶网| 国产亚洲人成网站| 一区二区三区91| 国产一区二区在线视频| 欧美午夜不卡在线观看免费| 国产日韩欧美一区二区三区综合| 亚洲欧美另类图片小说| 9久草视频在线视频精品| 午夜精品爽啪视频| 国产黄人亚洲片| 91精品国产综合久久福利软件| 国产精品色在线| 美国三级日本三级久久99| 91一区一区三区| 国产日韩av一区| 久久国产欧美日韩精品| 欧美日韩综合不卡| 久久久久成人黄色影片| 成人h动漫精品一区二| 日韩av电影一区| 欧美日韩视频在线观看一区二区三区| 亚洲天堂精品视频| 黄页网站大全一区二区| 91麻豆精品国产91久久久资源速度| 久久精品日产第一区二区三区高清版| 国产精品亚洲一区二区三区妖精 | 99久久99精品久久久久久| 久久久精品综合| 麻豆成人综合网| 国产三级一区二区| 91日韩在线专区| 亚洲va欧美va人人爽| 欧美一区二区三区免费在线看| 激情六月婷婷久久| 自拍偷拍欧美激情| 91黄色免费看| 麻豆免费看一区二区三区| 日本一区二区综合亚洲| 欧美在线不卡一区| 捆绑变态av一区二区三区| 欧美本精品男人aⅴ天堂| 国产不卡在线播放| 三级久久三级久久久| 欧美激情一区二区三区蜜桃视频 | 久久在线观看免费| 欧美亚洲图片小说| 国产原创一区二区| 日韩高清中文字幕一区| 久久久久免费观看| 欧美性videosxxxxx| 福利一区福利二区| 美女被吸乳得到大胸91| 亚洲国产综合色| √…a在线天堂一区| 国产女主播视频一区二区| 91网站最新网址| 成人精品高清在线| 国产99久久久久久免费看农村| 国产一区在线看| 国产河南妇女毛片精品久久久| 99久久精品情趣| 色av成人天堂桃色av| 欧美成人性战久久| 欧美一区二区人人喊爽| 日本二三区不卡| 欧美日韩国产综合一区二区三区| 欧洲亚洲国产日韩| 777久久久精品| 91国在线观看| 色哟哟国产精品| 91久久香蕉国产日韩欧美9色| 91亚洲精品乱码久久久久久蜜桃| 岛国精品一区二区| 成人性生交大片免费看中文| 国产精品99久久久久久久vr| 国产成人在线视频网址| 国产成人午夜电影网| 国产精品99久久久久久久女警| 国产麻豆91精品| 99久久精品一区二区| 色94色欧美sute亚洲线路一久| 91麻豆国产香蕉久久精品| 色综合久久88色综合天天| 日本精品视频一区二区三区| 色激情天天射综合网| 欧美性生活大片视频| 日韩欧美一区二区免费| 精品国产亚洲在线| 国产精品久99| 亚洲成人久久影院| a级精品国产片在线观看| 日本韩国精品在线| 91色视频在线| 欧美亚洲日本国产| 日本久久电影网| 色综合网站在线| 国产黄色精品视频| 顶级嫩模精品视频在线看| 成人免费的视频| 国产69精品久久久久777| 国产嫩草影院久久久久| www.欧美.com| 亚洲成人第一页| 精品国产成人在线影院 | 丝袜美腿亚洲色图| 国产精品视频线看| 国产日韩欧美精品一区| 中文字幕 久热精品 视频在线 | 亚洲欧美另类小说| 国产亚洲婷婷免费| 亚洲综合成人在线| 久久99精品国产.久久久久久| 国产东北露脸精品视频| 欧美日韩一区二区三区四区 | 5月丁香婷婷综合| 精品动漫一区二区三区在线观看| 日本一区二区三区四区在线视频| 亚洲午夜精品一区二区三区他趣| 免费日韩伦理电影| 在线观看国产一区二区| 久久久久久亚洲综合| 日本怡春院一区二区| 在线不卡a资源高清| 亚洲午夜在线视频| 欧洲av一区二区嗯嗯嗯啊| 欧美激情综合在线| 国产精品夜夜嗨| 中文字幕精品综合| 一本到高清视频免费精品| 久久精品72免费观看| 亚洲欧美经典视频| 欧美一区二区三区视频在线 | 成人福利视频在线| 精品精品国产高清一毛片一天堂| 亚洲一区二区美女| 91精品欧美久久久久久动漫| 福利一区二区在线观看| 午夜久久久影院| 91黄色免费版| 成人免费一区二区三区在线观看| 国产一二精品视频| 久久久不卡网国产精品二区| 国产一区二区三区四区在线观看| 日韩欧美一级二级三级| 色婷婷久久99综合精品jk白丝| 国产综合色精品一区二区三区| 亚洲国产cao| 亚洲人快播电影网| 精品99久久久久久| 91精品久久久久久久99蜜桃| 午夜精品久久一牛影视| 7777精品久久久大香线蕉| 麻豆精品一区二区三区| 国产色婷婷亚洲99精品小说| jvid福利写真一区二区三区| 亚洲精品视频免费看| 欧美三级资源在线| 黄色精品一二区| 亚洲欧美一区二区三区孕妇| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲一区二区成人在线观看| 91精品国产综合久久蜜臀| 成人免费观看av| 激情久久五月天| 亚洲免费观看高清完整 | 亚洲日本丝袜连裤袜办公室| 久久精品人人做| 日韩欧美高清一区| 精品国产青草久久久久福利| 91麻豆国产香蕉久久精品| 精品伊人久久久久7777人| 亚洲美女在线国产| 国产精品毛片久久久久久| 久久久综合精品| 久久久亚洲国产美女国产盗摄 | 成人av在线播放网站|