AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Rechenprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

Rechenprogramm

Ein Thema von Amateurprofi · begonnen am 31. Mai 2009 · letzter Beitrag vom 7. Okt 2020
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Rechenprogramm

  Alt 13. Jul 2010, 21:16
Ich habe eine neue Version (2.3.1.1) des Parsers hochgeladen.

Was hat sich geändert ?:

Es gibt jetzt eine Context-sensitive Hilfe. Mehr dazu weiter unten.

Bisher konnten bei Funktionen, die nur einen Parameter haben die ( ) weggelassen werden.
Das geht jetzt, mit gewissen Einschränkungen für alle (genauer fast alle) Funktionen.
Die Einschränkungen sind :
Bei Funktionen die einen oder zwei Parameter haben, muß der letzte Parameter ein Wert (nicht ein Term) sein.
Beispiele
Power 2, 5 entspricht Power(2, 5)
Power 2, 5 + 3 entspricht nicht Power(2, 5 + 3) sondern Power(2, 5) + 3
Bei Funktionen mit mehr als 2 oder unbestimmter Anzahl Parametern müssen alle Parameter Werte (nicht Terme) sein.
Bei folgenden Funktionen muß die Parameterliste in ( ) stehen
FMin, FMax, FSum etc., EqE, Encode, Erase

Die Funktionen Date, Time DT wurden entfernt.

Die Funktionen Ld / ALd (Logarithmus dualis und seine Umkehrung) wurden hinzugefügt.
Warum ?: Wenn es die Funktionen Ln und Lg gibt darf man (m.E.) erwarten, das es auch Ld gibt.

Bei der Eingabe eines Datums ist jetzt das Jahr Optional.
Wird es nicht angegeben wird das Jahr aus dem System-Datum genommen.
Die Eingabe 15.07. würde dann als 15.07.2010 interpretiert.

Bei der Eingabe von Winkeln und Positionsangaben war bisher die Schreibweise g° m' s.ss" zwingend.
Jetzt kann auch g:m:s.ss geschrieben werden, wobei s.ss optional ist.
Diese Schreibweise kollidiert natürlich mit dem Eingabeformat für Zeiten (hh:mm:ss).
Das Programm unterscheidet wie folgt :
Ist der erste Wert (g oder hh) größer 23 dann handelt es sich um einen Winkel.
ist der erste Wert <= 23 hat aber (durch führende 0en) mehr als 2 Ziffern, dann handelt es sich um einen Winkel.
Ist der letzte Parameter (ss oder s.ss) ein reeller Wert dann handelt es sich um einen Winkel.

Eine Funktionalität die schon immer vorhanden (aber nicht zugänglich) war, ist das Testen der Performance des Parsers.
Mit Menu > Test > Performancetest kann getestet werden wie lange der Parser braucht, um den Ausdruck in der aktuellen Zeile auszuwerten. Auswerten heißt hier, daß dem Parser der Text übergeben wird und der Parser den Text auswertet und das Ergebnis liefert.

Ein paar kleine Bugs wurden beseitigt.

Zur Context-sensitiven Hilfe :
Ich habe 3 "Systeme" implementiert.

Anzeige von Hilfetexten zu einem im Eingabefeld stehenden Text
Hierzu wird das Caret (nicht der Mouse-Cursor) vor, hinter oder in den Text gestellt (oder der Text selektiert) und die F1 Taste gedrückt (oder Menu > Hilfe > Context sensitive Hilfe gwählt).
Wenn der Text der Name einer Funktion, eines Operators, einer Ausgabeanweisung, einer Konstanten ist, oder auch nur ein Sonderzeichen, das in der Syntax eine bestimmte Bedeutung hat, dann wird ein entsprechender Hilfetext angezeigt.

Anzeige von Funktionsnamen mit ihren möglichen Parameterlisten.
Hierzu wird das Caret hinter den Suchtext gestellt (oder der Suchtext selektiert) und Strg Space gedrückt (oder Menu > Hilfe > Funktionsparameter gewählt).
In einem Listenfeld werden alle Funktionen gezeigt die zu dem Suchtext passen.
Wie entschieden wird ob ein Funktionsname zum Suchtext paßt steht im HelpFile unter Context sensitive Hilfe.

Anzeige des Sprachschatzes des Parsers
Hierzu wird Shift-Strg-Space gedrückt (oder Menu > Hilfe > Sprachreferenz gewählt).
In einem Listenfeld werden in einer Baumstruktur alle implementierten Funktionen, Operatoren, Ausgabeanweisungen, Konstanten, Variablen, sowie alle Sonderzeichen, die irgendeine Bedeutung für den Parser haben, angezeigt und können von dort mit Doppelklick in das Eingabefeld kopiert werden. Alternativ kann durch Rechtsklick ein zugehöriger Hilfetext angezeigt werden.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Rechenprogramm

  Alt 12. Apr 2018, 10:33
Das letzte Update zu diesem Programm hatte ich im Juli 2010 online gestellt.
Im Laufe der Zeit habe ich immer mal wieder Kleinigkeiten geändert und stelle deshalb heute in #1 die aktuelle Version zum Download bereit.
Was hat sich geändert?!

Der Name des Programms
Bisher "Parser", jetzt "Calculator"

Delphi-Version
Bisher Delphi 2005, jetzt Delphi XE 2

BigNumbers
Wurden in #39 erwähnt und werden jetzt unterstützt.
Realisiert wurde das durch einen zweiten "Betriebs-Modus", in den mit F4 umgeschaltet werden kann (In der Statusleiste steht dann im zweiten Panel von links ein gelb hinterlegtes B).
In diesem Modus werden diverse Funktionen des "Normal-Modus" nicht unterstützt aber die gängigen Sachen sollten funktionieren.
Intern werkeln da im Prinzip Velthuis.BigDecimals.pas und Velthuis.BigIntegers.pas, beide für meine Zwecke etwas modifiziert.

Lange Zahlen
Das wurde hier http://www.delphipraxis.net/175298-z...-ausgeben.html einmal thematisiert. Im Rahmen der BigDecimals habe ich das in Form eines separaten Dialogs implementiert. Dieser kann mit F12 geöffnet werden, oder auch durch Strg-Linksklick in ein Rechenergebnis. Schaltet mal in den BigDecimal-Modus und rechnet 333^333 und klickt bei gedrückter Strg-Taste mit der linken Maustaste ins Rechenergebnis. Kleines Gimmick am Rande: Man kann sich hier die ausgegebenen Zahlen auch vorlesen lassen.

Farben
Im integrierten "ColorPicker" wurde hinzugefügt.
- Das Farbmodell "XYZ"
- RAL-Classic-Farben
- CCS3-Farben
- Farben aus Wellenlängen (für Wellenlängen von 380nm bis 780nm)
RAL-Farben und Farben aus Wellenlängen sind auch im Hauptfenster des Programms als Konstanten verfügbar. Zum Beispiel ins Eingabefeld eintippen Ral2005 oder wl700.
Alternativ kann man sich die Farblisten auch mit Shift-Strg-F1 in der Sprachreferenz anschauen.

Funktionen
Der Funktionsumfang ist nur geringfügig verändert.
Zum einen sind wegen des zusätzlichen Farbmodells die Funktionen XYZtoRGB, XYZtoHSB, etc.
und RGBtoXYZ, HSBtoXYZ etc. hinzugekommen. Zum anderen einige, die nur für mich selbst eine gewisse Bedeutung haben.
Erwähnenswert vielleicht 2 Funktionen zur Ermittlung der Levenshtein-Distanz und der Damrau-Levenshtein-Distanz zwischen 2 Texten.
Beispiele:
Lev (Delphi-Praxis, Delhi-Paxos) ergibt 3
Lev(Hamburg, Hambrug) ergibt 2
DamLev(Hamburg, Hambrug) ergibt 1

Zugriff auf Ergebnisse anderer (über der aktuellen Zeile liegenden) Zeilen.
Da hab ich was geändert und weil dieses Thema im Thread mehrfach angesprochen wurde:
Schaut euch das in der Hilfe an.
Menu > Hilfe > Hilfe
In der Hilfe auf "Syntax von Ausdrücken klicken"
Dort "Zahl" klicken und dann auf "Ein Verweis auf Ergebnisse anderer Zeilen".

Fehleranzeige
Bei der bisherigen Version befindet sich im unteren Bereich des Fensters die "Fehleranzeige", in der bei einem Fehler die Position des Fehlers und ggfs. weiterführende Informationen gezeigt werden.
Ich habe im Laufe der Zeit gemerkt dass die (für mich) eher überflüssig ist und nur Platz wegnimmt.
Deshalb kann man die jetzt mit der F3-Taste aus- und einblenden.

Bildschirminhalte kopieren
Ermöglicht, den Bildschirm, oder ein Programmfester oder ein Control als Bitmap ins Clipboard zu kopieren oder als Bitmap oder JPEG in einer Datei zu speichern.
Beschrieben ist das in der Hilfe:
Menu > Hilfe > Hilfe.
In der Hilfe auf "Bildschirminhalte kopieren" klicken.

Hilfe
Es wurde eine "objektbezogene Hilfe" hinzugefügt.
Mit Alt-F1 wird ein Hilfetext zu dem Objekt angezeigt, auf das der Mauszeiger zeigt.
Diese funktioniert im Hauptfenster und in allen untergeordneten Fenstern.

Tutorial
Das ist nicht neu und ich erwähne es nur, weil es den Einstieg erleichtert.
Mit F2 (nur im Normal-Modus) könnt ihr ein kleines Tutorial starten.
Wie das funktioniert ist in der Hilfe beschrieben.
Menu > Hilfe > Hilfe.
In der Hilfe auf "Dialoge" klicken und dort auf "Einführung Dialog".

Ich gehe davon aus, dass auch jetzt noch einige Bugs enthalten sind.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Rechenprogramm

  Alt 12. Apr 2018, 11:02
Beim CTRL+Linksklick auf Ergebniss erscheint bei mir ein Fehler (siehe Bild 1)
worauf ich keine Kontrolle über das Window zurückerlange,
ein klick auf's [X] vom Hauptfenster verabschiedete sich mit Bild #2.
Ich nutze Windows 10 / 64 Bit.
Miniaturansicht angehängter Grafiken
calc_error.jpg   calc_error2.jpg  
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Rechenprogramm

  Alt 12. Apr 2018, 11:21
Beim CTRL+Linksklick auf Ergebniss erscheint bei mir ein Fehler (siehe Bild 1)
worauf ich keine Kontrolle über das Window zurückerlange,
ein klick auf's [X] vom Hauptfenster verabschiedete sich mit Bild #2.
Ich nutze Windows 10 / 64 Bit.
Kann ich leider nicht nachvollziehen.
Bei mir (Windows 7 64 Bit) arbeitet beides korrekt.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#5

AW: Rechenprogramm

  Alt 12. Apr 2018, 11:54
Beim CTRL+Linksklick auf Ergebniss erscheint bei mir ein Fehler (siehe Bild 1)
worauf ich keine Kontrolle über das Window zurückerlange,
ein klick auf's [X] vom Hauptfenster verabschiedete sich mit Bild #2.
Ich nutze Windows 10 / 64 Bit.
Das habe ich gerade mit Windows 10 64 Bit (10.0.16299) auch mal getestet.
Keinerlei Probleme und Fehlermeldungen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz