AGB  ·  Datenschutz  ·  Impressum  







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

Composite Control wird nicht dargestellt.

Ein Thema von BAMatze · begonnen am 16. Mär 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Seite 2 von 2     12   
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Composite Control wird nicht dargestellt.

  Alt 16. Mär 2009, 10:49
Hallo,

die TPersistent-Nachfolger nutzt Ray Konopka im Video nur, um Objekt-Eigenschafte des Composite Controls zu definieren. Der Container selbst ist immer ein TWinControl(-Nachfolger). Bei Verwendung eines TWinControls müssen die enthaltenen Controls im Code erzeugt werden, bei Verwendung der TFrame-Komponente kann man den Formular-Designer von Delphi nutzen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Composite Control wird nicht dargestellt.

  Alt 16. Mär 2009, 11:14
@Hawkeye219

Hast du dafür mal vieleicht ein kleines Bsp? Ich weiß nämlich nicht, auf welche TComponent man diese Composite Control erzeugen soll. Ich weiß das wird im Video auch nicht gezeigt, da es sich um eine fertige Komponente handelt. Vieleicht weiß dies ja jemand.

Hab den Code mit dem Hinweis von Hawkeye 219 wie folgt abgewandelt (die TPersistent-Klasse ist rausgeflogen)

Delphi-Quellcode:
unit Unit1;

interface

uses Classes, StdCtrls, Controls, Graphics;

Type TTestComponente = class(TWinControl)
  private
    FTestLabel: TLabel;
  public
    constructor create(AOwner: TComponent);override;
end;

implementation

constructor TTestComponente.create(AOwner: TComponent);
begin
  inherited create(AOwner);
  Controlstyle := Controlstyle - [csAcceptsControls]; // Der Componente wird nicht erlaubt
                                                      // andere Componenten aufzunehmen,
                                                      // als die, die durch den Programmierer
                                                      // hier einprogrammiert werden.


  Visible := true;
  width := 300;
  height := 200;
  Color := clBlack; // <-- diese Zeile wurde eingeschoben, um zu sehen, ob das
                    // Composite Controll wirklich auf der Form erzeugt wird.
                    // Da sich kein Teil von der Form schwarz färbt, kann ich
                    // wohl davon ausgehen, dass dies nicht der Fall ist.
                    // WARUM?

  // TestLabel initialisieren
  FTestLabel := TLabel.create(Self);
  with FTestLabel do
    begin

      Parent := Self;
      Visible := true;
      Caption := 'Hallo';
      Left := 10;
      Top := 10;
    end;
end;

end.
Delphi-Quellcode:
unit TestFensterUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    FTestComponente: TTestComponente;
    { Private-Deklarationen }
  public

    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FTestComponente := TTestComponente.Create(); // <-- hier fehlt noch die TComponent
end;

end.
Leider wird immer noch nichts angezeigt, deswegen hab ich die TComponent im Create für die Form rausgelassen. Folgende hab ich schon probiert:
NIL
SELF
Form1
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Composite Control wird nicht dargestellt.

  Alt 16. Mär 2009, 11:15
Da es ja jetzt ein TWinControl ist, schau Dir #4 nochmal an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Composite Control wird nicht dargestellt.

  Alt 16. Mär 2009, 11:18
Zitat von DeddyH:
Da es ja jetzt ein TWinControl ist, schau Dir #4 nochmal an.
Danke dir HDeddy das war der letzte fehlende Hinweis, es funktioniert mit dieser Ergänzung.
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Composite Control wird nicht dargestellt.

  Alt 16. Mär 2009, 12:43
Noch eine Frage zu den composite controls. In wiefern ist es denn sinnvoll, wie im Tutorial von Ray Konopka gezeigt, eine solche Unterklasse als TPersistent zu erstellen? Ist es nicht eigentlich günstiger die gesamte Verarbeitung mit allen Methoden und Events in der TWinControl-Klasse zu machen? Welche Vorteile hat es eventuell (ich denke der Herr Konopka, hat sich ja sicherlich sehr viele Gedanken gemacht für sein Tut) diese vorgegebene Struktur aus dem Tutorial zu nutzen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:46 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