Autor Beitrag
sneki
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 10.03.10 21:24 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
sneki Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 10.03.10 23:15 
Herzlichen Dank!

Ich werde es ausprobieren und hoffe es funktioniert ;)
sneki Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 13.03.10 14:42 
so also irgendwie kriege ich mein Rezept nicht in das Richedit...
ausblenden 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:)
ausblenden 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;

//Befüllen der Variablen ran 1-20 mit den Daten (Name und Pfad zur Backanleitung)
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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Sa 13.03.10 16:36 
Die Reihenfolge deiner Aufrufe ist hier falsch.
  1. Du zeigst Form2 modal an. Deine Funktion läuft erst weiter wenn Form2 geschlossen wird.
  2. Danach füllst du das Richedit mit deinem Text.

Stell mal das Form2.ShowModal ans Ende der Funktion.
sneki Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
sneki Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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