![]() |
OpenDialog Zuweisung
Wie kann ich denn mit dem OpenDialog verschiedene Files
verschiedenen SyneditFeldern zuweisen? THX: Grolle |
Re: OpenDialog Zuweisung
Hi,
Etwa so ähnlich (Code muss noch angepasst werden an viele Synedit Felder)
Delphi-Quellcode:
var
i: Integer; begin if OpenDialog1.Execute then for i := 0 to OpenDialog1.Files.Count - 1 do SyneditFeldX.LoadFromFile(Files[i]); |
Re: OpenDialog Zuweisung
Danke für die schnelle Antwort.
Wo greife ich bei deinem Beispiel auf die Filter zu? Grolle |
Re: OpenDialog Zuweisung
Hi,
ja einfach deine OpenDialog Kompo markieren und dann im Objektinspektor/Eigenschaften Filter auswählen. :wink: MfG Marc |
Re: OpenDialog Zuweisung
Hi Marc!
Definiere ich dann die Files lt. dem Programmbsp. oben durch die Variable i? Wie weiß ich welcher Filter wie zu- geordnet ist? Fragen über Fragen :gruebel: Thx: Grolle |
Re: OpenDialog Zuweisung
Hi,
folgendes: Hohle dir eine OpenDialog Kompo. auf das Formular. Markiere die Kompo. -> Im Filter z.B.: Unter; Filtername -> Textdateien (*.txt) Filter -> *.txt Damit werden nur Dateien mit der Kennung .txt angezeigt. Das war's schon. :wink: MfG Marc |
Re: OpenDialog Zuweisung
Hi!
Also, wie ich die Filter vom OpenDialog definiere ist mir klar. Ich möchte aber: Wenn du eine *.pas Datei öffnest, dann in PageControl1.ActivePage := TabSheet1; SynEdit1 wenn du eine *.cpp Datei öffnest, dann in PageControl1.ActivePage := TabSheet2; SynEdit2 wenn du eine *.txt Datei öffnest, dann in PageControl1.ActivePage := TabSheet3; SynEdit3 Ich weiß einfach nicht, wie ich die Zuweisung in die jeweiligen SynEdit Felder mache. Viele Grüße: Grolle |
Re: OpenDialog Zuweisung
|
Re: OpenDialog Zuweisung
Schreib dir eine Funktion die die Dateien öffnet. :zwinker:
|
Re: OpenDialog Zuweisung
Ich greif das Thema nochmal auf. Ich habe jetzt folgenden Code:
Delphi-Quellcode:
Das File wird aber in alle SynEdits geladen. Was mache ich dagegen? :gruebel:
procedure TForm1.ffnen1Click(Sender: TObject);
var FileName: string; begin OpenDialog1.Execute; if LowerCase(ExtractFileExt(FileName))='.htm; .html' then; PageControl1.ActivePage := TabSheet1; SynEdit1.Lines.LoadFromFile(OpenDialog1.FileName); if LowerCase(ExtractFileExt(FileName))='.php; .php3; .php4; .dat' then; PageControl1.ActivePage := TabSheet2; SynEdit2.Lines.LoadFromFile(OpenDialog1.FileName); if LowerCase(ExtractFileExt(FileName))='.pas' then; PageControl1.ActivePage := TabSheet3; SynEdit3.Lines.LoadFromFile(OpenDialog1.FileName); if LowerCase(ExtractFileExt(FileName))='.h; .c; .cs; .hh; .cpp' then; PageControl1.ActivePage := TabSheet4; SynEdit4.Lines.LoadFromFile(OpenDialog1.FileName); end; Grolle |
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:
du hast:
if bedingung then
begin irgendwas1(); irgendwas2(); ... end;
Delphi-Quellcode:
So erkennt delphi nicht nur, was alles in das if gehört, sondern es ist auch falsch.
if bedingung then;
irgendwas1(); irgendwas2(); ... ob das mit
Delphi-Quellcode:
geht, weiß ich nicht,dazu enthalte ich mich.
'.htm; .html'
aber die if() sind aus meiner sicht falsch ;) |
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 |
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; |
Re: OpenDialog Zuweisung
Hallo Bigg
Zitat:
Viele Grüße: Grolle |
Re: OpenDialog Zuweisung
Zitat:
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:
Delphi-Quellcode:
Gruß
IF (LowerCase(Endung)='.htm') OR (LowerCase(Endung)='.html') THEN ...
Stephan :dance: |
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 |
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 :) |
Re: OpenDialog Zuweisung
Hallo Steve!
Ich schick dir am Besten nochmal den Quelltext bevor ich hier Amok laufe:
Delphi-Quellcode:
Viele Grüße: Grolle
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; |
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: |
Re: OpenDialog Zuweisung
Hi,
alles geändert, aber laden tut da nix. :( Grolle |
Re: OpenDialog Zuweisung
Hi,
hatte da was ganz übersehen: Du prüfst, ob der gesamte Dateiname einer bestimmten Endung entspricht. Auch das wird wohl kaum zutreffen --> ![]() Gruß Stephan |
Re: OpenDialog Zuweisung
Das war es!!!
1000 dank für deine Geduld. :thumb: Cheers: Grolle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr. |
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