AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte FrameShape

FrameShape

Ein Thema von PeterPanino · begonnen am 23. Aug 2006 · letzter Beitrag vom 24. Aug 2006
Antwort Antwort
PeterPanino
Registriert seit: 4. Sep 2004
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;
Miniaturansicht angehängter Grafiken
demo_255.gif  
Angehängte Dateien
Dateityp: exe demo_xp_200.exe (178,0 KB, 22x aufgerufen)
Dateityp: zip frameshape_demo_174.zip (7,8 KB, 17x aufgerufen)
 
EDatabaseError

 
Delphi 2007 Professional
 
#2
  Alt 24. Aug 2006, 09:12
Könntest du auch eine DemoExe anhängen? Danke.


Mfg
Tobi
Tobias
  Mit Zitat antworten Zitat
EDatabaseError

 
Delphi 2007 Professional
 
#3
  Alt 24. Aug 2006, 10:10
Ich habe dir die Demo nun einmal angeschaut und bin davon beeindruckt!
Soetwas kann man immer mal wieder gebrauchen.

Mfg
Tobias
  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 20:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf