Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firemonkey abspeichern (iOS) (https://www.delphipraxis.net/181234-firemonkey-abspeichern-ios.html)

ZeroX1337 28. Jul 2014 12:13

Datenbank: Frage • Version: X • Zugriff über: X

Firemonkey abspeichern (iOS)
 
Hallo,

ich habe im Forum zum Speichern mit iOS zwar was gefunden, aber ganz schlau werde ich daraus nicht.

Ich möchte, wenn jemand in Edit Felder etwas eingibt, bzw. die Sprache ändert, die Einstellung gespeichert wird so dass wenn man die App schließt und wieder öffnet alles so ist wie vorher. Ist sowas möglich, oder darf man die App gar nicht erst schließen (NICHT minimieren).

Könnte mir jemand eine Erklärung für Anfänger geben und evtl. ein Beispiel?


MfG
André

arnof 28. Jul 2014 15:52

AW: Firemonkey abspeichern (iOS)
 
Memo1.Lines.SaveToFile(TPath.GetDocumentsPath+TPat h.DirectorySeparatorChar+'huh.txt');

ZeroX1337 6. Aug 2014 07:46

AW: Firemonkey abspeichern (iOS)
 
Alles klar, das funktioniert.
Aber das ist ja jetzt mit einem Memo Feld verknüpft. Muss ich dann vorher die Edit-Felder in ein Memo eintragen lassen und das Memo dann abspeichern lassen?

Und wie finde ich jetzt heraus, ob der die Datei wirklich abgespeichert hat. Würde die gerne mal laden.

Wenn mir jemand ein Beispiel (Code) schreiben könnte, wie man auf Knopfdruck ein Editfeld / Memo speichert und es dann lädt, wäre ich ihm SEHR verbunden! Durch fertigen Code lerne ich oft irgendwie besser. Bitte unter Firemonkey iOS.


Mit freundlichen Grüßen
Andre

mkinzler 6. Aug 2014 08:14

AW: Firemonkey abspeichern (iOS)
 
Grundsätzlich geht das Speichern wie unter Windows. Per FileStream, File usw.

ZeroX1337 6. Aug 2014 08:30

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von mkinzler (Beitrag 1267603)
Grundsätzlich geht das Speichern wie unter Windows. Per FileStream, File usw.

Ich bin leider sehr neu. Dachte unter iOS ist das alles komplizierter weil iOS kein Dateisystem hat.

Über ein paar Ansätze würde ich mich freuen, denn alles was ich im Internet gefunden habe weist immer ein paar Fehler auf...

Darlo 6. Aug 2014 08:56

AW: Firemonkey abspeichern (iOS)
 
Unter iOS kannst Du alles was Du willst unter TPath.GetDocumentsPath speichern. Unter diesem Ordner kannst Du auch beliebige Unterordner anlegen.
Wenn Du nur paar Edits speichern willst und auf eine Datenbank verzichten kannst, dann speicher und lade alles z.B. über eine Stringlist.

Speichern:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;

  sl.add(edit1.text);
  sl.add(edit2.text);
  sl.add(edit3.text);
  sl.add(edit4.text);

  sl.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');
end;
Laden:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

  edit1.text := sl[0];
  edit2.text := sl[1];
  edit3.text := sl[2];
  edit4.text := sl[3];
end;

ZeroX1337 6. Aug 2014 10:05

AW: Firemonkey abspeichern (iOS)
 
DANKE!!! Das hat mir schon mal sehr geholfen und ist anfängerfreundlich. :thumb:

Ich habe mir mal ein Tutorial angeschaut zu Datenbanken. Allerdings wird bei mir im Daten-Explorer unter "dbExpress" angezeigt: "dbExpress-Konfigurationsdateien nicht gefunden". Dementsprechend habe ich nur FireDAC. Das Tutorial handelt aber über dbExpress.

Kann mir da jemand helfen und sagen, warum ich das nicht benutzen kann? Habe die Delphi RAD XE6 Testversion.

Ich muss doch mit dbExpress SQlite arbeiten, um Editfelder in eine Datenbank zu tun?

mkinzler 6. Aug 2014 10:08

AW: Firemonkey abspeichern (iOS)
 
Für die mobile Entwicklung bietet sich die Verwendung von SQLite über FireDAC an.

http://docwiki.embarcadero.com/RADSt...OS_und_Android)

Hierfür sind bei Delphi auch Beispiele dabei

ZeroX1337 6. Aug 2014 10:23

AW: Firemonkey abspeichern (iOS)
 
Ok, also doch FireDAC.

Könnt ihr mir auch vllt. schnell verraten, wie ich diese "einstellungen.txt" Datei nun übertragen kriege? Von mir aus zu Testzwecken auf einen FTP Server. So dass ich von außerhalb diese Datei verschicken kann.

Damit wäre mir so ziemlich geholfen.

mkinzler 6. Aug 2014 10:24

AW: Firemonkey abspeichern (iOS)
 
Schau Dir doch einfach die Samples an

ZeroX1337 6. Aug 2014 10:28

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von mkinzler (Beitrag 1267650)
Schau Dir doch einfach die Samples an

Schaue mir ja gerade deinen Link an, der war übrigens fehlerhaft, eine Klammer hat gefehlt.

Eine Datenbank und diese Textdatei verschicken sind doch 2 paar Schuhe?

Darlo 6. Aug 2014 11:20

AW: Firemonkey abspeichern (iOS)
 
Hi,

nimm es mir bitte nicht übel, aber ich glaube nicht dass jemand dir hier eine Komplettlösung für einen Client-Server Datenaustausch tippt. Poste Deinen Code mit einem konkreten Problem. Dann wirst Du sicher auch Hilfe bekommen.

Liebe Grüße

P.S.: Ob du eine Textdatei, eine Datenbank, Filme oder was auch immer übertragen willst ist egal.
Wenn Du die Werte aus der iPad-Version auf einen (Datenbank-)Server übertragen willst geht das auch mit FireDac. Du kannst auch nur in eine Remote-Datenbank speichern, setzt jedoch voraus, dass die Ipads immer eine Internetverbindung haben.

ZeroX1337 6. Aug 2014 12:58

AW: Firemonkey abspeichern (iOS)
 
Okay! Danke für deine Antwort. So viel verlange ich auch gar nicht. Ich dachte, die Textdatei zu verschicken wären auch nur ein paar Zeilen Code.

Also ich versuche jetzt mal mit FireDAC (SQlite) eine Datenbank zu erstellen und dann darüber zu verschicken? Mir wurde in einem anderen Thread gesagt HTTPS wäre gut zum verschicken einer Datei. Aber ich habe erst mal den Auftrag diese Textdatei nun auf unseren FTP-Server zu übertragen.

Ich habe ja bereits einen FTP-Client programmiert - jedoch nur für Windows. Da man bei iOS ja keine Datei auswählen kann, war jetzt die Frage wie ich eine Datei verschicke ohne sie auswählen zu müssen.

Auf jeden Fall mache ich mich jetzt mal über SQlite (FireDAC) schlau. Was ist eigentlich der unterschied zwischen FireDAC und dbExpress und warum ist das bei mir deaktiviert?

Ich habe so viele Fragen und weiß, dass ich nerve. Aber würde so gerne mehr verstehen.

Und die Textdatei zu verschicken sagtest du geht auch mit SQlite? Dann würde HTTPS ja wegfallen?! :pale:

ZeroX1337 7. Aug 2014 08:55

AW: Firemonkey abspeichern (iOS)
 
Ich habe ein Problem. Wenn ich die gespeicherte .txt Datei bei "FormCreate" laden will (im Sinne von Profileinstellung), dann stürzt die App sofort ab. Was mache ich falsch? Per Button kann ich die laden...

Sir Rufo 7. Aug 2014 09:04

AW: Firemonkey abspeichern (iOS)
 
Ganz einfach, in Zeile 42 fehlt ein
Delphi-Quellcode:
end
.

Spaß beiseite:

Wie denkst du sollen wir da etwas zu sagen können, wenn wir nicht wissen, was genau du da machst?
Oder hast du dir gedacht, wir können über das Forum auf deinen Bildschirm schauen?

Zeig doch den Quellcode und wo genau das Problem ist.

Hast du auch schon mit dem Debugger geschaut, wo genau das Programm sich verabschiedet?

mkinzler 7. Aug 2014 09:07

AW: Firemonkey abspeichern (iOS)
 
Die Fehlermeldung steht vielleicht unter einer NDA, welche wir nicht gezeichnet haben. :mrgreen:

Darlo 7. Aug 2014 09:12

AW: Firemonkey abspeichern (iOS)
 
Wahrscheinlich existiert die Datei nicht ;-)

