Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit Stringlist (https://www.delphipraxis.net/57227-probleme-mit-stringlist.html)

Knotti2005 17. Nov 2005 13:55


Probleme mit Stringlist
 
Ich hab ein Problem mit meinen Programm

Und zwar kann ich immer dne BItbutton betätigen bis auf wenn ich vorher den Open oder SaveDialog ausgeführt habe...

Als ob nach der Dialogsache die Namen der beiden Daten durch den OpenDialog1.FileName ersetzt wird.. Obwohl beides nichts miteinander zu tun hat...

BitButton

Delphi-Quellcode:
procedure TForm2.BitBtn1Click(Sender: TObject);
var E, E2: TStringList;
    i, ID:Integer;
begin
  E:=TStringList.Create;   //Datei 1
  E.LoadFromFile('.\list1.txt');
  E2:=TStringList.Create;  //Datei 2
  E2.LoadFromFile('.\list2.txt');
  E.AddStrings(E2);        //Zusammenführen
  E2.Free;  //Datei 2 kann weg
  for i:=1 to 24 do //für 24 Edits
    begin
    ID:=Random(E.Count); //Index raussuchen
    if E.Count=0 then Break;
    TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E[ID]; //Text in Edit
    E.Delete(ID); //Text auf SL löschen
    end;
  E.Free;

end;

OpenDialog

Delphi-Quellcode:
procedure TForm2.dxBarButton4Click(Sender: TObject);
var
  MyList: TStringList;
  i: Integer;
begin
  MyList := TStringList.Create;
if OpenDialog1.Execute then
  begin
  MyList.LoadFromFile(OpenDialog1.FileName);
  end;
  for i := 1 to 26 do
    TEdit(FindComponent('Edit' + IntToStr(i))).Text := MyList[i - 1];
    // -1, da der Index in der Stringlist mit 0 beginnt
    // MyList[...] entspricht MyList.Strings[...]
  MyList.Free;
end;

chrisw 17. Nov 2005 14:11

Re: Probleme mit Stringlist
 
Wäre nicht uninteressant zu wissen wieviel Strings in list1.txt, list2.txt und in der im Opendialog geladenen Datei drinstehen !

Knotti2005 17. Nov 2005 14:43

Re: Probleme mit Stringlist
 
In den DAtein List 1 und list 2 unterschiedlich max wenn beide zusammengenommen werden max. 24 stück...
min. 0 max 24.

Zur Zeit aber weniger so 8

und in die gespeicherte datei bzw. in die geöffnete sind es 26 strings

chrisw 17. Nov 2005 15:07

Re: Probleme mit Stringlist
 
Hast Du 26 oder 24 Editfelder ?

Phistev 17. Nov 2005 16:07

Re: Probleme mit Stringlist
 
AFAIR können relative Pfade in Verbindung mit dem OpenDialog Probleme machen. Ersetz mal die relativen Pfade (.\) durch absolute (ExtractFilePath(ParamStr(0) glaub ich) .

ichbins 17. Nov 2005 16:14

Re: Probleme mit Stringlist
 
genau. Der Opendialog hätte alternativ auch die Option ofnochangedir. Die musst du im OI auf True stellen.

TeronG 17. Nov 2005 17:00

Re: Probleme mit Stringlist
 
Zitat:

Zitat von Phistev
AFAIR können relative Pfade in Verbindung mit dem OpenDialog Probleme machen. Ersetz mal die relativen Pfade (.\) durch absolute (ExtractFilePath(ParamStr(0) glaub ich) .

ExtractFilePath(ParamStr(0))
oder
ExtractFilePath(Application.exename)

Aber das mit ofnochangedir (was auch klappen müsste) wusst ich auch noch ned. :gruebel: man sollte sich seine werkzeuge besser angugn :oops:

ichbins 17. Nov 2005 17:14

Re: Probleme mit Stringlist
 
paramstr(0) ist dierekter ;) ungefähr 0.0002 ms schneller als application.exename :mrgreen:. Application.exename wird aus paramstr(0) abgeleitet, wenn die application-variable initialisiert wird. Paramstr ist dierekt in der windows-unit deklariert und kann somit auch in nonVCL-Programmen verwendet werden.

Knotti2005 17. Nov 2005 17:22

Re: Probleme mit Stringlist
 
Okay ich hab mich nun beriseln lassen und wie soll ich es machen?

Luckie 17. Nov 2005 17:35

Re: Probleme mit Stringlist
 
Auf jedenfall nicht über die Optionen des OpenDialoges, sondern absolute Pfade verwenden, wie es auch schon geraten wurde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.
Seite 1 von 2  1 2      

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