Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Frame Grid Eigenschaften speichern (https://www.delphipraxis.net/195206-frame-grid-eigenschaften-speichern.html)

Walter Landwehr 12. Feb 2018 09:40

Frame Grid Eigenschaften speichern
 
Hallo,

ich habe auf einen Frame ein TcxGrid.
Beim Beenden der Form sollen die Eigenschaften des Grid gespeicheret werden. In einer Form rufe ich die folgende Procedere beim OnClose Ereignis auf.

Delphi-Quellcode:
procedure TfrmMitglieder.SaveGridPositions;
   var x : Integer;
begin
  if Constants.ProgOptions.Common.GridPosition then
    for x := 0 to ComponentCount - 1 do
      if Components[x] is TcxGridDBTableView then
        TcxGridDBTableView(Components[x]).StoreToRegistry(sRegistryPath + '\Custom\Grids\' + Components[x].Name);
end;
Aber wie mache ich es mit dem Grid auf einem Frame.

Vielen Dank für Eure Hilfe.

himitsu 12. Feb 2018 10:27

AW: Frame Grid Eigenschaften speichern
 
Delphi-Quellcode:
if Components[x] is TFrame then
und dann auch
Delphi-Quellcode:
TFrame(Components[x]).Components
durchlaufen
oder eine Speichermethode in den Frame und Diese aufrufen.

Walter Landwehr 12. Feb 2018 13:11

AW: Frame Grid Eigenschaften speichern
 
Hallo himitsu,

so ganz verstanden habe ich das nicht Kannst Due mir da näher helfen.

Hier mal der Code des Frames.
Delphi-Quellcode:
unit Spenden;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls,
  cxLookAndFeels, cxLookAndFeelPainters, cxStyles, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
  dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
  dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
  dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
  dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
  dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark,
  dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
  dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
  dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit,
  cxNavigator, cxDataControllerConditionalFormattingRulesManagerDialog, Data.DB,
  cxDBData, cxButtonEdit, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, IBODataset, cxGridLevel, cxClasses, cxGridCustomView,
  cxGrid, cxCalendar, cxCurrencyEdit, cxCheckBox;

type
  TframeSpenden = class(TFrame)
    cxGrSpendenView: TcxGridDBTableView;
    cxGrSpendenLevel: TcxGridLevel;
    cxGrSpenden: TcxGrid;
    cxGrSpendenViewDatum: TcxGridDBColumn;
    cxGrSpendenViewSpendenfallnummer: TcxGridDBColumn;
    cxGrSpendenViewSpendennummer: TcxGridDBColumn;
    cxGrSpendenViewSpendenfall: TcxGridDBColumn;
    cxGrSpendenViewBetrag: TcxGridDBColumn;
    cxGrSpendenViewBetraginWorten: TcxGridDBColumn;
    cxGrSpendenViewZuwendung: TcxGridDBColumn;
    cxGrSpendenViewQuittung: TcxGridDBColumn;
    procedure cxGrSpendenViewSpendenfallnummerPropertiesButtonClick(
      Sender: TObject; AButtonIndex: Integer);
    procedure cxGrSpendenExit(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure SaveGridPositions;
    procedure RestoreGridPositions;
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

uses Modul, Main, Constants, ProjectConstants;

procedure TframeSpenden.cxGrSpendenExit(Sender: TObject);
var x : Integer;
begin
  if Constants.ProgOptions.Common.GridPosition then
    for x := 0 to ComponentCount - 1 do
      if Components[x] is TcxGridDBTableView then
        TcxGridDBTableView(Components[x]).StoreToRegistry(sRegistryPath + '\Custom\Grids\' + Components[x].Name);
end;

procedure TframeSpenden.cxGrSpendenViewSpendenfallnummerPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
// Suchen einfügen
end;

procedure TframeSpenden.SaveGridPositions;
   var x : Integer;
begin
  if Constants.ProgOptions.Common.GridPosition then
    for x := 0 to ComponentCount - 1 do
      if Components[x] is TcxGridDBTableView then
        TcxGridDBTableView(Components[x]).StoreToRegistry(sRegistryPath + '\Custom\Grids\' + Components[x].Name);
end;

procedure TframeSpenden.RestoreGridPositions;
   var x : Integer;
       GridView : TcxGridDBTableView;
begin
  if Constants.ProgOptions.Common.GridPosition then
    for x := 0 to ComponentCount - 1 do
    begin
      if Components[x] is TcxGridDBTableView then
        TcxGridDBTableView(Components[x]).RestoreFromRegistry(sRegistryPath + '\Custom\Grids\' + Components[x].Name)
    end;
end;

end.
Und hier das Einbinden des Frames im Formular im OnCreate Ereignis.
Delphi-Quellcode:
  if dmMain.ibqryOptionen.FieldByName('SPENDEN').AsString = 'J' then
  begin
    tshVerein.Caption := 'Spenden';
    tshVerein.Visible := True;
    if not assigned(Spenden)then
    begin
      Spenden := TframeSpenden.Create(PanelVerein);
      Spenden.Parent := PanelVerein;
    end;
    Spenden.BringToFront;
  end;
Beim schließen des Formulars soll auch die Grideinstellung im Frame gespeichert werden.

Walter Landwehr 13. Feb 2018 16:53

AW: Frame Grid Eigenschaften speichern
 
OK habe es gelöst. Hatte dummerweise die Proceduren im Private und nicht im Public Bereich erstellt.


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