Entwickler-Ecke
Dateizugriff - Richtextformat in richedit laden?
sneki - Mi 10.03.10 21:24
Titel: Richtextformat in richedit laden?
Hallo!
Wir sollen zur Zeit im Rahmen unseres Info-Unterrichts ein kleines Programm erstellen und meine Freundin und ich haben uns ein interaktives Backbuch ausgedacht.
Ein Teil davon ist, dass die gefundenen Rezepte in einer Listbox ausgegeben werden (mit Namen). Nun soll sich bei Doppelklick auf das Rezept ein neues Fenster öffnen wo dann die ganze Backanleitung drin steht...
Da habe ich das Problem:
Ich dachte zur Ausgabe der Rezepte an ein RichEdit in das ich, hoffe ich, Dateien im RichText-Format laden kann, denn wenn es nur .txt ist, geht leider unsere schöne Formatierung verloren. Nun weiß ich jedoch nicht, wie ich einen zusammenhängenden Text mit Leerzeilen & co in das RichEdit in dem neuen Fenster (Form2) bekomme. Bzw wie ich damit umgehe. Es müssen ja folgende Sachen ablaufen:
Bei Doppelklick auf die Listbox in Form1 : Öffnen von Form2 und gleichzeitiges Laden der Datei XYZ (is ja bei jedem Rezept anders) in das RichEdit
Dann müsste sich der Text löschen wenn man in Form1 nochmal ein Rezept anklickt, oder ich müsste Form1 irgendwie deaktivieren können, wenn Form2 geöffnet ist. da weiß ich auch nicht wie ich das machen soll :(
Wäre sehr schön wenn ich Hilfe finden würde :) Mein Lehrer und ich haben schon gesucht wie man nun so einen Text in das RichEdit kriegt, aber wirklich was gefunden haben wir nicht.
elundril - Mi 10.03.10 21:35
Hallo und :welcome: im Delphi-Forum!
Laden kann man mit der Methode Richedit1.Lines.LoadFromFile(EuerDateinameVonDemRezept);.
Das Form1 nicht anklickbar ist, kann man erreichen indem ihr Form2.ShowModal; aufruft.
ich hoffe ich habe alle fragen aus dem text rausgefiltert. :)
lg elundril
sneki - Mi 10.03.10 23:15
Herzlichen Dank!
Ich werde es ausprobieren und hoffe es funktioniert ;)
sneki - Sa 13.03.10 14:42
so also irgendwie kriege ich mein Rezept nicht in das Richedit...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.ListBox1DblClick(Sender: TObject); begin
Form2.ShowModal;
i:=0;
for i:=1 to 20 do begin if Listbox1.Items[Listbox1.ItemIndex]=ran[i].Name then Form2.Richedit1.Lines.Loadfromfile(ran[i].Anleitung); end;
end; |
so sieht das ganze jetzt aus. Die Listbox befindet sich in Form1. wenn man doppelt auf die klickt (also auf einen angezeigten Rezeptnamen) soll sich der Pfad, der in ran[i].Anleitung gespeichert ist, im Richedit in Form2 öffnen. Also der gespeicherte Pfad ist z.b. kirsche1.rtf.
(Die Pfade werden beim Aufruf des Programms aus einer txt Datei geladen:)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| sl:=TStringlist.Create;
sl.LoadFromFile('pfadname.txt');
zeilennr:=0; i:=0;
for i:=1 to 20 do begin ran[i].Name:=sl[zeilennr]; ran[i].Anleitung:=sl[zeilennr+1];
if zeilennr<sl.count-1 then zeilennr:=zeilennr+2; end;
sl.Free; |
Das Problem ist aber, wenn ich doppelt auf den Namen in der Listbox klicke, dann öffnet sich zwars Form2 aber im Richedit steht nach wie vor nur "RichEdit1" und mein text ist nirgends zu sehen :(
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
SvenAbeln - Sa 13.03.10 16:36
Die Reihenfolge deiner Aufrufe ist hier falsch.
- Du zeigst Form2 modal an. Deine Funktion läuft erst weiter wenn Form2 geschlossen wird.
- Danach füllst du das Richedit mit deinem Text.
Stell mal das Form2.ShowModal ans Ende der Funktion.
sneki - Sa 13.03.10 16:38
danke!!!! jetzt funktioniert alles super :)
wie so ein kleiner fehler alles zunichte machen kann hihi :)
DANKE :)
Jetz habe ich nur nochein Problem:
Ich dachte das RichEdit macht es vllt von alleine, aber leider nicht:
Der Text is länger als das Richedit, wie krieg ich das hin, dass ein Scrollbalken erscheint im RichEdit? geht das?
elundril - Sa 13.03.10 16:41
Da gibts ne schöne Eigenschaft des Richedits, ich glaub sie heißt sogar scrollbars. Da mit dem wert einfach mal herumspielen. ;)
lg elundril
sneki - Sa 13.03.10 16:42
ja danke, habs gefunden ^^
ich denke dann wars das zu dem Thread ;)
*mal markieren werd*
danke an euch <3
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!