AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Einfacher Texteditor

Einfacher Texteditor

Ein Thema von Bent1995 · begonnen am 16. Okt 2009 · letzter Beitrag vom 16. Okt 2009
Antwort Antwort
Bent1995
Registriert seit: 16. Okt 2009
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 !

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

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

Für Verbesserungsvorschläge bin ich immer offen!
Angehängte Dateien
Dateityp: rar texteditor_149.rar (497,9 KB, 30x aufgerufen)
Dateityp: txt produktkey_189.txt (398 Bytes, 22x aufgerufen)
Dateityp: exe texteditor2009_114.exe (934,0 KB, 26x aufgerufen)
 
Benutzerbild von lbccaleb
lbccaleb

 
Delphi 7 Enterprise
 
#2
  Alt 16. Okt 2009, 21:19
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
Martin
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

 
Delphi XE2 Professional
 
#3
  Alt 16. Okt 2009, 21:21
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
Miniaturansicht angehängter Grafiken
zwischenablage02_190.png  
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#4
  Alt 16. Okt 2009, 21:31
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 = 'athen b;
if a = 'athen c;

if a = 'ythen b;
if a = 'ythen 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:00then ShowMessage ('Es ist jetzt 01:00 Uhr');
If Label1.Caption = '02:00:00then ShowMessage ('Es ist jetzt 02:00 Uhr');
...
Kürzer und sauberer geht es so:

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
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

 
Delphi 10.3 Rio
 
#5
  Alt 16. Okt 2009, 21:38
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.....

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.
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.4 Sydney
 
#6
  Alt 16. Okt 2009, 21:53
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


PS: bei mir startet das Programm weder unter XP, noch unter Windows 7
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
 
#7
  Alt 16. Okt 2009, 21:58
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üß...
米斯蘭迪爾
  Mit Zitat antworten Zitat
Bent1995
 
#8
  Alt 16. Okt 2009, 22:08
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!

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!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.4 Sydney
 
#9
  Alt 16. Okt 2009, 22:35
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"
  Mit Zitat antworten Zitat
Bent1995
 
#10
  Alt 16. Okt 2009, 22:49
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"

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...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf