AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

zwischen Forms wechseln

Ein Thema von Hansa · begonnen am 11. Aug 2010 · letzter Beitrag vom 16. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

zwischen Forms wechseln

  Alt 11. Aug 2010, 11:35
Delphi-Version: 2005
Hi,

habe hier eine Form, die eine andere aufruft. Zu der aufrufenden muss ich wieder zurück. Woher soll die aufgerufene Form aber wissen, wo sie "herkommt" ? Wo stehe ich auf dem Schlauch ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: zwischen Forms wechseln

  Alt 11. Aug 2010, 11:47
Parent oder Owner?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen

Geändert von freak4fun (11. Aug 2010 um 11:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

AW: zwischen Forms wechseln

  Alt 11. Aug 2010, 11:47
Versuch mal, Dir im OnShow des aufgerufenen Formulars Screen.ActiveForm zu merken.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: zwischen Forms wechseln

  Alt 11. Aug 2010, 11:59
Der Aufrufer gibt beim Aufruf den Aufzurufenden sich selber mit und sagt somit dem Aufgerufenem "hey du, du kommst von mir ... falls du noch was willst, dann merk dir meinen Namen (meine Instanz)" .

Der Owner ist nur für die Freigabe des Aufgerufenen zuständig und das muß nicht zwansläufig der Aufrufer (Owner) oder die Eltern (Parent, also der, welcher für die Anzeige zuständig ist) sein.
$2B or not $2B
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

AW: zwischen Forms wechseln

  Alt 13. Aug 2010, 21:54
... und sagt somit dem Aufgerufenem "hey du, du kommst von mir ... falls du noch was willst, dann merk dir meinen Namen (meine Instanz)" .
Die aufgerufene will ja was : zurück zu der aufrufenden Form. Himitsus Idee war schon richtig so. Ich merke mir in der aufgerufenen Form, wer sie aufgerufen hat.

Habe mal so rumgespielt :

Delphi-Quellcode:
(Sender as TForm).Name := AufrufFormName;
(Sender as TForm).Show;
SO gehts mal nicht. Wäre wohl auch zu einfach. Beim jetzigen Stand der Dinge lautet die Frage nur noch : wie komme ich von der aufGErufenen Form auf die zurück, die das gemacht hat. Wobei ich nur den Namen dieser Form kenne.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: zwischen Forms wechseln

  Alt 13. Aug 2010, 23:36
Erweitere die Form um eine Prozedur, der du den Caller übergibst
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

AW: zwischen Forms wechseln

  Alt 14. Aug 2010, 00:59
Caller, was ist das ? Soll das die aufrufende Form sein ? Falls dem so ist : Form1 ruft Form2 auf. Form2 merkt sich den Namen der aufrufenden Form. Jetzt will Form2 zurück zu der aufrufenden Form1.

Dasselbe Szenario kann aber auch mit Form93 passieren. Auch die geht zu Form2, merkt sich dass sie von Form93 aufgerufen wurde und dann soll es wieder zurück von Form2 zu Form93 gehen. Nicht zu Form1.

Form2 (die immer gleich bleibt) die weiss jetzt, dass sie von Form1 oder eben Form93 aufgerufen wurde. Genau dahin soll sie zurück. Über den Namen, der in der Variablen "AufrufFormName" gespeichert ist, soll sie genau dahin wieder zurück.
Gruß
Hansa
  Mit Zitat antworten Zitat
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: zwischen Forms wechseln

  Alt 14. Aug 2010, 01:45
Hallo Hansa,

was willst Du denn genau machen?

Also einfach zwischen den Forms hin und herschalten, kann man so machen...

Form1:
Delphi-Quellcode:
unit Main;

interface

uses
  Forms, Classes, StdCtrls, Controls,
  Form2;

type
  TfrmEins = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  frmEins: TfrmEins;

implementation

{$R *.dfm}

{ TfrmTemplate }

procedure TfrmEins.Button1Click(Sender: TObject);
begin
  frmZwei.Caller := Self;
  frmZwei.Show; // Form2 aufrufen
end;

end.

...und Form2:
Delphi-Quellcode:
unit Form2;

interface

uses
  Forms, Classes, StdCtrls, Controls;

type
  TfrmZwei = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    FCaller : TForm;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    property Caller : TForm read FCaller write FCaller;
  end;

var
  frmZwei: TfrmZwei;

implementation

{$R *.dfm}

procedure TfrmZwei.Button1Click(Sender: TObject);
begin
  FCaller.SetFocus; // Zurück zu Form1. Zum Beispiel so...
end;

procedure TfrmZwei.Button2Click(Sender: TObject);
begin
  Close; // ...oder so. ;-)
end;

end.

Grüße,
Uwe
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: zwischen Forms wechseln

  Alt 14. Aug 2010, 08:47
Man könnte auch die Show-Methode entsprechend Überladen
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: zwischen Forms wechseln

  Alt 15. Aug 2010, 18:46
Man braucht da keine Properties. Ich war aber wohl zu sparsam. Merkt man sich die komplette aufrufende Form und nicht nur den Namen, so ungefähr :

frm1.AufrufForm := self; dann läuft alles wie gewünscht.

SetFocus ist übrigens auch mit Vorsicht zu geniessen. So gehts allerdings (aus der aufgerufenen Form heraus) :

AufrufForm.BringToFront; Wie man dasselbe Szenario nur mit Hilfe des Form-Namens hinbekommt, das ist mir noch nicht klar. Irgendwie denke ich, dass auch das gehen müsste.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:31 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