AGB  ·  Datenschutz  ·  Impressum  







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

Vererbte Frames finden...

Ein Thema von litsa · begonnen am 16. Aug 2006 · letzter Beitrag vom 16. Aug 2006
Antwort Antwort
Benutzerbild von litsa
litsa

Registriert seit: 6. Jul 2006
Ort: Detmold
51 Beiträge
 
Delphi 2006 Architect
 
#1

Vererbte Frames finden...

  Alt 16. Aug 2006, 08:04
Hallo!

Habe folgendes Problem: zur Laufzeit erstelle ich Frames auf 'nem PageControl die bestimmte Namen erhalten. Wie kann ich auf die Frames zugreifen ohne den Namen anzugeben?? Mit FindComponent kann ich das net weil ich nen Namen angeben muss...Kann mir da jemand helfen?!

Danke!
Evangelia
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Vererbte Frames finden...

  Alt 16. Aug 2006, 08:20
Wenn du die Frames zur Laufzeit erstellst, dann musst du ja auch einen Variablen-Namen angeben, also wo ist das Problem?
Sascha
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Vererbte Frames finden...

  Alt 16. Aug 2006, 09:20
ne er kann auch einfach nur

Delphi-Quellcode:
with TMyFrame.Create(Pcontrol)do
  begin
  Parent:=pcontrol;
  .
  .
  end;
machen, also ohne Variable.

Ich würde sagen das eine Variable geeigneter wäre:

Delphi-Quellcode:
myframe:=TMyFrame.Create(Pcontrol);
with myframe do
  begin
  Parent:=pcontrol;
  .
  .
  end;
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von litsa
litsa

Registriert seit: 6. Jul 2006
Ort: Detmold
51 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Vererbte Frames finden...

  Alt 16. Aug 2006, 09:32
Die Namen sind nicht immer die gleichen und die Anzahl der Frames die jedes mal erstellt werden variiert.
Ich möchte eine Prozedur aufrufen können die alle erstellten Frames durchläuft:

Delphi-Quellcode:
 
for i := 0 to MAin.PageControl1.PageCount - 1 do
begin
// hier soll eine procedure des Frames stehen
end;

Also frage ich mich wie ich auf alle ChildComponenten (als TmyFrame) des PageControl1 zugreifen kann ohne die Namen angeben zu müssen!


Vorläufig habe ich es so gelöst, dass tabs und frames gleiche Namen bekommen mit nem 'tab' bzw. 'frame' davor::

Delphi-Quellcode:
 
for i := 0 to MAin.PageControl1.PageCount - 1 do
begin
FrameName := copy(Main.PageControl1.Pages[i].Name, 4, length(Main.PageControl1.Pages[i].Name) - 3); //entfernt das wort 'tab'
(Main.PageControl1.Pages[i].FindComponent('frame' + frameName) as TmyFrame).Getsize(byt_);
end;
Trotzdem wenn jemand weiss wie das einfacher geht dann bitte!
Evangelia
  Mit Zitat antworten Zitat
Benutzerbild von litsa
litsa

Registriert seit: 6. Jul 2006
Ort: Detmold
51 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Vererbte Frames finden...

  Alt 16. Aug 2006, 09:42
..die Frames erstelle ich so:

Delphi-Quellcode:
procedure TStatusFr.NewFrame(n_: string);
var
  quTab: TTabSheet;
  quFrame: TFrame;
begin
  quTab := TTabSheet.Create(Main.PageControl1);
  quTab.PageControl := Main.PageControl1;
  quTab.Name := 'tab' + n_;
  quTab.Caption := n_;
  quTab.Show;
  with TmyFrame.Create(self) do
  begin
    Name := 'frame' + n_;
    Caption := n_;
    Parent := quTab;
    Show;
    align := alClient;
  end;
end;
Evangelia
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Vererbte Frames finden...

  Alt 16. Aug 2006, 10:04
Mach aus dem ganzen eine Funktion bei der du das Frame als Result zurückgibst.
dann weise das Frame einem Array zu:

Delphi-Quellcode:
var
framefeld : array of TFrame;

.
.
procedure NeuesFrames(AName : string);
begin
SetLength(framefeld,Length(framefeld)+1);
framefeld[Length(framefeld)-1]:=DoNeuesFrame(AName);
end;

Nur so als Ansatz
Martin Weber
Ich bin ein Rüsselmops
  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 15: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