Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern ohne txt. (https://www.delphipraxis.net/121242-speichern-ohne-txt.html)

thiagojonas 24. Sep 2008 13:04


Speichern ohne txt.
 
Hallo Leute. Gibt es eine Möglichkeit z.B. den Inhalt einer ComboBox "intern" zu speicehrn. Also so speichern, dass man sie nicht laden muss(.txt,.dat,etc.)?
Weil das könnte ja jeder ran gehen und sie löschen. Es soll sozusagen nur über das Programm funktionieren.
Ich als Falsher, weiß dass das in Flash über SharedObjekt funktioniert(Flashcookies).
Geht das auch in Delphi? Wenn ja wo kann ich mehr darüber erfahren?
Danke :-D

BullsEye 24. Sep 2008 13:08

Re: Speichern ohne txt.
 
Nur halt die Items die du normal schon im OI eingibst.

Aber wenn du den Inhalt zur Laufzeit änderst, dann halt nur in einer INI File, ist aber eig das gleich wie ne Textdatei...

Medium 24. Sep 2008 13:14

Re: Speichern ohne txt.
 
Nun ja, egal wo und wie du Daten speicherst, sie werden immer von aussen mindestens entfernbar sein. Separate Dateien sind zunächst einmal einfach zu erwischen, aber auch Cookies sind nichts anderes. Die eigene .exe zu manipulieren geht durchaus über ein paar Umwege (Stichwort Resourcen), ist aber mindestens genau so unschön wie das ebenfalls zumindest technisch mögliche "vollmüllen" der Registry mit Anwendungsdaten. Beides zählt aber ganz klar zu den No-Gos in der Anwendungsentwicklung.
Um solche Dinge zu speichern gibt es in der Windowswelt den %APPDATA% Pfad, in den du deine Dateien speichern solltest - damit bist du dann auch endgültig auf der sicheren Seite, da jeder noch so eingeschränkte Benutzeraccount ein solches eigenes Verzeichnis besitzt und auf jeden Fall dort Schreibrechte hat. Das ist bei sllen anderen Varianten nicht gegeben, und dadurch werden sie vom No-Go zum No-Go mit grottigem Stil ;)

Und wer seine Daten mutwillig auf diese Weise zerschießen will... soll das dann eben bitte tun, aber nachher nicht weinen ;)

BullsEye 24. Sep 2008 16:10

Re: Speichern ohne txt.
 
Aber du solltest bedenken, das es bei vielen, gerade wenn es darum geht dein Programm zu testen, nicht gern gesehen ist, wenn du in der Registry bzw in irgendwelchen Pfaden speicherst, die nicht zum Anwendungsverzeichniss gehören.

Neutral General 24. Sep 2008 16:16

Re: Speichern ohne txt.
 
Ihr versteht ihn alle nicht oder?

Um den Inhalt einer ComboBox "intern" zu speichern musst du so vorgehen:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    Sicherung: TStringlist;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Stringliste muss erstellt werden bevor sie benutzt wird...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Sicherung:= TStringlist.Create;
end;

// und wenn sie nichtmehr gebraucht wird, muss sie freigegeben werden.
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Sicherung.Free;
end;

// "Speichern"
procedure TForm1.Button1Click(Sender: TObject);
begin
  Sicherung.Assign(ComboBox1.Items);
end;

// "Laden"
procedure TForm1.Button3Click(Sender: TObject);
begin
  ComboBox1.Items.Assign(Sicherung);
end;

// Combobox Leeren
procedure TForm1.Button2Click(Sender: TObject);
begin
  ComboBox1.Clear;
end;
Generell speichert man Dinge einfach in Variablen. Einen String, in einer Stringvariablen, einen Integer in einer Integervariable etc. Ganz viele Strings kann man entweder in einem Array of String speichern oder eben in einer TStringlist.

jokerfacehro 24. Sep 2008 16:21

Re: Speichern ohne txt.
 
ich weiß ja nicht worums dir genau geht, wenns dir darum geht intern zu speichern musste die exe ändern, wenns dir darum geht keine txts zu verwenden kannste deine combox direkt als datei speichern und so ganz leicht laden, kein füllen von datenfeldern, sondern einfach laden

BullsEye 24. Sep 2008 16:33

Re: Speichern ohne txt.
 
Vielleicht sollte er sein Problem doch etwas genauer beschreiben um bessere Hilfe zu bekommen!

Stringlist hin oder her, ist ja ganz gut, allerdings wird das nur zur Laufzeit gespeichert, genau wie Variablen, stürzt das Programm dann bsp mal ab ist alles weg. Kommt aber drauf an, für welche Zwecke er sein Programm benutzt.

Neutral General 24. Sep 2008 16:34

Re: Speichern ohne txt.
 
Achso... mhh kann doch sein, dass er es anders meint, als ich dachte :mrgreen:

thiagojonas 24. Sep 2008 16:41

Re: Speichern ohne txt.
 
Zitat:

Zitat von Neutral General
Ihr versteht ihn alle nicht oder?

Um den Inhalt einer ComboBox "intern" zu speichern musst du so vorgehen:


Generell speichert man Dinge einfach in Variablen. Einen String, in einer Stringvariablen, einen Integer in einer Integervariable etc. Ganz viele Strings kann man entweder in einem Array of String speichern oder eben in einer TStringlist.

Danke genau das meinte ich :-)

thiagojonas 25. Sep 2008 11:57

Re: Speichern ohne txt.
 
So habe das jetzt bewältigt :-) Funktioniert auch super!
Kann man das jetzt auch so "intern" speichern, dass wenn man das Programm schließt und es dann wieder öffnet und auf "Load" klickt, die Daten geladen werden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.
Seite 1 von 4  1 23     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