Sir Rufo 7. Aug 2014 09:16

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von Darlo (Beitrag 1267841)
Wahrscheinlich existiert die Datei nicht ;-)

Ich wette um ein Bier, dass die doch existiert, der Fehler liegt woanders :cheers:

Darlo 7. Aug 2014 09:27

AW: Firemonkey abspeichern (iOS)
 
[Glaskugelmodus on]
Projekt wird neu erzeugt und aufs Gerät geschoben. Alle zur Laufzeit angelegten Dateien sind wieder futsch und die zu ladende Datei wird nicht über die Bereitstellung mitgeliefert.
[Glaskugelmodus off]

Aber lassen wir uns überraschen :)

arnof 7. Aug 2014 09:36

AW: Firemonkey abspeichern (iOS)
 
es gibt eine tolle Funktion: FileExits, da kann man das prüfen.

Mal ein Tipp: wo ich mit iOS angefangen haben (auch bei MAC OS), habe ich erstmal eine kleine Testform gemacht, wo ich mit die Verzeichnisse und deren Inhalt angezeigt habe, um zu raffen wie das da geht.

Allerdings war das zu Betazeiten von XE4(3.5), da gab es zu Delphi noch fast keine Doku und Beispiele (iOS). Benutze die Suchfunktion hier im Forum oder aber auch mal Google, da wirst Du mittlerweile vieles finden!

Sir Rufo 7. Aug 2014 09:52

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von Darlo (Beitrag 1267848)
[Glaskugelmodus on]
Projekt wird neu erzeugt und aufs Gerät geschoben. Alle zur Laufzeit angelegten Dateien sind wieder futsch und die zu ladende Datei wird nicht über die Bereitstellung mitgeliefert.
[Glaskugelmodus off]

Aber lassen wir uns überraschen :)

[Lesebrille auf]
Zitat:

Zitat von ZeroX1337 (Beitrag 1267830)
Per Button kann ich die laden...

[Lesebrille ab]
:mrgreen:

Wenn doch die Datei fehlt, brauche ich deine PayPal-Daten :)

ZeroX1337 7. Aug 2014 10:36

AW: Firemonkey abspeichern (iOS)
 
Warum soll ich einen Quellcode posten, wenn der hier bereits gepostet wurde und ich diesen verwendet habe? :D

Zitat:

Zitat von Darlo (Beitrag 1267612)
Unter iOS kannst Du alles was Du willst unter TPath.GetDocumentsPath speichern. Unter diesem Ordner kannst Du auch beliebige Unterordner anlegen.
Wenn Du nur paar Edits speichern willst und auf eine Datenbank verzichten kannst, dann speicher und lade alles z.B. über eine Stringlist.

Speichern:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;

  sl.add(edit1.text);
  sl.add(edit2.text);
  sl.add(edit3.text);
  sl.add(edit4.text);

  sl.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');
end;
Laden:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

  edit1.text := sl[0];
  edit2.text := sl[1];
  edit3.text := sl[2];
  edit4.text := sl[3];
end;

Den Quellcode von "Laden" habe ich halt in "FormCreate" gepackt, damit er immer die Einstellungen lädt, die zuletzt gespeichert wurden. Aber wie gesagt, die App stürzt dann sofort ab.

Aber hier mal mein Code zu Laden/Speichern.

Speichern:
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.B_speichernClick(Sender: TObject);
var
    Daten: TStringList;
