![]() |
Delphi Berlin 10.1 ScaleBy TDBGrid
Hi,
offensichtlich scheinen die Embarcaderos uns das Leben schwer machen zu wollen. Bei Portierung von XE5 auf 10.1 stelle ich fest das meine automatische Formbreitenanpassung an eine DBGrid nicht mehr passt. Folgender Code sorgt dafür das auch die Indicatorspalte skaliert wird. Ist ja im Prinzip auch schon schlimm da auf engen Forms wieder ein paar Pixel fehlen und man auf jedenfall ran muss. Wenn man aber noch nicht einmal die Variable veröffentlicht (FIndicatorWidth) so dass man seine Berechnung von der IndicatorWidth-Konstante entsprechend anpassen kann ist das echt bescheiden!:evil:
Delphi-Quellcode:
Grüße
procedure TCustomDBGrid.ChangeScale(M, D: Integer; isDpiChange: Boolean);
var I: Integer; begin if M <> D then begin for I := 0 to FColumns.Count - 1 do begin if Font <> FColumns[I].Font then FColumns[I].Font.Height := MulDiv(FColumns[I].Font.Height, M, D); if TitleFont <> FColumns[I].Title.Font then FColumns[I].Title.Font.Height := MulDiv(FColumns[I].Title.Font.Height, M, D); if (csLoading in ComponentState) and (FColumns[I].Width <> DefaultColWidth) then FColumns[I].FWidth := MulDiv(FColumns[I].FWidth, M, D); end; FIndicatorWidth := MulDiv(FIndicatorWidth, M, D); InternalLayout; end; inherited; end; Frank |
AW: Delphi Berlin 10.1 ScaleBy TDBGrid
Zitat:
|
AW: Delphi Berlin 10.1 ScaleBy TDBGrid
Danke Uwe,
das geht über Umweg:
Delphi-Quellcode:
Eine Veröffentlichung der Indicatorbreite als nur Lese Property wäre aber trotzdem angebracht.
type
THackDBGrid = class(TDBGrid); THackDBGrid(xxxx).ColWidths[0] Grüße Frank |
AW: Delphi Berlin 10.1 ScaleBy TDBGrid
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
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