AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes
Thema durchsuchen
Ansicht
Themen-Optionen

FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes

Ein Thema von Stefan1286b · begonnen am 28. Sep 2020 · letzter Beitrag vom 4. Okt 2020
Antwort Antwort
Stefan1286b

Registriert seit: 6. Jan 2012
Ort: Dinklage
25 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes

  Alt 28. Sep 2020, 11:37
Hallo.

Ich bin gerade dabei ein VCL Programm in FMX umzuschreiben.
Das Programm greift via FireDAC auf einen MSSQLServer zu. Das funktioniert auch so weit. Auch funktioniert es die Daten via LiveBindings in ein StringGrid zubekommen.
Es ist allerdings auch das erste mal das ich mit LiveBindings arbeite.
Auch das ändern der Font und Brush Farben in OnDrawColumnCell stellt soweit kein Problem da.

Das Problem ist die Herkunft der Farbe. Ich habe ein Feld Projektleiter. dieser wird über die SQL Abfrage korrekt dargestellt. In der Tabelle ist es ProjektleiterId und wir über die Abfrage von einer anderen Tabelle (Projektleiter ) korrekt zum Namen geändert. Es gibt ein weiteres Feld welches auch über die Abfrage als Feld dargestellt wird auch dieses kommt von der Tabllle Projektleiter. Es ist die Farbe. Das Feld hat den Namen ProjektleiterFarbe und enhält einen Integerwert der Farbe. Alles soweit gut. Nur wie Komme ich in OnDrawColumnCell im Column Projektleiter auf die Farbe.
In VCL war dies ganz einfach.

ADODataSetProjekteProjektleiterFarbe.Value Theoretisch funktioniers das in FMX unter FireDAC auch
FDQProjekteProjektleiterFarbe.Value nur das der Wert immer gleich ist und das dies nicht funktioniert.
Es funktioniert wenn ich
FDQProjekte.RecNo := Row+1; setze nun dann ist die Geschwindikeit unbrauchbar langsam.
Also gehe ich davon aus, dass ich die Farbe auch via LiveBindings an den StringGrid übergeben muss. Nur wie?
Mein Ansatz ist dass ist ein weiteres Columns erstelle im StringGrid welcher die Farbe enthält und die Breit auf 0 stelle. Aber ich weiß immer noch nicht wie ich wenn die Procedure von OnDrawColumnCell sich in Projektleiter befindet ich auf Projektleiterfarbe zugreifen kann.
  Mit Zitat antworten Zitat
Stefan1286b

Registriert seit: 6. Jan 2012
Ort: Dinklage
25 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes

  Alt 28. Sep 2020, 12:07
Was ich noch vergessen hatte zu schreiben:

Hier https://www.delphipraxis.net/194195-...ren-zelle.html
geht es im Grunde genommen um das selbe nur das es sich dort um TDBGrid (gibt es nicht in FMX) handelt und nicht um TStringGrid.
Und wie TigerLilly schon sagt verhält sich das TDBGrid synchron zur Datenmenge
Nur halt nicht bei TStringGrid mit LiveBindings.
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#3

AW: FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes

  Alt 28. Sep 2020, 13:09
https://stackoverrun.com/de/q/11516463
https://stackoverrun.com/de/q/11992036

Man sollte es aber eigentlich auch über Livebinding zuweisen und/oder casten können, als Binding Expression.

https://stackoverflow.com/questions/...h-livebindings

http://docwiki.appmethod.com/appmeth...ndings_Methods

https://www.youtube.com/watch?v=86PPmORQ7kY
  Mit Zitat antworten Zitat
Stefan1286b

Registriert seit: 6. Jan 2012
Ort: Dinklage
25 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX StringGrid OnDrawColumnCell Farben anhand eine anderen Wertes

  Alt 4. Okt 2020, 12:04
Nach vielen hin und her habe ich es jetzt gelöst in dem ich die Daten in TGrid.OnDrawColumnCell direkt von der TFDQuery abfrage ohne LiveBindings.
Nachteil ist, das TGrid erst die 1. Column alle Rows zeichnet und dann die zweite usw. So dass TFDQuery.RecNo permanent neu gesetzt werden muss. Von der Geschwindigkeit kann ich aber keinen Nachteil mehr feststellen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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