AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen
Thema durchsuchen
Ansicht
Themen-Optionen

Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

Ein Thema von Walter Landwehr · begonnen am 12. Jun 2024 · letzter Beitrag vom 16. Jun 2024
Antwort Antwort
Seite 1 von 3  1 23      
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#1

Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 11:20
Hallo, ich öffne form 2 so.
TPatientenblattFrm.Create(Application.MainForm, Patient1Qry.FieldByName('PatientNr').AsInteger, TiereQry.FieldByName('TiereNr').AsInteger); nun schließe ich die form 2 und möchte direkt an der Pos. in Form 1 weitermachen wo ich Form 2 aufgerufen habe.

Hier weitermachen.
Delphi-Quellcode:
 PatBlattQry.close;
    PatBlattQry.ParamByName('PATIENTNR').AsInteger := TiereQry.FieldByName('PATIENTNR').AsInteger;
    PatBlattQry.Open;
    if (PatBlattQry.RecordCount > 0) then
      btnPatblatt.Font.Color := clred
    else
      btnPatblatt.Font.Color := clWindowText;
    btnPatblatt.Refresh;
Geht das? Wenn ja wie.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 11:24
Und Du bist Dir sicher, dass irgendwer versteht, was Du tust und was Du erreichen willst?
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 Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 11:28
Zeige die zweite Form per ShowModal an. Wenn diese dann geschlossen wird, geht's in der ersten Form genau da weiter. Man kann dann auch abfragen, ob die Form per Klick auf den "OK-Button" geschlossen wurde, oder ob der Dialog abgebrochen wurde.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Form2.ShowModal = mrOK then begin
     ShowMessage('Form 2 wurde geschlossen');
  end;
end;
The angels have the phone box.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 12:11
Hallo, ich öffne form 2 so.
TPatientenblattFrm.Create(Application.MainForm, Patient1Qry.FieldByName('PatientNr').AsInteger, TiereQry.FieldByName('TiereNr').AsInteger);
Wenn die Form im Create gleich geöffnet wird, dann muss bei der Form im Objektinspektor visible auf true stehen. Setze das man auf false. Dann kannst du selbst bestimmen, ob du sie modal oder nicht modal öffnen willst. Und ich würde die Form auch selbst erzeugen und wieder freigeben.

Also:
Delphi-Quellcode:
Form2:=TPatientenblattFrm.Create(nil, Patient1Qry.FieldByName('PatientNr').AsInteger, TiereQry.FieldByName('TiereNr').AsInteger);
try
  if Form2.ShowModal = mrOK then begin
    // mach irgendwas
  end;
finally
  Form2.Free;
end;
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 13:36
Alle meine Forms sind MDI Forms, die möchte ich nicht auf Modal setzen. Gibt es sonst keine andere Möglichkeit?
Wenn Form 2 geschlossen wird sollte in Form 1 dieser Coder verarbeitet werden.
Delphi-Quellcode:
PatBlattQry.close;
    PatBlattQry.ParamByName('PATIENTNR').AsInteger := TiereQry.FieldByName('PATIENTNR').AsInteger;
    PatBlattQry.Open;
    if (PatBlattQry.RecordCount > 0) then
      btnPatblatt.Font.Color := clred
    else
      btnPatblatt.Font.Color := clWindowText;
    btnPatblatt.Refresh;
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#6

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 13:43
Alle meine Forms sind MDI Forms, die möchte ich nicht auf Modal setzen. Gibt es sonst keine andere Möglichkeit?
Wenn Form 2 geschlossen wird sollte in Form 1 dieser Coder verarbeitet werden.
Delphi-Quellcode:
PatBlattQry.close;
    PatBlattQry.ParamByName('PATIENTNR').AsInteger := TiereQry.FieldByName('PATIENTNR').AsInteger;
    PatBlattQry.Open;
    if (PatBlattQry.RecordCount > 0) then
      btnPatblatt.Font.Color := clred
    else
      btnPatblatt.Font.Color := clWindowText;
    btnPatblatt.Refresh;
Du könntest dem Form2 ein OnClose/OnDestroy-Event zuweisen, wenn du dieses aus Form1 verwendest.
In dem du definierst was passieren soll wenn die Form geschlossen/freigegeben wurde.


Delphi-Quellcode:
lForm2 := TPatientenblattFrm.Create(Application.MainForm, Patient1Qry.FieldByName('PatientNr').AsInteger, TiereQry.FieldByName('TiereNr').AsInteger);
lForm2.OnClose := MeineProzedurAusForm1DieAusgeführtWerdenSollWennForm2GeschlossenWurde;
lForm2.OnDestroy:= MeineProzedurAusForm1DieAusgeführtWerdenSollWennForm2FreigegebenWurde;

Geändert von lxo (12. Jun 2024 um 13:52 Uhr)
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 14:01
oder eine Nachricht (postMessage) an die Form1 senden wenn die Form2 geschlossen wird.

Grüsse Klaus
Klaus
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
246 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 12. Jun 2024, 16:09
Werden MDI Fenster nicht sowieso im 'Parent' verwaltet? (Hab glaub ich in 40 Jahren noch nie eine MDI Fenster erzeugt).
Ansonsten im Programm1 verwalten (handle anlegen, create ) und am Ende von Programm2 eine Nachricht an Form1 schicken. Bei mir inzwischen immer eine 'Bitte schließe mich' Nachricht. Alternativ kann man natürlich auch nur melden 'Programm 2' beendet, bitte Handle löschen und Processing starten.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 14. Jun 2024, 15:16
Also ich rufe in Form 2 bei OnDestroy eine Procedure in Form 1 auf. das geht auch nur erkennt die procedure nicht mein Button 'btnPatblatt' kommt Zugriffsverletzung.
Delphi-Quellcode:
procedure TTierhalterFrm.BtnPatblattFarbe;
begin
  if (ToolsOperation.Farbe = True) then
    btnPatblatt.Font.Color := clred // Hier kommt Zugriffsverletzung
  else
    btnPatblatt.Font.Color := clWindowText;
  btnPatblatt.Refresh;
end;
Keine Ahnung warum.
Ist die Form 1 nicht aktiv?
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
246 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Form 2 aus Form 1 öffnen und nach schließen von Form 2 in Form 1 witermachen

  Alt 14. Jun 2024, 15:44
Schick doch einfach eine Message an Form1. Wenn Du das mit Postmessage machst, dann ist das ganze entkoppelt.
Ansonsten wäre ich bei Zugriffen nach außen bei Destroy seehr vorsichtig, weil da einiges im Hintergrund abläuft.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:43 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