Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Kopieren und einfügen von Objekten auf der Form (https://www.delphipraxis.net/102607-kopieren-und-einfuegen-von-objekten-auf-der-form.html)

TRBB 31. Okt 2007 21:21


Kopieren und einfügen von Objekten auf der Form
 
Schönen guten Abend,

ich bin neu in der "Delphi-Ecke" und habe nun mein erstes 'größeres' Projekt gestartet (eine DVD-Datenbank).

Da der Code nun etwas lang wurde, hab ich mir Frames erstellt.
Die bereits erstellten Objekte (Editfelder, Buttons, GroupBoxes) habe ich einfach ausgeschnitten und in die neuen Forms der Frames eingefügt.
Diese kann ich zwar ansprechen (zumindest scheint es so weil sie keine Fehler produzieren) aber irgendwie reagieren sie auf keine Zuweisungen.

Beispiel:
Ich spreche das kopiert und eingefügte Objekt edit1 an
edit1.text := 'ein neuer text';
Es passiert aber nichts!


Wie kann ich die kopierten Objekte benutzen?!?

Der_Unwissende 2. Nov 2007 09:53

Re: Kopieren und einfügen von Objekten auf der Form
 
Zitat:

Zitat von TRBB
Da der Code nun etwas lang wurde, hab ich mir Frames erstellt.
[...]
Diese kann ich zwar ansprechen (zumindest scheint es so weil sie keine Fehler produzieren) aber irgendwie reagieren sie auf keine Zuweisungen.
[...]
Wie kann ich die kopierten Objekte benutzen?!?

Hi,
die Frage die sich hier stellt ist, wo der Code (die Zuweisung) jetzt eigentlich eingefügt wurde. Rufst Du den in der Unit des jeweiligen Frames auf? Und das Projekt lässt sich erfolgreich übersetzen?
An sich musst Du darauf achten, dass Bezeichner immer innerhalb eines gewissen Scope eindeutig sein müssen. Der Scope variiert dabei immer mit der Art von Bezeichner, eine Instanzvariable muss nur innerhalb der Klasse eindeutig benannt sein, eine globale Variable kann natürlich nur einmal pro Unit existieren, etc. Bei Controls sorgt Delphi aut. dafür, dass wenn die kopiert werden der Bezeichner diesem Anspruch angepasst wird. Kopierst Du also ein Edit1, so solltest Du nach dem einfügen nochmal schauen, ob der Name auch bei der Kopie noch Edit1 ist oder geändert wurde. Dieser Bezeichner ist zudem nur innerhalb der Unit des Frames eindeutig.
Jetzt kannst Du in einem Formular beliebig viele Frames platzieren, die entsprechend alle ein Edit1 hätten. Weißt Du jetzt innerhalb der Unit des Formulars dem Edit1 eine Eigenschaft zu, dann würde Delphi denken, dass Du das Edit1 der Unit des Formulars meinst. Um hier auf Elemente eines Frames zuzugreifen, musst Du den Namen des entsprechenden Frames (die konkrete Instanz) voranstellen, also z.B.
Delphi-Quellcode:
  myFrame1.Edit1.Text := '...';
Gruß Der Unwissende

TRBB 3. Nov 2007 11:08

Re: Kopieren und einfügen von Objekten auf der Form
 
Vielen Dank schon mal für deine Antwort.

Ich greife richtig auf die Objekte zu und es gibt auch keine Fehlermeldungen.
Wenn ich das Objekt lösche und neu (mit der Toolleiste oben neues Objekt auf Form positionieren) funktionert es.

Ich habe z.B. eine Textfeld
Diesem will ich einen neuen Inhalt hinzufügen
edit1.text := 'hallo';

Das funktioniert aber nicht das Textfeld bleibt beim alten Inhalt...einen Fehler gibt es aber nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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