AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX TStringgrid und Dataset

Ein Thema von ADelph · begonnen am 27. Aug 2012 · letzter Beitrag vom 29. Aug 2012
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: FMX TStringgrid und Dataset

  Alt 29. Aug 2012, 15:17
Ich habe mir diesen Helper gebaut, um die nötigsten Dinge hinzubekommen. Vielleicht hilft es dir ja etwas weiter. Die Implementation musst du noch an deine Bedürfnisse anpassen. Es war halt nur als Übergangslösung bis zu einem ausreichend funktionierenden Grid gedacht.


Delphi-Quellcode:
type
  TCustomGridHelper = class helper for TCustomGrid
  protected
    function FindHeader(AParent: TFmxObject): THeader;
  public
    procedure AdjustGrid;
    procedure AdjustStretchColumn(ACol: Integer);
    function GetHeader: THeader;
    property Header: THeader read GetHeader;
  end;


procedure TCustomGridHelper.AdjustGrid;
var
  edt: TEdit;
  headerItem: THeaderItem;
  I: Integer;
  J: Integer;
begin
  if Header <> nil then begin
    for I := 0 to Header.Count - 1 do begin
      headerItem := Header.Items[I];
      if headerItem <> nil then begin
        if I < 2 then
          headerItem.TextAlign := TTextAlign.taLeading
        else
          headerItem.TextAlign := TTextAlign.taTrailing;
        headerItem.Font.Size := 12;
      end;
    end;
  end;
  for I := 0 to ColumnCount - 1 do begin
    for J := 0 to RowCount - 1 do begin
      edt := (Columns[I].CellControlByRow(J) as TEdit);
      if edt <> nil then begin
        if I < 2 then
          edt.TextAlign := TTextAlign.taLeading
        else
          edt.TextAlign := TTextAlign.taTrailing;
        edt.Font.Size := 12;
      end;
    end;
  end;
end;

procedure TCustomGridHelper.AdjustStretchColumn(ACol: Integer);
var
  I: Integer;
  W: Single;
begin
  W := 5 + VScrollBar.Width;
  for I := 0 to ColumnCount - 1 do begin
    if I = ACol then Continue;
    if Columns[I].Visible then
      W := W + Columns[I].Width;
  end;
  Columns[ACol].Width := Width - W;
end;

function TCustomGridHelper.FindHeader(AParent: TFmxObject): THeader;
var
  I: Integer;
begin
  for I := 0 to AParent.ChildrenCount - 1 do begin
    if AParent.Children[I] is THeader then
      Exit(THeader(AParent.Children[I]));
  end;
  for I := 0 to AParent.ChildrenCount - 1 do begin
    result := FindHeader(AParent.Children[I]);
    if result <> nil then
      Exit(result);
  end;
  result := nil;
end;

function TCustomGridHelper.GetHeader: THeader;
begin
  Result := FindHeader(Self);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 16:52 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