AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi DBGrid Navigation unterscheidet sich je nach gewählter Option

DBGrid Navigation unterscheidet sich je nach gewählter Option

Ein Thema von Maa83 · begonnen am 6. Aug 2019 · letzter Beitrag vom 6. Aug 2019
Antwort Antwort
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#1

DBGrid Navigation unterscheidet sich je nach gewählter Option

  Alt 6. Aug 2019, 12:52
Hallo,

ich habe ein kleines Problem.

Ich möchte im DBGrid die komplette Zeile einfärben wenn jemand auf eine Zelle klickt.
Dazu gibt es die Option dgRowSelect.

Wenn ich diese Option setzt habe ich optisch den richtigen Effekt.
Wenn ich nun aber mit den Cursor-Tasten nach rechts oder links möchte werde ich nach oben oder nach unten im Grid navigiert.

Dieses Verhalten ist für mich nicht brauchbar.

Wenn ich das dgRowSelect weglasse und stattdessen dgMultiSelect wähle, wird optisch auch die gesamte Zeile markiert das Verhalten der Cursortasten ist dann jedoch korrekt. D.h. nach rechts ist auch nach rechts und nicht nach unten im Grid.

Ich möchte jedoch nicht zulassen, dass der Anwender mehrere Zeilen markieren kann. Ist also auch nicht das was ich brauche.

Kann mir hier jemand weiterhelfen? Kann doch eigentlich nicht sein, dass ich für soetwas eine CustomDraw-Routine schreiben muss.
Martin
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
309 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DBGrid Navigation unterscheidet sich je nach gewählter Option

  Alt 6. Aug 2019, 13:23
Kann doch eigentlich nicht sein, dass ich für soetwas eine CustomDraw-Routine schreiben muss.
Mir wäre nichts anderes bekannt, zumindest nicht beim normalen DBGrid. Beim z.B TMS Grid geht das etwas einfacher
Aber beim VCL DBGrid musst du´s über DrawColumnCell machen
z.B so.


Delphi-Quellcode:
type
  TGridHack = Class(TCustomDBGrid);

...

procedure TFormX.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 with TGridHack(Sender) do
 begin
     if DataLink.ActiveRecord = Row - 1 then
     begin
        Canvas.Brush.Color := clHighlight;
        Canvas.Font.Color := clHighlightText;
     end;

     DefaultDrawColumnCell(Rect, DataCol, Column, State);
 end;

end;
Chris
  Mit Zitat antworten Zitat
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: DBGrid Navigation unterscheidet sich je nach gewählter Option

  Alt 6. Aug 2019, 14:32
Danke für den Hinweis. Werde ich dann wohl machen müssen.
Martin
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:03 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