AGB  ·  Datenschutz  ·  Impressum  







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

Dynamischer Verweis auf Komponente

Ein Thema von Moombas · begonnen am 17. Sep 2018 · letzter Beitrag vom 21. Sep 2018
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 11:18
@Schokohase: Nicht wirklich. Sorry aber ich glaube du hast das nicht so ganz verstanden.
Aufbau:
Edits:
Pagecontrol1 (Menu) -> PageX (Einstellungen) -> Pagecontrol2 (EinstellungenPC) -> PageY (ToolsE) -> EditE1-15 (Programmpfade) & EditP1-15 (Parameter)
Tool1E.text...Tool15E.text
Tool1P.text...Tool15P.text

Buttons:
Pagecontrol1 (Menu) -> PageZ (Programme) - >GroupBox (Toolbar) -> Button1-15 (Aufruf)
Tool1B...Tool15B

Und an dem Aufbau wird sich nichts ändern.

@DeddyH: Doch TTools ist die Form (Formname: Tools). Probiert habe ich es auch schon mit:
showmessage(TEdit(FindComponent('Application.TTool s.Tool' + copy(Name, 5, 1) + 'E')).Text);
showmessage(TEdit(FindComponent('Application.Tools .Tool' + copy(Name, 5, 1) + 'E')).Text);
showmessage(TEdit(FindComponent('TTools.Tool' + copy(Name, 5, 1) + 'E')).Text);
showmessage(TEdit(FindComponent('Tools.Tool' + copy(Name, 5, 1) + 'E')).Text);

leider kein Erfolg, er scheint das EditFeld absolut nicht zu finden. Da muss irgendwo ein Denkfehler sein.

Geändert von Moombas (17. Sep 2018 um 11:27 Uhr)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#12

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 11:45
Nun sagen wir mal so, du hast es gar nicht erklärt. Und Nichts kann man eben nicht nicht verstehen.

Aber aus deinen Erklärungen sehe ich das es auf der PageY (ToolsE) 15 Paare von Edit-Feldern gibt (eines für den Programmpfad, das andere für die Parameter).

Diese beiden könnte man in einem Frame zusammenfassen und dem Frame eine Execute-Methode verpassen (so wie von mir gezeigt).

Aber ist schon recht ... bei dem Aufbau würde ich da auch ganz anders drangehen (kein Zugriff vom Button auf die ToolXE/ToolXP-Cotrols)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#13

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 11:50
er scheint das EditFeld absolut nicht zu finden. Da muss irgendwo ein Denkfehler sein.
Wenn die PAS-Datei zu geheim ist, genügt es auch nur die DFM-Datei hier zu posten. Daran könnte man den Aufbau des Forms schon erkennen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 11:59
Das sollte kein Problem darstellen^^ s.u.
Angehängte Dateien
Dateityp: zip Toolbox.zip (96,6 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 12:20
Hab aber in einem anderen Beitrag (über Google über Umwege) eine Lösung gefunden:

TEdit(Tools.FindComponent('Tool' + copy(Name, 5, 1) + 'E')).Text

-.-
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#16

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 12:28
Hab aber in einem anderen Beitrag (über Google über Umwege) eine Lösung gefunden:

TEdit(Tools.FindComponent('Tool' + copy(Name, 5, 1) + 'E')).Text -.-
Die funktioniert ja super für die Button von 1-9. Aber was ist mit 10,11,12,13,14,15?
Es gibt keine Exception, aber einen falschen Zugriff auf Tool1E!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#17

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 12:50
Hab aber in einem anderen Beitrag (über Google über Umwege) eine Lösung gefunden:

TEdit(Tools.FindComponent('Tool' + copy(Name, 5, 1) + 'E')).Text
Wenn das Voranstellen des Formnamens (was in der Regel eher nicht gut ist) das Problem löst, dann kann das eigentlich nur bedeuten, daß der Button-Click Event nicht innerhalb der TTools-Klasse liegt. Das wäre allerdings eine nicht ganz unwichtige Information.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 14:47
@Schokohase: Doch:
Delphi-Quellcode:
    try
      StrToInt(copy(Name, 6, 1));
//1-Stellig (0-9)
    except
//2-Stellig (10-99)
    end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 14:52
Wieso sollte der Code eine Exception werfen, wenn im 6. Zeichen eine Ziffer steht?
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
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#20

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 14:55
Zitat:
showmessage(TEdit(FindComponent('Application.TTools.Tool' + copy(Name, 5, 1) + 'E')).Text);
Ich glaube du hast das FindComponent falsch verstanden.

Es ist keine globale Funktion, sondern die Methode von TComponent-Nachfahren.
In deinem Fall also Self.FindComponent , welches somit aus deiner TForm kommt (über die Klasse, in welcher die aufrufende Methode liegt)

Und das Ding sucht nur nach Sub-Komponenten in der angegebenen Komponente, also nach allem, von dem deine Form der Owner ist.
Komponenten-Pfade werden dabei nie aufgelöst ... nur das was "direkt" ein Child ist.


Das Selbe gilt für FindControl, was entsprechend die Parent-Beziehungen behandelt.


In der globalen Variabe Screen findet man alle Forms, welche man durchgehen und da drauf suchen könnte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:09 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