Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   OpenDialog Mehrfachauswahl, Filename (https://www.delphipraxis.net/189767-opendialog-mehrfachauswahl-filename.html)

ConnorMcLeod 20. Jul 2016 09:41

AW: OpenDialog Mehrfachauswahl, Filename
 
Muss man dem StringGrid nicht noch vorher sagen, wieviele Rows es hat?
Delphi-Quellcode:
 
  StringGrid1.RowCount := StringGrid.FixedRows + OpenDialog1.Files.Count;
  // Eintragungen StringGrid
  for iNummer := 0 to OpenDialog1.Files.Count-1 do
  begin
    StringGrid1.Cells[0, StringGrid.FixedRows + iNummer + 1] := OpenDialog1.Files[iNummer]; //  <= !!
    StringGrid1.Cells[1, StringGrid.FixedRows + iNummer + 1] := inttostr(VersionsNummer);
  end;

Freyr77 20. Jul 2016 10:24

AW: OpenDialog Mehrfachauswahl, Filename
 
Zitat:

Zitat von ConnorMcLeod (Beitrag 1343037)
Muss man dem StringGrid nicht noch vorher sagen, wieviele Rows es hat?
Delphi-Quellcode:
 
  StringGrid1.RowCount := StringGrid.FixedRows + OpenDialog1.Files.Count;
  // Eintragungen StringGrid
  for iNummer := 0 to OpenDialog1.Files.Count-1 do
  begin
    StringGrid1.Cells[0, StringGrid.FixedRows + iNummer + 1] := OpenDialog1.Files[iNummer]; //  <= !!
    StringGrid1.Cells[1, StringGrid.FixedRows + iNummer + 1] := inttostr(VersionsNummer);
  end;

Das hab ich in den Eigenschaften manuell gemacht mit den Rows. Vielen Dank, auf genau das bin ich nicht gekommen!:thumb:

Freyr77 26. Jul 2016 15:19

AW: OpenDialog Mehrfachauswahl, Filename
 
Nochmal gleiches Thema:

Ich habe jetzt folgende Prozedur um die XML-Datei rekursiv zu durchsuchen:

Delphi-Quellcode:
var
  i: integer;

begin
  if pParentNode.NodeName = 'VerInfo_Keys' then
  begin
    fVersionInfo := pParentNode;

  end
  else
  begin
    for i := 0 to pParentNode.ChildNodes.Count - 1 do
    begin
      GetVersionInfo(pParentNode.ChildNodes[i]);
    end;
  end;
Damit möchte ich jetzt bei Button-Klick auslesen lassen, das sieht so aus:
Delphi-Quellcode:
var
  lFileName: string;
  iZaehler: integer;

begin
  OpenDialog1.Execute();
  // InternalName = FileName


  for iZaehler := 0 to MaxAnzahl -1 do
  begin

    // XML-Dokument laden

    CurrentXML := NewXMLDocument;
    CurrentXML.LoadFromFile(String(OpenDialog1.FileName));
    CurrentXML.Active := True;

    // XML-Dokument auslesen
    GetVersionInfo(CurrentXML.DocumentElement);
    GetFileName(CurrentXML.DocumentElement);

    if fVersionInfo <> nil then
    begin

    end;

    if fFileInfo <> nil then
    begin

    end;

    // Überschriften StringGrid
    StringGrid1.Cells[0, 0] := 'Projekt';
    StringGrid1.Cells[1, 0] := 'Version';

    // Eintragungen StringGrid
    begin
      StringGrid1.Cells[0, iZaehler] := '';
      StringGrid1.Cells[1, iZaehler] := '';
    end;

    // Aktualisieren sichtbar
    Button1.Visible := True;
  end;
... funktioniert aber nicht. Mir ist auch bewusst das die Eintragungen ins StringGrid gerade leere Strings sind. Weiß einer von euch wie ich die Prozedur jetzt richtig aufrufe?

DeddyH 26. Jul 2016 15:35

AW: OpenDialog Mehrfachauswahl, Filename
 
Du liest MaxAnzahl mal dieselbe Datei ein, wozu soll das gut sein?

Freyr77 26. Jul 2016 15:40

AW: OpenDialog Mehrfachauswahl, Filename
 
Zitat:

Zitat von DeddyH (Beitrag 1343499)
Du liest MaxAnzahl mal dieselbe Datei ein, wozu soll das gut sein?

Das ganze Ding ist etwas wirr. Mir geht es eigentlich nur um den korrekten Aufruf der Prozedur damit der Teil aus dem XML-Dokument in den StringGrid kommt.
Die Prozedur hab ich vor kurzem erst geschrieben und steh jetzt extrem auf dem Schlauch. Das Auslesen hatte sogar schon funktioniert.:lol:

ConnorMcLeod 26. Jul 2016 15:42

AW: OpenDialog Mehrfachauswahl, Filename
 
OpenDialog1.Files[iZaehler]...
Der Kreis schließt sich ;-)

HolgerX 26. Jul 2016 15:49

AW: OpenDialog Mehrfachauswahl, Filename
 
Und immer schön

Delphi-Quellcode:
if OpenDialog1.Execute then begin

..

end;
Denn wo der Benutzer keine Datei ausgewählt hat, steht in Files / Filename auch nichts drinnen ;)

Freyr77 26. Jul 2016 15:51

AW: OpenDialog Mehrfachauswahl, Filename
 
Zitat:

Zitat von HolgerX (Beitrag 1343504)
Und immer schön

Delphi-Quellcode:
if OpenDialog1.Execute then begin

..

end;
Denn wo der Benutzer keine Datei ausgewählt hat, steht in Files / Filename auch nichts drinnen ;)

Das ist eine Button-Click Prozedur, deswegen bleibt dem Nutzer nichts anderes übrig außer etwas auszuwählen oder das Programm zu beenden :wink:
Hat jemand eine Lösung zu meiner eigentlichen Frage? Der Rest wird nachher überarbeitet, versprochen :lol:

ConnorMcLeod 26. Jul 2016 15:58

AW: OpenDialog Mehrfachauswahl, Filename
 
Zeig mal, was Du bisher hast (simples aber komplettes Beispielprojekt), damit ich verstehen kann, was Du nicht verstehst.
Weil nämlich - wenn das Ganze in einer Prozedur ist, dann hat die einen Namen. Und mittels dem Namen kann man sie dann auch aufrufen.
Sollte daran etwas nicht klar sein oder nicht funktionieren, dann seh ich lieber das ganze Bild als nur einen Ausschnitt.

Aviator 26. Jul 2016 22:47

AW: OpenDialog Mehrfachauswahl, Filename
 
Zitat:

Zitat von Freyr77 (Beitrag 1343505)
Zitat:

Zitat von HolgerX (Beitrag 1343504)
Und immer schön

Delphi-Quellcode:
if OpenDialog1.Execute then begin

..

end;
Denn wo der Benutzer keine Datei ausgewählt hat, steht in Files / Filename auch nichts drinnen ;)

Das ist eine Button-Click Prozedur, deswegen bleibt dem Nutzer nichts anderes übrig außer etwas auszuwählen oder das Programm zu beenden :wink:

Der Benutzer kann dann aber immer noch das X oder Abbrechen im OpenDialog anklicken. Und schon läuft deine Funktion ins Leere. Wieso sträubst du dich so davor es richtig zu machen? :shock: Es sind nur zwei Zeilen die du zu deinem Code hinzufügen müsstest und schon hättest du eine mögliche Fehlerquelle entfernt. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Seite 2 von 3     12 3      

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