AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Zugriff auf dyn. generiertes Frame im aktiven TabSheet
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf dyn. generiertes Frame im aktiven TabSheet

Ein Thema von Schnitzel · begonnen am 10. Mai 2004 · letzter Beitrag vom 3. Nov 2006
Antwort Antwort
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#1

Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 10. Mai 2004, 19:51
Hi und guten Abend <slang>alle mitternand</slang>

ich hab ein kleines Problem - ein logik-Problem...

Ich habe ein PageControl in dem ich zur Laufzeit dynamisch TabSheets generieren kann. In diese TabSheets erstelle ich dann dynamisch generierte Frames. In diesen Frames steckt ein Edit-Feld, auf das ich zugreifen möchte...
Nochmal langsam: Ich starte mein Programm.(alles etwas vereinfacht dargestellt ) Ich klicke auf "TabSheet erstellen" und create ein TabSheet. Gleichzeitig create (wenn das mal nicht im Duden steht ) ich ein Frame und pappe es in das TabSheet.
Jetzt möchte ich in der Hauptapplikation auf einen Button klicken und das Edit-Feld in dem Frame, dass im aktuell angezeigeten TabSheet steckt, ändern.

*puh* Ich hoffe, ihr versteht, was ich meine - vielleicht stehe ich etwas auf dem Schlauch, aber ich wüsste jetzt echt nicht, wie ich das anstelle (ich habe eben fast eine halbe Stunde auf dem Klo darüber nachgedacht, aber .. nix )

Vielen Dank schonmal und noch einen schönen Abend!

Viele Grüße
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 18:47
Okay, ich denke ich kann das irgendwie mit Tags regeln...
Ich kann ja beim Createn dem TabSheet ein Tag geben und das Frame dadrinne so nennen - dann müsste es gehen, aber:

Wenn ich jedesmal ein neues Frame create "frame1, frame2, frame3. .." dann sind irgendwann mal die Zahlen zu Ende - das ist ein Problem.
Wie könnte ich das verhindern? (irgendwie dem Programm mittendrin beibringen, welche Zahlen es neu verwenden kann?)

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 18:49
Hi,

Du könntest über FindComponent() das Edit Control suchen.
Thomas
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 18:55
Ja, das hatte ich ja vor, nur irgendwann mal bin ich bei Frame9999999... (ist jetzt ne Fiktive Zahl ) angekommen und was dann?
Dann muss ich mich im Schrank verstecken
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 18:57
Nehmen wir mal ruhig an, dass gar nicht so viele Frames erzeugt werden können. (wegen den Windows Ressourcen)
Thomas
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 19:14
Das Problem ist aber, dass im Laufe des "Programmlebens" die Frames natürlich auch wieder Terminiert werden und neue generiert werden. -Also ein ewiges generieren, Terminieren usw...
Da das aber unkontolliert (also vom User abhängig) passiert, ist das blöd
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 20:11
Okay, jetzt wirds kriminell:

Delphi-Quellcode:
var
tmp_Frame: TMYFRAME;
begin
tmp_Frame := TMYFRAME(FindComponent('Frame' + inttostr(PageControl1.ActivePage.Tag)));
showmessage(tmp_Frame.Framevariable);
das showmessage gibt mir eine Exception (EAccessViolation) - warum das jetzt? Die Variable existiert innerhalb des Frames und da steckt auch was drin .. ??
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 21:38
Okay, ich habs jetzt - FindComponent funktioniert nicht
Ich suche nach "Frame1" und es gibt ein "Frame1" nur tmp_Frame ist nach FindComponent = nil - versteh einer das...

EDIT: Was mich auch etwas stutzig macht ist die Tatsache, dass ich zur Laufzeit soviele Frames mit dem Namen "Frame1" createn kann, wie ich will - macht Delphi gar nix aus - ist das normal?
  Mit Zitat antworten Zitat
Schnitzel

Registriert seit: 13. Apr 2004
20 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 16. Mai 2004, 22:28
Juhu - teilweise geht's jetzt:
ich muss Frame.create(Application) machen, damit das Frame am Application hängt. Nur so kann ich mit Application.FindComponent das Frame finden

Danke schonmal - manchmal muss man sich einfach nur mal irgendwo ausheulen

PS Das Problem mit den Zahlen die irgendwann zu hoch werden, hab ich allerdings immernoch
  Mit Zitat antworten Zitat
dh-clfs

Registriert seit: 6. Mai 2005
Ort: Germany-Berlin
5 Beiträge
 
Delphi XE Enterprise
 
#10

Re: Zugriff auf dyn. generiertes Frame im aktiven TabSheet

  Alt 3. Nov 2006, 16:46
Hallo erstmal,

ich glaube, dass es hier am besten zu passt. Ich habe vor zur Laufzeit in einem PageControl x Tabsheets zu erzeugen die als Inhalt auf die gleiche Frame-Klasse zugreifen sollen.
Die Erstellung der Tabsheets funktioniert soweit, jedoch erhalte ich eine Fehlermeldung beim Erstellen des Frames.

FM" Das objekt kann nicht erzeugt werden, da bereits der Name verwendet wird".

Danke für die Hilfe im voraus.
Frank Schmidt
  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 06:30 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