| Autor |
Beitrag |
PPaB
      
Beiträge: 33
|
Verfasst: Mo 02.02.09 17:30
Ich habe ein Programm geschrieben, in dem man für den Chemieunterricht (oder vielleicht auch außerhalb vom Unterricht?) wichtige Inhalte hineinschreiben und speichern kann. Ich habe das Programm bis jetzt in drei "Teile" unterteilt:
- Chemikalien --> Hier werden in einer Tabelle die Chemikalien eingetragen und man hat so gleich alle zur Hand.
Dort kann man den IUPAC-Namen, die Formel und den umgangssprachlichen Namen eintragen.
(Hier soll es auch noch die Möglichkeit geben, die Strukturformel einzutragen, aber dies ist noch
nicht vorhanden)
- Versuche --> Hier kann man Versuche zusammen mit Durchführung/Beobachtung/Auswertung und den
Reaktionsgleichungen eintragen.
- Sonstiges --> Hier kann alles, was noch in keinen anderen Bereich passt eingetragen werden.
Mal ein paar Screenshots, damit ihr sieht, wie es ungefähr aussieht:
[url= www.siteupload.de/p913576-Chemie1JPG.html] [/URL]___[url= www.siteupload.de/p913577-Chemie2JPG.html] [/URL]___[url= www.siteupload.de/p913579-Chemie3JPG.html] [/URL]
Ich würde mich freuen, wenn ihr mir Tipps und Vorschläge geben würdet, was ihr verbessern oder gar ändern würdet.
und natürlich auch, ob euch das Programm gefallen hat. Mich würde auch interessieren, ob es auch für Leute interesant ist, die nicht mehr zur Schule gehen und dort Chemieunterricht haben.
Hinweise:
-Mein Programm besitzt keine Uninstall-Funktion, aber es kann einfach durch löschen des gesamten Ordners komplett gelöscht werden.
-Wenn aus dem Ordner die Textdateien gelöscht werden, kann es passieren, dass das Programm nicht mehr richtig funktioniert!
Viel Spaß mit dem Programm, ich freue mich auf eure Antworten
PPaB
Update 1:
-Änderung an dem Style des Programms und der Schriftgröße
-Änderungen des Menüs
-im Menü gibt es jetzt die Rubriken Datei,Ansicht,Sortieren und die Hilfe
Update 2:
-Löschfunktion
-keine leeren Felder in der Tabelle
-Fehler bei speicher bzw löschen
-Periodensystem
-Schließen über [X]
Weitere Aufgaben
-Strukturformel
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von PPaB am Do 05.02.09 22:24, insgesamt 9-mal bearbeitet
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 02.02.09 18:22
Hallo und  in der Entwickler-Ecke, PPaB!
Die Idee ist schon mal nicht schlecht, vor allem die Funktion, Daten unter anderen Benutzern austauschen zu können, finde ich gut.
Ein paar Verbesserungsvorschläge:
- Du weichst sehr stark von Windows-Standards ab. Zum Einen wäre das die Schrift, lasse die bitte auf Tahoma 8pt. Mir ist der Text einfach zu groß...
- Warum um alles in der Welt hast du den Schließen-Button deaktiviert? Das ist extrem nervig und zudem noch total unsinnig. Oder gibt es einen Grund dafür
- Menüs sind dazu da, aufgeklappt zu werden. Solche ohne Einträge aber mit Aktion beim Öffnen des Menüs überraschen mich immer, und das selten angenehm; außerdem werden sie nicht richtig dargestellt.
- In deinem Fall wäre statt den StringGrids wohl eher ein TListView oder VirtualTreeView. Die Spalten lassen sich in denen nämlich direkt anklicken
- Ziehe mal die Komponente TXPManifest (Win32) auf das Formular - und genieße das Windows XP-Theme
Das war's erstmal von mir. Dein Anfang ist gut und solide, aber es gibt doch noch was zu tun für dich - vielleicht schreiben andere ja noch mehr Tipps
Grüße,
Yogu
|
|
PPaB 
      
