Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Einfacher Texteditor (https://www.delphipraxis.net/141814-einfacher-texteditor.html)

Bent1995 16. Okt 2009 21:14


Einfacher Texteditor
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,

Heute will ich euch meinen Texteditor vorstellen, er hat das besondere Feature, dass er den Gesamten Text in der Registry Speicher und ihn beim nächsten Programmstart auch automatisch wieder aufruft, damit versucht er Datenverluste bei Stromausfällen, Bluescreens etc. zu vermeiden. Außerdem sind noch "Spielereie" eingebaut wie z.B: Alarm, Taschenrechner, Uhr, ein Internetbrowser... Mit inbegriffen ist der Ansatz einer Producktregistrierung, die Key's geb ich euch natürlich mit :-D!

Die Updates habe ich ausgeschaltet, da diese noch nicht richtig funktionieren.

Dieser Texteditor soll sich durch seine einfache Bedienung und die integrierten Features behaupten und soll keine billige Kopie von anderen kommerziellen Texteditoren sein!

Features:

* Kontinuierlich automatisches sichern des Textes
* Einfach zu Bedienen
* "Eingebauter" IE
* Ansatz einer Producktregistrierung
* "Eingebauter" Alarm
* "Eingebauter" Taschenrechner
* Lesemodus, dh. man kann den Text nur lesen aber nicht ändern, (praktisch bei Vorführungen)
* "Eingebaute" Uhr
* "Eingebaute" Resetfunktion

Bekannte Bugs:


- Man kann die integrierte Tabelle nicht speichern. (Vielleicht weiß ja jemand wie man ein F1Book1 speichert?)
- Der Texteditor wurde so programmiert das er auf einem 1280*800 Bildschirm ordentlich aussieht, auf anderen Bildschirmen sieht er sonst leicht gestreckt aus...
- Die Updatefunktion funktioniert nicht (Ich arbeite dran)

Ich werde den kompletten Quellcode und die Projektdateien mit geben, aber ich bitte euch ihn nicht ein wenig zu ändern und ihn dann wieder i-wo hochzuladen unter eurem Namen, da ich viele Stunden in das Projekt und die Programmierung investiert habe! DANKE :roll:

Wer Fragen zum Quelltext hat kann mich dies hier natürlich fragen!

Für Verbesserungsvorschläge bin ich immer offen!

lbccaleb 16. Okt 2009 21:19

Re: Einfacher Texteditor
 
Hallo habe gerade mal versucht deinen Editor auszuprobieren, aber no Way :(

Stürzzt bei mir sofort beim start ab unter Windows Vista...

Also irgendwo ist noch der Wurm drinn :)

alleinherrscher 16. Okt 2009 21:21

Re: Einfacher Texteditor
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmmmmm...also mir ist dieses Programm umsympatisch...weil:

1. Brauch ich einen Productkey
2. Nach dem Start vom Programm, arbeitet meine Festplatte 10 Sekunden lang (was zur hölle macht das Programm in der zeit?)
3. Anschließend bekomme ich die Fehlermeldung im Anhang


unter Windows xp

Matze 16. Okt 2009 21:31

Re: Einfacher Texteditor
 
Und den Code könntest du auf einen Bruchteil der Länge kürzen und viel übersichtlicher gestalten, wenn ich ihn grob überfliege. Aber ich denke, das kommt mit der Zeit alles. Ich würde es dir ja gerne umschreiben, damit du etwas dazu lernst, aber das ist mir momentan etwas viel Arbeit.

Ein paar Beispiele:

Delphi-Quellcode:
if a then b;
if a then c;
if a then d;
Kannst du so schreiben:

Delphi-Quellcode:
if a then
begin
  b;
  c;
  d;
end;
Dann solltest du deine Prozeduren und Komponenten so benennen, dass du verstehst, was da passiert. Kommentare sind ebenfalls wichtig, sonst weißt du in 4 Monaten nicht mehr, was du gemacht hast.

oder das hier mit den "{bf99ecd9-125b-5608-0de4-b037ac06ffd7}"-Strings. Statt
Delphi-Quellcode:
if a = 'a' then b;
if a = 'a' then c;

if a = 'y' then b;
if a = 'y' then c;

...
Kannst du so vereinfachen:

Delphi-Quellcode:
if (a = 'a') or (a = 'y') then
begin
  b;
  c;
end;
Oder das hier:

Delphi-Quellcode:
If Label1.Caption = '01:00:00' then ShowMessage ('Es ist jetzt 01:00 Uhr');
If Label1.Caption = '02:00:00' then ShowMessage ('Es ist jetzt 02:00 Uhr');
...
Kürzer und sauberer geht es so:

Delphi-Quellcode:
ShowMessage ('Es ist jetzt ' + Label1.Caption + ' Uhr');
Gut, die 3 Zeichen ":00" kannst du natürlich davor noch herauslöschen.

Das sind nur ein paar Beispiele und ich hoffe, du lernst daraus und weißt, wie du deinen Code zukünftig etwas ordentlicher gestalten kannst. :)

