Überprüfen von wo etwas aufgerufen wird

Rund um die LCL und andere Komponenten
Antworten
leveltwo
Beiträge: 34
Registriert: Mi 14. Okt 2015, 09:58

Überprüfen von wo etwas aufgerufen wird

Beitrag von leveltwo »

Moin,

Ich habe zwei Forms, die die gleiche Funktion haben ich würde es also gerne zu einem zusammenfügen. Das Problem ist allerdings das die Forms über zwei unterschiedliche Forms aufgerufen werden udn von ihenen variablen mit kriegen.
Meine Frage ist also kann ich iwie abfragen von welchem Form das Form aufgerufen wird?

Ich hoffe ich habe es einigermaßen verständlich erläutert.

Warf
Beiträge: 1910
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Überprüfen von wo etwas aufgerufen wird

Beitrag von Warf »

Du könntest einen Sender Parameter hinzufügen und entweder über den Namen oder über den Typen dann checken welche Form es ist

leveltwo
Beiträge: 34
Registriert: Mi 14. Okt 2015, 09:58

Re: Überprüfen von wo etwas aufgerufen wird

Beitrag von leveltwo »

ja okay kann man so machen vielleicht noch ne idee wie ich den quellcode in dem einem form nicht verdoppeln muss

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Überprüfen von wo etwas aufgerufen wird

Beitrag von Mathias »

Es gäbe eine ganz einfache Lösung, ist zwar nicht elegant.
Deklariere im public-Teil eine Variable, zB. vonForm:String;

Und bevor du Show oder ShowModal aufrufst, setze die Variable Form.vonForm := 'komme von ???';
Dann brauchst nur noch eine if-Abfrage.

Oder man macht im public-Teil zwei Methode.

Code: Alles auswählen

procedure vonFormY();
procedure vonFormY()

Je nachdem von wo es aufgerufen willst, rufst du vonFormX oder Y auf.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten