Autor Beitrag
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: So 09.03.08 17:17 
Hallo zusammen!

Ich bin gerade dabei ein Programm zu schreiben, in dem die Eingänge des ComPorts überwacht werden, als folge dann einen Sound abspielen und Ausgänge ansteuern.
Auf was das Programm wie reagieren soll, wird über ein "Options-Fenster" eingestellt. Während der Laufzeit soll dann entsprechend den Einstellungen reagiert werden.

Das ganze wollte ich dann in einer INI-Datei Speichern.

Die Frage ist nun, was ist die eleganteste, schnellste und "am wenigsten Speicherfressende" Methode während der Laufzeit auf diese Daten zuzugreifen?

Hier mal die Ideen:

1. INI-Dateien während der Laufzeit lesen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\daten\prog\config.cfg');
  try
   if ini.ReadBool('Sound','Sound1  Spielen','false')=true
    then sndPlaySound(pchar(ini.ReadString('Sound','Sound1 Pfad','c:\')), SND_SYNC)
   
   if ini.ReadBool(...)
   
   ...
  finally
 ini.free;


2. Das "Optionsfenster" nicht während der Laufzeit erstellen wenn benötigt, sondern direkt beim Programmstart öffnen und gleich mit den Daten aus der INI-Datei füttern und dann direkt auf die dortigen Objekte zugreifen (CheckBox.checked, Edit.text, etc)

3. Unsichtbare Komponente auf der MainForm einfügen, in dem die "Einstellungen" hinterlegt sind und auf diese zugreifen

4. DataModul einfügen, dort Global alle Variablen festlegen, bei Programmstart die INI-Datei dort rein laden und auf dieses Modul zugreifen

5. mir noch nicht bekannte Möglichkeit

Danke Euch schonmal!


Gruß

Torsten
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: So 09.03.08 19:06 
Hi,

ich verstehe gerade dein Problem nicht ganz.
Du hast selber so viele mögliche Lösungen geliefert, von denen eigentlich fast alle gut brauchbar sind, das ich mich Frage was du noch lange zauderst.
Abgesehen von einem DataModule, das ich für übertrieben halte, und unsichtbaren Komponenten, was deutlich unsauberer Programmierung wäre, ist doch alles gleichwertig.
Jedenfalls, wenn man bedenkt was ein Delphiprogramm ohnehin schon mit dem RAM anstellt, ist ein eigenes Fenster, das die Optionen sofort beim Programmstart lädt und auch zur Änderung der Daten verwendet wird, die eleganteste Lösung.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Metschu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: So 09.03.08 19:47 
user profile iconSinspin hat folgendes geschrieben:
Hi,
Ich verstehe gerade dein Problem nicht ganz.
Du hast selber so viele mögliche Lösungen geliefert, von denen eigentlich fast alle gut brauchbar sind, das ich mich Frage was du noch lange zauderst.


Das alles Funktioniert, habe ich schon an diversen Programmen getestet.

Ein Problem an sich habe ich nicht, denn...
user profile iconMetschu hat folgendes geschrieben:

Die Frage ist nun, was ist die eleganteste, schnellste und "am wenigsten Speicherfressende" Methode während der Laufzeit auf diese Daten zuzugreifen?


Ich wollte halt mal allgemein Meinungen darüber wissen, was am besten sein könnte.

user profile iconSinspin hat folgendes geschrieben:

Abgesehen von einem DataModule, das ich für übertrieben halte, und unsichtbaren Komponenten, was deutlich unsauberer Programmierung wäre, ist doch alles gleichwertig.
Jedenfalls, wenn man bedenkt was ein Delphiprogramm ohnehin schon mit dem RAM anstellt, ist ein eigenes Fenster, das die Optionen sofort beim Programmstart lädt und auch zur Änderung der Daten verwendet wird, die eleganteste Lösung.


Das ist doch schonmal ne Meinung, danke dafür :)

Ich hab leider noch nicht so viel Erfahrung das ich sagen kann, das brauch viel Speicher, "dauert zu lange" oder das wäre für diesen Zweck übertrieben.