Autor Beitrag
DiamondDog
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 460



BeitragVerfasst: Do 12.02.09 15:26 
Hallo Leute,
ich hab da folgendes und zwar:
Mein Richedit2 (10 Zeilen) ändert sich alle paar Sekunden.
Wenn jetzt die erste Zeile von Richedit1 und Richedit2 nicht übereinstimmen,
soll die erste Zeile von Richedit1 in Richedit 2 gesucht werden und alles was dann über dieser Zeile steht (aktuell) soll in das Richedit1 mit reingeschrieben werden.
Also so das Richedit1 immer länger wird und das Aktuellste ganz oben steht.

Beispiel der Richedit1:
ausblenden Quelltext
1:
2:
3:
Blabla3
Blablabla2
Bla1

Richedit2:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
Blablablabla6
Blabla5
Blabla4
Blabla3
Blablabla2
Bla1
jetzt soll das Blabla5 und Blablablabla6 oben in das Richedit 1 eingefügt werden.
Ich hab es schon soweit das ich rausbekomme, wenn der erste Eintrag nicht gleich ist.
ausblenden Delphi-Quelltext
1:
2:
3:
if Richedit2.Lines[0] <> Richedit1.Lines[0] then
  begin
  end;
Danke schon mal fürs Helfen

Mfg Dog.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 12.02.09 15:37 
Versuch es mal mit Richedit2.Lines.IndexOf(Richedit1.Lines[0])
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 12.02.09 15:39 
Wenn du das RichEdit änderst, dann hast du doch die Informationen schon, warum verwendest du die dann an der Stelle nicht gleich um direkt auch das andere RichEdit zu aktualisieren?

Nebenbei wäre es vermutlich eine gute Idee die Informationen von der Darstellung zu trennen, dann würde das Problem gar nicht auftreten. Nur dadurch, dass du die RichEdits als Informationsspeicher benutzt, musst du das ja überhaupt so machen.
DiamondDog Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 460



BeitragVerfasst: Do 12.02.09 17:25 
@ DeddyH habs mal so gemacht aber so ist es nicht wirklich richtig:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if Richedit2.Lines[0] <> Richedit1.Lines[0] then
  begin
    Richedit2.Lines.IndexOf(Richedit1.Lines[0]);
  end;


@jaenicke wenn du mir sagst wie ich es mit einem RichEdit hinbekomme dann wäre es natürlich noch besser. Ich hab nur den Ansatz mit den 2en leider.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 12.02.09 17:41 
user profile iconDiamondDog hat folgendes geschrieben Zum zitierten Posting springen:
@ DeddyH habs mal so gemacht aber so ist es nicht wirklich richtig:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if Richedit2.Lines[0] <> Richedit1.Lines[0] then
  begin
    Richedit2.Lines.IndexOf(Richedit1.Lines[0]);
  end;
Du machst dort ja auch nix, du schaust nur nach, in welcher Zeile in RichEdit2 die erste Zeile von RichEdit1 steht, machst mit dieser Information aber nichts. :nixweiss:

user profile iconDiamondDog hat folgendes geschrieben Zum zitierten Posting springen:
@jaenicke wenn du mir sagst wie ich es mit einem RichEdit hinbekomme dann wäre es natürlich noch besser. Ich hab nur den Ansatz mit den 2en leider.
Irgendwoher müssen die Daten ja kommen, woher weiß ich ja nicht.

Wenn du die unabhängig von der visuellen Komponente TRichEdit verwalten würdest, dann könntest du im RichEdit nur das anzeigen was angezeigt werden soll ohne daraus Daten wieder zur Verarbeitung auslesen zu müssen.
DiamondDog Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 460



BeitragVerfasst: Do 12.02.09 19:23 
Ahhh ich glaubs ich habs so müste es richtig sein:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if Richedit2.Lines[0] <> Richedit1.Lines[0] then
  begin
    for i := Richedit2.Lines.IndexOf(Richedit1.Lines[0])-1 downto 0 do
      begin
        Richedit1.Lines.Insert (0,Richedit2.Lines[i]);
      end;
  end;