e; FImeName := Screen.DefaultIme; FTitle := CreateTitle; 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; 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: TCustomVDBGrid; begin Grid := GetGrid; if Assigned(Grid) then Result := Grid.Color else Result := clWindow; end;
function TColumn.DefaultFont: TFont; var Grid: TCustomVDBGrid; begin Grid := GetGrid; if Assigned(Grid) then Result := Grid.Font else Result := FFont; end;
function TColumn.DefaultImeMode: TImeMode; var Grid: TCustomVDBGrid; begin Grid := GetGrid; if Assigned(Grid) then Result := Grid.ImeMode else Result := FImeMode; end;
function TColumn.DefaultImeName: TImeName; var Grid: TCustomVDBGrid; begin Grid := GetGrid; if Assigned(Grid) then Result := Grid.ImeName else Result := FImeName; end;
function TColumn.DefaultReadOnly: Boolean; var Grid: TCustomVDBGrid; 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 else Result := DefaultColWidth; end; end;
procedure TColumn.FontChanged; begin Include(FAssignedValues, cvFont); Title.RefreshDefaultFont; Changed(False); end;
function TColumn.GetAlignment: TAlignment; begin if cvAlignment in FAssignedValues then Result := FAlignment else Result := DefaultAlignment; end;
function TColumn.GetColor: TColor; begin if cvColor in FAssignedValues then Result := FColor else Result := DefaultColor; end;
function TColumn.GetField: TField; var Grid: TCustomVDBGrid; begin { Returns Nil if FieldName can''''t be found in dataset } Grid := GetGrid; if (FField = nil) and (Length(FFieldName) > 0) and Assigned(Grid) and Assigned(Grid.DataLink.DataSet) then with Grid.Datalink.Dataset do if Active or (not DefaultFields) then SetField(FindField(FieldName)); Result := FField; end;
function TColumn.GetFont: TFont; var Save: TNotifyEvent; begin if not (cvFont in FAssignedValues) and (FFont.Handle <> DefaultFont.Handle) then begin Save := FFont.OnChange; FFont.OnChange := nil; FFont.Assign(DefaultFont); FFont.OnChange := Save; end; Result := FFont; end;
function TColumn.GetGrid: TCustomVDBGrid; begin if Assigned(Collection) and (Collection is TDBGridColumns) then Result := TDBGridColumns(Collection).Grid else Result := nil; end;
function TColumn.GetDisplayName: string; begin Result := FFieldName; if Result = '''''''' then Result := inherited GetDisplayName; end;
function TColumn.GetImeMode: TImeMode; begin if cvImeMode in FAssignedValues then Result := FImeMode else Result := DefaultImeMode; end;
function TColumn.GetImeName: TImeName; begin if cvImeName in FAssignedValues then Result := FImeName else Result := DefaultImeName; end;
function TColumn.GetPickList: TStrings; begin if FPickList = nil then FPickList := TStringList.Create; Result := FPickList; end;
function TColumn.GetReadOnly: Boolean; begin if cvReadOnly in FAssignedValues then Result := FReadOnly else Result := DefaultReadOnly; end;
function TColumn.GetWidth: Integer; begin if cvWidth in FAssignedValues then Result := FWidth else Result := DefaultWidth; end;
function TColumn.IsAlignmentStored: Boolean; begin Result := (cvAlignment in FAssignedValues) and (FAlignment <> DefaultAlignment); end;
function TColumn.IsColorStored: Boolean; begin Result := (cvColor in FAssignedValues) and (FColor <> DefaultColor); end;
function TColumn.IsFontStored: Boolean; begin Result := (cvFont in FAssignedValues); end;
function TColumn.IsImeModeStored: Boolean; begin Result := (cvImeMode in FAssignedValues) and (FImeMode <> DefaultImeMode); end;
function TColumn.IsImeNameStored: Boolean; begin Result := (cvImeName in FAssignedValues) and (FImeName <> DefaultImeName); end;
function TColumn.IsReadOnlyStored: Boolean; begin   上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> [聊天工具]让你的MSN Messenger好友看到你在干嘛__天极Yesky [聊天工具]让你的Foxmail不再撒谎 [聊天工具]IncrediMail让你的E-mail也作秀 [常用软件]让你的Blog拥有Google日历 [常用软件][网络]Stuff Plug 让你的MSN聊天与众不同 [Delphi程序]让你的DBGridEh的Column自动适应宽度
|