1、你先用 TQuery 或 TADOQuery 打开记录集; 2、读取数据 with Query1 do While not Eof do begin // 读取记录 // ... ... Next; end; 3、对于数据的显示在 StringGrid 的 OnDrawCell 事件中写程序,给你个例子。
// 记录表格的 OnDrawCell 事件过程 procedure TfrmShowRecord.strgridRecordDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var strValue: String; intMargin, intHeight, intWidth: Integer; begin with Sender as TStringGrid do begin // 画背景 if (ARow > 0) and (ACol > 0) then begin if ARow mod 2 = 0 then Canvas.Brush.Color := $00F4FFFE else Canvas.Brush.Color := clWhite; Canvas.FillRect(Rect); end; // 计算显示在矩形框中的左上角位置 strValue := Cells[ACol, ARow]; Canvas.Font := Font; intWidth := Canvas.TextWidth(strValue); if (ARow = 0) or (ACol = 0) then begin intMargin := (Rect.Right - Rect.Left - intWidth) div 2; if intMargin < 0 then intMargin := 0; end else begin intMargin := 2; // 根据列的对齐方式设置显示模式 // 把对齐方式存放在数组中与列项相对应。 if FarrColAlignments <> Nil then case FarrColAlignments[ACol - 1] of taLeftJustify: intMargin := 2; taRightJustify: intMargin := Rect.Right - Rect.Left - intWidth - 2; taCenter: intMargin := (Rect.Right - Rect.Left - intWidth) div 2; end; end; intHeight := (Rect.Bottom - Rect.Top - Canvas.TextHeight(strValue)) div 2; // 在矩形框中写值 Canvas.TextRect(Rect, Rect.Left + intMargin, Rect.Top + intHeight, strValue); end; end;
|