Beiträge: 33
|
Verfasst: Mo 02.02.09 18:39
Danke für deinen Kommentar und die Verbesserungsvorschläge.
| Zitat: | | Du weichst sehr stark von Windows-Standards ab. Zum Einen wäre das die Schrift, lasse die bitte auf Tahoma 8pt. Mir ist der Text einfach zu groß... |
--> OK habe ich geändert
| Zitat: | | Warum um alles in der Welt hast du den Schließen-Button deaktiviert? Das ist extrem nervig und zudem noch total unsinnig. Oder gibt es einen Grund dafür |
--> Mein Problem war, dass ja das Hauptfenster nicht dem Startfenster entspricht und ich es so nicht einfach mit dem Schließenbutton das ganze Programm schließen konnte. Wenn du weißt, wie das funktioniert würde ich mich freuen.
| Zitat: | | Menüs sind dazu da, aufgeklappt zu werden. Solche ohne Einträge aber mit Aktion beim Öffnen des Menüs überraschen mich immer, und das selten angenehm; außerdem werden sie nicht richtig dargestellt. |
--> OK werde mir gedanken dazu machen, welche weiteren Funktionen ich noch hinzufüge, um ein größeres, aufklappbares Menü machen zu können.
| Zitat: | | In deinem Fall wäre statt den StringGrids wohl eher ein TListView oder VirtualTreeView. Die Spalten lassen sich in denen nämlich direkt anklicken |
| Zitat: | | Ziehe mal die Komponente TXPManifest (Win32) auf das Formular - und genieße das Windows XP-Theme |
--> Diese Komponenten kenne ich nicht, werde sie mal ausprobieren und schauen, ob sie mir besser gefallen 
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 02.02.09 18:41
Finde auch das es eine super Idee ist, doch wie Yogu schon sagte, ist die Schrift nicht wirklich passend.
Und die Anordnung solltest du vielleicht ein bisschen ansehnlicher gestalten.
Ansonsten wirklich gut gemacht! 
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 02.02.09 19:19
PPaB hat folgendes geschrieben : | | Zitat: | | Warum um alles in der Welt hast du den Schließen-Button deaktiviert? Das ist extrem nervig und zudem noch total unsinnig. Oder gibt es einen Grund dafür |
--> Mein Problem war, dass ja das Hauptfenster nicht dem Startfenster entspricht und ich es so nicht einfach mit dem Schließenbutton das ganze Programm schließen konnte. Wenn du weißt, wie das funktioniert würde ich mich freuen. |
Dein Hauptfenster sollte in den Anwendungsoptionen auch als MainForm eingestellt sein. Um einen Splash Screen anzuzeigen, schaue mir mal ein Tutorial aus der Delphi-Library an.
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 02.02.09 21:50
warum ist C6H12O6 bei dir AcetylSalicylSäure? Wenn ich mich nicht irre ist das doch Glucose oder?
(kann aber auch total daneben liegen, dann ignorieren) 
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 02.02.09 22:15
Zuletzt bearbeitet von Yogu am Di 03.02.09 16:53, insgesamt 1-mal bearbeitet
|
|
PPaB 
      
Beiträge: 33
|
Verfasst: Mo 02.02.09 22:40
da hast du vollkommen recht, keine Ahnung wie das passieren konnte
Hab es umgeändert.
PPaB
Zuletzt bearbeitet von PPaB am Di 03.02.09 07:18, insgesamt 1-mal bearbeitet
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Di 03.02.09 00:29
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Di 03.02.09 21:14
nagel hat folgendes geschrieben : | Yogu hat folgendes geschrieben : | FinnO hat folgendes geschrieben : | warum ist C6H12O6 bei dir AcetylSalicylSäure? Wenn ich mich nicht irre ist das doch Glucose oder?
(kann aber auch total daneben liegen, dann ignorieren)  |
Laut WIKIPEDIA liegst du richtig. |
Nicht unbedingt, die Summenformel alleine sagt hier wenig aus. Die könnte genausogut für Fructose, Galactose, Mannose oder irgendwelche andere Sachen, die mir grad nicht einfallen, stehen. |
Das ist doch alles Haarspalterei hier ^^
|
|
1aa
      
Beiträge: 47
Erhaltene Danke: 1
Win Vista, Win8
Delphi 2007
|
Verfasst: Di 03.02.09 22:37
Also ich finde den Ansatz des Programmes sehr interessant
Trotzdem Hab ich noch ein klein wenig Kritik/Verbesserungsvorschläge bzw. Bugs die ich gefunden habe:
Menü:
-->nimm das Untermenü aus Speichern raus.... den immer man über dieses Menü fahrt
aktiviert es sich automatisch... das ist voll nervig
Tabelle:
-->Beim einfügen in die Tab ist es nicht sehr sinn voll leere Zeilen zuzulassen
-->die Einfüge Beschriftung stimmt nicht mit der Tabellen Beschriftung über ein....
siehe Name und IUPAC - Name
-->es währe villeicht noch günstig eine löschen funktion einzubauen...um falsche spalten
kommplett zulöschen
Versuche:
-->beim Einfügen eines neuen Versuchs kommt es zu einem Dateifehler...
damit ist auch kein speichern möglich
Sonstiges
-->selbe Fehler wie Versuche
-->wenn ich was lösche kommt beim speichern die Fehlermeldung
'Überschreitet listen maximum (-1)'
so das war erst mal...
PS: Ich find die Idee wirklich super...
|
|
PPaB 
      
