Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Dynamische Komponentennamen (https://www.delphipraxis.net/76634-dynamische-komponentennamen.html)

snapman 7. Sep 2006 10:17


Dynamische Komponentennamen
 
Hallo,
ich brauche für einen Browser TabbedBrowsing und verwende hierfür folgenden Code:

Delphi-Quellcode:
  Tab:= TTabSheet.Create(PageControl1);
  Tab.PageControl:= PageControl1;
  Tab.Caption:= '[Unbenannt]';
  Pagecontrol1.ActivePage:=Tab;

  Browser:= TMozillaBrowser.Create(Tab);
  TControl(Browser).Parent:= Tab;
  Browser.Navigate('about:blank');
Dies funktioniert auch soweit, aber unabhängig vom aktiven Tab wird nun immer nur der letzte erstellte Browser angesprochen.
Die Frage ist nun wie kann ich die Namen dynamisch vergeben (Browser1,Browser2), so daß ich jeweils den aktiven ansprechen kann...ihr versteht sicher mein Problem

mkinzler 7. Sep 2006 10:48

Re: Dynamische Komponentennamen
 
Am besten du erzeugst dir einen Array in dem du die Referenzen ablegst oder gibst den dy. Instanzen eind. namen und verwendest .FindControl

snapman 7. Sep 2006 11:16

Re: Dynamische Komponentennamen
 
Habs mal mit

[...]

TControl(Browser).Name:='Browser'+inttostr(PageCon trol1.TabIndex);
(FindComponent('Browser'+inttostr(PageControl1.Tab Index)) as TMozillaBrowser).Navigate('www.www.de');


versucht...kommt aber nur eine Access Violation :(

Andreas L. 7. Sep 2006 11:33

Re: Dynamische Komponentennamen
 
Zitat:

Zitat von snapman
Habs mal mit

[...]

TControl(Browser).Name:='Browser'+inttostr(PageCon trol1.TabIndex);
(FindComponent('Browser'+inttostr(PageControl1.Tab Index)) as TMozillaBrowser).Navigate('www.www.de');


versucht...kommt aber nur eine Access Violation :(

Probiers mal so:
Delphi-Quellcode:
TControl(Browser).Name:='Browser'+inttostr(PageControl1.TabIndex);
 (form1.FindComponent('Browser'+inttostr(PageControl1.TabIndex)) as TMozillaBrowser).Navigate('www.www.de');

mkinzler 7. Sep 2006 11:34

Re: Dynamische Komponentennamen
 
Versuch mal:
Delphi-Quellcode:
 (PageControl1.FindComponent('Browser'+inttostr(PageControl1.TabIndex)) as TMozillaBrowser).Navigate('www.www.de');
Ich würde die Lösung mit array aber vorziehen!

snapman 7. Sep 2006 12:18

Re: Dynamische Komponentennamen
 
thx erstmal an euch

das ist nun die korrekte lösung...ohne das activepage gibt es auch violation..weil parent ja dem tab gehört
(PageControl1.ActivePage.FindComponent('Browser'+i nttostr(PageControl1.TabIndex)) as TMozillaBrowser).Navigate(edit1.text);


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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