![]() |
TcxGrid, Grafiken einbinden
Hallo Wissende,
ich bin mal wieder am verzweifeln mit dem TcxGrid. Ich möchte einfach eine kleine Grafik zu einen Feld einbinden, in einer Spalte aber unterschiedliche Grafiken je nach Inhalt des Feldes. Ich weiss daß dies möglich ist, ich weiss nur nicht wie. Zur Versorgung des cxGrids verwende ich den UnBound Mode, ich füge also selbst die Daten hinzu, passe sie an und entferne diese wieder, wenn es sein muss auch in der Datenbank. Daher würd mir ein Beispiel einer datensensitiven Komponente leider nicht weiterhelfen. Weiß jemand wie es möglich ist? Danke. Euer GreenHorn |
Re: TcxGrid, Grafiken einbinden
Das Bild in einen TStringStream, dessen DataString-Eigenschaft als Variant im TcxMyCustomDateSource.GetValue zurückliefern. Fertig.
|
Re: TcxGrid, Grafiken einbinden
Hallo Alzhaimer,
danke für Deine Antwort. Werde es mir mal näher ansehen. Ein Beispiel hast Du nicht zufällig da? Ich bestücke das TcxGrid folgendermassen...
Delphi-Quellcode:
Dank Dir.
with GTV.DataController do
begin Values[i, GTVC_Cat.Index] := fCatList.items[i].Cat; values[i, GTVC_Merker.Index] := fCatList.items[i].Merker; values[i, GTVC_Image.Index] := fCatList.items[i].Image; //<< ist dies die Richtige Stelle im DataController oder // oder muss ich die Grafik wo anders hinzufügen? end; GreenHorn |
Re: TcxGrid, Grafiken einbinden
Delphi-Quellcode:
Function BitmapToString (aBitmap : TBitmap) : String;
Var stringStream : TStringStream; Begin stringStream := TStringStream.Create(''); Try aBitmap.SaveToStream (stringStream); Result := stringStream.DataString; Finally stringStream.Free End End; .... MyView.DataController.Values[SomeRecord, MyViewGraphicsColumn.Index] := BitmapToString(SomeBitmap); |
Re: TcxGrid, Grafiken einbinden
Herzlichen Dank Alzaimar,
werde es bei Gelegeheit mal umsetzen. Hoffe es klappt :-) Schöne Grüße Euer GreenHorn |
Re: TcxGrid, Grafiken einbinden
Hi,
wenn die Grafik zu einer Column gehört und in einer ImageList liegt, mache ich es so:
Delphi-Quellcode:
Methode OnCustomDrawCell der Column...
procedure TMainForm.gvCustomDrawCell(Sender:
TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); const ImageIndent = 3; var AImageRect, ATextRect: TRect; begin ACanvas.Brush.Color := AViewInfo.Params.Color; ACanvas.FillRect(AViewInfo.Bounds); AImageRect := AViewInfo.ContentBounds; AImageRect.Left := AImageRect.Left + ImageIndent; AImageRect.Right := AImageRect.Left + ImageList.Width; ATextRect := AViewInfo.ContentBounds; ATextRect.Left := AImageRect.Right + ImageIndent; ACanvas.DrawImage(ImageList, AImageRect.Left, AImageRect.Top, AViewInfo.Item.Tag); ACanvas.DrawTexT(AViewInfo.Text, ATextRect, DT_SINGLELINE or DT_LEFT); ADone := True; end; Cu, Frank |
Re: TcxGrid, Grafiken einbinden
Hallo Frank,
ja Du hast recht das ganze ist auf eine Column bezogen und die Images liegen in einer TImageList. Werde deinen Tipp mal ausprobieren. Btw: Hast Du schon Erfahrung wie es sich mit Skins verträgt? Schöne Grüsse Euer GreenHorn |
Re: TcxGrid, Grafiken einbinden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Im Anhang ein Beispiel mit dem Skin StarDust... Frank |
Re: TcxGrid, Grafiken einbinden
Hallo Frank,
dein Beispiel sieht gut aus :-) . Habe mir gerade noch mal deinen Quellcode angesehen, und ja, ist ja alles mit den Orginalparametern versehen... da hab ich keine Angst, dass irgendwas störendes auftritt. Dank Dir für deine Mühe. GreenHorn |
Re: TcxGrid, Grafiken einbinden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz