AGB  ·  Datenschutz  ·  Impressum  







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

Form Namen Variable verwenden

Ein Thema von Andidreas · begonnen am 21. Aug 2012 · letzter Beitrag vom 24. Aug 2012
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:21
Hallo zusammen,

über den folgenden Source erhalte die Komponenten Anzahl die sich in einer Form befinden:

Form1.ComponentCount;

Ich versuche nun in meinem Programm in einer Prozedur an den Component Count einer anderen Form ranzukommen, wobei ich mir den Namen der Form als String Variable übergeb.
Wie Funktioniert sowas? Oder ist mein Ansatz Falsch das ich den Namen der Form als String übergebe?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald

Geändert von Andidreas (21. Aug 2012 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:24
Wieso als String und nicht als Instanz?
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:26
Da müsste mit Application.FindComponent(<Name der Form>).ComponentCount; gehen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:28
Aber doch nur dann, wenn Application auch der Owner der gesuchten Form ist, oder?
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:33
Ja. Sollte normalerweise ja so sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:35
Bei dynamisch erzeugten Formularen nicht unbedingt. Allerdings ist ja meine Frage von oben immer noch offen, aus welchem Grund das ein String ist und nicht eine Instanz oder auch eine TFormClass-Variable.
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
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:37
Dennoch wäre es mehr als ratsam das Formular als Referenz zu übergeben, wenn diese für den Aufrufer ohenhin vorliegt.

Edit: Deddy is heut flott
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:38
Edit: Deddy is heut flott
Ich muss mich heute irgendwie wach halten
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 Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 17:09
Damit man mein Vorhaben ein bißchen besser versteht noch ein paar zusätzliche Infos...
In meinem Programm gibt es mehrere Forms... In jeder Form gibt es mehrere Komponenten wie z.B. Labels etc.
Die Anforderung ist nun das der Benutzer eine csv Datei erstellen kann in der er je nach Land die Captions von Labels & Co. übersetzen kann.

Damit ich nun im OnCreate Ereignis jeder Form die csv Datei auslesen muss wollte ich mir eine Prozedur basteln an die ich den Form Namen übergebe und über die Prozedur sollen aus der csv Datei dann die richtigen Captions ausgelesen werden.

Bisher sieht das ganze nun so aus:

Delphi-Quellcode:
procedure prLoadModuleLanguage(sModule : String);

var
i : Integer;


begin

  For i := 0 To Application.FindComponent(sModule).ComponentCount -1 Do
  Begin

    //TAdvPage
    If (Application.FindComponent(sModule).Components[i] is TAdvPage) Then
    Begin
      (Application.FindComponent(sModule).Components[i] as TAdvPage).Caption := fnGetComponentCountryText('Component', sModule, 'TAdvPage', (Application.FindComponent(sModule).Components[i] as TAdvPage).Name);
    End;

    //TAdvToolBar
    If (Application.FindComponent(sModule).Components[i] is TAdvToolBar) Then
    Begin
      (Application.FindComponent(sModule).Components[i] as TAdvToolBar).Caption := fnGetComponentCountryText('Component', sModule, 'TAdvToolBar', (Application.FindComponent(sModule).Components[i] as TAdvToolBar).Name);
    End;

    //TAdvGlowButton
    If (Application.FindComponent(sModule).Components[i] is TAdvGlowButton) Then
    Begin
      (Application.FindComponent(sModule).Components[i] as TAdvGlowButton).Caption := fnGetComponentCountryText('Component', sModule, 'TAdvGlowButton', (Application.FindComponent(sModule).Components[i] as TAdvGlowButton).Name);
    End;

  End;

end;

Bisher habe ich keine bessere Idee wie ich das sonst umsetzen könnte... Ich lass mir aber gern auf die Sprünge helfen
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 17:23
Und jetzt habe ich glaub das Problem das Ihr angesprochen habt...
Meine Forms werden Dynamisch erzeugt... Mit der Variante von mkinzler erhalte ich jetzt eine Zugriffsverletzung...

Wie kann ich den die Form, bzw. den Namen als Instanz oder Referenz übergeben?

@deddyH
Warum ich das bis jetzt so probiert habe ist eigentlich ganz einfach... Mir ist nichts anderes eingefallen beim rumprobieren :-O
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 00:25 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