Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Delphi Laufzeitoptimierung, MandelbrodtJuliaZoom (https://www.delphipraxis.net/133467-laufzeitoptimierung-mandelbrodtjuliazoom.html)

Dipl Phys Ernst Winter 5. Mai 2009 08:17

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
"Stoxx"
Zitat:

Ich kenn mich ja zu wenig damit aus, aber würden sich damit auch Zeitreihenprognosen erstellen lassen, denen man chaotisches Verhalten unterstellen möchte?
Nein. Das ist Thema der Quadratischen Iterators

himitsu 5. Mai 2009 08:23

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
Joar, das hab ich mich auch schon immer mal wieder gefragt ... also wozu man sowas eigentlich verwenden kann. :gruebel:

Außer daß man in die Corona "unendlich" reinzoomen kann und sich da ein Muster ewig in sich wiederholt und daß es sich schwer berechnen läßt ist doch für nix verwendbar, oder?
OK, außer um Laufzeitoptimierungen auszuprobieren :mrgreen:

Dipl Phys Ernst Winter 5. Mai 2009 08:36

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
[quote="isilive"]
Zitat:

Warum Backspace oder Delete in einem Edit problematisch sein sollten verstehe ich auch nicht. Es ist wichtig um eine normale Bedienbarkeit des Programms zu erhalten. Eventuelle Falscheingaben sollten sich problemlos abfangen lassen.

Ausserdem wenn ich 1.05 eingebe kommt eine Fehlermeldung "Ungültiger Wert". Bis ich 1.050000000000 eingebe.
Du gibst die Antwort selbst.

Die Parameter werden angezeigt und können zur Editiom mit anderen Ziffern überschrieben werden, demit der Inhalt des Feldes Konvertierbar bleibt fordert die Maske eine Ziffer an allen Positionen.
Mit '1.0500 000000' würde das Program sich mit einer Fehlermeldung 'Konvertierungsfehler' beim StrToFloat() verabschieden.

Was ist unter normaler Bedienbarkeit zu verstehen? Ich halte die Edition einer im Feld stehenden Zahl durch Überschreiben durchaus für normal, auch ohne Delete und Backspace.

Dipl Phys Ernst Winter 5. Mai 2009 08:50

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
"Daniel G"
Zitat:

Delete und Backspace sind bewußt unterdrückt, da sie zu einem nicht konvertierbaren String führen würden
Inwiefern? :gruebel:
StrToFloat('1.050 00000') würde einen Konvertierungsfehler erzeugen, daher fordert die Maske eine Ziffer an allen Stellen. Damit der Anwenden nicht mit der Fehlemeldung 'Ungültiger Wert' konfrontiert wird (für ihn nicht nachvollziehbar, da er die Maske nicht kennt) wurden Delete und Backspace unterdrückt.
Zitat:

Es wurde doch 'Weiter mit OldBild' empfohlen
OldBild findet sich im Menü Bild

Dipl Phys Ernst Winter 5. Mai 2009 09:12

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
"himitsu" fragt
Zitat:

Joar, das hab ich mich auch schon immer mal wieder gefragt ... also wozu man sowas eigentlich verwenden kann. :gruebel:
Da musst Du mal bei den Mathematikern nachfragen. z.B. Mandelbrodt: Die Fraktale Geometrie der Natur.
Speziell mit realen Anwendungen in Biologie, Ökologie, Geologie befassen sich
H.M. Hastings/G. Sugihara in Fraktale Ein Leitfaden für Anwender Spektrum Academischer Verlag 1996.

guidok 5. Mai 2009 09:19

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
Zitat:

Zitat von Dipl Phys Ernst Winter
Was ist unter normaler Bedienbarkeit zu verstehen? Ich halte die Edition einer im Feld stehenden Zahl durch Überschreiben durchaus für normal, auch ohne Delete und Backspace.

Das stimmt, das Überschreiben ist durchaus normal, allerdings auch das Backspace und Delete. Also im Regelfall ist es so:

Ich klicke in eine Editierfeld und der gesamte Inhalt wird zum Überschreiben markiert. Ich klicke noch einmal, dann wird wieder deselektiert und ich befinde mich im Einfügemodus. Oder ich markiere jetzt gezielt ein oder mehrere Zeichen und kann wieder überschreiben. Oder ich verwende Pos1 oder Backspace oder Delete.

Nachdem ich "früher" auch gerne zu kreativen Methoden der Bearbeitung und der GUI gegriffen habe, bin ich nun doch der Meinung das man sich (auch wenn man Microsoft nicht mag) an das allgemeine "Look and Feel" halten sollte.

Das bedeutet allerdings nicht, dass man nicht für spezielle Aufgaben auch spezielle Eingabemethoden einsetzen darf.

himitsu 5. Mai 2009 09:32

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
Im Notfall kann man Backspace und Delete auch ganz einfach in Maskedits implementieren
und (führende/folgende) Leerstellen würde ich einfach als 0 behandeln, oder vor der Umwandlung wegschneiden (Trim).

Medium 5. Mai 2009 09:37

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
Was die Eingabe betrifft: Es hat sich als Quasi-Standard etabliert die Eingabe ungültiger Zeichen in entsprechende Edits abzufangen. Ein Leerzeichendruck fällt bei Zahleneingaben ebenso darunter wie Buchstaben, Steuertasten hingegen nicht. Die Prüfung muss Eingaben die "im Werdegang" sind berücksichtigen, z.B. kann ein '-.', dass ja an sich ungültig ist durchaus noch ein '-9.5' werden.
Daher: Sollte es ein User dann dennoch schaffen einen nicht konvertierbaren Wert einzugeben, so sollte man dies abprüfen, und dem Benutzer eine aussagekräftige Fehelrmeldung in Form eines MessageDialogs präsentieren, der aussagt was wo falsch ist. Das wäre der übliche Weg.

Vormaskierte Eingaben mit invarianter Stellenanzahl sind nicht mehr üblich, und muten jedem "normalen" Windows User sehr fremd an. In einigen wenigen sehr zpeziellen Fällen kann das natürlich vermutlich sinnvoll eingesetzt werden, wenn es den "Bedienflow" erhöht, jedoch habe ich gerade nicht einmal ein treffendes Beispiel parat. Im vorliegenden Fall empfinde ich es als eher hinderlich.

Was die "Hilfe lesen" Sache angeht:
Man muss davon ausgehen, dass rund 99% aller PC User eine Hilfe wenn überhaupt bei speziellen Problemen anschaut. Wenn ich schon zum Verständnis der reinen Bedienung mit den ansonsten duraus standardmäßig aussehenden Controls eine Hilfe konsultieren muss, dann liegt das Problem nicht bei mir als User. Dann ist die GUI nämlich nach ergonomischen Gesichtspunkten ein Fehlschlag. Nicht umsonst beschäftigen größere Unternehmen ganze Abteilungen damit die Bedienbarkeit zu verbessern, und bei diesem kleinen Programm wäre es doch ein Leichtes eine sehr intuitive Bedienung zu schaffen, die auf dem Standardverhalten der Standardcontrols basiert.

guidok 5. Mai 2009 09:46

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
Zitat:

Zitat von himitsu
Im Notfall kann man Backspace und Delete auch ganz einfach in Maskedits implementieren
und (führende/folgende) Leerstellen würde ich einfach als 0 behandeln, oder vor der Umwandlung wegschneiden (Trim).


oder direkt bei der Eingabe prüfen, ob das eingegebene Zeichen zu einer gültigen Zahl führt

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var DummyOut: Single;
begin
  if not TryStrToFloat(Edit1.Text + Key, DummyOut) then begin
    Key := #0;
  end;
end;

himitsu 5. Mai 2009 09:56

Re: Laufzeitoptimierung, MandelbrodtJuliaZoom
 
direkt bei der Eingabe ist blöd

will ich "-1" eingeben, dann ist das "-" alleine keine gültige Zahl,
also erst im OnExit des Edits oder vor Verwendung der Zahl


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Seite 2 von 3     12 3      

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