begin
if MessageDlg('Möchten Sie die Datei wirklich speichern? Die zuletzt gespeicherte Datei wird dabei überschrieben.',
    TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbYes) = mrYes then
  begin
    Daten := TStringList.Create;

    //Kopf
    Daten.Add(E_auftragnr.text);
    Daten.Add(E_montagefirma.text);
    Daten.Add(E_maschinentyp.text);
    Daten.Add(E_artderarbeit.text);
    Daten.Add(E_servicetechniker.text);
    Daten.Add(IntToStr(E_land.itemindex));
    Daten.Add(E_komnr.text);
    Daten.Add(DateToStr(D_montagezeitvon.date));
    Daten.Add(DateToStr(D_montagezeitbis.date));

    //Mitte
    Daten.Add(DateToStr(D_datummo.date));
    Daten.Add(DateToStr(D_datumdi.date));
    Daten.Add(DateToStr(D_datummi.date));
    Daten.Add(DateToStr(D_datumdo.date));
    Daten.Add(DateToStr(D_datumfr.date));
    Daten.Add(DateToStr(D_datumsa.date));
    Daten.Add(DateToStr(D_datumso.date));

    //Anreise
    Daten.Add(E_reisebeginnmo.text);
    Daten.Add(E_reisebeginndi.text);
    Daten.Add(E_reisebeginnmi.text);
    Daten.Add(E_reisebeginndo.text);
    Daten.Add(E_reisebeginnfr.text);
    Daten.Add(E_reisebeginnsa.text);
    Daten.Add(E_reisebeginnso.text);

    Daten.Add(E_reiseendemo.text);
    Daten.Add(E_reiseendedi.text);
    Daten.Add(E_reiseendemi.text);
    Daten.Add(E_reiseendedo.text);
    Daten.Add(E_reiseendefr.text);
    Daten.Add(E_reiseendesa.text);
    Daten.Add(E_reiseendeso.text);

    Daten.Add(IntToStr(C_zeitverschiebungmo.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungdi.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungmi.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungdo.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungfr.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungsa.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungso.itemindex));



    Daten.Add(E_rückreisereisebeginnmo.text);
    Daten.Add(E_rückreisereisebeginndi.text);
    Daten.Add(E_rückreisereisebeginnmi.text);
    Daten.Add(E_rückreisereisebeginndo.text);
    Daten.Add(E_rückreisereisebeginnfr.text);
    Daten.Add(E_rückreisereisebeginnsa.text);
    Daten.Add(E_rückreisereisebeginnso.text);

    Daten.Add(E_arbeitsbeginnmo.text);
    Daten.Add(E_arbeitsbeginndi.text);
    Daten.Add(E_arbeitsbeginnmi.text);
    Daten.Add(E_arbeitsbeginndo.text);
    Daten.Add(E_arbeitsbeginnfr.text);
    Daten.Add(E_arbeitsbeginnsa.text);
    Daten.Add(E_arbeitsbeginnso.text);

    //Memo Felder
    {Daten.Add(Memo_Arbeiten.Text);
    Daten.Add(Memo_Ersatzteile.Text); }

    //Variablen speichern
    //Anreise
    Daten.Add(FloatToStr(GesamtStundenMo));
    Daten.Add(FloatToStr(GesamtStundenDi));
    Daten.Add(FloatToStr(GesamtStundenMi));
    Daten.Add(FloatToStr(GesamtStundenDo));
    Daten.Add(FloatToStr(GesamtStundenFr));
    Daten.Add(FloatToStr(GesamtStundenSa));
    Daten.Add(FloatToStr(GesamtStundenSo));

    //Rückreise
    Daten.Add(FloatToStr(RückreiseGesamtStundenMo));
    Daten.Add(FloatToStr(RückreiseGesamtStundenDi));
    Daten.Add(FloatToStr(RückreiseGesamtStundenMi));
    Daten.Add(FloatToStr(RückreiseGesamtStundenDo));
    Daten.Add(FloatToStr(RückreiseGesamtStundenFr));
    Daten.Add(FloatToStr(RückreiseGesamtStundenSa));
    Daten.Add(FloatToStr(RückreiseGesamtStundenso));

    //Arbeit
    Daten.Add(FloatToStr(GesamtArbeitsStundenMo));
    Daten.Add(FloatToStr(GesamtArbeitsStundenDi));
    Daten.Add(FloatToStr(GesamtArbeitsStundenMi));
    Daten.Add(FloatToStr(GesamtArbeitsStundenDo));
    Daten.Add(FloatToStr(GesamtArbeitsStundenFr));
    Daten.Add(FloatToStr(GesamtArbeitsStundenSa));
    Daten.Add(FloatToStr(GesamtArbeitsStundenSo));

    //Gesamt
    Daten.Add(FloatToStr(GesamtStundenErgebnisMo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisDo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisMi));
    Daten.Add(FloatToStr(GesamtStundenErgebnisDo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisFr));
    Daten.Add(FloatToStr(GesamtStundenErgebnisSa));
    Daten.Add(FloatToStr(GesamtStundenErgebnisSo));



    Daten.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

    showmessage('Ihre Eingaben wurden' +#13+ 'am '+ DateToStr(D_montagezeitvon.Date) +#13+ ' um '+ TimeToStr(Now) +#13+ ' erfolgreich gespeichert!');
end;
end;
Laden:
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.B_ladenClick(Sender: TObject);
var
    Daten: TStringList;
begin
if MessageDlg('Möchten Sie die zuletzt gespeicherte Datei wirklich laden?',
    TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbYes) = mrYes then
  begin
    Daten := TStringList.Create;
    Daten.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

    //Kopf
    E_auftragnr.text := Daten[0];
    E_montagefirma.text := Daten[1];
    E_maschinentyp.text := Daten[2];
    E_artderarbeit.text := Daten[3];
    E_servicetechniker.text := Daten[4];
    E_land.itemindex := StrToint(Daten[5]);
    E_komnr.text := Daten[6];
    D_montagezeitvon.date := StrToDate(Daten[7]);
    D_montagezeitbis.date := StrToDate(Daten[8]);

    //Mitte
    D_datummo.date := StrToDate(Daten[9]);
    D_datumdi.date := StrToDate(Daten[10]);
    D_datummi.date := StrToDate(Daten[11]);
    D_datumdo.date := StrToDate(Daten[12]);
    D_datumfr.date := StrToDate(Daten[13]);
    D_datumsa.date := StrToDate(Daten[14]);
    D_datumso.date := StrToDate(Daten[15]);

    //Anreise
    E_reisebeginnmo.text := Daten[16];
    E_reisebeginndi.text := Daten[17];
    E_reisebeginnmi.text := Daten[18];
    E_reisebeginndo.text := Daten[19];
    E_reisebeginnfr.text := Daten[20];
    E_reisebeginnsa.text := Daten[21];
    E_reisebeginnso.text := Daten[22];

    E_reiseendemo.text := Daten[23];
    E_reiseendedi.text := Daten[24];
    E_reiseendemi.text := Daten[25];
    E_reiseendedo.text := Daten[26];
    E_reiseendefr.text := Daten[27];
    E_reiseendesa.text := Daten[28];
    E_reiseendeso.text := Daten[29];

    C_zeitverschiebungmo.itemindex := StrToInt(Daten[30]);
    C_zeitverschiebungdi.itemindex := StrToInt(Daten[31]);
    C_zeitverschiebungmi.itemindex := StrToInt(Daten[32]);
    C_zeitverschiebungdo.itemindex := StrToInt(Daten[33]);
    C_zeitverschiebungfr.itemindex := StrToInt(Daten[34]);
    C_zeitverschiebungsa.itemindex := StrToInt(Daten[35]);
    C_zeitverschiebungso.itemindex := StrToInt(Daten[36]);


    //Rückreise
    E_rückreisereisebeginnmo.text := Daten[37];
    E_rückreisereisebeginndi.text := Daten[38];
    E_rückreisereisebeginnmi.text := Daten[39];
    E_rückreisereisebeginndo.text := Daten[40];
    E_rückreisereisebeginnfr.text := Daten[41];
    E_rückreisereisebeginnsa.text := Daten[42];
    E_rückreisereisebeginnso.text := Daten[43];

    //Arbeit
    E_arbeitsbeginnmo.text := Daten[44];
    E_arbeitsbeginndi.text := Daten[45];
    E_arbeitsbeginnmi.text := Daten[46];
    E_arbeitsbeginndo.text := Daten[47];
    E_arbeitsbeginnfr.text := Daten[48];
    E_arbeitsbeginnsa.text := Daten[49];
    E_arbeitsbeginnso.text := Daten[50];


    //Variablen
    //Anreise
    GesamtStundenMo := StrToFloat(Daten[51]);
    GesamtStundenDi := StrToFloat(Daten[52]);
    GesamtStundenMi := StrToFloat(Daten[53]);
    GesamtStundenDo := StrToFloat(Daten[54]);
    GesamtStundenFr := StrToFloat(Daten[55]);
    GesamtStundenSa := StrToFloat(Daten[56]);
    GesamtStundenSo := StrToFloat(Daten[57]);

    //Rückreise
    RückreiseGesamtStundenMo := StrToFloat(Daten[58]);
    RückreiseGesamtStundenDi := StrToFloat(Daten[59]);
    RückreiseGesamtStundenMi := StrToFloat(Daten[60]);
    RückreiseGesamtStundenDo := StrToFloat(Daten[61]);
    RückreiseGesamtStundenFr := StrToFloat(Daten[62]);
    RückreiseGesamtStundenSa := StrToFloat(Daten[63]);
    RückreiseGesamtStundenso := StrToFloat(Daten[64]);

    //Arbeit
    GesamtArbeitsStundenMo := StrToFloat(Daten[65]);
    GesamtArbeitsStundenDi := StrToFloat(Daten[66]);
    GesamtArbeitsStundenMi := StrToFloat(Daten[67]);
    GesamtArbeitsStundenDo := StrToFloat(Daten[68]);
    GesamtArbeitsStundenFr := StrToFloat(Daten[69]);
    GesamtArbeitsStundenSa := StrToFloat(Daten[70]);
    GesamtArbeitsStundenSo := StrToFloat(Daten[71]);

    //Gesamt
    GesamtStundenErgebnisMo := StrToFloat(Daten[72]);
    GesamtStundenErgebnisDo := StrToFloat(Daten[73]);
    GesamtStundenErgebnisMi := StrToFloat(Daten[74]);
    GesamtStundenErgebnisDo := StrToFloat(Daten[75]);
    GesamtStundenErgebnisFr := StrToFloat(Daten[76]);
    GesamtStundenErgebnisSa := StrToFloat(Daten[77]);
    GesamtStundenErgebnisSo := StrToFloat(Daten[78]);

    //Anzeige
    //Anreise
    E_ReiseStundenMo.Text := FloatToStrF(GesamtStundenMo,ffNumber,5,2);
    E_ReiseStundenDi.Text := FloatToStrF(GesamtStundenDi,ffNumber,5,2);
    E_ReiseStundenMi.Text := FloatToStrF(GesamtStundenMi,ffNumber,5,2);
    E_ReiseStundenDo.Text := FloatToStrF(GesamtStundenDo,ffNumber,5,2);
    E_ReiseStundenFr.Text := FloatToStrF(GesamtStundenFr,ffNumber,5,2);
    E_ReiseStundenSa.Text := FloatToStrF(GesamtStundenSa,ffNumber,5,2);
    E_ReiseStundenSo.Text := FloatToStrF(GesamtStundenSo,ffNumber,5,2);

    //Arbeit
    E_ArbeitsStdMo.Text  := FloatToStrF(GesamtArbeitsStundenMo,ffNumber,5,2);
    E_ArbeitsStdDi.Text  := FloatToStrF(GesamtArbeitsStundenDi,ffNumber,5,2);
    E_ArbeitsStdMi.Text  := FloatToStrF(GesamtArbeitsStundenMi,ffNumber,5,2);
    E_ArbeitsStdDo.Text  := FloatToStrF(GesamtArbeitsStundenDo,ffNumber,5,2);
    E_ArbeitsStdFr.Text  := FloatToStrF(GesamtArbeitsStundenFr,ffNumber,5,2);
    E_ArbeitsStdSa.Text  := FloatToStrF(GesamtArbeitsStundenSa,ffNumber,5,2);
    E_ArbeitsStdSo.Text  := FloatToStrF(GesamtArbeitsStundenSo,ffNumber,5,2);

    //Rückreise
    E_RückreiseReiseStundenMo.Text := FloatToStrF(RückreiseGesamtStundenMo,ffNumber,5,2);
    E_RückreiseReiseStundenDi.Text := FloatToStrF(RückreiseGesamtStundenDi,ffNumber,5,2);
    E_RückreiseReiseStundenMi.Text := FloatToStrF(RückreiseGesamtStundenMi,ffNumber,5,2);
    E_RückreiseReiseStundenDo.Text := FloatToStrF(RückreiseGesamtStundenDo,ffNumber,5,2);
    E_RückreiseReiseStundenFr.Text := FloatToStrF(RückreiseGesamtStundenFr,ffNumber,5,2);
    E_RückreiseReiseStundenSa.Text := FloatToStrF(RückreiseGesamtStundenSa,ffNumber,5,2);
    E_RückreiseReiseStundenSo.Text := FloatToStrF(RückreiseGesamtStundenSo,ffNumber,5,2);

    //Gesamt
    E_GesamtStdMo.text := FloatToStrF(GesamtStundenErgebnisMo,ffNumber,5,2);
    E_GesamtStdDi.text := FloatToStrF(GesamtStundenErgebnisDi,ffNumber,5,2);
    E_GesamtStdMi.text := FloatToStrF(GesamtStundenErgebnisMi,ffNumber,5,2);
    E_GesamtStdDo.text := FloatToStrF(GesamtStundenErgebnisDo,ffNumber,5,2);
    E_GesamtStdFr.text := FloatToStrF(GesamtStundenErgebnisFr,ffNumber,5,2);
    E_GesamtStdSa.text := FloatToStrF(GesamtStundenErgebnisSa,ffNumber,5,2);
    E_GesamtStdSo.text := FloatToStrF(GesamtStundenErgebnisSo,ffNumber,5,2);


  end;

end;
Ich weiß, schwer schwer umständlich das ganze, zumal ich auch Probleme habe ein Memo Feld mit mehreren Zeilen abzuspeichern. Dafür müsste ich ja jeder Zeile eine andere [Zahl] zuweisen.

Geht das alles nicht sowieso viel einfacher? Schwer viel arbeit, haha.

Aber das funktioniert ja alles. Ich habe wie gesagt nur Probleme, wenn ich eine Datei speichere und sie dann bei "FormCreate" sofort laden möchte.

mkinzler 7. Aug 2014 10:43

AW: Firemonkey abspeichern (iOS)
 
Zu diesem Zeitpunkt gibt es ja die Unterkomponenten noch nicht. Nimm besser Loaded

Sir Rufo 7. Aug 2014 10:47

AW: Firemonkey abspeichern (iOS)
 
Es ist anscheinend schwerer als ich gedacht habe :roll:

Zeige uns per CopyPaste den Quelltext der Methode
Delphi-Quellcode:
FormCreate
.
Meinst du das wäre machbar?

Zitat:

Zitat von ZeroX1337 (Beitrag 1267869)
Warum soll ich einen Quellcode posten, wenn der hier bereits gepostet wurde und ich diesen verwendet habe? :D

Weil es einfach nicht exakt der gleiche Quellcode ist? :roll:

matthiaskary 7. Aug 2014 10:49

AW: Firemonkey abspeichern (iOS)
 
Hallo,
was du auch mal probieren kannst, das ganze im FormShow anstelle
vom FormCreate zu laden.

ZeroX1337 7. Aug 2014 11:01

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von Sir Rufo (Beitrag 1267872)
Zeige uns per CopyPaste den Quelltext der Methode FormCreate .
Meinst du das wäre machbar?

Bitte kein Sarkasmus. :P

Kleinen Moment bitte. Muss das erst noch mal schreiben. Das ist ja eine andere Textdatei.

Zitat:

Zitat von matthiaskary (Beitrag 1267873)
Hallo,
was du auch mal probieren kannst, das ganze im FormShow anstelle
vom FormCreate zu laden.

Werde ich gleich auch mal versuchen, danke.

ZeroX1337 7. Aug 2014 11:07

AW: Firemonkey abspeichern (iOS)
 
Speichern Profil: Nur die ersten Zeilen sind interessant, das andere sind die verschiedenen Sprachen.
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.B_speichernoptionenClick(Sender: TObject);
var
    Profil: TStringList;
begin
   Profil := TStringList.Create;

   Profil.Add(E_vorname.text);
   Profil.Add(E_nachname.text);

   Profil.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'profil.txt');
  //Hintergrund Bild
    if C_hintergrundbild.ItemIndex = 0 then
          HintergrundBlur.Visible := True;

    if C_hintergrundbild.ItemIndex = 1 then
          begin
          HintergrundBlur.Visible := False;
          HintergrundWeiß.Visible := True;
          end;

    if C_hintergrundbild.ItemIndex = 2 then
          begin
          HintergrundBlur.Visible := False;
          HintergrundWeiß.Visible := False;
          end;

  // Techniker Name Übertragen
  HeaderFooterwithNavigation.E_Servicetechniker.text := ( E_vorname.Text + ' ' + E_nachname.Text );

  // Sprache Englisch
