Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
Suche Möglichkeit einen EingabeAssistenten zu erstellen.
Ein Delphi (Win32)-Thema von tdeck.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> VCL / WinForms / Controls
Seite 1 von 1   [ 5 Beiträge ]  
 
 Autor 
 Nachricht 
 
tdeck #1|Beitrag #984247Verfasst am: 06.01.2009, 00:52      Titel: Suche Möglichkeit einen EingabeAssistenten zu erstellen. Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 13
angemeldet: 26.06.2006
Wohnort: Heusenstamm
Delphi 2006 Professional

Sprache: Delphi (Win32)

Delphi BDS2006, Zielsystem XP/Vista

Hallo,

ich habe ein Programm zur Parametrierung einer SPS/PLC/CPU (SpeicherProgrammierbareSteuerung)für die Sicherheitstechnik programmiert, diese Programm ist bereits bei mir in der Firma und bei einigen unserer Kunden im Einsatz.

Das Problem ist aber, dass sich die Leute teilweise selbst Fehler und Abhängigkeiten einbauen, da es über 400 verschiedene
Standardfunktionen gibt, die hier parametriert werden können.

Beispiel:
Der Benutzer legt einen Sabotageeingang fest, aber vergisst diese Funktion einen Ausgang zu zuweisen.

Resultat der Kunde ruft bei uns an und erzählt uns dass die Software nicht geht Wink

Also habe ich mich dazu entschlossen für die weniger geübten Anwender einen Eingabeassistenten zu erstellen, der die nötigen Hinweise gibt und gleich dazu auffordert die Funktion entsprechend zu zuweisen:
z.B.:

Assistent: Bitte wählen die die Funktion für Eingang 11 aus....

Benutzer: Sabotage....<weiter>

Assistent neuer Dialoginhalt:
Sie haben noch keinen Sabotageausgang festgelegt....Bitte legen Sie fest welcher
Ausgang dafür verwendet werden soll...

usw.

Ich möchte mit diesen Assistenten solche einfachen Eingabefehler/Funktionsfehler vermeiden.

Aber jetzt kommt das eigentliche Problem, wie schaffe ich es so einen Assistenten am einfachsten zu erstellen ohne
Wochenlang jeden einzelnen Dialog zu erstellen, oder während der Laufzeit ständig manuel den Assistenten-Dialog mit
Texten, Eingabefeldern usw. zu ändern.

Gibt es hier nicht die Möglichkeit für eine fertige Dialog-Komponente zurück zugreifen?
Habe mich schon wund gegoggelt, aber nichts passendes gefunden.

Wenn ich es manuel erstellen muss, gibt es die Mglichkeit die Eingabe-Controls aus dem Hauptfenster zu Klonen?
Sprich, nur die optik befindet sich im Dialog, die Funktionen bleiben im Hauptform, somit würden die Eingaben eigentlich genau
in das Hauptform gehen? (Würde ein bisschen Arbeit ersparen.)

Schon mal vielen Dank

bye bye
tdeck
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Sir Rufo #2|Beitrag #984273Verfasst am: 06.01.2009, 01:19      Titel: Re: Suche Möglichkeit einen EingabeAssistenten zu erstellen. Antworten mit Zitat
sehr aktives Mitglied
Alter: 42
Status: offline
Beiträge: 891
angemeldet: 05.01.2005
Wohnort: Stadthagen
Delphi 2010 Professional

Also die Regeln für die Funktions-Parameter müssen dem Programm beigebracht werden -> programmieren

Funktionen in der Hauptform -> igitt, Trennung von Ein- Ausgabe und Code

Definiere Dir für die Funktionen jeweils eine Klasse, die sich selbst auf Konsistenz prüft.
Über das Formular füllst du die entsprechende Klasse. Wenn alles ok, dann kann man auf OK drücken, sonst nicht.

Hier mal eine Beispiel-Klasse:
Delphi-Quellcode: zusammenfalten | markieren
TDaten = class
private
  FData1 : integer;
  FData2 : integer;

  procedure SetData1( Value : integer );
  procedure SetData2( Value : integer );
public
  property Data1 : integer read FData1 write SetData1;
  property Data2 : integer read FData2 write SetData2;

  function OK : Boolean;
end;

procedure TDaten.SetData1( Value : integer );
begin
  FData1 := Value;
end;

procedure TDaten.SetData2( Value : integer );
begin
  FData2 := Value;
end;

function TDaten.OK : Boolean;
begin
  Result := ( FData1 <> FData2 ) and ( FData1 <> 0 ) and ( FData2 <> 0 );
end;


Diese Klasse liefert über TDaten.OK nur dann True, wenn Data1 ungleich Data2 und beide Werte nicht 0 sind.

Denkbar wäre jetzt auch noch eine Funktion, die mir einen beschreibenden Text zurückgibt (z.B. "Die Werte müssen unterschiedlich sein!")

Dann kann man sich auch den Assistenten sparen und der Anwender kann nach Herzenslust im Formular rumklicken, bis alles im grünen Breich ist.

cu

Oliver

Kaum macht man's richtig - schon funktioniert's Mr. Green
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
mjustin #3|Beitrag #984307Verfasst am: 06.01.2009, 10:22      Titel: Re: Suche Möglichkeit einen EingabeAssistenten zu erstellen. Antworten mit Zitat
aktives Mitglied
Beiträge: 640
angemeldet: 14.04.2008
Delphi 2009 Professional

