Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten (https://www.delphipraxis.net/47877-einfaerben-von-dbctrlgrid-zeilen-aufgrund-von-inhalten.html)

WoGe 21. Jun 2005 18:57

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
@Hansa:

Nur mal als Diskussionsgrundlage: Ich meine alle von Dir beschriebenen Features müssten auch mit einem normalen DBGrid gehen

Auch da kann man Ownerdraw benutzen. Da auch die Zeilenhöhe veränderbar ist (wenn auch nur sehr eingeschränkt und nur für alle Zellen müsste das auch 3 Zeilen in einer Zelle anzeigen können. Für die Eingabe kann zusätzlich der InPlaceEditor umgeladen werden.

Man würde sich so die Zuordung Daten Datensatz sparen

mfg
wo

Hansa 21. Jun 2005 19:09

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Die Zeilenhöhe zu ändern, das ist auch nichts. Dann kommen noch WordWrap und so Zeug ins Spiel. Im Endeffekt ergibt das ein Programm, das komisch aussieht, keiner mehr versteht. Ich werde mal schnell ein Beispiel-Screenshot machen. Und dann soll mir jemand sagen, welche Fremdkomponente das hinkriegt, allerdings mit minimalem Aufwand.

Edit : zu Fremdkomponenten zähle ich auch das Delphi-DBGrid.

Hansa 21. Jun 2005 20:54

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wehe, wenn das hier einer "pushen" nennt. 8) Der Anhang wäre wohl untergegangen. Jetzt sage mir mal einer, mit welcher Komponente so was zu machen ist ! Und zwar mit vertretbarem (Lern)aufwand !! Die muß auch nicht kostenlos sein.

WoGe 21. Jun 2005 22:23

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
:? Hallo Hansa

Deine Lösung finde ich sehr interessant, ich hätte aber eventuell doch ein DBGrid genommen und mit einer StoredProcedure ähnlich wie die folgende verwendet:

SQL-Code:
CREATE PROCEDURE SP_TEST2 
RETURNS (
    ZEILEMOD VARCHAR(50))
AS
DECLARE VARIABLE AVAR VARCHAR(50);
begin
  for Select Beschreibung from zeilen
  into :avar
  do
  begin
  zeilemod = avar;
  suspend;
  zeilemod = 'Leere Zeile';
  suspend;
  zeilemod = 'Weitere Zeile';
  suspend;
  end
end
Sowas kann 1 bis n Zeilen zurückliefern, abhägig vom Inhalt.

:) Aber: Never change a running system - also nix ändern

Gruß
wo

Hansa 22. Jun 2005 00:14

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Zitat:

Zitat von WoGe
:) Aber: Never change a running system - also nix ändern

Keine Angst, werde mich hüten ! Außerdem gibt es auch Sicherungskopien. :mrgreen: Was das aber jetzt mit einer SP zu tun hat, das ist mir rätselhaft. Der DAU muß zumindest irgendwann sehen, was er anrichtet und dafür die Quittung bekommen.

Schiller 22. Jun 2005 07:20

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
@Hansa

sehr interessant, eure Diskussion...
Aber zurück zu meinem Problem: Resultat deines Vorschlags ist ein heftiges Flackern und unschöne Seiteneffekte auf andere Controls. Auch will ich nur ein Feld einfärben, so dass der Fall bei mir so aussieht:
[delphi]
if Datasource1.dataset.fieldByName('Ergebnis').asFloa t > 10
then DBEdit6.Color:=clRed
else DBEdit6.Color:=clGreen;


Das Bild sieht auch fast gut aus:
http://www.envisys.de\dbgrid.jpg

Das Problem ist nur, im selektierten Datensatz ist die Farbe so wie im zuletzt dargestellten Datensatz.

Das kann ich ihm nicht abgewöhnen

Gruß Schiller

AirJordan 22. Jun 2005 08:53

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Hallo,

ich benötige ebenfalls ein ähnliches Verhalten in einem Grids. Weder bei den TMS noch beim QuantumGrid von DevExpress konnte ich etwas in diese Richtung finden.

Also doch selber machen? :roll:

uschi 22. Jun 2005 09:22

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
nein.

bei devExpress Tableview gibt es das event: OnGetContentStyle


schau dir dieses event mal an, du solltest alles darüber steurn können.

AirJordan 22. Jun 2005 09:37

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Ok Danke, werde ich mir mal anschauen.

Schiller 22. Jun 2005 10:09

Re: Einfärben von DBCtrlGrid-Zeilen aufgrund von Inhalten
 
Ich habe inzwischen die Lösung zu 98%, um in Abhängigkeit vom Datensatzinhalt die Eigenschaft Farbe des DBEdit-Controls auch im selektierten Datensatz zu setzen:
Ich setze die Eigenschaft nicht nur in der PaintPanel-Methode des DBCtrlGrid, sondern auch im TableAfterScroll- und FormPaint-Ereignis (wegen Resize). Gelegentlich findet das Programm aber immer noch nicht die richtige Farbe (daher der 2% Rest).
Danke für Eure Tipps!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.
Seite 2 von 2     12   

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