AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

speicherpfad als variable

Ein Thema von mr-unbekannt · begonnen am 14. Dez 2005 · letzter Beitrag vom 17. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#1

speicherpfad als variable

  Alt 14. Dez 2005, 17:24
hallo

ich möchte gerne den speicherpfad ('C:\\data.txt') in einer Form3 ändern und speichern.
wie könnte ich das ungefähr machen?
dass ich den Form3.Edit1.TExt in einem Form1.Label9.Caption speichere und
der var x das Caption von Label9 zuweise?
z.B so?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e,x: String;

begin
 a:=Combobox1.Text;
 b:=Combobox2.Text;
 c:=Edit1.Text;
 d:=Edit2.Text;
 e:=Combobox3.Text;
 x:=Label9.Caption;

if length(Combobox1.Text)+length(Combobox2.Text) + length(Edit1.Text)
+ length(Edit2.Text) + length(Combobox3.Text) < 39
then ShowMessage('Could not login!')
else
ListBox1.Items.Add(Combobox1.text);
ListBox1.Items.Add(Combobox2.text);
ListBox1.Items.Add(Edit1.text);
ListBox1.Items.Add(Edit2.text);
ListBox1.Items.Add(Combobox3.text);
ListBox1.Items.SaveToFile(x);
ShowMessage('User successfully logged in!');
Close;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
if fileexists(x) then ListBox1.Items.LoadFromFile(x);
Form3:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
Form1.Label9.Caption := Edit1.Text;
 Close;
end;
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: speicherpfad als variable

  Alt 14. Dez 2005, 17:30
Es dürfte reichen wenn du in der Unit1 eine globale Variable einsetzt. In der kannst du dir dann den Pfad merken.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#3

Re: speicherpfad als variable

  Alt 14. Dez 2005, 17:42
und wie macht man das?

ich schaffe jetzt, dass die datei 1mal unter dem neuen pfad gespeichert wird. ich möchte, dass
die datei aber danach immer unter dem neuen pfad gespeichert wird, ausser der pfad wird geändert.

mein qt jetzt:
Form1:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e,x: String;

begin
 a:=Combobox1.Text;
 b:=Combobox2.Text;
 c:=Edit1.Text;
 d:=Edit2.Text;
 e:=Combobox3.Text;

if length(Combobox1.Text)+length(Combobox2.Text) + length(Edit1.Text)
+ length(Edit2.Text) + length(Combobox3.Text) < 39
then ShowMessage('Could not login!')
else
begin
x:=Form3.Edit1.Text;
ListBox1.Items.Add(Combobox1.text);
ListBox1.Items.Add(Combobox2.text);
ListBox1.Items.Add(Edit1.text);
ListBox1.Items.Add(Edit2.text);
ListBox1.Items.Add(Combobox3.text);
ListBox1.Items.SaveToFile(x);
ShowMessage('User successfully logged in!');
Close;
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
var x: String;
begin
if fileexists(x) then ListBox1.Items.LoadFromFile(x);

end;
Form3:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var x: String;
begin
x:= Edit1.Text;
 Close;
end;



procedure TForm3.FormCreate(Sender: TObject);
begin
x:=Form3.Edit1.Text;
end;
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: speicherpfad als variable

  Alt 14. Dez 2005, 18:06
Wie du eine globale Variable deklarierst?


Delphi-Quellcode:
[...]

var
  form1:tform1;
  <-- Hier einfügen: Dir:string;

[...]
in der Unit3 kannst du die dann verwenden. Um Konflikte zu vermeiden kannst du auch schreiben UNIT1.DIR
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#5

Re: speicherpfad als variable

  Alt 14. Dez 2005, 18:12
das habe ich schon davor gemacht...

ich möchte , dass sich der pfad nicht bei jedem neuen programmstart auf 'C:\\data.txt' zurücksetzt.
wie kann ich das machen?
  Mit Zitat antworten Zitat
