Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Text Datei in einem Memo Feld anzeigen lassen ?


Daniel07A - Sa 15.01.05 13:39
Titel: Text Datei in einem Memo Feld anzeigen lassen ?
Hi,

Ich hab das Problem, dass ich es nicht schaffe eine Text Datei, die ich selber geschrieben habe in einem Memofeld anzeigen zu lassen, wenn ich auf einen Button klicke.
Ihr habt zwar schon ein par threads zu diesem Thema, aber ich verstehe das mit dem 'opendialog.filename:=...' nicht wirklich. Wie bekomme ich die .txt Datei in Delphi rein und welchen Pfad muss ich angeben um darauf zugreifen zu können ?

Gruß daniel


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mo 17.01.2005 um 09:02


Keldorn - Sa 15.01.05 13:46

eine zuweisung von opendialog1.filename wird dir nichts bringen, du willst den ausgewählten dateinamen auslesen.

Delphi-Quelltext
1:
if opendialog1.execute then memo1.lines.loadfromfile(opendialog1.filneme)                    


Mfg Frank


Daniel07A - Sa 15.01.05 13:52

ok aber,


Delphi-Quelltext
1:
if opendialog1.execute then memo1.lines.loadfromfile(opendialog1.filneme)                    


Was soll 'opendialog1' heißen (bzw. die '1') ? und

was soll ich bei dem 'filename' eingeben (den ganzen pfad mit C:\... wo ich die text datei gespeichert habe?)?


Keldorn - Sa 15.01.05 14:00

den opendialog hast du doch selber ins spiel gebracht :gruebel:.
Der opendialog ist eine zur laufzeit nicht sichtbare Komponente, die du auf die form ziehen kannst (Registerkarte dialogs). die 1 dahinter ist Standard, du kannst das ding doch nennen wie du willst. mit execute wird der Dateiauswahldialog geöffnet und du kannst eine/mehrere dateien, je nach option, auswählen. mit opendialog.filename erhälst du die ausgewählte Datei, mit opendialog.files die ausgewählten Dateien.

du kannst natürlich auch die Datei ohne dialog selbst angegeben

Delphi-Quelltext
1:
memo1.lins.loadfromfile(Dateiname)                    

Was du als Dateinamen angibst, bleibt dir überlassen. Letzendlich sollte er so gewählt sein, das dort auch die Datei liegt :mrgreen:. Du solltest immmer den kompletten Pfad mitangeben.

mfg Frank


Coder - Sa 15.01.05 14:02

Ich glaube er will nur eine vorbestimmte Datei laden, ohne einen OpenDialog.

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.lines.loadfromfile('C:\textdatei.txt');
end;

(Mist, wieder zu langsam)


Daniel07A - Sa 15.01.05 14:20

ok habs hinbekommen.

wenn der text jetzt länger ist als das Memo Feld, wie muss ich dann eine Scrollbar einfügen ?

Danke aber schonmal an alle für die gute Hilfe.


Delete - Sa 15.01.05 14:22

Stell mal die Eigenschaft Scrollbars deines Memos auf ssBoth !


Daniel07A - Sa 15.01.05 14:33

ok auch hinbekommen.

ich würd aber gerne noch eine andere Freage stellen.

Kann ich irgendwie die Schrift im text dokument fett machen oder färben, so das ich es auch im memo feld dann fett sehe. da gibt es doch bestimmt eine tabelle für mit allen befehlen.


Keldorn - Sa 15.01.05 14:36

nein, das geht mit einem memo für einzelne Textteile nicht, nur in einem richedit. Gugg dir beim richedit die sel-*eigenschaften an und such im forum danach.


Coder - Sa 15.01.05 14:38

Du kannst nur die Schriftart vom Kompletten Text ändern, ansonsten musst du ein RichEdit nehmen.


Daniel07A - Sa 15.01.05 15:05

ja ne dann lass ich es erstmal so wie es jetzt ist.

wenn ich das programm jetzt nur mit der exe datei abspielen will , auf einem anderen pc, findet er die .txt dokumente nicht. muss ich dann immer den ganzen ordner mit allen units und txt dokumenten mit kopieren, oder geht das auch anders ?


Delete - Sa 15.01.05 16:32

Die .txts ja, die Units nein. Du könntest allerdings auch alle Textfiles mit in die exe kompilieren, wodurch du nur noch die exe ansich wietergeben musst. Stichwort Suche in: Delphi-Forum, Delphi-Library RESSOURCE


Daniel07A - Sa 15.01.05 18:23

ok hab mal im forum geschaut aber nicht wirklich alles verstanden.

Zitat:

Man kann eine beliebige Datei als TXT Ressource in eine
Exe-Datei einbinden.
Das folgende Beispiel zeigt, wie man eine Text-Datei aus
einer Ressource lädt und in einem TMemo anzeigt.

Erstelle zuerst mit einem TextEditor eine Datei "textres.rc" mit folgendem Inhalt:

File1 TXT file1.txt
File2 TXT file2.txt

Kompiliere diese mit brcc32.exe: in deinen Delphi Ordner unter Delphi\bin

brcc32.exe textres.rc

Es wurde nun eine textres.res Datei erzeugt.
Kopiere nun die textres.res Datei in deinen Projekt Ordner
*)



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
implementation

{$R *.dfm}
{$R textres.res}  // <---- hier deine Ressource eintragen!

procedure TForm1.Button1Click(Sender: TObject);
var
  ResStream: TResourceStream;
begin
  ResStream := TResourceStream.Create(HInstance, 'File2''TXT');
  Memo1.Lines.LoadFromStream(ResStream);
  ResStream.Free;
end;



so, jetzt weiß ich aber nicht wie ich diese textres datei kompilieren soll. ich habe bis dahin alles so gemacht wie es da steht. aber ich kann diese brcc32 datei nicht öffnen bzw. weiß ich nicht wie man was kompiliert ?


Tino - Mo 17.01.05 10:02

Hallo Danil und :welcome: im Delphi-Forum.de!

Bitte stelle in einem Topic immer nur eine Frage. Für jede weitere Frage erstelle ein neues Topic in der richtigen Sparte. Ansonsten blickt nacher keiner mehr durch. Da die erste Frage bereits beantwortet ist schließe ich das Topic mal.

Gruß
Tino