Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   FrameShape (https://www.delphipraxis.net/75717-frameshape.html)

PeterPanino 23. Aug 2006 23:34


FrameShape
 
Liste der Anhänge anzeigen (Anzahl: 3)
FrameShape v.1.1.0 vom 25.8.2006
Kontakt: peter-panino@aon.at

FrameShape dient der Verbesserung der Ergonomie der Benutzeroberfläche.

- Anwendungen:
- Änderungen in einem Eingabefeld anzeigen
- Fehlerhafte Eingaben anzeigen
- Steuerelemente markieren oder hervorheben:
- Das Steuerelement, über dem sich die Maus befindet
- Das Steuerelement, das den Eingabecursor besitzt
- Steuerelemente, die im aktuellen Kontext wichtig sind
- Steuerelemente, die eine Eingabe zwingend benötigen (Pflichtfelder)
- Usw.

- Vorteile:
- Der Anwender kann durch Rahmen hervorgehobene Steuerelemente besser sehen und so sich besser auf wesentliche Aufgaben konzentrieren.
- Der Anwender erhält eine bessere Rückmeldung von der Bedienoberfläche und kann so schneller und effizienter reagieren.
So kann die Arbeitseffizienz im geschäftlichen Umfeld und die persönliche Erfahrung im Umgang mit Anwendungs-Software gesteigert werden.

So wird's gemacht:

1. FrameShape.pas in den Bibliothekspfad kopieren
2. FrameShape zur uses-Liste hinzufügen
3. In Form.Create:
FrameShapesInitialisieren([Control1, Control2, ..]);
(Hier die Controls übergeben, die "geframed" werden sollen).
Kann auch mehrmals für verschiedene Gruppen von Controls aufgerufen werden.
Aber niemals das gleiche Steuerelement mehrmals verwenden!
4. In FormDestroy: FrameShapesFreigeben
5. Z.B. im OnChange/OnClick-Eventhandler des betr. Steuerelementes:
HandleFrameShape(edt1, edt1.Text = '');
(Steuerelement und Frame-Bedingung angeben)

-> Weitere Möglichkeiten: Siehe Kommentare im Interface dieser Unit!

ToDo:
- FrameShapes wirklich freigeben? (Owner ...)
- Form-Template, in dem die Form-Shapes schon automatisch mit eingebunden sind
- Als Komponente kapseln?

History:
- 1.0.2 (23.8.2006):
- Demo erweitert
- 1.1.0 (25.8.2006):
- NEU: Eigenschaft GlobFrameShapeColor hinzugefügt (globale Frame-Farbe); hiermit kann die globale Frame-Farbe eingestellt werden.
Default-Farbe ist Rot (clRed).
- NEU: Optional kann bei der Initialisierung eine Farbe mit übergeben werden.
Diese Farbe wird dann für die betr. Gruppe von Steuerelementen anstatt der globalen Farbe GlobFrameShapeColor verwendet, z.B.:
FrameShapesInitialisieren([lbl1, lbl2], clBlue);
S.a. das Demoprogramm.
- NEU: Optional kann bei der Initialisierung mit einem Boolean-Parameter (OffColor) bestimmt werden, dass die damit übergebene Farbe (ThisFrameColor) als Default-Farbe
verwendet wird, wenn die betr. FrameShapes "ausgeschaltet" sind, z.B.:
FrameShapesInitialisieren([btn], clSilver, True);
- NEU: Optional kann bei HandleFrameShape eine Farbe mit übergeben werden, z.B.:
HandleFrameShape(btn, False, clSilver);
Diese Farbe überschreibt dann sowohl die globale als auch die ggf. bei FrameShapesInitialisieren übergebene Farbe.
- NEU: Globaler Schalter GlobFrameShapeOn, um die FrameShape-Funktionalität global aus/einzuschalten.
- NEU: Methode DeactivateAllFrames, um alle Frames auszuschalten (ohne die globale FrameShape-Funktionalität auszuschalten).
- HandleFrameShape: Verbessert
- Demo erweitert

Interface:

Delphi-Quellcode:
// FrameShapes erzeugen: In Form.OnCreate verwenden:
procedure FrameShapesInitialisieren(
    // Steuerelemente, die einen Rahmen erhalten sollen:
    FrameControls: Array of TControl;
    // Optional: Diese Farbe für diese Steuerelemente verwenden:
    ThisFrameColor: TColor = clNone;
    // Optional: Wenn True: Diese Farbe verwenden, wenn diese Frames ausgeschaltet sind:
    OffColor: Boolean = False);
// FrameShapes aus/einschalten: Z.B. im Eventhandler des Steuerelementes verwenden:
function HandleFrameShape(
    // Das Steuerelement mit dem FrameShape:
    const ThisControl: TControl;
    // Bedingung zum Ein/Ausschalten dieses FrameShape:
    const ThisCondition: Boolean;
    // Optional: Farbe dieses FrameShape (überschreibt globale FrameShape-Farbe)
    const ThisFrameColor: TColor = clNone): Boolean;
//Alle Frames deaktivieren:
procedure DeactivateAllFrames;
// In Form.OnDestroy verwenden:
procedure FrameShapesFreigeben;

var
  AllFrames: Array of TFrameRec;
  //Default FrameShape-Stile: Durchgehend:
  FrameStyle: TPenStyle = psSolid;
  //Globale FrameShape-Farbe: Default Rot:
  GlobFrameShapeColor: tColor = clRed;
  //Globaler Ein/Aus-Schalter:
  GlobFrameShapeOn: Boolean = True;

EDatabaseError 24. Aug 2006 09:12

Re: FrameShape
 
Könntest du auch eine DemoExe anhängen? Danke.


Mfg
Tobi

EDatabaseError 24. Aug 2006 10:10

Re: FrameShape
 
:thumb: Ich habe dir die Demo nun einmal angeschaut und bin davon beeindruckt!
Soetwas kann man immer mal wieder gebrauchen.

Mfg


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