tdeck hat folgendes geschrieben:
Delphi BDS2006, Zielsystem XP/Vista
Aber jetzt kommt das eigentliche Problem, wie schaffe ich es so einen Assistenten am einfachsten zu erstellen ohne
Wochenlang jeden einzelnen Dialog zu erstellen, oder während der Laufzeit ständig manuel den Assistenten-Dialog mit
Texten, Eingabefeldern usw. zu ändern.

Gibt es hier nicht die Möglichkeit für eine fertige Dialog-Komponente zurück zugreifen?


Für die Validierung in der Geschäftslogik würde ich mit einer simplen Ausgabe der entdeckten Fehler in einer Textliste starten, eventuell dabei nach Fehler und Warnung getrennt, damit der Anwender sich auf die wichtigen Punkte zuerst konzentrieren kann.

Als Entwurfsmuster für die Validierung kommt das Besucher-Pattern ("Visitor") in Frage, mit dem die Validierungsregeln aus dem Kern-Code der Businesslogik herausgelöst werden kann. Dahinter steht als Gedanke, die möglicherweise über Dutzende von Klassen verteilten Informationen zentral in einer Validierungsklasse zu hinterlegen - die Klassen gehen nach dem Motto 'ich lass mich prüfen' statt 'och prüfe mich selber' vor. Innerhalb der Validierungsklasse kann man dann schneller alle beteiligten Objekte und Regeln analysieren, und auch leicht Varianten der Prüfungen erstellen, ohne dazu wieder in Kernklassen eingreifen zu müssen.

Für die Oberfläche sind die in der JVCL enthaltenen Jv Validator Komponenten möglicherweise brauchbar - sie markieren in einem Dialog die Eingabefeldern, die falsche Daten enthalten. Für Wizards kann man dann die Jv Wizard Komponenten einsetzen.

p.s. Anregungen kann man sich auch schön aus Anwendungen wie z.B. für die Einkommensteuererklärung holen, dort werden ja gerade für die Laien jede Menge Erleichterungen implementiert, wie z.B. das Markieren von 'noch zu korrigierenden' Daten, die Programme sind so freundlich und erlauben das Beenden auch mit (noch) unvollständigen / inkonsistenden Daten. Dass 90 Prozent des Aufwands dann auf die Oberfläche anfallen, kann man sich vorstellen.

SCJP, SCJA
http://www.mikejustin.com - http://www.betabeans.de
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
tdeck #4|Beitrag #985652Verfasst am: 08.01.2009, 18:03      Titel: Re: Suche Möglichkeit einen EingabeAssistenten zu erstellen. Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 13
angemeldet: 26.06.2006
Wohnort: Heusenstamm
Delphi 2006 Professional

Hallo Sir Rufo.

Sir Rufo hat folgendes geschrieben:
Also die Regeln für die Funktions-Parameter müssen dem Programm beigebracht werden -> programmieren

Funktionen in der Hauptform -> igitt, Trennung von Ein- Ausgabe und Code


Das war nur erstmal eine IDEE Embarassed


Sir Rufo hat folgendes geschrieben:
Denkbar wäre jetzt auch noch eine Funktion, die mir einen beschreibenden Text zurückgibt (z.B. "Die Werte müssen unterschiedlich sein!")

Dann kann man sich auch den Assistenten sparen und der Anwender kann nach Herzenslust im Formular rumklicken, bis alles im grünen Breich ist.


Ok, das ist ein Lösungsansatz, das würde ich dann wie mjustin schon gesagt hatte, mit einen Infofeld machen:

z.B.:
Warnung: Es wurden 2 Sabotageeingänge festgelegt, bitte prüfen Sie, ob dies beabsichtigt ist
Fehler: Es wurde für die Sabotage kein Ausgang festgelegt...

Vieleicht könnte ich hier noch entsprechend die Eingabefelder rot=Fehler gelb=Warnung hinterlegen, das sieht der Anwender sofort beim durchklicken der Tab's.

bye bye
tdeck
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
tdeck #5|Beitrag #985657Verfasst am: 08.01.2009, 18:09      Titel: Re: Suche Möglichkeit einen EingabeAssistenten zu erstellen. Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 13
angemeldet: 26.06.2006
Wohnort: Heusenstamm
Delphi 2006 Professional

Hallo mjustin,

mjustin hat folgendes geschrieben:

Für die Oberfläche sind die in der JVCL enthaltenen Jv Validator Komponenten möglicherweise brauchbar - sie markieren in einem Dialog die Eingabefeldern, die falsche Daten enthalten. Für Wizards kann man dann die Jv Wizard Komponenten einsetzen.


Die JVCL habe ich nur mal kurz überflogen, die meisten Compon. sehen der LMD2007 sehr ähnlich (oder umgekehrt Very Happy ).
Da ich aber selbst die LMD2007-Tools einsetze hatte ich die JVCL noch nicht näher angeschaut, aber das mache ich jetzt mal.

Erstmal vielen Dank an Sir Rufo und mjustin.

Aber ich gebe euch auf jedenfall hier noch mal die Info, wie ich es umgesetzt habe.

bye bye
tdeck
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> VCL / WinForms / Controls Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 5 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2010 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen