AGB  ·  Datenschutz  ·  Impressum  







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

Einfluss BorderStyle auf Komponenten

Ein Thema von aschne1 · begonnen am 3. Feb 2005 · letzter Beitrag vom 5. Feb 2005
Antwort Antwort
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Re: Einfluss BorderStyle auf Komponenten

  Alt 4. Feb 2005, 07:39
Hallo,
ich habe die Lösung in den tiefen meiner Platte gefunden.
Das Child-Formular hat einen zweiten und erweiterten Constructor bekommen. Damit kann man das Ding wie ein normales Formular aufrufen und man übergibt dem Constructor noch einen Parent. Grundsätzlich habe ich den Code damals bei Hagen abgeschrieben (glaube ich).
Delphi-Quellcode:
unit formchild_frm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TFormChild = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
  private
    { Private-Deklarationen }
    FAsChild: Boolean;
    FTempParent: TWinControl;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure Loaded; override;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); overload; override; // als Formular aufrufen
    constructor Create(AOwner: TComponent;AParent: TWinControl); reintroduce; overload; // als Child aufrufen
    end;

var
  FormChild: TFormChild;

implementation

uses Utils1;

{$R *.DFM}

constructor TFormChild.Create(AOwner: TComponent);
begin
  FAsChild := False;
  inherited Create(AOwner);
end;

constructor TFormChild.Create(AOwner: TComponent; AParent: TWinControl);
begin
  FAsChild := True;
  FTempParent := aParent;
  IsControl:=True;
  inherited Create(AOwner);
end;

procedure TFormChild.CreateParams(var Params: TCreateParams);
begin
  Inherited CreateParams(Params);
  if FAsChild then
    Params.Style := Params.Style or WS_CHILD;
end;

procedure TFormChild.Loaded;
begin
  inherited;
  if FAsChild then
  begin
    Align := alNone;
   // BorderStyle := bsNone;
   // BorderIcons := [];
    Parent := FTempParent;
    Position := poDefault;
  end;
end;

end.
Hier kommt der das Aufruf des Formulars als Child
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  If Not Assigned(aChildForm) then
    aChildForm:=TFormChild.Create(Application, Panel2);
  With aChildForm do
    begin
    Edit1.text:='Delphi';
    Edit2.Text:='Praxis';
    Show;
    end;
  // Die Message sorgt dafür, dass man die Controls auf dem Form verwenden
  // kann
  SendMessage(aChildForm.Handle, WM_NCACTIVATE, Ord(True), 0);
  aChildForm.SetBounds(0,0,200,200);
end;
Angehängte Dateien
Dateityp: zip zip_920.zip (218,5 KB, 6x aufgerufen)
I come from outer space to save the human race
  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 07:23 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