Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Event von Frames bei Änderung automatisch übernehmen (https://www.delphipraxis.net/204866-event-von-frames-bei-aenderung-automatisch-uebernehmen.html)

norwegen60 8. Jul 2020 12:54

Event von Frames bei Änderung automatisch übernehmen
 
Hallo zusammen,


ich setzte unter Delphi XE Frames ein. Einfacher Fall: Frame mit zwei EingabeFeldern und einer Überschrift. Dem Frame selber ist z.B. den Edit-Feldern das Event OnChange schon hinterlegt.

Wenn ich so ein Frame in eine bestehende Form einbinde und ich dann z.B. das OnEdit anklicke, wird automatisch
Delphi-Quellcode:
procedure TForm1.Frame1OnEditChange(Sender: TObject);
begin
  Frame1.OnEditChange(Sender);

end
erzeugt.

Wenn ich in dem Frame z.B. die Überschrift ändere, wird sie überall geändert, wo das Frame eingesetzt ist => Gut
Wenn ich im Frame das Edit-Feld anders positioniere, passiert das nicht an den Verwendungsorten => nicht gut
Wenn ich TEdit z.B. OnEnter hinzufüge, bekommen die Verwendungsorte davon nichts mit. Weder, wenn dort OnEnter schon definiert oder auch nicht => nicht gut

Gibt es eine Möglichkeit, dass solche Änderungen immer auch an die Verwendungsorte des Frams weitergegeben werden?

Grüße
Gerd

Der schöne Günther 8. Jul 2020 15:06

AW: Event von Frames bei Änderung automatisch übernehmen
 
Schau dir die DFM-Datei an auf welchen du den Frame platziert hast:

Zitat:

Zitat von Der schöne Günther (Beitrag 1453203)
Da Delphi gerne redundant die Inhalte eines (oder mehrerer) Frames in die DFM-Datei des übergeordneten Formulars/Frames kopiert kommt es zu solchen Problemen. [...]

Ich bearbeite immer die DFM-Datei dort wo der Frame platziert wurde manuell sodass meist nur noch drinsteht
Delphi-Quellcode:
object somePanel: TPanel
    inline myFrame: TMyFrame
      Align = alClient
    end
end
Immer wenn die Delphi IDE dann allen möglichen Quark dazu kopiert kann man es mit dem Versionskontrollsystem wieder rückgängig machen.


Uwe Raabe 8. Jul 2020 15:21

AW: Event von Frames bei Änderung automatisch übernehmen
 
Alternativ die Frames erst zur Laufzeit platzieren.

Redeemer 8. Jul 2020 19:00

AW: Event von Frames bei Änderung automatisch übernehmen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1469127)
Alternativ die Frames erst zur Laufzeit platzieren.

Ist sowieso eine sehr gute Idee.

norwegen60 8. Jul 2020 21:31

AW: Event von Frames bei Änderung automatisch übernehmen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1469127)
Alternativ die Frames erst zur Laufzeit platzieren.

Nutze in anderen Fällen gerne das Einfügen per Laufzeit. In dem Fall hätte es aber schon Vorteile, wenn ich sie statisch platziere und den Ereignisssen form-spezifische Abhandlungen zuweisen könnte. War eigentlich davon ausgegangen, dass das nachträgliche ändern im Frame zuverlässiger übernommen wird. So reduzieren sich die Vorteile eines Frams ganz schön.

Uwe Raabe 8. Jul 2020 22:34

AW: Event von Frames bei Änderung automatisch übernehmen
 
Positionsänderungen im Frame werden in der Regel schon übernommen, wenn die Instanzen in der IDE offen sind und keine Änderungen in der Instanz vorgenommen wurden. Manchmal hilft auch ein beherztes Geerbte Einstellungen wiederherstellen im Kontext-Menü. Allerdings sollten ohne solche Änderungen aber immer die Frame-Einstellungen gelten. Wäre interessant zu sehen, unter welchen Bedingungen das nicht so ist.

Bei den Event-Handlern ist das was anderes. Die Aufrufe werden von der IDE in dem Moment eingefügt, in dem der Event-Handler angelegt wird. Später fummelt da niemand mehr an dem Code rum - außer dem Entwickler.


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