![]() |
Form/Frame in Projekt einbinden
Hi,
ich habe mich zwar schon einige Zeit mit Delphi beschäftigt, doch nun bin ich auf ein Problem gestoßen, zu welchem ich keine Hilfe dazu gefunden habe. Das Programm: Es hat eine Hauptform. Um Eigenschaften des Programms einzustellen, habe ich eine Menü erstellt mit dem Punkt "Eigenschaften" ;) Mit einem Klick auf dieses soll nun ein Fenster geöffnet werden, welches verschiedene Komponenten enthällt (z.B. Checkbox,Radiobutton). Die Eigenschaften werden in einer Ini-Datei gespeichert. Mein Problem: Auf Klick soll der Frame "Eigenschaften" erscheinen (mit darauf liegenden Komponenten). Kann ich auch auf Komponenteneigenschaften einer nicht gezeigten Form zugreifen? Denn die Eigenschaften sollen aus bei Programmstart aus der Ini ausgelesen werden und auch gleich benutzt werden für das Programm. Wenn jemand dazu was weiß, oder einen guten Link hat, dann freue ich mich über Antworten :bounce1: Gruß Nilser |
Re: Form/Frame in Projekt einbinden
Hi Nilser,
wenn ich dich richtig verstanden habe willst du aus deinem Main-Form auf ein anderes Form zugreifen, richtig? einfach mit:
Delphi-Quellcode:
so kannst du auf alle Komponenten zugreifen die auf deinem anderen Form liegen...
uses form;
form.Checkbox1.enabled := true; form.labeledit1.text := 'Hallo'; Gruß Ruben |
Re: Form/Frame in Projekt einbinden
Danke Centrii durch dich habe ich einen neuen Denkanstoß erhalten und konnte mein Problem lösen.
Doch nun stehe ich vor einem weiteren: Mein Programm hat nun zwei Units. die Unit2 steht im USES-Bereich der Unit1 Nun kann ich auf Komponenten der zweiten Form zugreifen(aus der Unit 1 heraus). jedoch kann ich nicht auf ein Ereignis auf der zweiten Form (Unit2) reagieren. Genauer gesagt: Es soll eine Procedure in Form1 ausgelöst werden, wenn auf Form2 ein bestimmtes Ereignis geschieht. D.h., dass wenn ein Button auf Form 2 geklickt wird, kann ich nur in der zweiten Unit eine Routine dafür schreiben um darauf zu reagieren. Für eine Reaktion auf das Ereignis gibt es (meines Wissens nach) zwei Möglichkeiten: 1. Ich erstelle in Unit1 eine Routine/Procedure, die auf Ereignisse auf der zweiten Form reagiert. oder 2. Ich reagiere auf das Ereignis in einer Routine/Procedure in Unit2 und greif aber auf Komponenten der ersten Form zu. Jedoch funktioniert leider beides nicht. Gibt es da eine Lösung? |
Re: Form/Frame in Projekt einbinden
So ganz hab ich dein Problem nicht verstanden, aber wenn du aus einem Form auf eine Unit (oder auch anders herum) auf Proceduren
zugreifen willst, musst du diese in die Uses einbinden. d.h. wenn ich dich richtig verstanden habe, binde einfach deine Units gegenseitig in die Uses ein und es müsste gehen... Gruß Ruben |
Re: Form/Frame in Projekt einbinden
das habe ich auch schon versucht.
Daraufhin erscheint folgender Fehler:
Delphi-Quellcode:
Grund ist, dass er sich im Kreise dreht beim usus "Öffnen" (unit1->unit2->unit1->unit2->...)
"[Fatal Error] unit1.pas(8): Circular unit reference to 'Unit1'"
mhh ich habe keine Ahnung, wie ich mein Problem besser erklären kann. :wiejetzt: 1.Frage: Wie erstelle ich in Unit1 eine Routine/Procedure, die auf Ereignisse in Unit2 reagiert? Bsp. Vorstellung: Meine Vorstellung davon. geht sowas überhaupt???
Delphi-Quellcode:
2.Frage: Wie reagiere ich Ereignis in einer Routine/Procedure in Unit2 und greif aber auf Komponenten der Unit1 zu.
unit unit1
uses Unit2; ... implementation procedure Unit2.TForm2.Button1Click(Sender: TObject); begin Form1.//... da soll auf einer Komponente(unit1) was geändert werden end; Bsp. Vorstellung:
Delphi-Quellcode:
Ich hoffe es ist jetzt verständlicher :)
unit unit2
... implementation procedure TForm2.ButtonClick(Sender: TObject); begin unit1.TForm1.//... da soll auf einer Komponente(unit1) was geändert werden end; falls Ihr Tutorials zu diesem oder ähnlichen Thema kennt, dann könnt ihr mir auch den Link geben :) Ich werde weiter rumprobieren, doch langsam habe ich keinen Elan mehr :wall: Gruß Nilser |
Re: Form/Frame in Projekt einbinden
Delphi-Quellcode:
unit unit2
... implementation uses ...Unit1; procedure TForm2.ButtonClick(Sender: TObject); begin unit1.TForm1.//... da soll auf einer Komponente(unit1) was geändert werden end; |
Re: Form/Frame in Projekt einbinden
Danke mkinzler, bis jetzt funktioniert es :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz