AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RuntimePackage laden/verwenden

Ein Thema von oki · begonnen am 12. Mär 2009 · letzter Beitrag vom 19. Mär 2009
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: RuntimePackage laden/verwenden

  Alt 13. Mär 2009, 14:49
Zitat von oki:
Für andere Techniken bin ich immer offen. Ich fand halt keine passenden für die gewünschten Anforderungen. Für den Bereich der Vererbung von Formularen gebe ich dir vollkommen recht. Damit muss ich leben.
Du versuchst wohl allen deinen Formularen das gleiche Look & Feel zu geben.
Eine Möglichkeit wäre Frames zu verwenden.
Ich habe z.B. einen "NavigatorFrame" auf vielen meinen Formularen.
Es ist eine Zusammenfassung von DBNavigator und einem Suchen- ,OK- und Abbrechen-Button.
Dann gibt es bei mir z.B. einen LoggingFrame:
Eine Memo für Textmeldungen + Combobox für das Datumsuhrzeitformat + Combobox für einen Filter Info, Warnungen oder Fehler.

Man sollte die Frames aber nicht überfrachten.
Auch das Ableiten von Frames kann ich nicht empfehlen; das macht nur Probleme.

Eine andere Möglichkeit wäre eine Form-Factory.
Anstatt überall folgenden Code zu verwenden:
Form42 := TForm42.Create(nil); lässt man die Formulare indirekt erzeugen:
Form42 := TFormFactory.CreateForm(TForm42, nil) as TForm42; Die Methode CreateForm() kann z.B. so aussehen:
Delphi-Quellcode:
class function TFormFactory.CreateForm(AClass: TComponentClass;Owner: TComponent): TComponent;
begin
   Result := AClass.Create(Owner);
   With(TForm(Result) do
   begin
     // Formulare sollen nicht an festen Positionen erscheinen; das soll Windows machen
     if Position = poDesigned then
        Position := poDefaultPosOnly;

     // jedes Formulare wird um ein SystemMenu erweitert,
     // damit alle Formulare zusätzlich den Eintrag "Screenshot" und "Drucken" bekommen
     AddSpecialSystemMenue(Handle);
   end;
end;
Man kann mehrere Factory-Methoden verwenden.
Delphi-Quellcode:
class function TFormFactory.CreateModalDialogForm(AClass: TComponentClass;Owner: TComponent): TComponent;
begin
   Result := CreateForm(AClass, Owner);
   With(TForm(Result) do
   begin
      // alle Formulare, die für einen modalen Dialog gedacht sind
      // sollen ROT sein
      Color := clRed;

      // ausserdem sollen diese Dialoge ein besonderes Icon bekommen
      Icon := MyWarningIcon;
   end;
end;
Die Möglichkeiten sind vielfältig.
Man kann z.B. mit einer Funktion über alle TLabels des gerade erzeugten Formulars gehen
und Font.Name auf einen bestimmten Wert setzen.
Und schon haben alle Labels einen bestimmten Font auch wenn sie zur Entwicklungszeit auf "MS Sans Serif" waren.
Angehängte Grafiken
Dateityp: gif loggingframe_931.gif (6,7 KB, 6x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
 


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