Thema: Delphi DevExpress Komponenten

Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: DevExpress Komponenten

  Alt 18. Dez 2006, 08:42
Einfach ist es wirklich nicht, aber es lohnt sich. Aber jeder soll die Komponenten einsetzen die er möchte. Hier mal ein Beispiel was auf einen zukommen kann. Es handelt sich um einen CustomDraw in einem DBGrid.

TDbgrid (VCL)
Delphi-Quellcode:
procedure TfrmLsKopfListe.dbgLsKopfDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
   if tblLsKopf.FieldByName('Status').Asstring <> 'then
      dbgLskopf.Canvas.Brush.Color := clRed
   else if UpperCase(tblLskopf.FieldByName('InfoIntern').AsString) = 'OFFENthen
   begin
      if gdSelected in State then
      begin
         dbgLskopf.Canvas.Brush.Color := clBlue;
         dbgLsKopf.Canvas.Font.Color := clYellow;
      end
      else
      begin
         dbgLskopf.Canvas.Brush.Color := clYellow;
         dbgLsKopf.Canvas.Font.Color := clBlack;
      end;
   end;


   dbgLsKopf.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
cxGrid (DevExpress):
Delphi-Quellcode:
procedure TfrmLsKopfListe.cxGridLsLopfDBTableViewLsKopfCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
   vStatus : Variant;
   sStatus, sInfo : string;
begin
   vStatus := AViewInfo.GridRecord.Values[TcxGridDbTableView(Sender).GetColumnByFieldName('Status').Index];
   // if not vStatus = null then -> cxGrid6
   if not VarIsNull(vStatus) then
      sStatus := UpperCase(VarToStr(vStatus));

   sInfo := UpperCase(VarToStr(AViewInfo.GridRecord.Values[TcxGridDbTableView(Sender).GetColumnByFieldName('InfoIntern').Index]));

   if sStatus <> 'then
      ACanvas.Canvas.Brush.Color := clRed
   else if sInfo = 'OFFENthen
   begin
      if AViewInfo.Selected then
      begin
         ACanvas.Canvas.Brush.Color := clBlue;
         ACanvas.Canvas.Font.Color := clYellow;
      end
      else
      begin
         ACanvas.Canvas.Brush.Color := clYellow;
         ACanvas.Canvas.Font.Color := clBlack;
      end;
   end;
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat