![]() |
Speichern während des Ausführens
Hallo ich möchte wenn möglich, während ich mein Programm ausführe (Debug), gerne alle Änderungen, die der Nutzer an dem ausgeführten Projekt bzw. der Form unternimmt seperat speichern. (PS: Die gespeicherte Datei muss nur über Delphi geöffnet werden, brauch also kein besonderes Dateiformat (DelphiProjectFile))
Außerdem möchte ich dann dieses Projekt auch während des debuggen öffnen können. (In diesem Fall wird das alte natürlich geschlossen). Vielen Dank für mögliche Lösungsvorschläge. Ich bin auch gerne bereit von meiner ursprünglichen Idee abzukommen, falls es anders besser oder einfacher geht. Hinweis: Bei der Ausführung kann der Nutzer die Eigenschaft TImage.Picture und einige Variablen ändern. |
AW: Speichern während des Ausführens
Hallo,
im Form ist ein Edit, der Nutzer gibt "Max" ein, das Programm/Form wird beendet, neu gestartet und es soll "Max" im Edit stehen? Ist es das, was du willst? |
AW: Speichern während des Ausführens
Nein, es ist eher das Speichern von einer Variable, die ich nur im Quelltext verwende, die aber nirgendwo steht...
|
AW: Speichern während des Ausführens
Die wirst du wohl in einer Datei speichern müssen.
|
AW: Speichern während des Ausführens
Zitat:
Das ist zumindest ungewöhnlich.Könntest Du Dein Vorhaben nochmals erklären. Gruß k-H |
AW: Speichern während des Ausführens
Die Variable gibt es schon. Ich benutze Sie unter anderem zum Ändern von TImage.Picture... Allerdings wird sie nicht in einem Edit oder Memo ausgegeben.
|
AW: Speichern während des Ausführens
Moin...8-)
Für mich klingt das nach...Ihr braucht ein Versionsverwaltungssystem! Damit kannst du die Änderungen am Quelltext, die andere Personen oder du verzapft haben, sehen um die ggf. zusammenzuführen. :thumb: Zitat:
Zitat:
Wie schon gesagt. Bevor wir weiter raten...mache mal ein Beispiel (in Stichpunkten...was du wann erwartest) :zwinker: |
AW: Speichern während des Ausführens
In dem Fall ist vielleicht
![]() Mit
Delphi-Quellcode:
...
Ini.WriteInteger( 'MeineSchoeneSektion', 'PictureNummer', MeineEigeneIntegerPictureNummer ); ... MeineEigeneIntegerPictureNummer := Ini.ReadInteger( 'MeineSchoeneSektion', 'PictureNummer', -1 ); if MeineEigeneIntegerPictureNummer >= 0 then begin DaWarSchonmalWasBrauchbaresGespeichert; end; |
AW: Speichern während des Ausführens
Klingt so, als solle der Anwender Elemente auf der Form zur Laufzeit anpassen können und das soll dann beim nächsten Start erhalten bleiben. Das wiederum schreit für mich nach einer Konfigurationsdatei (Ini, XML, ...) oder Registry.
|
AW: Speichern während des Ausführens
Die Grundlegende Frage, die es scheinbar zu klären gibt ist wohl:
Wen definierst du als Nutzer? Nutzer = Benutzer des fertigen Programms oder Nutzer = andere Programmierer ?? |
AW: Speichern während des Ausführens
Ich vermute, daß er während einer Debugging-Session Werte ändern will, und diese Änderungen gleich speichern will.
Wenn ich mich richtig erinnere ist so etwas bei einigen Basic-Dialekten möglich. Gruß K-H |
AW: Speichern während des Ausführens
Zitat:
|
AW: Speichern während des Ausführens
Zitat:
Gruß K-H |
AW: Speichern während des Ausführens
Also der Nutzer ist der Benutzer des Programms.
|
AW: Speichern während des Ausführens
Zitat:
Grüße Klaus |
AW: Speichern während des Ausführens
Also möchtest du, das der eigentlicher Benutzer das Programm "verändert" und diese "Veränderungen" sollen dokumentiert werden für den Entwickler. Richtig?
In dem Fall solltest du jede Änderung z.B. in einer Ini-Datei niederschreiben. Da du dafür ja entsprechende Funktionen / Prozeduren ausführst muss das dann an diesen Stellen passieren. |
AW: Speichern während des Ausführens
Dein Nutzer sollte nie etwas mit dem Debugger zu tun haben.
Bitte versuch nochmal deine Anforderung zu formulieren, und tu bitte dabei so, als wären wir " ![]() Sherlock |
AW: Speichern während des Ausführens
Hallo,
vielleicht hilft dir dass weiter:
Code:
Du musst die Variable (hier: a) mit dem SaveToFile "verbinden" und in Klammern den Dateiname.
begin
a.SaveToFile(Datei-Pfad); end; Ich weiß nicht, welche Dephi-Version du hast (ich: Delphi7), aber bei mir heißt dann immer noch: [Fehler] Unit1.pas(31): Record, Objekt oder Klassentyp erforderlich Da komm ich jetzt leider auch nicht weiter (vielleicht jemand anders :wink: !). Öffnen kannst du die Variable dann wieder mit:
Code:
Ich hoffe, dass hilft :thumb: !
begin
a.OpenFromFile(DateiName); end; PS: Den Datei-Typ (z.B. txt) musst du dazu schriben, wenn nicht, ist es nicht schlimm. Windows zeigt die Datei einfach so ohne Kennung an (dass ist in diesem Fall nicht schlimm, oder?). Du kannst aber auch eine eigene Kennung erfinden (aber wir wollen nicht so weit ins Detail gehen, wenn schon, dann schick ne' private Mail an mich). |
AW: Speichern während des Ausführens
Pflaumi ... SaveToFile hat er doch schon in seinem Code.
Helfen wollen ist ja grundsätzlich gut, aber man muss auch realisieren, wo man helfen kann. |
AW: Speichern während des Ausführens
Noch mal kurz zu den Fachbegriffen. Deine etwas missverständliche Benutzung verwirrt immer etwas was.
Als "debuggen" bezeichnet man die Tätigkeit einen Fehler im Programm zu suchen, indem man es zum Beispiel, Schritt für Schritt mittels des Debuggers durchgeht. Man kann sich dabei Variableninhalte angucken, gucken wi,e wo und warum ein Programm verzweigt, welche Programmteile abgearbeitet werden usw. Was aber du meinst ist, dass du das Programm im kompilierten Zustand, also nur die fertige, ausführbare Datei, weitergeben willst. Also ohne Quellcode. Wobei, würdest du den Quellcode mitgeben, das dem Benutzer auch nicht weiter helfen würde, da er in er Regel damit nichts anfangen kann. |
AW: Speichern während des Ausführens
Delphi-Quellcode:
Zahl1 ist nicht als Array-Typ deklariert, sondern als Integer. Siehe deine eigene Variablendeklaration im Prozedurkopf.
//'Array type required' obwohl es als Array definiert ist
Zahl1 := Zahl1 + 1; Ich würde das sowieso grundsätzlich anders angehen. Ich würde die Images in einer Objektliste ablegen vom Typ TImage. Vordem Speichern mittels FindComponente alle Images suchen und diese dann in die Objektliste ablegen. Zum Speichern würde ich dann die Objektliste durchgehen und die benötigten Eigenschaften in eine Dateischreiben. Dabei kann man entweder das Ini-Dateiformat nehmen oder sich was eigenes ausdenken. Am einfachsten wäre aber wohl eine Ini-Datei zu nehmen, die dann so aussehen könnte:
Code:
Oder man speichert die Objektliste, so wie sie ist, mittels eines Streams einfach binär ab. Da bin ich mir aber nicht sicher, ob Delphi da schon was Fertiges bietet in der ObjektList-Klasse.
[Image1]
Name=Wert Left=Wert Right=Wert [Image2] Name=Wert Left=Wert Right=Wert [Image3] Name=Wert Left=Wert Right=Wert Ah, scheint zu gehen: ![]() |
AW: Speichern während des Ausführens
Ja, ich muss zugeben, dass ich nicht die ganzen Antworten gelesen hab.
Ich hab bloß nichts von SaveToFile und so gesehen und hab hald dann die Antwort geschrieben. |
AW: Speichern während des Ausführens
Zitat:
|
AW: Speichern während des Ausführens
Zitat:
Ansonsten kann es sein das dir nicht nur wichtige Informationen und Tipps flöten gehen, sondern die Leute dir auch irgendwann nicht mehr helfen ("der List die Antworten eh nicht"). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 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 by Thomas Breitkreuz