Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: XE7: Frame soll Aktion im Hauptformular auslösen

  Alt 16. Mai 2015, 17:36
Kinder, Kinder, ihr müsst auch mehr OOP denken
Delphi-Quellcode:
unit Form.Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls, Frame.Sub;

type
  TMainForm = class( TForm )
    PageControl1: TPageControl;

    TabSheet1: TTabSheet;
    // Memo auf den Tab klatschen
    Memo1: TMemo;

    TabSheet2: TTabSheet;
    // SubFrame auf den Tab klatschen
    SubFrame1: TSubFrame;

    // Doppelklick auf SubFrame1.CheckBox1
    procedure SubFrame1CheckBox1Click( Sender: TObject );
  private
  protected
    procedure DoShow; override;
  public

  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.DoShow;
begin
  inherited;
  // nur damit der Startwert für die CheckBox passt
  SubFrame1.CheckBox1.Checked := Memo1.Enabled;
end;

procedure TMainForm.SubFrame1CheckBox1Click( Sender: TObject );
begin
  Memo1.Enabled := SubFrame1.CheckBox1.Checked;
end;

end.
Der Frame selber ist ganz dumm und kann quasi nix:
Delphi-Quellcode:
unit Frame.Sub;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TSubFrame = class(TFrame)
    CheckBox1: TCheckBox;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (16. Mai 2015 um 17:41 Uhr)
  Mit Zitat antworten Zitat