Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi OpenDialog Zuweisung (https://www.delphipraxis.net/38159-opendialog-zuweisung.html)

Airblader 19. Jan 2005 10:36

Re: OpenDialog Zuweisung
 
Ich glaube nicht was vergessen zu haben, daher mal eine Einleitung in eine if-abfrage in delphi über mehrere zeilen

Delphi-Quellcode:
if bedingung then
begin
  irgendwas1();
  irgendwas2();
  ...
end;
du hast:

Delphi-Quellcode:
if bedingung then;
irgendwas1();
irgendwas2();
...
So erkennt delphi nicht nur, was alles in das if gehört, sondern es ist auch falsch.

ob das mit

Delphi-Quellcode:
'.htm; .html'
geht, weiß ich nicht,dazu enthalte ich mich.
aber die if() sind aus meiner sicht falsch ;)

Grolle 19. Jan 2005 10:47

Re: OpenDialog Zuweisung
 
Ja bei den If Anweisungen hast du natürlich Recht :wall:
Aber auch nach Änderung schmeißt er alles in die SynEdits
in die die Files nicht rein sollen.
Viele Grüße: Grolle

bigg 19. Jan 2005 11:32

Re: OpenDialog Zuweisung
 
Delphi-Quellcode:
procedure TForm1.Oeffnen(Sender: TObject);
var Ext: String;
begin
 
if OpenDialog1.Execute then {Wenn du auf Öffnen geklickt hast, dann....}
begin

{OpenDialog1.FileName = Kompletter Pfad zur Datei}
 
Ext := LowerCase(OpenDialog1.FileName); {Ermittle die Dateierweiterung und konvertiere sie in Kleinbuchstaben}

{dann filtern und laden, das macht sich aber in einer Schleife wesentlich besser}

end;
end;

Grolle 19. Jan 2005 11:45

Re: OpenDialog Zuweisung
 
Hallo Bigg
Zitat:

{dann filtern und laden, das macht sich aber in einer Schleife wesentlich besser}
Wie filter ich die Dateien denn in einer Schleife?
Viele Grüße: Grolle

Steve 19. Jan 2005 11:46

Re: OpenDialog Zuweisung
 
Zitat:

Zitat von Grolle
Ja bei den If Anweisungen hast du natürlich Recht :wall:
Aber auch nach Änderung schmeißt er alles in die SynEdits
in die die Files nicht rein sollen.

Hi,

vermutlich hast Du direkt hinter jedem THEN das Semikolon stehen lassen. Das heißt, dass bei erfüllter IF-Bedingung nix passiert. Der anschließende Code ist unabhängig von der IF-Bedingung.

Delphi-Quellcode:
If Bedingung=True Then // Hier KEIN Semikolon!
Begin
  MachWas();
  MachWer();
End;
Zitat:

ob das mit
Code:
'.htm; .html'
geht, weiß ich nicht,dazu enthalte ich mich.
Nein, das geht nicht. Das würde nämlich bedeuten, dass die Endung der Datei GENAU '.htm; .html' heißen muss. Du musst jede einzelne Endung prüfen:

Delphi-Quellcode:
IF (LowerCase(Endung)='.htm') OR (LowerCase(Endung)='.html') THEN ...
Gruß
Stephan :dance:

Grolle 19. Jan 2005 12:08

Re: OpenDialog Zuweisung
 
@ Steve
Funktioniert leider auch nicht. Wenn ich ; weglasse
lädt er gar nix mehr ins Program. Ich krieg die Kriseeeeeeeeee :x
Grolle

Steve 19. Jan 2005 12:14

Re: OpenDialog Zuweisung
 
Hi,

wenn Du die Prüfung ='.htm; .html' etc. gelassen hast, dann ist das vollkommen korrekt, dass er nix lädt, da die Bedingung nicht zutrifft. Wie oben beschrieben: prüfe jede einzelne Endung!

Also sowas in der Richtung:
Delphi-Quellcode:
IF (Endung='.html') OR (Endung='.htm') THEN // Ist die Endung htm oder html?
BEGIN // Nachfolgenden Code für obige Bedingung ausführen
  BlaBlubb;
END ELSE // Endung ist nicht htm oder html
IF (Endung='.c') OR (Endung='.cpp') OR (Endung='.h') THEN // Ist die Endung dann c, cpp oder h?
BEGIN // Nachfolgenden Code für obige Bedingung ausführen
  Blubber;
END ELSE // Endung ist auch nicht c, cpp oder h....
IF (Endung='.asp') THEN // Ist die Endung dann asp?
BEGIN // Nachfolgenden Code für obige Bedingung ausführen
  BliBlaBlubb;
END ELSE // Die Endung ist auch nicht asp
  ShowMessage('Das Format kann nicht dargestellt werden');

Gruß
Stephan :dance:

PS: Schau Dir für den Anfang doch mal ein paar Einsteiger-Tutorials zum Thema Delphi an :)

Grolle 19. Jan 2005 12:26

Re: OpenDialog Zuweisung
 
Hallo Steve!
Ich schick dir am Besten nochmal den Quelltext bevor
ich hier Amok laufe:
Delphi-Quellcode:
var
FileName: string;

begin
  OpenDialog1.Execute;
  if (LowerCase(FileName)='.htm') OR (LowerCase(FileName)='.html') then
  begin
    PageControl1.ActivePage := TabSheet1;
    SynEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
  end;
  if (LowerCase(FileName)='.php') or (LowerCase(FileName)='.php3')or
  (LowerCase(FileName)='.php4')or (LowerCase(FileName)='.dat') then
  begin
    PageControl1.ActivePage := TabSheet2;
    SynEdit2.Lines.LoadFromFile(OpenDialog1.FileName);
  end;
  if (LowerCase(FileName)='.pas') then
  begin
    PageControl1.ActivePage := TabSheet3;
    SynEdit3.Lines.LoadFromFile(OpenDialog1.FileName);
  end;

end;
Viele Grüße: Grolle

Steve 19. Jan 2005 12:30

Re: OpenDialog Zuweisung
 
Hi,

Du hast FileName als eigene Variable deklariert. Woher soll diese Variable denn wissen, was Du im openDialog ausgewählt hast?
Der OpenDialog hat eine Eigenschaft FileName. Die brauchst Du hier und folgendermaßen greifst Du darauf zu:

Delphi-Quellcode:
IF OpenDialog1.Execute THEN // Nachfolgender Code wird nur ausgeführt, wenn Datei im Dialog ausgewählt wurde!
BEGIN
  IF (LowerCase(OpenDialog.FileName)='.htm') OR (...) //etc.
  ELSE
  IF (LowerCase(OpenDialog.FileName)='.asp') //etc.
  ...
END;

Gruß
Stephan :dance:

Grolle 19. Jan 2005 12:45

Re: OpenDialog Zuweisung
 
Hi,
alles geändert, aber laden tut da nix. :(
Grolle


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

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-2025 by Thomas Breitkreuz