AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Komponente:Mit Create auf erstelltes Panel zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente:Mit Create auf erstelltes Panel zugreifen

Ein Thema von Helmi · begonnen am 23. Dez 2006 · letzter Beitrag vom 23. Dez 2006
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:05
Hallo und frohe Weihnachten,

ich steh gerade auf dem Schlauch:

Ich erzeuge eine Komponente abgeleitet von TPanel.

Im constructor werden neben 1 StaticText auch ein Panel und in diesem Panel ein Image erzeugt.

Delphi-Quellcode:
constructor TMaskFrame.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  //interne Variablen erzeugen
  FPicture := TPicture.Create;


  //feste Werte für MaskFrame
  BevelInner := bvNone;
  BevelOuter := bvRaised;
  BevelWidth := 1;
  BorderWidth := 1;
  BorderStyle := bsNone;
  Enabled := true;
  Visible := false;
  Caption := '';

  //StaticText erzeugen
  FStatic_Caption := TStaticText.Create(self);
  with FStatic_Caption do
    begin
      Parent := self;
{ .. }
    end;

  //Panel erzeugen
  FWork_Panel := TPanel.Create(self);
  with FWork_Panel do
    begin
      Parent := self;
{ .. }
    end;

  //Image erzeugen
  FBackground_Image := TImage.Create(FWork_Panel);
  with FBackground_Image do
    begin
      Parent := FWork_Panel;
{ .. }
end;
Soweit so gut - nur wenn ich diese Komponente erzeuge, z. B.:
Maske := TMaskFrame.Create(Form1); wird ja auf das erste Panel zugegriffen.
Ich möchte aber auf das Work_Panel mit dem o. s. Create zugreifen können.
Dies wird leider aber erst erzeugt, wenn das HauptPanel erzeugt wird.

wie könnte ich das realisieren? (ich hoffe es ist verständlich was für ein Problem ich hab)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:18
Zitat:
wie könnte ich das realisieren? (ich hoffe es ist verständlich was für ein Problem ich hab)
Nicht ganz. Wann und von wo willst du darauf Zugreifen?
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:20
Moin Helmi,

Zitat von Helmi:
(ich hoffe es ist verständlich was für ein Problem ich hab)
Wenn ich die Wahrheit sagen sollte, müsste ich lügen

Also ich habe das Problem nicht verstanden, zumal sich mir der Sinn verschliesst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:32
na gut

Ich versuchs mal bildlich (siehe Anhang):

Das ganze ist das erstellte Panel (nennen wir es HauptPanel).
Das gelbe Feld oben ist das StaticText, es wird auf dem HauptPanel und wird im Create des HauptPanels erzeugt.
Das blaue Feld ist das 2. Panel (nennen wir es WorkPanel).
Das liegt auch auf dem HauptPanel und wird auch im Create des HauptPanels erzeugt.

Das ganze ist eine Komponente.

Wenn ich nun diese Komponente erzeuge, und z. B. Color verändern möchte, dann passiert das auf dem HauptPanel.

Es soll aber sein, dass die erzeugte Komponente nicht auf das HauptPanel zeigt, sondern auf das Workpanel (also auf den blauen Bereich)
Miniaturansicht angehängter Grafiken
panel_123.jpg  
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:37
schreib ne funtion die darauf zugreift.
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:37
Also entweder eine Property für das Workpanel oder die Properties für die Eigenschaften neu Implemnetieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 15:41
Moin Helmi,

also ich würde dieses Workpanel einfach als Eigenschaft veröffentlichen, so das die Eigenschaften für beide getrennt eingestellt werden können.
Ausserdem könntest Du auch die jeweiligen Eigenschaften direkt nach aussen führen.

Sollte das Hauptpanel aber eigentlich sowieso nicht direkt zur Verfügung stehen, frage ich mich, warum Du dann von TPanel ableitest, und nicht, z.B., von TComponent.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 16:32
Zitat von Christian Seehase:
Moin Helmi,

also ich würde dieses Workpanel einfach als Eigenschaft veröffentlichen, so das die Eigenschaften für beide getrennt eingestellt werden können.
Ausserdem könntest Du auch die jeweiligen Eigenschaften direkt nach aussen führen.

Sollte das Hauptpanel aber eigentlich sowieso nicht direkt zur Verfügung stehen, frage ich mich, warum Du dann von TPanel ableitest, und nicht, z.B., von TComponent.
Ich hab jetzt eine property erstellt, die auf mein WorkPanel zeigt:
    property WorkPanel: TPanel read FWork_Panel; Auch wenn man es nicht sieht, aber das HauptPanel ist sichtbar und macht den äusseren Rand.

Aber mal blöd gefragt: Wie könnte man das mit TComponent machen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Komponente:Mit Create auf erstelltes Panel zugreifen

  Alt 23. Dez 2006, 16:37
Zitat:
Aber mal blöd gefragt: Wie könnte man das mit TComponent machen?
Einfach statt TPanel TComponent als Superklasse nehmen.
Markus Kinzler
  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 14:51 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