Als Anfänger stecken zahlreiche Stunden in so einem Programm, das weiß ich. Aber das wird keiner abändern und unter seinem Namen veröffentlichen. Da bin ich mir sicher. ;) Für dich ist es aber gut, da du so siehst, wie man was besser machen kann.

Grüße, Matze

Ralf Kaiser 16. Okt 2009 21:38

Re: Einfacher Texteditor
 
Zitat:

Zitat von Bent1995
Heute will ich euch meinen Texteditor vorstellen, er hat das besondere Feature, dass er den Gesamten Text in der Registry Speicher und ihn beim nächsten Programmstart auch automatisch wieder aufruft, damit versucht er Datenverluste bei Stromausfällen, Bluescreens etc. zu vermeiden.

Das ist nicht dein Ernst, oder??

Die meisten Leute befassen sich intensiv damit die Registry zu optimieren und möglichst klein zu halten und du verwendest die Registry um DATEN zu speichern????

Gut, dass du diese "Warnung" in die Beschreibung aufgenommen hast..... :gruebel:

Warum in der Registry? Speicher doch in eine einfache Datei. Du schreibst, dass dadurch Datenverluste durch Stromausfälle usw. vermieden werden sollen. Die Registry ist, wenn es wirklich zu einem Stromausfall kommt nicht sicherer als jede normale Datei. Wenn der Ausfall aber gerade beim Speichern des Backups passiert dann hast du im ungünstigsten Fall die Registry geschrottet. Speicherst du in einer normalen Datei (und der Ausfall schlägt genau dann zu) dann ist nur diese eine Datei kaputt.

himitsu 16. Okt 2009 21:53

Re: Einfacher Texteditor
 
Zitat:

Zitat von Alfi001
Die meisten Leute befassen sich intensiv damit die Registry zu optimieren und möglichst klein zu halten und du verwendest die Registry um DATEN zu speichern????

Wenn er den entsprechenden Teil der Registry (also alles ab/unter seinem Hauptschlüssel) in eine Datei auslagert, dann könnte man da mitmachen.

theoretisch besteht doch die Möglichkeit, daß man einzelne Teile der Registry in extra Dateien auslagern kann.

PS: wozu gibt es denn GetSystemRegistryQuota, wenn man damit die Beschränkungen nicht ins Unermessliche steigern kann :roll:


PS: bei mir startet das Programm weder unter XP, noch unter Windows 7

Mithrandir 16. Okt 2009 21:58

Re: Einfacher Texteditor
 
Also, janz ehrlich:

Große Datenmengen gehören auf die Festplatte. Und da sollte man auch nicht anfangen, die Registry in externe Dateien auszulagern. Man nimmt sich ein Verzeichnis mit schreibrechten, und legt dann meinetwegen alle 30 Sekunden ne Backup-Datei an und überschreibt die alte.

Dit mit dem Key find ich süß...:mrgreen:

Bent1995 16. Okt 2009 22:08

Re: Einfacher Texteditor
 
Danke für all eure Tips, ich werde sie auch beherzigen! Aber: Ich bin ein 14 Jähriger und kein superprogrammierer, hab mir das alles selber beigebracht, spricha usprobiert und verfeinert! Noch dazu habe ich das Programm vor ca. 1 1/2 Monaten fertig gestellt und seit dem hab ich noch eine Menge in sachen übersichtliche Programmierung etc. gelernt!

Vielen Dank trodtzdem für die Kritik! :-D

Und ähm falls ihr wollt kann ich euch noch ein tool geben von mir, das den key wieder aus der Registry löscht also keine Angst! Außerdem wird der KEy immer wieder geleert, wenn ihr den Text aus dem Dokument löscht!

himitsu 16. Okt 2009 22:35

Re: Einfacher Texteditor
 
