Einzelnen Beitrag anzeigen

knuff

Registriert seit: 8. Mär 2012
1 Beiträge
 
#1

Form Elemente in neuer Unit verwenden

  Alt 8. Mär 2012, 16:25
Hallo zusammen,

ich habe folgendes Problem. ich habe ein Programm gebastelt mit einer Unit1 und einem Form1 also eben eine ganze einfache formular anwendung. so nun habe ich eine neue unit geschrieben, da ich in dieser eine größere procedure auslagern wollte.

diese unit habe ich zuvor unabhängig vom eigenen programm gebastelt mit eigenem test form und so. nun nachdem die neue procedure in der neuen unit einwandfrei und wie gewünscht funktionierte (also hier is grundsätzlich kein Problem), habe ich das testform "weggeworfen" und habe (wollte ich zumindest aber hier hakt es^^) die neue unit in das bestehende programm hinzugefügt.

also zum verständnis. ich habe nun unit1 und form1 vom ursprünglichen programm und dazu nun die neue unit eingebunden. nun soll aus der neuen unit die procedure in der unit 1 aufgerufen werden, also habe ich die neue unit in unit1 unter interface>uses bekannt gemacht. außerdem habe ich in der neuen unit die procedure öffentlich deklariert.

nun zum problem: der procedur aufruf in unit1 klappt ohne probleme, allerdings wird vom compiler nun in der neuen unit gemeckert. ich nutze in der neuen unit memos und editfelder die ursprünglich ihren bezug auf das testform hatten, das nun nicht mehr existiert. genau diese editfelder sitzen nun aber auch auf dem form des hauptprogrammes mit glecher bezeichnung und alles, aber sie sind in der neuen unit nicht bekannt (undefinierter bezeichner).

ich habe schon selbst versucht nach dem fehler zu suchen und dachte mir vielleicht müssen die felder in der neuen unit explizit bekannt gemacht werden und somit habe ich etwas im kopf der unit gestöbert. die felder sind in der neuen unit unter "type" eingetragen sowie auch TForm1, außerdem befindet sich ein TForm1 eintrag unter "var" im kopf.

mein laien verständnis sagt mir nun die neue unit müsste doch die felder kennen???? ich habe herausgefunden, dass wenn ich in der neuen unit die felder über "form1.edit1...." aufrufe dann geht es, aber ich möchte gerne das die felder bekannt sind und das ich sie direkt aufrufen kann.

ist nun vielleicht nicht so wichtig und im grunde habe ich ja eine problemlösung. allerdings möchte ich als anfänger nicht immer um die probleme drum herum basteln, denn so versteh ich es ja sonst nie.

also wie schaff ich es das ich die felder von Form1 und in der neu hinzugefügten unit aufrufen kann ohne das ich "Form1.edit1.xxx" benutzen muss, sondern einfach nur "edit1.xxx"???

ich bin über jede hilfe dankbar!

edit: nun nachdem ich alle felder mit "Form1.xxx" aufgerufen, um das Programm vorerstlauffähig zu machen solange ich auf eure netten antworten warte kommen nun folgende fehler mit denen ich absolut nichts anfangen kann:

Erzeugen
[Fehler] WARNING. Duplicate resource(s):
[Fehler] Type 10 (RCDATA), ID TFORM1:
[Fehler] File Unit1.dfm resource kept; file p_emailsenden.dfm resource discarded.


Bitte Hilfe!

gruß
knuff

Geändert von knuff ( 8. Mär 2012 um 16:44 Uhr)
  Mit Zitat antworten Zitat