AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Kann nicht auf Komponente auf anderer Form zugreifen?

Kann nicht auf Komponente auf anderer Form zugreifen?

Ein Thema von Mazen · begonnen am 15. Nov 2012 · letzter Beitrag vom 15. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2   
Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#1

Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 13:53
Delphi-Version: 7
Es geht dabei um ein Projekt was ich nicht selbst programmiert habe, sondern ein Kollege der aber mittlerweile nicht mehr hier arbeitet, also weiß ich nciht genau was er hier gemacht hat.

Ich habe das Projekt um die Unit "uFahrer" erweitert. "uFahrer" steht in der Uses-Liste der Unit "Gate" und wird mit "frmFahrer.ShowModal" aufgerufen.
Nun will ich aus der "uFahrer" ein TEdit-Feld in "Gate" füllen.
Habe also "Gate" in die Uses-Liste von "uFahrer" aufgenommen. Nun ging ich davon aus das ich mit "GateFrame.edFahrer.Text := 'Fahrer'" auf edFahrer zugreifen könnte. Kann ich aber nicht?! ("GateFrame" ist der Name des Formulars)
"Undfinierter Bezeichner: GateFrame" ist die Aussage des Compilers.

Wenn ich mit Strg auf "Gate" klicke in meiner USes-Liste öffnet er auch die richtige Unit, also gehe ich doch davon aus das ihm diese bekannt ist?!

Womit kann das noch zusammenhängen das ich da nicht hinkomme?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:02
Und dabei blickst Du noch durch? Wenn sich 2 Units gegenseitig einbinden deutet das fast immer auf schlechtes Design hin. Besser Du entscheidest Dich für eins der beiden und tauschst Daten über eine Property aus.
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
Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#3

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:06
Was gibts da nicht zu blicken? Es sind nur 2 Units. uFahrer und Gate.
Gate beinhaltet Eingabefelder für Fahrerdaten. uFahrer bietet eine Liste aller Fahrer die sich im Moment auf dem Gelände befinden. (Es geht dabei nicht nur um den Namen, sondern noch weitere Daten die in verschiedene Felder gefüllt werden müssen. Daher kommt eine Dropdownbox o.ä. nicht in Frage).
in uFahrer habe ich nun meine Tabelle mit den Fahrern. Da mache ich Doppelklick auf einen und die Daten werden ins die richtigen Felder in Gate gefüllt?

Klingt für mich nicht kompliziert. Und im "kleinen maßstab" (Ein Projekt mit nur 2 Forms, die jeweils nur eine TButton und TEdit Komponente enthalten) geht das auch problemlos.

Geändert von Mazen (15. Nov 2012 um 14:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:08
Klingt für mich nicht kompliziert. Und im "kleinen maßstab" (Ein Projekt mit nur 2 Forms, die jeweils nur eine TButton und TEdit Komponente enthalten) geht das auch problemlos.
Wozu dann dieser Thread?
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
Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#5

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:11
Weils mir nicht viel bringt das ich weiß das es im "kleinen Maßstab" funktioniert.
Es muss auch in meinem richtigen Projekt funktionieren, und nicht nur in meinem kleinen Testprojekt.

Und daher die Frage wodran es noch liegen kann das Form2 Form1 nicht erkennt.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:11
Bist Du Dir denn sicher dass GateFrame wirklich der Name des aufrufenden Formulars ist ? Alleine von der Bezeichnung hätte ich auf ein Formular getippt, in dem das Frame liegt, so dass Du das über Formular.Gateframe. aufrufen musst
  Mit Zitat antworten Zitat
Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#7

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:17
Bist Du Dir denn sicher dass GateFrame wirklich der Name des aufrufenden Formulars ist ? Alleine von der Bezeichnung hätte ich auf ein Formular getippt, in dem das Frame liegt, so dass Du das über Formular.Gateframe. aufrufen musst
Ich muss zugeben das ich bisher noch nie mit Frames gearbeitet habe. Daher bin ich mir schon fast sicher das das hier mein Problem ist.
Dann müsste ich nurnoch rausfinden in welchem Formular das Frame liegt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:23
Mal ein Beispiel für das von mir gemeinte mit 3 Units:
Delphi-Quellcode:
unit uFahrer;

uses ...;

type
  TFahrer = class
    ...
  end;
Delphi-Quellcode:
unit uListenformular;

uses ..., uDetailformular, Fahrer;

...

Detailformular.Fahrer := Fahrer_aus_Liste;
Detailformular.ShowModal;
Delphi-Quellcode:
unit uDetailformular;

uses ..., uFahrer;

type
  TDetailformular = class(TForm)
  ...
  private
    FFahrer: TFahrer;
  public
    property Fahrer: TFahrer read FFahrer write FFahrer;
Somit genügt es, wenn das Listenformular das Detailformular kennt, andersherum muss nicht.
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
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:29
Ruf mal über Ansicht die Objekthirachie auf und wähle GateFrame an. Dann siehst Du im Treeview der Objekthirachie ob es ein übergeordnetes Element gibt
  Mit Zitat antworten Zitat
Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#10

AW: Kann nicht auf Komponente auf anderer Form zugreifen?

  Alt 15. Nov 2012, 14:47
Mal ein Beispiel für das von mir gemeinte mit 3 Units:
Delphi-Quellcode:
unit uFahrer;

uses ...;

type
  TFahrer = class
    ...
  end;
Delphi-Quellcode:
unit uListenformular;

uses ..., uDetailformular, Fahrer;

...

Detailformular.Fahrer := Fahrer_aus_Liste;
Detailformular.ShowModal;
Delphi-Quellcode:
unit uDetailformular;

uses ..., uFahrer;

type
  TDetailformular = class(TForm)
  ...
  private
    FFahrer: TFahrer;
  public
    property Fahrer: TFahrer read FFahrer write FFahrer;
Somit genügt es, wenn das Listenformular das Detailformular kennt, andersherum muss nicht.
Das kann ich leider nicht ganz nachvollziehen.
Hab auch mit Propertys noch nicht gearbeitet, bin noch relativ neu in Delphi. Ich weiß auch nicht genau was bei dir Listenformular und Detailformular sein soll. Aber meiner Meinung nach machen die Aufrufe so keinen Sinn.

Wenn ich in der unit "Gate" in die objekthierarchie schaue ist "GateFrame" logischerweise ganz oben, ohne übergeordnete Elemente da sich die Objekthierarchie ja nur auf die ausgewählte unit bezieht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:37 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