AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Welches Ereignis um Rückkehr zu Form zu erkennen

Welches Ereignis um Rückkehr zu Form zu erkennen

Ein Thema von norwegen60 · begonnen am 31. Mär 2023 · letzter Beitrag vom 31. Mär 2023
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Welches Ereignis um Rückkehr zu Form zu erkennen

  Alt 31. Mär 2023, 12:34
Hi Norwegen
Zitat:
Meine Frage ist nun, wie ich sicherstellen kann, dass jedes mal, wenn auf dieses frmForm1 zurückgekehrt wird, das gleiche Ereignis ausgelöst wird.
Zitat:
OnShow wird nur nach Create aufgerufen
Und was wird bei Form1.Shw aufgerufen?

Aber machs dir einfacher - baue dein eigenes Event und rufe darin die gewünschte Prozedur auf.
Du könntest dir einen Aufzählungstypen deklarieren, dessen Elemente nach Position geordnete Namen tragen, die nach einem passenden Präfix genau so heissen wie deine Tabs (ohne Präfix) und je nach Typelement in der selben Prozedur eine andere Form createn (oder anzeigen).

Kurz, bevor du dein Event auslöst, weisst du einer Formvariablen eine gewünschte Form zu (aus einer Liste möglicher Formnamen?):
FormVar := Form1 (Form2),(Form3)... Dann feuerst du dein Event ab und übergibst ihm den gewünschten Formnamen. in deiner CreateOrShow-Prozedur kannst du zum Createn/Anzeigen nun deine übergebene Formvarible nutzen.


Das ist jetzt einfach so ein mögliches Vorgehen, vielleicht noch nicht ganz ausgereift, weil ungetestet.
Ich selbst würde mir die Arbeit sparen, für jedes Tab die richtige Form zu bestimmen und gleich zum PageControl greifen.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.688 Beiträge
 
Delphi 12 Athens
 
#2

AW: Welches Ereignis um Rückkehr zu Form zu erkennen

  Alt 31. Mär 2023, 13:08
Eventuell kannst du das mit einem Screen.OnActiveFormChange Event abfangen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
526 Beiträge
 
Delphi 12 Athens
 
#3

AW: Welches Ereignis um Rückkehr zu Form zu erkennen

  Alt 31. Mär 2023, 13:16
In diesem Fall wäre eigentlich das "richtige" Event das OnChange des TabControls
Passt mir nicht so, denn dann müsste ich ja auch die Abarbeitung im Hauptform machen oder von dort im TabForm aufrufen

Eigentlich arbeitet man hier mit Frames, nicht mit Forms, und schon gibt es diesbezüglich keine "Verwirrung" mehr.
Das stimmt natürlich. Frames habe ich bisher immer dann verwendet, wenn ich ähnliche "Frames" in unterschiedlichen Forms verwendet habe.

Also zusätzlich auch noch TApplicationEvents.OnActivate und OnDeactivate
Das schau ich mir an

Aber machs dir einfacher - baue dein eigenes Event und rufe darin die gewünschte Prozedur auf. ..
Ich hatte auf eine Standardlösung gehofft

Eventuell kannst du das mit einem Screen.OnActiveFormChange Event abfangen.
Schau ich mir auch an

Danke für eure schnelle Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Welches Ereignis um Rückkehr zu Form zu erkennen

  Alt 31. Mär 2023, 13:24
Nja, in den Frame/Form einen EventHandler rein.

Delphi-Quellcode:
public // oder private
  procedure DoActivate(Sender: TObject);
Und dann das ans OnChange des PageControls hängen,
aber da du mehrere TabSheets hast, hat man hierbei das gleiche Problem, wie beim Application.OnIrgendwas ... dort passt nur ein Event gleichzeitig dran (im Gegensatz zu mehreren TApplicationEvents.OnIrgendwas)



Also andersrum.

Alle Frames/Forms haben eine public Methode (in einem gemeinsamen Vorfahren), oder einfach in einem gemeinsamen Interface.
Und dann prüft im OnChange des TabControls ein Code auf dem ActiveTabSheet das eingebettete Frame/Form auf den Typ/Interface und ruft diese Methode auf.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:15 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