mr. boj

Registriert seit: 31. Mai 2005
Ort: ... Hamburg!
6 Beiträge
 
Delphi 7 Personal
 
#6

Re: speicherpfad als variable

  Alt 14. Dez 2005, 18:16
Wenn du die Variable nicht explizit am Anfang einer procedure/function definierts, sondern am Anfang der Unit. Dann ist sie in jeder procedure/function lesbar und beschreibbar. Also:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, ...;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Test: String; //<--- ENTWEDER hier deklarieren, dann ist sie global ...

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Test: String;//<--- ... ODER hier dann gilt sie nur innerhalb der procedure
begin
  Test:= 'Hurra!';
end;
Also, nun sollt's klappen.
  Mit Zitat antworten Zitat
mr. boj

Registriert seit: 31. Mai 2005
Ort: ... Hamburg!
6 Beiträge
 
Delphi 7 Personal
 
#7

Re: speicherpfad als variable

  Alt 14. Dez 2005, 18:25
Du kannst den Pfad in einer Datei speichern,
oder aber immer auf den Pfad der Projekt-Dateien setzen.
OpenDialog1.InitialDir:= GetCurrentDir;
  Mit Zitat antworten Zitat
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#8

Re: speicherpfad als variable

  Alt 15. Dez 2005, 20:05
geht das nicht auch ohne datei?
dass ich den pfad bei Form.Close einfach in ein Label(unsichtbar) speichere???

vielen dank
  Mit Zitat antworten Zitat
mr. boj

Registriert seit: 31. Mai 2005
Ort: ... Hamburg!
6 Beiträge
 
Delphi 7 Personal
 
#9

Re: speicherpfad als variable

  Alt 15. Dez 2005, 20:58
Nee, der Text des Labels bleibt doch nur zur Laufzeit bestehen, wie willst du dann bei einem neuen Programmstart den Text aus deinem (unsichtbaren ... ?) Label auslesen?
Den musst du schon irgendwie speichern, Datei oder Registry.

Oder versteh ich dich nur nicht??
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#10

Re: speicherpfad als variable

  Alt 15. Dez 2005, 21:11
Ohne Datei geht es diesbezüglich dass du den Wert in die Registry speicherst.
Delphi-Quellcode:
uses
..., registry,

[...]

///speichern
var
  R: TRegistry;
begin
  R := TRegistry.Create(KEY_WRITE);
  try
    R.RootKey = HKEY_CURRENT_USER;
    R.OpenKey('Software\mr-unbekannt_software\programm1\', True);
    R.WriteString('Pfad',STRINGDENDUSPEICHERNWILLST);
  finally
    R.Free;
  end;
end;

///laden

var
  R: TRegistry;
begin
  R := TRegistry.Create(KEY_READ);
  try
    R.RootKey = HKEY_CURRENT_USER;
    R.OpenKey('Software\mr-unbekannt_software\programm1\', False);
    STRINGVARIABLE:=R.ReadString('Pfad');
  finally
    R.Free;
  end;
end;
allerdings haben viele User was dagegen wenn irgendwelche Programme was in ihre Registry speichern, weil die Registry komplett in den RAM geladen ist und wenn sie vergrößert wird eben auch der RAM-Bedarf steigt bzw. die Performance sinkt. Aber dazu gibt es eine Unmenge an Diskussionen.


Speichern in eine Datei:

Delphi-Quellcode:
//Speichern
var
  t:textfile;
begin
  assignfile(t,changefileext(application.exename,'.ini'));
  rewrite(t);
  writeln(t,STRINGDENDUSPEICHERNWILLST);
  closefile(t);
end;

//Laden
//Speichern
var
  t:textfile;
begin
  assignfile(t,changefileext(application.exename,'.ini'));
  if not fileexists(changefileext(application.exename,'.ini')) then exit;
  reset(t);
  readln(t,STRINGVARIABLE);
  closefile(t);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
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