AGB  ·  Datenschutz  ·  Impressum  







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

blockade durch opendialog

Ein Thema von gwxxl · begonnen am 23. Apr 2004 · letzter Beitrag vom 28. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#1

blockade durch opendialog

  Alt 23. Apr 2004, 12:12
Hallo,

ich versuche gerade mich nen bisle in Delphi einzuarbeiten und mache dazu einen Programm-Manager!
Eine Funktion dabei ist es, dem benutzer einen Button zu bieten, mit dem er eine *.Exe auswählen kann. Von der ausgewählten Datei wird aber nur der Pfad+Dateiname gebraucht, den ich dann in ein Edit lade und in einem Array Speichere.

Zum schluss, falls man auf 'Speichern' drückt, sollten dann alle Daten aus dem Array in eine StringListe geladen werden und wieder in die data.dat gespeichert werden.

Jetzt ist passiert, dass wenn man den OpenDialog benutzt, anstatt den Pfad manuell einzugeben, die betroffene Anwendung zwar in der StringListe gespeichert wird, aber eben nicht in der data.dat.

Hier noch ein paar Code-Schnipsel:
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
if OpenDialog1.Execute then
 Edit2.Text:=OpenDialog1.FileName; // hier schreibt er den pfad+datei in ein edit
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var datafile:TStringList; m:integer;
begin
 datafile:=TStringList.create;
 for m:=0 to high(programme) do begin
  datafile.Add(programme[m].name+';'+programme[m].adresse); // hier holt er die ganzen Programme aus dem array und speichert sie in der stringlist, bis sie schließlich gespeichert werden
 end;
 datafile.SaveToFile(filename); //filename is ne globale konstante
end;
Er speichert wie gesagt alles super, nur wenn ich den OpenDialog benutzte, hört er auf.

Bitte helft mir!

mfg gwxxl
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: blockade durch opendialog

  Alt 23. Apr 2004, 12:22
hai gwxxl,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Zwei Fragen:

a) Wo gibst Du deinen Stringliste wieder frei? (try-finally)
b) Wie kommen der Inhalt aus deinem Edit2.Text in deinen Record programme?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#3

Re: blockade durch opendialog

  Alt 23. Apr 2004, 12:24
a) *g*ar nicht
b)
Delphi-Quellcode:
// liste laden
daten:=TStringList.create;
  daten.LoadFromFile(filename);
  if daten.count > 0 then BEgin
   listbox1.Clear;
   setlength(programme,daten.Count);
   for i:=0 to (daten.count-1) do BEGin
    programme[i]:=teile(daten[i]);
    listbox1.items.add(programme[i].name);
   END;
  ENd;

//übergabe an programme
  programme[m].adresse:=Edit2.Text;
ich lad die datei erst in ne stringlist ein und speicher sie dann iner listbox und dem array
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#4

Re: blockade durch opendialog

  Alt 23. Apr 2004, 12:28
achso, programme is nen array of record mit 2 strings

dann hier noch die treilenfunktion, da die daten so abgespeichert sind: "name;adresse\n name;adresse\n..."
Delphi-Quellcode:
function teile(s:string):TProgramm;
var
 j:integer;
 p:TProgramm;
begin
 j:=0;
 while (s[j]<>';') and (j<length(s)) do
  begin j:=j+1; p.name:=p.name+s[j]; end;
  setlength(p.name,j-1);

 while j<length(s) do
  begin j:=j+1; p.adresse:=p.adresse+s[j]; end;

 result:=p;
end;
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#5

Re: blockade durch opendialog

  Alt 23. Apr 2004, 15:11
*schieb*
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: blockade durch opendialog

  Alt 23. Apr 2004, 15:22
Nach so kurzer Zeit diesen Post nach oben zu schieben ist nicht gerade sehr höflich...




Edit: Noch Herzlich willkommen in der DP!
Edit2: Ups, hat Sharky ja auch schon gesagt.
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#7

Re: blockade durch opendialog

  Alt 23. Apr 2004, 15:24
bin halt nen ungeduldiger schüler

Edit: DP-Rules gelesen

Hab nochn bisle rumexperimentiert:
Es funktioniert alles wunderbar bis ich den opendialog einmal ausführe, also eine datei auswähle. danach läd zwar alles noch in die stringlist rein, speichert aber nichts mehr.
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#8

Re: blockade durch opendialog

  Alt 24. Apr 2004, 18:28
Also nochmal folgendes Problem:

Ich speichere Daten aus einer TSTringList in eine Datei. Wenn ich aber im Programm den OpenDialog ausführe und eine Datei auswähle, dann funktioniert das Speichern auf einmal nicht mehr.

Bitte helft mir!

mfg
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: blockade durch opendialog

  Alt 24. Apr 2004, 19:57
Moin gwxxl,

also wenn ich mir Dein erstes Posting so anschaue, habe ich ein kleines Verständnisproblem:
Gespeichert wird danach an der Stelle, auf die der Inhalt der globlen Konstanten filename verweist, der aus dem OpenDialog gezogene Pfad wird nur in ein Edit geschrieben.
Wie kommt jetzt der Pfad in die Konstante?

Eine grundsätzliche Sache noch:
Einen Bezeichner zu deklarieren, den es auch schon als Eigenschaftsnamen gibt (in diesem Falle die Konstante Filename) kann u.U. zu Problemen im Programm führen, mal abgesehen davon, dass man selber durcheinander kommen kann.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#10

Re: blockade durch opendialog

  Alt 25. Apr 2004, 13:11
Hallo,

ich hab die Konstante filename jetzt mal in datafilename umbenannt - es funktioniert trotzdem nicht.

Die Konstante datafilename hab ich im Hauptprogramm nach type definiert und ja - der filepath vom OpenDialog wird einfach nur in ein Edit geschrieben. Aus dem Edit wird nach einem weiteren Klick dieser Pfad in einen Array geschrieben und mit dem Speichern aus dem Array in eine StringListe, die dann per .savetofile(datafilename) gespeichert werden soll. Nach wie vor: Wenn ich den OpenDialog ausführe, geht das Speichern nicht mehr.

mfg
  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 16:19 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