if C_Sprache.ItemIndex = 1 then
  begin
  HeaderFooterwithNavigation.Tab_anreise.Text := 'Arrival';
  HeaderFooterwithNavigation.Tab_arbeit.Text := 'Work';
  HeaderFooterwithNavigation.Tab_rückreise.Text := 'Way back';
  HeaderFooterwithNavigation.L_datum.Text := 'Date';
  HeaderFooterwithNavigation.L_arbeitsbeginn.Text := 'Start of work';
  HeaderFooterwithNavigation.L_arbeitsende.Text := 'Work finished';
  HeaderFooterwithNavigation.L_arbeitsstd.Text := 'Work total';
  HeaderFooterwithNavigation.L_gesamtstd.Text := 'Total hours';
  HeaderFooterwithNavigation.L_warte.Text := 'Wait';
  HeaderFooterwithNavigation.L_mo.Text := 'Mon';
  HeaderFooterwithNavigation.L_di.Text := 'Tue';
  HeaderFooterwithNavigation.L_mi.Text := 'Wed';
  HeaderFooterwithNavigation.L_do.Text := 'Thr';
  HeaderFooterwithNavigation.L_fr.Text := 'Fri';
  HeaderFooterwithNavigation.L_sa.Text := 'Sat';
  HeaderFooterwithNavigation.L_so.Text := 'Sun';
  HeaderFooterwithNavigation.L_montagesundennachweis.Text := 'TIME-SHEET';
  HeaderFooterwithNavigation.L_auftragnr.Text := 'Order no.:';
  HeaderFooterwithNavigation.L_montagebeifirma.Text := 'Company name:';
  HeaderFooterwithNavigation.L_maschinentyp.Text := 'Machine type:';
  HeaderFooterwithNavigation.L_artderarbeit.Text := 'Kind of work:';
  HeaderFooterwithNavigation.L_Servicetechniker.Text := 'Technician:';
  HeaderFooterwithNavigation.L_Land.Text := 'Country:';
  HeaderFooterwithNavigation.L_Komnr.Text := 'Com. No.:';
  HeaderFooterwithNavigation.L_Montagezeiten.Text := 'Assembly';
  HeaderFooterwithNavigation.L_vonbis.Text := 'carried out:';
  HeaderFooterwithNavigation.L_bestätigung.Text := 'The customer herewith confirms the legally acceptance of the machine and/or the installation of same above time listing.';
  HeaderFooterwithNavigation.L_auftraggeber.Text := 'Customer';
  HeaderFooterwithNavigation.L_Monteur.Text := 'Technician';
  HeaderFooterwithNavigation.btnBack.Text := 'Back';
  HeaderFooterwithNavigation.B_zurücksetzen.Text := 'Clear fields';
  HeaderFooterwithNavigation.B_verschicken.Text := 'Send';
  HeaderFooterwithNavigation.B_laden.Text := 'Load';
  HeaderFooterwithNavigation.B_speichern.Text := 'Save';
  HeaderFooterwithNavigation.L_datumanreise.Text := 'Date';
  HeaderFooterwithNavigation.L_Reisebeginnanreise.Text := 'Begin';
  HeaderFooterwithNavigation.L_Reiseendeanreise.Text := 'End';
  HeaderFooterwithNavigation.L_zvanreise.Text := 'TS';
  HeaderFooterwithNavigation.L_reisestdanreise.Text := 'Hours';
  HeaderFooterwithNavigation.L_datumrückreise.Text := 'Date';
  HeaderFooterwithNavigation.L_Reisebeginnrückreise.Text := 'Begin';
  HeaderFooterwithNavigation.L_Reiseenderückreise.Text := 'End';
  HeaderFooterwithNavigation.L_zvrückreise.Text := 'TS';
  HeaderFooterwithNavigation.L_reisestdrückreise.Text := 'Hours';
  HeaderFooterwithNavigation.L_durchgeführtearbeiten.Text := 'Action taken, Remarks';
  HeaderFooterwithNavigation.L_benötigteersatzteile.Text := 'Parts required';
  HeaderFooterwithNavigation.L_Optionenoptionen.Text := 'Options';
  HeaderFooterwithNavigation.L_technikeroptionen.Text := 'Technician:';
  HeaderFooterwithNavigation.L_spracheoptionen.Text := 'Language:';
  HeaderFooterwithNavigation.L_hintergrundbildoptionen.Text := 'Background:';
  HeaderFooterwithNavigation.L_nachnameoptionen.Text := 'Last name';
  HeaderFooterwithNavigation.L_vornameoptionen.Text := 'First name';
  HeaderFooterwithNavigation.B_speichernoptionen.Text := 'Save';
  HeaderFooterwithNavigation.B_abbrechenoptionen.Text := 'Cancel';
  L_unterschriftinfo.Text := 'Enter your signature here!';
  L_unterschrift.Text := 'Signature';
  B_speichernunterschriftauftraggeber.text := 'Save';
  B_abbrechenunterschrift.text := 'Cancel';
  L_neu.text := 'New';
  B_speichernunterschriftmonteur.text := 'Save';
  B_abbrechenunterschriftmonteur.text := 'Cancel';
  B_neumonteur.text := 'New';
  B_optionen.Text := 'Options'
  end;

  // Sprache Deutsch
