Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   DBGrid Datensatzmarkierer (Dreieck) färben (https://www.delphipraxis.net/175890-dbgrid-datensatzmarkierer-dreieck-faerben.html)

Jumpy 26. Jul 2013 08:34

DBGrid Datensatzmarkierer (Dreieck) färben
 
Hallo,

ich habe die Farbe der fixen Felder (1. Zeile, 1. Spalte) meines DBGrids sehr dunkel gemacht.
Durch setzten einer Hellen TitleFont ist das in der 1. Zeile auch kein Problem.
In der ersten Spalte aber ist ja als Datensatzmakierer so ein kleines Dreieck. Das bleibt aber schwarz.

Wie kann ich dessen Farbe ändern?

(delphi 2010)

Jumpy 29. Jul 2013 20:55

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
push...:-D

Perlsau 29. Jul 2013 21:54

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Zitat:

Zitat von Jumpy (Beitrag 1222990)
push...:-D

Google ist dein Freund

Jumpy 30. Jul 2013 08:08

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Zitat:

Zitat von Perlsau (Beitrag 1222992)
Zitat:

Zitat von Jumpy (Beitrag 1222990)
push...:-D

Google ist dein Freund

Das halt ich mal für ein Gerücht :wink:

Ist ja nicht so, als ob ich nicht schon selbst gegoogelt und geDPt hätte. Jetzt hatte ich die wage Hoffnung deine Google-Versuche brächten mehr als meine, hast du doch das Wort Indicator verwendet anstatt wie ich nur Datensatzmakierer. Aber nach 3 Seiten Ergebnisse durchgehen ohne Erfolg, denke ich, das deine Suchbegriffe nicht besser waren als meine.

Ich versuch mich mal am selber Zeichnen. Muss halt nur die richtige Zelle finden. "gdSelected in State" oder wie das heißt, gilt ja nur für die aktuell gewählte Zelle, oder gilt das für die Zellen der ganze Zeile, wenn doch konkret nur eine Zelle ausgewählt ist (also kein Rowselect)?

Furtbichler 30. Jul 2013 09:24

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Zitat:

Zitat von Jumpy (Beitrag 1223003)
Ich versuch mich mal am selber Zeichnen.

Genau das ist der Inhalt der ersten drei und eigentlich auch aller Folgeseiten: Man muss das selbst malen.

Zitat:

Muss halt nur die richtige Zelle finden. "gdSelected in State" oder wie das heißt
Hast Du die Quellen von TDBGrid nicht? Da steht doch alles drin... und die Methode 'DrawCell' ist auch noch virtuell.

Nebenbei: Da der Indicator als Bitmap gezeichnet wird, ist da logischerweise auch nix mit 'Farbe ändern'.

Union 30. Jul 2013 11:07

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Dort findest Du ein schönes Beispiel inklusive Sourcecode. Es werden sogar die meisten überschriebenen Methoden noch einmal gründlich erklärt.

Perlsau 30. Jul 2013 13:20

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Zitat:

Zitat von Jumpy (Beitrag 1223003)
Zitat:

Zitat von Perlsau (Beitrag 1222992)
Zitat:

Zitat von Jumpy (Beitrag 1222990)
push...:-D

Google ist dein Freund

Das halt ich mal für ein Gerücht :wink:

Manche Gerüchte sind durchaus wahr :twisted:

Zitat:

Zitat von Jumpy (Beitrag 1223003)
Ist ja nicht so, als ob ich nicht schon selbst gegoogelt und geDPt hätte. Jetzt hatte ich die wage Hoffnung deine Google-Versuche brächten mehr als meine, hast du doch das Wort Indicator verwendet anstatt wie ich nur Datensatzmakierer. Aber nach 3 Seiten Ergebnisse durchgehen ohne Erfolg, denke ich, das deine Suchbegriffe nicht besser waren als meine.

Zum Ersten: Die Suchergebnisse, die du von mir erhalten hast, liefern dir Informationen über den Aufbau des DBGrids. Wenn du auf fertige Sourcen gehofft hattest, mußt du jetzt natürlich enttäuscht sein. Wie bereits Furtbichler oben richtig bemerkt hat, besteht "der Inhalt der ersten drei und eigentlich auch aller Folgeseiten [darin]: Man muss das selbst malen." Und auch Union verweist dich auf genau die Seite, die im ersten Suchergebnis steht. Das sollte dir zu denken geben.

Zum Zweiten: Die angebotene Hilfe herunterzumachen, nur weil man nicht sofort in Milch und Honig gebadet wird, wirkt demotivierend auf alle, die dir zu helfen versuchen, und erhöht somit die Wahrscheinlichkeit, daß du in Zukunft gar keine Antworten mehr erhalten wirst. Zudem ist es unfreundlich und herabwürdigend! Ich jedenfalls werde mich in Zukunft hüten, einem User Jumpy Lösungsmöglichkeiten anzubieten ... :evil:

Jumpy 31. Jul 2013 07:52

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Nur mal für denn Fall, dass mich jetzt nicht jeder für den riesen Depp hält, der keine Hilfe annimmt, und daher weiter liest:

Ich wollte verstehen, ob/wie ich die Farbe von diesem Dreieck ändern kann und hab gedacht, da muss es doch Beispiele geben. Hab natürlich gegoogelt und in der DP gesucht, auch wenn ich das im 1. Post hätte erwähnen sollen.
Ich hab dann auf ein Ergebnis gehofft, wie es z.B. die Suche nach "Wie färbe ich im DBGrid die Zeilen unterschiedlich", in Massen bringt. Irgendwas wo dann im OnColumnDraw-Event mit einer eigenen Prozedur entsprechend dafür gesorgt wird.

Mit dieser Erwartungshaltung habe ich eure Antworten nicht Annehmen bzw. Verstehen können. Und mir ging es da jetzt nicht unbedingt um fertigen Quellcode, sondern auf einen Hinweis, wie packe ich das Dreick im OnColumnDraw oder alleine schon die erste Spalte.

Was ich aus euren Antowrten nicht entnehmen konnte (aufgrund meiner falschen Erwartungen)(musste da erstmal ne Nacht drüber schlafen) ist: Das kann man nicht im OnColumnDraw selber machen. Mann kann das im DBGrid per se überhaupt nicht machen. Man muss sich erst eine eigene Ableitung des DBGrids erstellen, in der man dann die Draw-Methode überschreibt.
Wenn ich das nun richtig interpretiert habe, kann ich es mit der Info mal versuchen. Muss dann nur noch die Stelle finden, wo das Bitmap? dieses Dreieck herkommt und wo/wie ich das ersetze.


Ich zieh mir also zum Großteil die Mütze an, dafür, dass die Kommunikation in diesem Thread etwas anneinander vorbei gelaufen ist. Eure Antworten waren OK, ich hab nur (im Kopf?) die falsche Frage gestellt. Warum eure Antowrten nur OK und nicht perfekt waren liegt daran, dass mir keiner explizit gesagt hat, du musst dir 'ne eigene Version des DBGrids ableiten, damit das klappt. Mit dem Satz dabei hätte ich auch die Google links verstanden. Aber wie gesagt, das war ich mit meiner Frage vllt. selber schuld.


@Perlsau:
Zitat:

Zitat von Perlsau (Beitrag 1222895)
Zitat:

Zitat von Furtbichler (Beitrag 1222893)
Ich finde, Du solltest die Begriffe 'Index', 'Primary Key' und 'Foreign Key' mal nachschlagen.

Ist ja sicher nett gemeint, aber glaubst du im Ernst, ich wüßte nach mehreren Jahren der Datenbankprogrammierung nicht, was diese Begriffe bedeuten? Wie kommst du eigentlich darauf?

So wie du hier etwas angesäuert klingst, das du "belehrt" wirst die Begrifflichkeiten nachzuschlagen, als ob du erst wenig mit Datenbanken gemacht hast, was ja nicht der Fall war, so war ich ein bißchen sauer "ich google das mal für dich, da du ja scheinbar noch nicht mal das kannst" (überspitzt) als Antwort zu kriegen. Wo ich doch schon lange genug bei dem Forum dabei bin, das man mir zutrauen könnte zumindest google und die Forensuche schon bemüht zu haben. Zudem mir die Antworten scheinbar noch nicht mal weiterhalfen (Zu dem Zeitpunkt hatte ich ja was anderes erwartet s.o.).
Also sei nicht sauer, hilf mir ruhig weiterhin, aber geh davon aus, das man mir sicherheitshalber explizit sagen muss, wie ich die Antwort verstehen soll, bzw. weißt mich darauf hin, dass ich die Frage vielleicht falsch gestellt habe.

sx2008 31. Jul 2013 09:03

AW: DBGrid Datensatzmarkierer (Dreieck) färben
 
Also das Dreieck-Bitmap ist eine Resource aus der VCL.
Diese wird mit
Delphi-Quellcode:
{$R DBGRIDS.RES}
in der Unit DbGrids.pas eingebunden.
Die Datei liegt im Pfad C:\Programme\Delphi5\Lib\ (bitte an aktuelle Delphiversion anpassen)
Der Name der Resource ist DBGARROW sowie DBMULTIARROW mit jeweils 6 * 11 Pixel.
Mit dem in Delphi enthaltenen Bildeditor (Menü->Tools->Bildeditor) kann man die Resourcendatei laden und verändern.
Allerdings ist sind die Bitmaps monochrom (1 Bit/Pixel) so dass man auf diesem Wege wohl nur die Form ändern kann.
Man könnte versuchen aus dem monochromen Bitmap ein 16 oder 256 Farben Bitmap zu machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz