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 1 von 2  1 2      
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: Dynamischer Verweis auf Komponente

  Alt 17. Sep 2018, 10:56
Also würdest du so etwas brauchen
Delphi-Quellcode:
unit uStartFrame;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TFrame1 = class(TFrame)
    Edit1: TEdit;
    Edit2: TEdit;
  private
    { Private-Deklarationen }
  public
    procedure Execute();
  end;

implementation

uses
  Winapi.ShellAPI;

{$R *.dfm}

procedure TFrame1.Execute;
begin
  ShellExecute( Handle, 'open', PChar(Edit1.Text), PChar(Edit2.Text), nil, SW_SHOW );
end;

end.
Und für den Button
Delphi-Quellcode:
procedure TFormX.Button1_Click(Sender:TObject);
begin
  Frame1.Execute;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

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

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
 
#3

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

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

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
 
#5

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
 
#6

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
 
#7

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

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

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
 
#9

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.656 Beiträge
 
Delphi 12 Athens
 
#10

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
Antwort Antwort
Seite 1 von 2  1 2      


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 01:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz