AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi Berlin 10.1 ScaleBy TDBGrid

Ein Thema von Sourcemaker · begonnen am 24. Jun 2016 · letzter Beitrag vom 24. Jun 2016
Antwort Antwort
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi Berlin 10.1 ScaleBy TDBGrid

  Alt 24. Jun 2016, 13:30
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!

Delphi-Quellcode:
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;
Grüße

Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.474 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi Berlin 10.1 ScaleBy TDBGrid

  Alt 24. Jun 2016, 13:40
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!
Wenn der Indicator sichtbar ist, dann bekommst du den Wert doch einfach über ColWidth[0], oder?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi Berlin 10.1 ScaleBy TDBGrid

  Alt 24. Jun 2016, 14:53
Danke Uwe,

das geht über Umweg:

Delphi-Quellcode:
type
  THackDBGrid = class(TDBGrid);

THackDBGrid(xxxx).ColWidths[0]
Eine Veröffentlichung der Indicatorbreite als nur Lese Property wäre aber trotzdem angebracht.

Grüße

Frank
Frank

Geändert von Sourcemaker (24. Jun 2016 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.474 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Berlin 10.1 ScaleBy TDBGrid

  Alt 24. Jun 2016, 16:03
das geht über Umweg:

Delphi-Quellcode:
type
  THackDBGrid = class(TDBGrid);

THackDBGrid(xxxx).ColWidths[0]
Stimmt! Ich hatte das in meinem GridHelper ausprobiert und da war das gar nicht aufgefallen.

Eine Veröffentlichung der Indicatorbreite als nur Lese Property wäre aber trotzdem angebracht.
Quality Portal?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 22:22 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