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/)
-   -   Delphi Delphi - DBCtrlGrid - Im Bereich der Scrollbar zeichnen? (https://www.delphipraxis.net/149661-delphi-dbctrlgrid-im-bereich-der-scrollbar-zeichnen.html)

RonniS 26. Mär 2010 16:08


Delphi - DBCtrlGrid - Im Bereich der Scrollbar zeichnen?
 
Hallo zusammen,

ich habe mal eine Frage und hoffe, ihr könnt mir dabei helfen.

In meinem Projekt habe ich eine Scrollbar eingesetzt, bei der ich mit

Delphi-Quellcode:
procedure TBS_DBCtrlGrid.WMNCCalcSize(var Msg: TMessage);
var NewStyle: integer;
begin
  if not FShowScrollbars then
  begin
     NewStyle := GetWindowLong(Handle, GWL_STYLE);

     NewStyle := NewStyle and not WS_HSCROLL;
     NewStyle := NewStyle and not WS_VSCROLL;

     SetWindowLong(Handle, GWL_STYLE, NewStyle);
  end;
  inherited;
end;
die Scrollbars ausgeblendet habe. Soweit so gut. Aber nun, wird dort, anstelle der vertikalen Scrollbar, ein grauer Bereich angezeigt (quasi ein vertikales Rechteck). Kann ich irgendwie auf diesen Bereich zugreifen, den Bereich überzeichnen oder einfach
dafür sorgen, dass das DBCtrlGrid über den gesamten Bereich gezeichnet wird?

Bin für jede Anregung und Hilfestellung dankbar, denn das sieht einfach unmöglich aus..

Viele Grüße

Ronni

daddy 31. Mär 2010 15:59

Re: Delphi - DBCtrlGrid - Im Bereich der Scrollbar zeichnen?
 
Hallo Ronni,

ich habe in einem ähnlichen Fall das DBCtrlGrid einfach in ein Panel eingefügt ohne die Scrollbalken zu verändern. Dann habe ich ein weiteres Panel in dieses Panel eingefügt, das ich in der Breite passend eingestellt und durch Setzen der Eigenschaft Align auf "alRight" nach rechts über den Scrollbalken gelegt habe. Funktioniert einwandfrei.

Gruß
Daddy

RonniS 1. Apr 2010 10:56

Re: Delphi - DBCtrlGrid - Im Bereich der Scrollbar zeichnen?
 
Hallo daddy,

vielen Dank für Deine Nachricht. Dies ist sicherlich keine schlechte Lösung. Jedoch muss es doch eine Möglichkeit geben, diesen Bereich direkt innerhalb der Komponente ansprechen zu können.
Jegliche Zeichenoperation meinerseits ist allerdings bisher fehlgeschlagen.
Für mich stehen eigentlich nur 2 Alternativen zur Verfügung :

1. Die Panels des DBCtrlGrids über diesen Bereich hinaus zu zeichnen oder
2. Innerhab dieses Bereichs ebenfalls Zeichenoperationen durchführen zu können.

Hintergrund ist, dass ich die Panels mit einem Farbverlauf versehen habe, so dass diese wie der Hintergrund aussehen.
Nun stört eben dieser graue Bereich, der dabei übrigbleibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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