Delphi-PRAXiS
Seite 2 von 16     12 3412     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Mathematik alpha (https://www.delphipraxis.net/187612-mathematik-alpha.html)

SMO 17. Dez 2015 14:08

AW: Mathematik alpha
 
Zitat:

Zitat von Mathematiker (Beitrag 1324718)
Zitat:

Zitat von rapante (Beitrag 1324713)
-Die Hilfe funktioniert bei mir nicht. Das Inhaltsverzeichnis ist zwar da, aber sonst scheint die Hilfe leer zu sein!?

Mist. :wall:
Dieses Problem tritt leider bei dem einen oder anderen immer wieder auf. Am Windows-System liegt es nicht, da die Hilfe von XP bis 10 korrekt angezeigt wird. Nur leider nicht bei allen.

Das kann ich erklären. Die CHM-Datei wird nicht richtig angezeigt, weil sie aus dem Internet stammt!
Windows, genauer gesagt der Browser, markiert heruntergeladene Dateien als "aus unsicherer Quelle stammend". Internet Explorer macht das schon lange, Firefox hat's auch irgendwann mal übernommen, und andere Browser machen es mittlerweile wahrscheinlich auch.
Selbst die Entpackprogramme helfen mit. D.h. wenn ich mir deine alpha.zip runterlade, wird sie markiert. Entpacke ich dieses Archiv mit Windows oder z.B. WinRAR, dann übernehmen diese Programme die Markierung des Archivs für alle daraus entpackten Dateien.

Versucht man eine markierte Exe auszuführen, zeigt der Explorer eine Warnung à la "Der Computer wurde durch Windows geschützt" (siehe hier). Wenn man die Exe trotzdem ausführen will, muss man zuerst auf "Weitere Informationen" klicken, um die Option eingeblendet zu bekommen. Die Markierung wird dann beim ersten Start entfernt. Außerdem kann man sie im Eigenschaften-Dialog (Alt+Enter) sehen und entfernen (siehe hier).

Wie wird diese Markierung realisiert? Als alternativer NTFS Datenstrom. In NTFS können Dateien beliebig viele davon haben, angesprochen werden sie mit einem Doppelpunkt nach dem Dateinamen plus Datenstromname. Der Datenstrom, um den es sich hier dreht, heißt "Zone.Identifier" und enthält Text im guten alten INI-Format:
Code:
[ZoneTransfer]
ZoneId=3
Anschauen kann man sich diesen Datenstrom z.B. so: Konsole öffnen (cmd.exe oder ähnliches), dann "notepad C:\WasAuchImmer\matlex.chm:Zone.Identifier" eingeben.
Programmatisch löschen geht zum Glück sehr einfach:
Delphi-Quellcode:
var
  BaseDir: string;
begin
  BaseDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
  if FileExists(BaseDir + 'matlex.chm:Zone.Identifier') then
    DeleteFile(BaseDir + 'matlex.chm:Zone.Identifier');
  // selbes Prozedere mit weiteren Dateien falls nötig oder gewünscht
end;
Danach funktioniert die Hilfedatei dann richtig.

Ich habe mir übrigens auch endlich mal die Zeit genommen, dein Programm anzuschauen. Es ist wirklich sehr beeindruckend! :thumb:

Mathematiker 17. Dez 2015 14:33

AW: Mathematik alpha
 
Hallo SMO,
Danke für deine sehr ausführliche Antwort.
Dass Programme aus dem Internet eine Warnmeldung bei der Erstausführung produzieren, kenne ich. Dass so etwas auch bei der chm-Hilfe auftritt, ist für mich überraschend.
Und damit habe ich wieder etwas gelernt. Sehr schön. :thumb:

Zitat:

Zitat von SMO (Beitrag 1324761)
Programmatisch löschen geht zum Glück sehr einfach: ... Danach funktioniert die Hilfedatei dann richtig.

Genial. :cheers: Ich habe sofort die Routine in die Haupt-EXE eingebaut.
Da beim Erststart das Nutzerverzeichnis angelegt wird, entferne ich nun dort gleich noch die "Sperre" für die Hilfedatei. Damit dürfte es funktionieren.
Ich tausche bei Dropbox das Programmpaket heute noch aus. Danke für die Superlösung.

Zitat:

Zitat von SMO (Beitrag 1324761)
Ich habe mir übrigens auch endlich mal die Zeit genommen, dein Programm anzuschauen. Es ist wirklich sehr beeindruckend! :thumb:

Danke für die lobenden Worte.

Beste Grüße
Mathematiker

Nachtrag: Eine Frage noch
Delphi-Quellcode:
if FileExists(BaseDir + 'matlex.chm:Zone.Identifier') then
wird im Debugger übersprungen. Müsste es nur
Delphi-Quellcode:
if FileExists(BaseDir + 'matlex.chm') then
sein?

SMO 17. Dez 2015 14:50

AW: Mathematik alpha
 
Sicher, dass der Compiler dafür keinen Code produziert? Kann ich mir kaum vorstellen.

Delphi-Quellcode:
if FileExists(BaseDir + 'matlex.chm:Zone.Identifier')
stimmt schon, denn ich möchte ja nicht wissen, ob die Datei matlex.chm existiert, sondern ob sie einen Datenstrom namens Zone.Identifier hat. Du könntest den Test natürlich auch weglassen und nur
Delphi-Quellcode:
DeleteFile(BaseDir + 'matlex.chm:Zone.Identifier')
aufrufen, wirft ja keine Exception wenn die Datei oder der Datenstrom nicht existiert, sondern liefert nur False zurück.

Edit: Nochmal getestet, sowohl FileExists als auch DeleteFile funktionieren wie gezeigt mit alternativen Datenströmen.

Mathematiker 17. Dez 2015 14:53

AW: Mathematik alpha
 
Ok, habe ich verstanden. Danke.
Da bei mir Zone.identifier nicht gesetzt ist, springt der Debugger drüber.
Ich versuche es jetzt auf einem anderen Rechner.

Beste Grüße
Mathematiker

SMO 17. Dez 2015 15:06

AW: Mathematik alpha
 
Du brauchst gar keinen anderen Rechner. Öffne eine Konsole im Programmverzeichnis, oder mach dir eine kleine Batchdatei:

Code:
echo [ZoneTransfer] > matlex.chm:Zone.Identifier
echo ZoneId=3 >> matlex.chm:Zone.Identifier
Und schon hat matlex.chm den Datenstrom mit dem gewünschten Inhalt. Anzeigen in der Konsole geht leider nicht mit "type", aber so:
Code:
more < matlex.chm:Zone.Identifier
Oder wie zuvor erwähnt, mit "notepad matlex.chm:Zone.Identifier" kann man den Datenstrom sowohl anzeigen als auch erstellen.

Mathematiker 17. Dez 2015 15:19

AW: Mathematik alpha
 
Hallo SMO,
Danke. Jetzt funktioniert es perfekt.

Beste Grüße
Mathematiker

Aviator 17. Dez 2015 20:03

AW: Mathematik alpha
 
Hallo Mathematiker,
also ich finde das Programm wirklich wahnsinn. Mega umfangreich was die Arten der Mathematik angeht und noch dazu schön erklärt mit dem Lexikon. Leider verstehe ich davon zu wenig, da man mit dem Schulmathe das ich vor einigen Jahren hatte, so etwas überhaupt nicht mal im Ansatz kennenlernt.

Was mich aber viel mehr interessieren würde ist, wie viele Codezeilen denn dahinter stecken?! Und hast du das alles alleine geschrieben oder war da Hilfe dabei? Und in welcher Zeit? Wäre super, wenn du das beantworten könntest.

Ein dickes Lob! Super Programm! :thumb: :thumb: :thumb:

Luckie 17. Dez 2015 20:19

AW: Mathematik alpha
 
Und das ist Freeware? Hast du im Lotto gewonnen oder was? Einzellizenz 25 Euro. Ermäßigte Schul- und Studentenlizenzen. Extra Vereinbarungen mit Schulen und Unis.

Mathematiker 17. Dez 2015 20:55

AW: Mathematik alpha
 
Hallo Aviator,
Danke für das Lob.
Zitat:

Zitat von Aviator (Beitrag 1324782)
Was mich aber viel mehr interessieren würde ist, wie viele Codezeilen denn dahinter stecken?! Und hast du das alles alleine geschrieben oder war da Hilfe dabei? Und in welcher Zeit? Wäre super, wenn du das beantworten könntest.

Es sind knapp 400000 LOC mit Delphi 5 (ohne Kommentare).
Den überwiegenden Teil habe ich selbst produziert. Bei 8 der 710 Teilprogramme hatte ich größere Anregungen von Anderen; insbesondere bei den Langarithmetiken und der Darstellung dreidimensionaler Funktionen und Kurven. Außer dem normalen D5 habe ich auch ein paar freie Fremdkomponenten drin.
Einen Großteil der Quelltexte findest du in der EE.

Allerdings wäre die heutige Form als Hobbyprogrammierer nicht möglich gewesen, wenn ich nicht fachliche Hilfe gehabt hätte. Vorwiegend in der EE erhielt ich in den letzten 4 Jahren viele Hinweise zu programmtechnischen Fragen; und heute von SMO hier in der DP.
Ansonsten war es eine Menge Selbststudium.

Zur Programmgeschichte: 1985(!) ging es los. Damals in BASIC für den KC85/3 (DDR-Kleincomputer). Ab 1990 ging es über Turbo Pascal, Borland Pascal für Windows zu Delphi 5.
In den 30 Jahren (kein Scherz) wurde das Programm größer und größer, bis es den heutigen Stand erreicht hat.
Es war etwas Arbeit und nach der langen Zeit will ich kürzer treten (das Alter :lol:), deshalb kein Kommerz mehr, sondern Freeware. Die Ideen gehen mir auch langsam aus.

Hallo Luckie,
Zitat:

Zitat von Luckie (Beitrag 1324784)
Und das ist Freeware? Hast du im Lotto gewonnen oder was?

Nein, habe ich nicht.
Wie ich oben schon schrieb ist nach 30 Jahren einfach Schluss! Ich habe einen "normalen" Job (Lehrer, ja ich weiß, die haben viel Zeit :wink:) und nach 22 Jahren kommerziellen Stress (jedes Jahr etwas "Neues und Besseres" und vor allem "Mehr, mehr, noch mehr!") will ich nicht mehr. In den letzten Jahren wurde ich nur noch gefragt: Wie viele neue Teilprogramme sind drin? Mit welchen Daten können wir Käufer noch ködern?
Niemand fragte nach dem fachlichen Inhalt.
Das ging soweit, dass von mir festgestellte Fehler in weiteren Auflagen nicht korrigiert wurden. Warum auch? Wenn der Kunde gekauft hat, ist doch alles in Ordnung! :twisted: Es war einfach zu teuer! Denn es ging nur um Umsatz, nicht um zufriedene Nutzer.

Außerdem :kotz: es mich immer mehr an, wie verschiedene Hersteller von wichtigen Hilfsmitteln für die Bildung mit minderwertiger Ware die Schulen, aber auch Schüler und Eltern, regelrecht abzocken. D.h. natürlich nicht, dass mein Programm ein Ersatz für fehlende Hilfsmittel ist.
So genug Frust abgelassen!

Es freut mich, wenn das Programm dem einen oder anderen hilft. Und vielleicht kommt doch noch etwas Gutes heraus.

Beste Grüße
Mathematiker

Noch ein Nachtrag: Auch Shareware will ich nicht. Auf die Einnahmen müsste und würde ich Steuern zahlen.
Und ich mag es überhaupt nicht, wenn meine Steuern für Bankenrettung, weitere Kriege ... benutzt werden. Auf mein normales Gehalt muss ich schon genug Steuern zahlen.:evil:

Aviator 17. Dez 2015 21:28

AW: Mathematik alpha
 
Zitat:

Zitat von Mathematiker (Beitrag 1324787)
Hallo Aviator,
Danke für das Lob.
Zitat:

Zitat von Aviator (Beitrag 1324782)
Was mich aber viel mehr interessieren würde ist, wie viele Codezeilen denn dahinter stecken?! Und hast du das alles alleine geschrieben oder war da Hilfe dabei? Und in welcher Zeit? Wäre super, wenn du das beantworten könntest.

Es sind knapp 400000 LOC mit Delphi 5 (ohne Kommentare).
Den überwiegenden Teil habe ich selbst produziert. Bei 8 der 710 Teilprogramme hatte ich größere Anregungen von Anderen; insbesondere bei den Langarithmetiken und der Darstellung dreidimensionaler Funktionen und Kurven. Außer dem normalen D5 habe ich auch ein paar freie Fremdkomponenten drin.
Einen Großteil der Quelltexte findest du in der EE.

Allerdings wäre die heutige Form als Hobbyprogrammierer nicht möglich gewesen, wenn ich nicht fachliche Hilfe gehabt hätte. Vorwiegend in der EE erhielt ich in den letzten 4 Jahren viele Hinweise zu programmtechnischen Fragen; und heute von SMO hier in der DP.
Ansonsten war es eine Menge Selbststudium.

Zur Programmgeschichte: 1985(!) ging es los. Damals in BASIC für den KC85/3 (DDR-Kleincomputer). Ab 1990 ging es über Turbo Pascal, Borland Pascal für Windows zu Delphi 5.
In den 30 Jahren (kein Scherz) wurde das Programm größer und größer, bis es den heutigen Stand erreicht hat.
Es war etwas Arbeit und nach der langen Zeit will ich kürzer treten (das Alter :lol:), deshalb kein Kommerz mehr, sondern Freeware. Die Ideen gehen mir auch langsam aus.

Wow. Super Sache. Danke für die Info.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Seite 2 von 16     12 3412     Letzte »    

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