Beiträge: 33
|
Verfasst: Di 03.02.09 22:55
Danke für deine Verbesserungsvorschläge!
| Zitat: | Menü:
-->nimm das Untermenü aus Speichern raus.... den immer man über dieses Menü fahrt
aktiviert es sich automatisch... das ist voll nervig |
Sorry ist passiert, da ich das neue Menü erstellt habe und vergessen habe den Code für das vorige "Speichern-Menü" zu löschen. Erledigt
| Zitat: | Tabelle:
-->Beim einfügen in die Tab ist es nicht sehr sinn voll leere Zeilen zuzulassen
-->die Einfüge Beschriftung stimmt nicht mit der Tabellen Beschriftung über ein....
siehe Name und IUPAC - Name
-->es währe villeicht noch günstig eine löschen funktion einzubauen...um falsche spalten
kommplett zulöschen |
Wie meinst du das mit dem leeren Zeilen zulassen? Weiß nicht genau, gegen was du etwas hast? Meinst du ich sollte verhintern, dass das IUPAC-Name-Feld oder das Formelfeld freibleibt. Das werde ich morgen ändern.
Beschrieftung ist geändert, danke das dir das aufgefallen ist
Die Löschfunktion werde ich auch morgen noch einbauen.
| Zitat: | Versuche:
-->beim Einfügen eines neuen Versuchs kommt es zu einem Dateifehler...
damit ist auch kein speichern möglich |
da muss ich mir noch etwas überlegen. Bis jetzt ist es so, dass man auch einen Versuch in der Liste aktiviert haben muss, damit dieser gespeichert wird. Das selbe ist auch mit der Löschfunktion (man kann ja nicht einfach sagen lösch mal eins, aber nicht sagen was^^).
Werde ich mich aber auch darum kümmern und zumindest verhindern, dass der Fehler auftritt bzw. ihn abfangen.
Es freut mich, dass mir hier so viele helfen und so viele Vorschläge mit einbringen!!
Achso, hat vielleicht jemand eine Idee, wie ich am besten die Strukturformel mit einbringen könnte?
PPaB
|
|
1aa
      
Beiträge: 47
Erhaltene Danke: 1
Win Vista, Win8
Delphi 2007
|
Verfasst: Di 03.02.09 23:04
| Zitat: | | Wie meinst du das mit dem leeren Zeilen zulassen? Weiß nicht genau, gegen was du etwas hast? Meinst du ich sollte verhintern, dass das IUPAC-Name-Feld oder das Formelfeld freibleibt. Das werde ich morgen ändern. |
genau das meinte ich
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Di 03.02.09 23:27
Hi,
grundsätzlich finde ich es super, wenn jemand nachdenkt und gute Programme entwirft. Bei dir, so glaube ich, ist es jedoch ein bisschen vergebene Liebesmüh. Du scheinst von der Chemie sehr angetan zu sein. Das ist lobenswert. Allerdings musst du dir mal überlegen, wieviele verschiedene Chemikalien, Verbindungen, Nachweise etc. es gibt. Meiner Meinung nach ist so etwas besser in einem Wiki aufgehoben.
PPaB hat folgendes geschrieben : |
Es freut mich, dass mir hier so viele helfen und so viele Vorschläge mit einbringen!!
Achso, hat vielleicht jemand eine Idee, wie ich am besten die Strukturformel mit einbringen könnte? |
Hierfür wiederum lohnt sich ein Programm. Das lässt sich dann auch stufenweise ausbauen.
Die Strukturformeln müssen ja gezeichnet werden. Im ersten Schritt schlage ich dir vor, mal zu überlegen, wie du die Summenformel erst einmal richtig schreiben könntest (hoch- und tiefgestellt). Man könnte sich dafür überlegen, einen codierten String zu nehmen. Wenn vor einer Ziffer ein bestimmtes Zeichen kommt, schreibst du (Canvas->TextOut, Position muss berechnet werden) die Ziffer entweder hoch oder tief.
Zum Beispiel für Ethanol (C6H5OH): C_6H_5OH. Der Benutzer sieht das am Ende ja nicht. Interessant wird es nachher bei den Ladungen.
Um dann die Strukturformel aufzubauen, solltest du alle Elemente des PSEs mit ihren Wertigkeiten in eine Tabelle aufnehmen. Hier musst du dir als erstes eine gute Struktur überlegen. Die Strukturformel muss eh editiert werden. Daher schlage ich vor, dass du später aus der Strukturformel die Summenformel ableitest (ISO Nomenklatur). Für die Strukturformel musst du dann einen kleinen Editor basteln, der das Verschieben der einzelnen Elemente möglich macht. Es gibt ja weiterhin unterschiedliche Formen der Strukturformel ( de.wikipedia.org/wik..._Strukturformeln%3F). Welche möchtest du implementieren?
Das sollte dir von vornherein klar sein. Leicht wird es nicht, aber wir helfen dir, wenn du nicht weiter kommst.
Liebe Grüße,
Michael
|
|
PPaB 
      
Beiträge: 33
|
Verfasst: Mi 04.02.09 16:15
| Zitat: | | grundsätzlich finde ich es super, wenn jemand nachdenkt und gute Programme entwirft. Bei dir, so glaube ich, ist es jedoch ein bisschen vergebene Liebesmüh. Du scheinst von der Chemie sehr angetan zu sein. Das ist lobenswert. Allerdings musst du dir mal überlegen, wieviele verschiedene Chemikalien, Verbindungen, Nachweise etc. es gibt. Meiner Meinung nach ist so etwas besser in einem Wiki aufgehoben. |
Ich hatte mir ja auch gedacht, dass man dort alle Chemiekalien, Verbindungen speichert, die man selbst braucht und nict einfach alle. Finde auch das da Wiki besser ist für alles, aber so hat man für die, die man öfters braucht oder, wie z.B. bei mir, man im Chemieunterricht benutzt hat.
Ich verstehe nicht ganz, wie du das meinst mit den Hoch-/ Tiefzahlen. Ich wollte das schon gleich am Anfang mit reinnehmen, aber ich habe lange im Internet gesucht und nichts gefunden, außer man ändert die Schriftart.
Könntest du mir vielleicht genauer erklären, wie deine Methode funktioniert?
Achso und eine Frage hätte ich:
Wie schaffe ich es, dass wenn bei einer Inputbox der Abbruch-button gedrückt wird, die Procedure nicht weiterläuft? Habe da keine guten Erklärungen im Internet gefunden.
Werde später eine neue Version uploaden, aber bin noch nicht ganz fertig mit dem, was ich heute noch machen will.
MfG
PPaB
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 04.02.09 16:41
PPaB hat folgendes geschrieben : | Ich verstehe nicht ganz, wie du das meinst mit den Hoch-/ Tiefzahlen. Ich wollte das schon gleich am Anfang mit reinnehmen, aber ich habe lange im Internet gesucht und nichts gefunden, außer man ändert die Schriftart.
Könntest du mir vielleicht genauer erklären, wie deine Methode funktioniert? |
Ist gar nicht so schwer. Du nimmst einen String, z. B. C6H5OH. Hier sollte der Benutzer natürlich die 6 und die 5 tiefgestellt sehen. Dazu müsstest du die Ausgabe selbst programmieren, d. h. die komplette Zeichenroutine. Welche Komponente nutzt du für die Darstellung deiner Übersicht? Gibt es dort Ereignisse, die es dir erlauben, selbst die Zeichenroutine aufzurufen oder zu überschreiben (OwnerDraw)?
Wenn ja, hast du auch Zugriff auf das Canvas der Komponente. Dort werden dir Methoden zum Zeichnen und zur Textausgabe zur Verfügung gestellt. Jetzt beginnt die eigentliche Arbeit. Gehe den String schrittweise durch.
1. C -> normale Ausgabe mit TextOut(X, Y, 'C');
2. 6 -> Schriftgröße anpassen (etwas kleiner: Canvas.Font.Size := Canvas.Font.Size - 2, oder ähnlich), Position der Ausgabe berechnen (FontWidth, FontHeight), hängt natürlich vom Text vorher ab
3. H -> wieder die normale Ausgabe, die Position müsstest du dir berechnen oder in einer Variablen speichern
usw.
Dafür eignet sich ggf. ein Automat. "Automatentheorie" - schon mal gehört? Weil es könnte ja auch sein, dass du mal Fe2+ oder Cl- ausgeben willst. Da musst du auch etwas weiter vorausschauen.
Dürfte interessant sein.
Noch Fragen?
Grüße,
Michael
|
|
PPaB 
      
Beiträge: 33
|
Verfasst: Mi 04.02.09 18:59
danke für die Erklärung, ich werde mich dann mal daran setzen, dass umzusetzen.
PPaB
|
|
|