if C_Sprache.ItemIndex = 0 then
begin
  HeaderFooterwithNavigation.Tab_anreise.Text := 'Anreise';
  HeaderFooterwithNavigation.Tab_arbeit.Text := 'Arbeit';
  HeaderFooterwithNavigation.Tab_rückreise.Text := 'Rückreise';
  HeaderFooterwithNavigation.L_datum.Text := 'Datum';
  HeaderFooterwithNavigation.L_arbeitsbeginn.Text := 'Arbeitsbeginn';
  HeaderFooterwithNavigation.L_arbeitsende.Text := 'Arbeitsende';
  HeaderFooterwithNavigation.L_arbeitsstd.Text := 'Arbeitsstd.';
  HeaderFooterwithNavigation.L_gesamtstd.Text := 'Gesamtstd.';
  HeaderFooterwithNavigation.L_warte.Text := 'Warte';
  HeaderFooterwithNavigation.L_mo.Text := 'Mo';
  HeaderFooterwithNavigation.L_di.Text := 'Di';
  HeaderFooterwithNavigation.L_mi.Text := 'Mi';
  HeaderFooterwithNavigation.L_do.Text := 'Do';
  HeaderFooterwithNavigation.L_fr.Text := 'Fr';
  HeaderFooterwithNavigation.L_sa.Text := 'Sa';
  HeaderFooterwithNavigation.L_so.Text := 'So';
  HeaderFooterwithNavigation.L_montagesundennachweis.Text := 'Montage-Stunden-Nachweis';
  HeaderFooterwithNavigation.L_auftragnr.Text := 'Auftrag Nr.:';
  HeaderFooterwithNavigation.L_montagebeifirma.Text := 'Montage bei Firma:';
  HeaderFooterwithNavigation.L_maschinentyp.Text := 'Maschinentyp:';
  HeaderFooterwithNavigation.L_artderarbeit.Text := 'Art der Arbeit:';
  HeaderFooterwithNavigation.L_Servicetechniker.Text := 'Servicetechniker:';
  HeaderFooterwithNavigation.L_Land.Text := 'Land:';
  HeaderFooterwithNavigation.L_Komnr.Text := 'Kom. Nr.:';
  HeaderFooterwithNavigation.L_Montagezeiten.Text := 'Montagezeiten:';
  HeaderFooterwithNavigation.L_vonbis.Text := '(von/bis)';
  HeaderFooterwithNavigation.L_bestätigung.Text := 'Hiermit bestätigt der Auftraggeber die rechtsverbindliche Abnahme der Maschine und/oder der ausgeführten Montagearbeiten sowie die Richtigkeit der vorstehenden Aufstellung.';
  HeaderFooterwithNavigation.L_auftraggeber.Text := 'Auftraggeber';
  HeaderFooterwithNavigation.L_Monteur.Text := 'Monteur';
  HeaderFooterwithNavigation.btnBack.Text := 'Zurück';
  HeaderFooterwithNavigation.B_zurücksetzen.Text := 'Felder zurücksetzen';
  HeaderFooterwithNavigation.B_verschicken.Text := 'Verschicken';
  HeaderFooterwithNavigation.B_laden.Text := 'Laden';
  HeaderFooterwithNavigation.B_speichern.Text := 'Speichern';
  HeaderFooterwithNavigation.L_datumanreise.Text := 'Datum';
  HeaderFooterwithNavigation.L_Reisebeginnanreise.Text := 'Reisebeginn';
  HeaderFooterwithNavigation.L_Reiseendeanreise.Text := 'Reiseende';
  HeaderFooterwithNavigation.L_zvanreise.Text := 'ZV';
  HeaderFooterwithNavigation.L_reisestdanreise.Text := 'Reisestunden';
  HeaderFooterwithNavigation.L_datumrückreise.Text := 'Datum';
  HeaderFooterwithNavigation.L_Reisebeginnrückreise.Text := 'Reisebeginn';
  HeaderFooterwithNavigation.L_Reiseenderückreise.Text := 'Reiseende';
  HeaderFooterwithNavigation.L_zvrückreise.Text := 'ZV';
  HeaderFooterwithNavigation.L_reisestdrückreise.Text := 'Reisestunden';
  HeaderFooterwithNavigation.L_durchgeführtearbeiten.Text := 'Durchgeführte Arbeiten, Bemerkungen';
  HeaderFooterwithNavigation.L_benötigteersatzteile.Text := 'Benötigte Ersatzteile';
  HeaderFooterwithNavigation.L_Optionenoptionen.Text := 'Optionen';
  HeaderFooterwithNavigation.L_technikeroptionen.Text := 'Techniker:';
  HeaderFooterwithNavigation.L_spracheoptionen.Text := 'Sprache:';
  HeaderFooterwithNavigation.L_hintergrundbildoptionen.Text := 'Hintergrundbild:';
  HeaderFooterwithNavigation.L_nachnameoptionen.Text := 'Nachname';
  HeaderFooterwithNavigation.L_vornameoptionen.Text := 'Vorname';
  HeaderFooterwithNavigation.B_speichernoptionen.Text := 'Speichern';
  HeaderFooterwithNavigation.B_abbrechenoptionen.Text := 'Abbrechen';
  L_unterschriftinfo.Text := 'Setzen Sie hier Ihre Unterschrift!';
  L_unterschrift.Text := 'Unterschrift';
  B_speichernunterschriftauftraggeber.text := 'Speichern';
  B_abbrechenunterschrift.text := 'Abbrechen';
  L_neu.text := 'Neu';
  B_speichernunterschriftmonteur.text := 'Speichern';
  B_abbrechenunterschriftmonteur.text := 'Abbrechen';
  B_neumonteur.text := 'Neu';
  B_optionen.Text := 'Optionen'
end;

  P_optionen.Visible := false;
  HintergrundSchwarz.Visible := false;

HintergrundSchwarzTop.Visible := false;
HintergrundSchwarzBot.Visible := false;
end;
Laden Profil:
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.FormCreate(Sender: TObject);
var
    ende, start: TDateTime;
    Daten: TStringList;
    Profil: TStringList;
begin
  { This defines the default active tab at runtime }
  TabControl1.First(TTabTransition.ttNone);
  Tab_Formular.TabIndex := 1;

  //Montagezeit initialisierung
  D_montagezeitvon.Date := Date();
  D_datummo.date := StartOfTheWeek(D_montagezeitvon.date);
  D_montagezeitbis.Date := D_datummo.Date + 6;
  D_datumdi.Date := D_datummo.Date +1;
  D_datummi.Date := D_datummo.Date +2;
  D_datumdo.Date := D_datummo.Date +3;
  D_datumfr.Date := D_datummo.Date +4;
  D_datumsa.Date := D_datummo.Date +5;
  D_datumso.Date := D_datummo.Date +6;

  //Optionen Feld wird ausgeblendet bei Start
  P_optionen.Visible := false;

  //HintergrundSchwarz wird bei Start ausgeblendet
  HintergrundSchwarz.Visible   := false;
  HintergrundSchwarzTop.Visible := false;
  HintergrundSchwarzBot.Visible := false;

  // Für Unterschrift
  Signature:= TList<TSigCapRec>.Create;
  P_unterschrift.Visible := false;
  // Für Unterschrift Auftraggeber
  Image_UnterschriftAuftraggeber.Bitmap.Assign(R_UnterschriftAuftraggeber.MakeScreenshot);
  // Für Unterschrift Monteur
  Image_UnterschriftMonteur.Bitmap.Assign(R_UnterschriftAuftraggeber.MakeScreenshot);

  //Profil laden
  Profil := TStringList.Create;
  Profil.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'profil.txt');

  E_servicetechniker.Text := Profil[0] + Profil[1];

