Entwickler-Ecke
Sonstiges (Delphi) - Systemvoraussetzung ermitteln
gerd8888 - So 06.04.14 20:33
Titel: Systemvoraussetzung ermitteln
Hallo,
ich habe in Delphi 2009 ein Programm geschrieben und es unter Win 7 compiliert.
Es läuft unter allen Win-Versionen.
Das einzige besondere an dem Programm, dass es mit einer stringliste eine 32M Datei oeffnet.
Ferner wird benutzt: der Tmediaplayer und wav Dateien.
Wie ermitteln man jetzt eine angemessene Systemvoraussetzung, die auch wirklich stimmt.
alle Win-Versionen werden unterstützt, kann man doch nach wie vor angeben?
Gerd
jaenicke - So 06.04.14 21:24
Dass Windows 2000 mindestens erforderlich ist, kann man durchaus hinschreiben, auch wenn das nicht viele betreffen dürfte.
Aber wenn du einmal auf neuere Delphiversionen umsteigst, musst du dann ohnehin z.B. mindestens XP mit SP3 angeben, insofern ist so eine Minimalangabe nicht schlecht.
Zudem würde ich stets die höchste getestete Version mit angeben.
Delete - So 06.04.14 21:27
@gerd8888:
Wenn du mit 32M Datei eine Datei mit der Größe von 32 Megabyte meinst, dürfte das heutzutage kaum noch an irgendwelche Grenzen stoßen.
gerd8888 - Mo 07.04.14 16:51
Wenn ich folgendes schreibe:
Systemvoraussetzung:
ab Win 2000
1-GHz-Prozessor oder höher mit 32 Bit (x86) [aber nich 64 Bit (x64)]
1 GB RAM (32-Bit) oder mehr
1-2 GB verfügbarer Festplattenspeicher (32-Bit) für das Programm
ist das dann so korrekt?
Gerd
Delete - Mo 07.04.14 17:38
Kann ich nicht beurteilen, ich kenne deine Anwendung ja nicht. Seltsam ist aber doch, daß dein Programm nicht auch auf einem 64-Bit-Windows laufen kann ...
gerd8888 - Mo 07.04.14 21:17
Dass das Programm nicht unter Win 64-Bit läuft habe ich jetzt nur vermutet, da ich es doch auf einem 32 Bit Computer compiliert habe.
Läuft das also auch unter 64 Bit ?
jaenicke - Mo 07.04.14 21:22
Solange du nicht Assembler nutzt oder irgendetwas Exotisches ja.
1 GHz kann übrigens alles sein, schnarchlangsam oder schön schnell. Das ist schon lange kein echtes Maß mehr... das war bis vor etwa 10 Jahren mal so...
Mathematiker - Mo 07.04.14 21:23
Hallo,
gerd8888 hat folgendes geschrieben : |
Läuft das also auch unter 64 Bit ? |
Ich weiß ja nicht, was für spezielle Programmiertricks Du nutzt, aber meine Delphi 5(!)-Programme laufen alle absolut problemlos unter Win64.
Dann wird Dein Delphi 2009 das wohl auch "hinbekommen". Testen würde ich es aber schon. Du wirst doch jemanden kennen, der ein 64bit-Windows hat.
Beste Grüße
Mathematiker
Lemmy - Mo 07.04.14 21:23
gerd8888 hat folgendes geschrieben : |
Wie ermitteln man jetzt eine angemessene Systemvoraussetzung, die auch wirklich stimmt.
|
VMWare oder VirtualBox installieren, WIndows drauf und dann kannst Du mit dem zugewiesenen Speicher herumspielen und kannst dann selbst entscheiden, wie viel Speicher mind. vorhanden sein muss um die Software noch bedienen zu können.
Grüße
gerd8888 - Mo 07.04.14 22:34
Assembler nutze ich nicht. Wenn das delphi 5 unter win-64 läuft, wird es meins auch können. Ausprobieren kann ich es auf einem win-64 allerdings nicht.
Kenne niemanden. (Ich habe auch keinen Freund, der mit Delphi programmiert) Bin immer auf die Hilfe von Internet und Foren angewiesen.
Ich frage mich ob das überhaupt noch zeitgemäß ist eine mind. Systemvoraussetzungsangabe ? Wer arbeitet heute noch mit einem Betriebssymstem, dass älter ist als Win XP.
Ich füge dann zu meinen obigen Angaben (auch win64) hinzu.
Habe das Programm unter freeware hier schon mal vorgestellt:
https://mega.co.nz/#!KIMkUSyb!QutteFlGvv8Bd1Jk1gv2kk81w9MXC9ilBHDmzvI4oN0
Gerd
Mathematiker - Mo 07.04.14 22:59
Hallo,
gerd8888 hat folgendes geschrieben : |
Habe das Programm unter freeware hier schon mal vorgestellt:
... |
Ich grüble seit ein paar Minuten schon und komme nicht dahinter: Was soll denn das Programm können? Wozu braucht man es?
Und es braucht eine 32MB-Stringliste? Und es ist fast 100 MB groß?
Ich verstehe es nicht. :nixweiss:
Wenn ich es (vor einem Download!) wüsste und vor allem, wenn es mir das System nicht verändert, könnte ich es ja unter Win7-64 bit und Win8.1-64 bit testen.
Hat es etwas mit dem Schachprogramm
http://www.entwickler-ecke.de/viewtopic.php?t=110200&highlight=gerd8888 zu tun?
Beste Grüße
Mathematiker
jaenicke - Mo 07.04.14 23:22
Da ist nichts Besonderes dran, außer dem stark gewöhnungsbedürftigen Design. Deshalb startet das Programm problemlos unter Win 8.1 64-Bit und lässt sich auch problemlos mit XE5 kompilieren.
Falls du Tipps möchtest:
Wie man es bedient, habe ich leider nicht auf die Schnelle herausgefunden, konnte es also nicht direkt testen. Toolbuttons ohne Hint sind übrigens eine gute Idee, zumindest, wenn man gerne raten möchte... :?!?:
Die Hilfe habe ich gefunden, aber gerade keine Zeit mir das groß durchzulesen. Intuitiv wäre besser. ;-) Aber je nachdem was alles möglich ist, ist das natürlich nicht immer ganz einfach, das ist klar.
Was den Quelltext angeht, so ist der nach der automatischen Formatierung ja gut lesbar. Nicht so gut ist, dass du überall innerhalb des eigenen Formulars die globale Variable für das Formular nutzt. Sobald du das Formular zweimal erzeugst, steht da logischerweise nur eine der beiden Instanzen drin. Das heißt du greifst von beiden Formularen aus auf das zu, das in der Variablen steht. Nicht so sinnvoll, oder?
Lösung: Self statt Form1 nutzen, das ist die eigene Klasse, in der du gerade bist, also in dem Fall die aktuelle Formularinstanz, in der du dich befindest.
gerd8888 - Di 08.04.14 12:24
Mathematiker, der Link stimmt. Nur diesmal kann man es sauber downloaden. Ein zip-file.
Was die grosse Datei angeht: In der datei.txt stehen alle meine Daten drin. Und die ist eben so gross.
Das sind die gesammelten Problemschach-Dateien.
Warum die exe Datei 1,5 MB benoetigt, weiss ich auch nicht.
Jaenicke, das Design habe ich mir ausgedacht. Man kann den Hintergrund und die Bretter sowie Figuren auswählen.
Sollte also so schlecht nicht sein. Die Umsetzung geht vielleicht immer besser.
Das hört sich doch gut an, wenn es sich problemlos unter XE5 compilieren laesst.
Das mit den Buttons, da kann ich ja noch einen Hint einfügen.
Ich habe die globale Variablen machen müssen, weil ich es in einer anderen unit benoetige. Z.B. das Spielfeld muss global sein.
Was Du mit self form1 meintest, weiss ich nicht.
Gerd
WasWeißDennIch - Di 08.04.14 15:16
gerd8888 hat folgendes geschrieben : |
Was Du mit self form1 meintest, weiss ich nicht. |
Self bezieht sich immer auf die eigene Instanz, in der die Methode ausgeführt wird. Form1 hingegen bezieht sich immer auf die Instanz, die in der globalen Form1-Variablen hinterlegt ist. Wenn Du also mehrere TForm1-Instanzen erzeugt hast, greifst Du ggf. auf die falsche zu.
gerd8888 - Fr 11.04.14 20:41
heisst das mit anderen Worten: Wenn ich nur die globalen Variablen benoetige rufe ich die form1 besser nur mit self auf ?
Wenn dem so ist, werde ich das umschreiben. Bisher rufe ich es mit aufgerfuen:
muss ich die ganze form1 unit
Delphi-Quelltext
1:
| form1 := Tform1.create(self) |
umgestalten?
Habe mit self noch nicht gearbeitet.
WasWeißDennIch - Sa 12.04.14 15:48
Mal ein Beispiel, kleine Klasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| type TDummy = class private FDingens: string; public constructor Create(ADingens: string); procedure ShowDingens; end;
var Dummy1: TDummy;
...
constructor TDummy.Create(ADingens: string); begin inherited Create; FDingens := ADingens; end;
procedure TDummy.ShowDingens; begin ShowMessage(Self.FDingens); ShowMessage('Dummy1: ' + Dummy1.FDingens); end; |
Nun erstellen wir 2 Instanzen davon:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TSabbelSuelz.MachDingens; var Dummy2: TDummy; begin Dummy2 := nil; Dummy1 := TDummy.Create('Dummy1'); try Dummy2 := TDummy.Create('Hallo Welt'); Dummy1.ShowDingens; Dummy2.ShowDingens; finally Dummy1.Free; Dummy2.Free; end; end; |
Die Show-Dingens-Methode funktioniert auf diese Weise nur solange, wie in Dummy1 (also der globalen Variablen) auch eine gültige Instanz hinterlegt ist, ansonsten knallt es mit einer AV raus. Darüberhinaus würde man ja in den seltensten Fällen innerhalb einer Methode die Daten einer ganz bestimmten benannten Instanz der entsprechenden Klasse bearbeiten wollen, sondern doch meist die der derjenigen, innerhalb deren Methode man sich gerade befindet.
Die globalen Formular-Variablen erstellt Delphi nur deshalb, weil sie zur automatischen Formularerzeugung gebraucht werden. Soll das entsprechende Formular erst dynamisch zur Laufzeit erstellt werden, kann man diese Variable auch löschen.
gerd8888 - Sa 12.04.14 16:26
Danke für das Beispiel.
Ich werde es mir einmal in Ruhe ansehen.
Z.Z. brummt mein Kopf, aber nächste Woche sehe ich mir das an.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!