Also in Richtung Fehlerbehandlung solltest du dich mal etwas Schlau machen.

Try-Except ist zwar schonmal ein Anfang (hey, viele kennen nichtmal Dieses), aber besser wäre es,
wenn man erst garkeine Exceptions entstehen läßt, welche man dann erst wieder abfangen muß.

z.B.
* prüfen ob Dinge vorhanden sind
- also z.B. ob der Registry-Pfad schon existiert und auch die Werte darin

* prüfen von externen Eingaben
- da wären z.B. ob externe Werte auch im richtigen Bereich liegen ... wie z.B. der Farbwert, welcher beim ersten Start die Exception auslößt, wenn der nichtvorhandene Wert, also der Leerstring in einen Farbwert umgewandelt werden soll

* StrToInt bzw StrToFloat sollten nur verwendet werden, wenn die Werte korrekt sind
- hier gibt es z.B. Delphi-Referenz durchsuchenStrToIntDef und Delphi-Referenz durchsuchenTryStrToInt


Mit was hast du den Editor eigentlich kompilert,
bzw. welche Entwiklungsumgebung (Delphi, Lazarus, ...) und Version nutzt du?

Daß dein Programm einfach so abstürzt und bei mir sich überhaupt nicht starten läßt
ist schon eigenartig, vorallem da es neukompiliert über deinen Quellcode plötzlich läuft.


Ansonsten schau dich einfach etwas im Forum und vorallen in den QuellCodes der anderen User, bzw. in der CodeLib um ... da gibt es soviele schöne Beispiele, daß du dir bestimmt noch den einen oder anderen "Trick" abgucken kannst :)


und wegen deinem Alter brauchst dir keine Sorgen machen ... ich war auch nicht viel älter als du, als ich anfing, hab anfangs mir auch fast alles selbst beigebracht und ich lerne selbt JETZT noch vieles dazu und machen nicht alles "richtig" :oops:

Bent1995 16. Okt 2009 22:49

Re: Einfacher Texteditor
 
Zitat:

Zitat von himitsu
Also in Richtung Fehlerbehandlung solltest du dich mal etwas Schlau machen.

Try-Except ist zwar schonmal ein Anfang (hey, viele kennen nichtmal Dieses), aber besser wäre es,
wenn man erst garkeine Exceptions entstehen läßt, welche man dann erst wieder abfangen muß.

z.B.
* prüfen ob Dinge vorhanden sind
- also z.B. ob der Registry-Pfad schon existiert und auch die Werte darin

* prüfen von externen Eingaben
- da wären z.B. ob externe Werte auch im richtigen Bereich liegen ... wie z.B. der Farbwert, welcher beim ersten Start die Exception auslößt, wenn der nichtvorhandene Wert, also der Leerstring in einen Farbwert umgewandelt werden soll

* StrToInt bzw StrToFloat sollten nur verwendet werden, wenn die Werte korrekt sind
- hier gibt es z.B. Delphi-Referenz durchsuchenStrToIntDef und Delphi-Referenz durchsuchenTryStrToInt


Mit was hast du den Editor eigentlich kompilert,
bzw. welche Entwiklungsumgebung (Delphi, Lazarus, ...) und Version nutzt du?

Daß dein Programm einfach so abstürzt und bei mir sich überhaupt nicht starten läßt
ist schon eigenartig, vorallem da es neukompiliert über deinen Quellcode plötzlich läuft.


Ansonsten schau dich einfach etwas im Forum und vorallen in den QuellCodes der anderen User, bzw. in der CodeLib um ... da gibt es soviele schöne Beispiele, daß du dir bestimmt noch den einen oder anderen "Trick" abgucken kannst :)


und wegen deinem Alter brauchst dir keine Sorgen machen ... ich war auch nicht viel älter als du, als ich anfing, hab anfangs mir auch fast alles selbst beigebracht und ich lerne selbt JETZT noch vieles dazu und machen nicht alles "richtig" :oops:


Danke!

Also immoment Arbeite Ich mit Delphi 7 Enterprise (Schulversion)

Und ich arbeite grad an dem Quelltext, ihn zu verbessern z.B.

If ... then ...
If ... then ...
If ... then ...
If ... then ...
If ... then ...

ersetz ich den janzen mist nun durch:

If ... then
begin
...
....
.....

Und das mit der Registry mach ich auch weg ich speichers einfach inna datei, die nach einem Absturtz des Systems bei bedarf wieder aufgerufen werden kann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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