end;

Sir Rufo 7. Aug 2014 11:15

AW: Firemonkey abspeichern (iOS)
 
Bin ich jetzt der Einzige, der sich denkt, was hat #27 mit #22 zu tun :wall:

Was sagt der Debugger, in welcher Zeile verabschiedet sich das Programm?
(zieh jedes Haar einzeln aus der Nase)

PS Wenn du keinen Sarkasmus magst, dann poste doch selbständig alle relevanten Informationen zur Frage

ZeroX1337 7. Aug 2014 11:22

AW: Firemonkey abspeichern (iOS)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Sir Rufo (Beitrag 1267879)
Bin ich jetzt der Einzige, der sich denkt, was hat #27 mit #22 zu tun :wall:

Was sagt der Debugger, in welcher Zeile verabschiedet sich das Programm?
(zieh jedes Haar einzeln aus der Nase)

Bei #22 ging es darum, Einstellungen zu laden. Bei #27 geht es darum, Profileinstellungen zu laden WÄHREND dem Start, so dass das Formular immer dementsprechend aussieht wie es zuvor abgespeichert wurde. Als Beispiel halt mit dem Namen des Servicetechnikers. So muss er ihn nur einmalig eintragen.

Tut mir leid, ich programmiere erst seit dem ich im Praktikum bin und habe auf Hilfe hier im Forum gehofft, ohne dämliche Zwischenbemerkungen. Habe die App bisher immer ohne Debugger gestartet, da er das Programm dann viel schneller ausführt. Vielleicht etwas dämlich von mir.

Jetzt funktioniert das ganze jedoch. Habe den Fehler gefunden. Hatte, als ich das das erste mal ausprobiert habe, vergessen das Feld vom Servicetechniker als Ausgabe anzugeben. Dementsprechend hat er zwar die Sachen geladen, aber nicht ausgeben können.

Zitat:

PS Wenn du keinen Sarkasmus magst, dann poste doch selbständig alle relevanten Informationen zur Frage
Werde mir beim nächsten mal mehr Mühe geben.

Nachtrag: Wie mache ich das mit der Abfrage, ob die Datei besteht? Auf dem Simulator funktioniert es nämlich, auf dem Gerät nicht.

Sir Rufo 7. Aug 2014 11:33

AW: Firemonkey abspeichern (iOS)
 
Deine Ausgangsfrage war doch .... (nochmal nachschauen)
Zitat:

Zitat von ZeroX1337 (Beitrag 1267830)
Ich habe ein Problem. Wenn ich die gespeicherte .txt Datei bei "FormCreate" laden will (im Sinne von Profileinstellung), dann stürzt die App sofort ab. Was mache ich falsch? Per Button kann ich die laden...

Egal ob Anfänger oder nicht, aber das der QuellCode aus #22 absolut gar nichts mit
Delphi-Quellcode:
FormCreate
(laden der 'profil.txt') und somit dem Starten der Anwendung zu tun hat, sollte schon klar sein.

Und da stellt sich doch die berechtigte Frage, warum du uns diesen Teil zeigst mit dem Hinweis
Zitat:

Zitat von ZeroX1337 (Beitrag 1267869)
Warum soll ich einen Quellcode posten, wenn der hier bereits gepostet wurde und ich diesen verwendet habe? :D

Und wie du jetzt selber gesehen hast, konnte man diesen Fehler nur dann erkennen, wenn man den QuellCode für das Speichern und Laden der 'profil.txt' sehen kann.

