Ich lerne Delphi seit 3 Jahren, auf Hobby-/Berufsebene. Ich freue mich sagen zu können, dass ich nun soweit bin, dass ich mit Entsetzen und Verlegenheit auf meinen frühen Code zurückblicken kann. Ich gehe jetzt einige meiner frühen Apps durch und überarbeite/refactoriere sie.Verwendung von Frames in Delphi zum Ausblenden von GUI-Informationen
Eine der schlechten Angewohnheiten, von denen ich versuche wegzukommen, ist der Zugriff auf Komponenten auf einem Formular von einer anderen Einheit. Um dies zu erzwingen, experimentiere ich mit Frames als Methode zum Ausblenden von Informationen. Anstatt also ein Formular mit Komponenten auf sie zu haben, ich bin die Schaffung eines Rahmens alle Formularkomponenten zu halten, dann den Rahmen in einer Maske platzieren, Bewegen des Rahmens Erklärung in die privaten Erklärungen,
type
TMyForm = class(TForm)
private
MyFrame: TMyFrame;
procedure SetTimeDate(const Value: TMyItem);
function ReadTimeDate:TMyItem ;
dann die Registrierung Rahmen in Form Initialisierungssektion
initialization
begin
RegisterClasses([TMyFrame])
erkläre ich dann die Eigenschaften I im öffentlichen Abschnitt des Formulars Einheit benötigen, die den Zugriff auf den Rahmen und seine Komponenten.
public
property TimeDate: TOverlayItem read ReadTimeDate write SetTimeDate;
Ich verwende auch Rahmen, um häufig wiederholte Bauteilgruppen zu konsolidieren.
Dies scheint für die Zwecke zu funktionieren, die ich will (Myframe und seine Komponenten ausblenden), aber hat jemand andere Erfahrung mit dieser Methode?
Gibt es Nachteile bei der Verwendung von Rahmen? Profitiere ich davon? Gibt es Probleme mit verschachtelten Frames in Frames? Gibt es gute Anleitungen zur Verwendung von Frames in Delphi? Gibt es bessere/leichtere Möglichkeiten, den gleichen Effekt bezüglich der in Delphi versteckten GUI-Informationen zu erzielen?
HMCG
Wofür benötigen Sie die RegisterClasses ([TMyFrame])? –
Weil ich die MyFrame verschiebe: TMyFrame; In den privaten Abschnitt tritt eine Ausnahme auf, die besagt, dass "TMyFrame nicht gefunden" auftritt, wenn ich TMyframe nicht registriere. – HMcG
Sie sollten sich darauf konzentrieren, wie Sie die Kopplung in Ihrem Design reduzieren können, so dass es am Ende egal ist, ob Sie Frames verwenden oder nicht. Ich habe den folgenden Artikel sehr lehrreich gefunden: http://www.objectoror.com/resources/articles/TheHumbleDialogBox.pdf – mghie