Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Button, der etwas zurückgibt (https://www.delphipraxis.net/13934-button-der-etwas-zurueckgibt.html)

Morfio 29. Dez 2003 14:28


Button, der etwas zurückgibt
 
Hi,

ich möchte, wenn ich auf einen Button klicke, dass sich ein Formular öffnet. Darin kann man was auswählen. Ebenfalls gibt es darin einen Button namens Wählen. Klickt man diesen an, soll das ausgewählte zurückgegeben werden. Ist das möglich? Wenn ich procedure in function umbennen, funktioniert das nicht (wohl wegen dem Eventhandler?). Als Beispiel:

Rückgabe = ÖffneFormular(Irgendein Parameter);
|
|-> in Rückgabe soll dann ein Wert das Ausgewählte stehen, sobald man den Knopf drückt im zweiten Formular und es sich schließt.

Ist das möglich?

Vielen Dank,

Morfio ...

Matze 29. Dez 2003 14:30

Re: Button, der etwas zurückgibt
 
Ob das mit der function geht, bezweifle ich.

Aber du könntest eine globale variable nehmen und im OnClick dieser etwas zuweisen.

Morfio 29. Dez 2003 14:34

Re: Button, der etwas zurückgibt
 
Das Problem an der Sache ist, dass es natürlich in zwei unterschiedlichen Forms ist ...

Stanlay Hanks 29. Dez 2003 14:38

Re: Button, der etwas zurückgibt
 
Hi. Schau dir mal in der OH "ShowModal" und "ModalResult" (heißt doch so, oder :gruebel:) an. Vielleicht hilft dir das Weiter.

Man liest sich, Stanlay :hi:

Jens Schumann 29. Dez 2003 14:40

Re: Button, der etwas zurückgibt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe Dir ein kleines Beispiel gebastelt.
Das Geheimnis steht in unit2. Wichtig ist, das TForm2 über die
Projektoptionen in die Liste der verfügbaren Formulare geschoben wird.

Matze 29. Dez 2003 14:51

Re: Button, der etwas zurückgibt
 
Zitat:

Zitat von Morfio
Das Problem an der Sache ist, dass es natürlich in zwei unterschiedlichen Forms ist ...

Das würde doch nichts ausmachen. Global deklarierte Variablen kann man von jeder Form aus aufrufen, sofern die Form mit der Variable in due Uses aufgenommen wurde.

Die Variable wird dann so aufgerufen:
Delphi-Quellcode:
Form1.Variable := ...

fkerber 29. Dez 2003 14:55

Re: Button, der etwas zurückgibt
 
Hi!

@matze:
Ich glaube hier irrst du:

es geht nicht mit Form.Variable, sondern man kann/muss die Variable ohne das Form ansprechen!
Also nur Variable:=

Ciao fkerber

Matze 29. Dez 2003 14:58

Re: Button, der etwas zurückgibt
 
Ich hab's bis jetzt immer mit
Delphi-Quellcode:
Form1.Variable
gelöst.

fkerber 29. Dez 2003 14:59

Re: Button, der etwas zurückgibt
 
hi!

hab das grad ausprobiert und es ging nicht!
Wie kann das sein?

Ciao fkerber

Morfio 29. Dez 2003 14:59

Re: Button, der etwas zurückgibt
 
Hi,

vielen Dank an alle. Ich probiere jetzt mal mein Glück und melde mich dann nochmal.

Viele Grüße,

Morfio ...

Matze 29. Dez 2003 15:03

Re: Button, der etwas zurückgibt
 
Zitat:

Zitat von fkerber
hi!

hab das grad ausprobiert und es ging nicht!
Wie kann das sein?

Ciao fkerber

Also, es geht auch nur, wenn ich die Variable unter public deklariere. Müsste bei dir aber auch gehen.

fkerber 29. Dez 2003 15:04

Re: Button, der etwas zurückgibt
 
Hi!

Jepp, das kann ich bestätigen, aber das public hattest du nicht erwähnt!

Ciao fkerber

Morfio 29. Dez 2003 15:20

Re: Button, der etwas zurückgibt
 
Hmm,

ich habe das jetzt mal probiert bzw. bin noch dran, allerdings kommt immer die Meldung:

"Aus einem sichtbaren Fenster kann kein modales gemacht werden."

Was bedeutet das?

Vielleicht sollte ich noch sagen: das Fenster, was ich aufrufe, erscheint schon beim Start der MDI-Anwendung. Daraus wählt man dann einen Eintrag aus, es öffnet sich eine Maske. Dort kann man in einem StringGrid (oder soll man später können) weitere Elemente hinzufügen. Dazu klickt man halt auf hinzufügen und es geht nochmal das gleich Fenster auf, wie es schon offen ist, allerdings werden dort zwei zusätzliche Buttons angezeigt (Wählen und Abbruch). Beim Druck auf wählen soll das Fenster einfach zugehen und die Auswahl übergeben werden.

Kann man ein Fenster nicht zweimal aufmachen? Ich erstelle ja eigentlich ein zweites Objekt, dementsprechend müsste das doch gehen, oder?

Morfio ...

fkerber 29. Dez 2003 15:23

Re: Button, der etwas zurückgibt
 
Hi!

Dann schreib mal statt

Delphi-Quellcode:
Form2.ShowModal;
nur

Delphi-Quellcode:
Form2.Show;
Aber irgendwie heißt das, dass das Fenster noch offen ist. Ist das Sinn der Sache?


Ciao fkerber

Morfio 29. Dez 2003 15:40

Re: Button, der etwas zurückgibt
 
Hi,

ja, es macht Sinn, dass das Fenster schon einmal offen ist. Ich habe mal einen Screenshot gemacht, um es etwas zu verdeutlichen.

Mit 1 startet das Programm. Darin kann man nach Einträgen suchen und auf einen doppelklicken. Es öffnet sich 2. Klickt man darin auf die zweite Registerkarte und dann bei Publikationen hinzufügen, öffnet sich Fenster 3, welches das selbe ist, wie Fenster 1, nur, dass hier zwei Buttons, die Fenster 1 nicht hatte, dargstellt werden und die Bereiche nur noch auf einem stehen. Wählt man nun aus der Liste einen Eintrag und klickt auf Wählen, geht das Fenster zu und ich muss halt herausfinden, welchen Eintrag derjenige wählte, um es in 2 unter Publikationen wieder hinzuzufügen.

Ist das so überhaupt möglich?

Morfio ...

PS: Hier das Bild: http://morfio.dyndns.org/db.jpg


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