AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Unterschied zwischen Komponente und Form.Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zwischen Komponente und Form.Komponente

Ein Thema von xZise · begonnen am 16. Mär 2006 · letzter Beitrag vom 17. Mär 2006
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Unterschied zwischen Komponente und Form.Komponente

  Alt 16. Mär 2006, 20:05
Ich habe folgendes Problem:
Es gibt 2 Formen ((U/T)Einstellungen und (U/T)Durchsuchen). Auf Einstellungen gibt es ein EditFeld (Ort)... Wenn man jetzt von Durchsuchen den Text verändert, dann wird der neue Text nicht für die Komponente übernommen.

Es gibt dann folgende Konstellation:
Einstellungen.Ort.Text >>> neuer Wert
Ort.Text >>> alter Wert

Und auch noch ein bisschen Code...
Einstellungen:
Delphi-Quellcode:
implementation
  uses
    [...] UDurchsuchen [...];
Delphi-Quellcode:
procedure TEinstellungen.Button2Click(Sender: TObject);
begin
  Durchsuchen.ShowModal;
  Ort.Text := Einstellungen.Ort.Text;
end;
Durchsuchen:
Delphi-Quellcode:
interface

uses
  [...] UEinstellungen;
Delphi-Quellcode:
procedure TDurchsuchen.BitBtn1Click(Sender: TObject);
begin
  Einstellungen.Ort.Text := Ordner.Path;
  close;
end;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 16. Mär 2006, 20:09
Sehr komisch! In Methoiden von Einstellungen sollte Einstellung.Ort.Text dasselbe sein wie Ort.Text.
Markus Kinzler
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 16. Mär 2006, 20:19
Zitat:
Delphi-Quellcode:
implementation
  uses
    [...] UDurchsuchen [...];
Seit wann ist dies möglich? Also mir ist bekannt, dass sich Units nicht gegenseitig "benötigen" dürfen. Du müsst also bei dir eine Hauptunit und eine Nebenunit festlegen. Aber eigentlich dürfte es nicht daran liegen, da Delphi ansonsten meckern würde.
Aber warum weißt du
Ort.Text := Einstellungen.Ort.Text; zu? das ist doch das selbe, oder irre ich mich da jetzt komplett?
Willy Scheibel
  Mit Zitat antworten Zitat
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 16. Mär 2006, 20:41
Ort.Text = Einstellungen.Ort.Text Das is nicht unbedingt dasselbe. Einstellungen.Ort.Text bezeichnet Ort.Text in der Instanz "Einstellungen", während Ort.Text sich auf die Instanz des aufrufenden Objekts bezieht. Hättest du zum Beispiel mehrere Instanzen der Klasse "TEinstellungen" (oder wie se jetzt heißt), dann kann das ganz andere Auswirkungen haben.

Gruß
Michael
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 16. Mär 2006, 22:07
Zitat von Flare:
Zitat:
Delphi-Quellcode:
implementation
  uses
    [...] UDurchsuchen [...];
Seit wann ist dies möglich?
Leider schon mindestens seit Delphi 5. Ich hab mich bei der Pflege von Quelltexten von inzwischen ehemaligen Mitarbeitern auch schon oft genug drüber geärgert. Einzige Voraussetzung ist afair, dass unit_a unit_b im interface und unit_b unit_a im implementation referenziert. Machst du es beides Mal im Interface kommt auch ein Compilerfehler.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 17. Mär 2006, 16:25
Zitat von Flare:
Zitat:
Delphi-Quellcode:
implementation
  uses
    [...] UDurchsuchen [...];
Seit wann ist dies möglich?
Also ich habe einmal das eine in interface und das andere in implemantation zugewiesen.

Zitat von Flare:
Aber warum weißt du
Ort.Text := Einstellungen.Ort.Text; zu? das ist doch das selbe, oder irre ich mich da jetzt komplett?
Weil damit das Problem umgangen wird.

Zitat von MStoll:
Das is nicht unbedingt dasselbe. Einstellungen.Ort.Text bezeichnet Ort.Text in der Instanz "Einstellungen", während Ort.Text sich auf die Instanz des aufrufenden Objekts bezieht. Hättest du zum Beispiel mehrere Instanzen der Klasse "TEinstellungen" (oder wie se jetzt heißt), dann kann das ganz andere Auswirkungen haben.
Kann es daran liegen, dass ich einmal Application.CreateForm(etc.) und einmal das schon vorher create? (mit etc. meine ich Einstellungen)
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 17. Mär 2006, 16:29
Zitat:
Kann es daran liegen, dass ich einmal Application.CreateForm(etc.) und einmal das schon vorher create? (mit etc. meine ich Einstellungen)
Dadurch hast du 2 Instanzen der Klasse, welche natürlich 2 verschiedene Wertemengen besitzen.
Wenn du die Formularklassen im Hauptprogramm (dpr) mite CreateForm erzeugst, mußt du sie nicht klasse := tklasse.Create erzeugen!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Unterschied zwischen Komponente und Form.Komponente

  Alt 17. Mär 2006, 17:05
Es kann ja auch sein, dass ein Programm weiter vorne darauf zugreifen muss...

Also muss ein Create weg?

edit: Ich habe das eine Create jetzt weggenommen (nicht das in der dpr) aber jetzt meckert er rum, wenn ich Showmodal mache:
Delphi-Quellcode:
procedure TFFreggels.EinstellungClick(Sender: TObject);
begin
  Einstellungen.ShowModal;
end;
edit2: Okay... Behoben! /edit
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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:28 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