Darum den echten QuellCode zeigen und kein Verweis auf irgendeinen ähnlich gearteten

ZeroX1337 7. Aug 2014 11:36

AW: Firemonkey abspeichern (iOS)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.

Zitat:

Nachtrag: Wie mache ich das mit der Abfrage, ob die Datei besteht? Auf dem Simulator funktioniert es nämlich, auf dem Gerät nicht.
Edit: Gefunden. (auf Otto.de) http://www.delphi-treff.de/tipps-tri...tei-existiert/

Sir Rufo 7. Aug 2014 11:43

AW: Firemonkey abspeichern (iOS)
 
Nur mal so zum Code allgemein:

Das Verwenden von MagicValues
Delphi-Quellcode:
'profil.txt'
an mehreren Stellen im QuellCode ist eine schöne potentielle Fehlerquelle.

Definiere dir dafür einfach eine Konstante und benutze diese.
Delphi-Quellcode:
const
  PROFIL_TXT = 'profil.txt';

procedure THeaderFooterwithNavigation.FormCreate(Sender: TObject);
...
  //Profil.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'profil.txt');
  Profil.LoadFromFile( TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + PROFIL_TXT );
...

procedure THeaderFooterwithNavigation.B_speichernoptionenClick(Sender: TObject);
...
  //Profil.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'profil.txt');
  Profil.SaveToFile( TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + PROFIL_TXT );
...
Zitat:

Zitat von ZeroX1337 (Beitrag 1267884)
Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.

Du hast bestimmt Recht, schließlich haben wir den Fehler auch nicht gefunden sondern du. Wir sind halt einfach blind :roll:

mkinzler 7. Aug 2014 11:53

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.
Du hast aber behauptet, dass das Laden der Datei über den Button funktionieren würde, abwer im onCreate-Event nicht! Du hast uns verschwiegen, dass es sich um verschiedene Dateien handelt.
Und deshalb ist es nicht das Selbe.

Es macht aucgh einen Unterschied, ob Du in einen einen Kopfsprung in ein gefülltes Becken machst, oder ob jemand das Wasseer abgelassen hat.

Ausserdem hast Du dich bisher geweigert (bis zum letzten Beitrag!) uns den genauen Fehler zu Nennen!
Nachfragen ignorierst Du lieber!

Hättest Du die Meldung sofort gepostet, hätten wir uns seitenlanges Rätselraten ersparen können!

ZeroX1337 7. Aug 2014 11:55

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von Sir Rufo (Beitrag 1267885)
Zitat:

Zitat von ZeroX1337 (Beitrag 1267884)
Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.

Du hast bestimmt Recht, schließlich haben wir den Fehler auch nicht gefunden sondern du. Wir sind halt einfach blind :roll:

Programmieren scheint sarkastisch zu machen. Hast wohl heute 'nen schlechten Tag - oder zu wenig Frischluft. :stupid:

Wenn ich jetzt mit FileExists prüfe, muss ich dann nur 'profile.txt' angeben? Ich versuche mal ein wenig und poste dann den Quellcode. ;)

Sir Rufo 7. Aug 2014 12:00

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von ZeroX1337 (Beitrag 1267891)
Zitat:

Zitat von Sir Rufo (Beitrag 1267885)
Zitat:

Zitat von ZeroX1337 (Beitrag 1267884)
Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.

Du hast bestimmt Recht, schließlich haben wir den Fehler auch nicht gefunden sondern du. Wir sind halt einfach blind :roll:

Programmieren scheint sarkastisch zu machen. Hast wohl heute 'nen schlechten Tag - oder zu wenig Frischluft. :stupid:

Sarkasmus ist ein Werkzeug um den Gesprächspartner wachzurütteln, hat aber nicht funktioniert ...
Zitat:

Zitat von ZeroX1337 (Beitrag 1267891)
Wenn ich jetzt mit FileExists prüfe, muss ich dann nur 'profile.txt' angeben? Ich versuche mal ein wenig und poste dann den Quellcode. ;)

Ja, denn
Delphi-Quellcode:
FileExists
kann über die DeveloperMindAPI in dein Hirn schauen und weiß damit ganz genau, welchen Pfad du denn meinst. Bei den anderen Funktionen zum Laden hat man wohl vergessen diese DeveloperMindAPI zu implementieren. Sehr schlampig

mkinzler 7. Aug 2014 12:04

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von ZeroX1337 (Beitrag 1267891)
Zitat:

Zitat von Sir Rufo (Beitrag 1267885)
Zitat:

Zitat von ZeroX1337 (Beitrag 1267884)
Das sind doch beide die gleichen Quellcodes gewesen, nur dass der für das Laden des Profils im "FormCreate" war, anstatt wie bei Einstellungen.txt auf einem Button.

Du hast bestimmt Recht, schließlich haben wir den Fehler auch nicht gefunden sondern du. Wir sind halt einfach blind :roll:

Programmieren scheint sarkastisch zu machen. Hast wohl heute 'nen schlechten Tag - oder zu wenig Frischluft. :stupid:

Noch einen kleinen Tipp, wenn Du willst, dass wuir Dir Helfen, solltest Du
-Keine Fakten verheimlichen
-Rückfragen nicht ignorieren
-Tipps annehmen
-Keine Antworten Posten, welche man als Beleidigungen interpretieren könnte
Zitat:

Wenn ich jetzt mit FileExists prüfe, muss ich dann nur 'profile.txt' angeben? Ich versuche mal ein wenig und poste dann den Quellcode. ;)
Nein,
Delphi-Quellcode:
TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + PROFIL_TXT

Darlo 7. Aug 2014 13:28

AW: Firemonkey abspeichern (iOS)
 
:glaskugel:

-> Gibt wohl ein Bier für mich :cheers:

ZeroX1337 7. Aug 2014 13:50

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Nein,
TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + PROFIL_TXT
Da bin ich sogar selber drauf gekommen. :shock:

Dankeschön für eure Hilfe. Funktioniert alles einwandfrei. Gebe mir bei meinem nächsten Problem mehr Mühe alle relevanten Fakten zu liefern und versuche möglichst nicht als ein Anfänger zu wirken.


MfG
Andre

Sir Rufo 7. Aug 2014 17:10

AW: Firemonkey abspeichern (iOS)
 
Zitat:

Zitat von Darlo (Beitrag 1267904)
:glaskugel:

-> Gibt wohl ein Bier für mich :cheers:

Die Datei war wohl da, aber nicht komplett, können wir gelten lassen ;)
-> PN


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz