AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Event von Frames bei Änderung automatisch übernehmen

Event von Frames bei Änderung automatisch übernehmen

Ein Thema von norwegen60 · begonnen am 8. Jul 2020 · letzter Beitrag vom 8. Jul 2020
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
466 Beiträge
 
Delphi 10.3 Rio
 
#1

Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 13:54
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.973 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 16:06
Schau dir die DFM-Datei an auf welchen du den Frame platziert hast:

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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.954 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 16:21
Alternativ die Frames erst zur Laufzeit platzieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
954 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 20:00
Alternativ die Frames erst zur Laufzeit platzieren.
Ist sowieso eine sehr gute Idee.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
466 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 22:31
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.954 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Event von Frames bei Änderung automatisch übernehmen

  Alt 8. Jul 2020, 23:34
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
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 04:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf