Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - 3 + 2 = 5 Fragen zu RichEdit
StefanH - Di 13.05.03 21:27
Titel: 3 + 2 = 5 Fragen zu RichEdit
Hallo zusammen!!
Ich möchte in meinem RichEdit folgendes machen:
- die letzten Zweizeilen löschen
- eine Zeile mit bestimmten Inhlat löschen
- Die corsorpositoin festsetzen
zu 3.: ich habs so probiert:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.RichEdit1Change(sender: Tobject); begin RichEdit.CaretPos.x:= 3 end; |
Kommt aber:
Zitat: |
Der linken Seite kann nichts zu gewiesen werden. |
Heißt das, dass das "Readonly" ist????
//Edit:
Und nun die anderen 2:
- Schauen ob ein bestimmtes Wort öfter auftaucht als ein anders (z.B.: ob mehr Klammern geöffnet sin als geschlossen)
- Verhindern, dass man nach Textende noch scrollen kann bis der Text ganz weg ist
Stefan
Moderiert von
Tino: Code-Tag hinzugefügt.[/list]
Ex0rzist - Di 13.05.03 21:45
1.
Delphi-Quelltext
1: 2: 3: 4: 5:
| If RichEdit1.Lines.Count > 1 do begin RichEdit1.Lines.Delete(RichEdit1.Lines.Count-1); RichEdit1.Lines.Delete(RichEdit1.Lines.Count-2); end; |
2.
Delphi-Quelltext
1: 2: 3:
| For i := 0 to RichEdit1.Lines.Count-1 do If RichEdit1.Lines[i] = 'Das soll in der Zeile stehen' then RichEdit1.Lines.Delete[i]; |
3. Dafür habe ich jetzt keinen Code parat, auf jeden Fall musst du mit
RichEdit1.SelStart arbeiten (siehe Online-Hilfe).
P.S.: RichEdit.CaretPos ist ReadOnly.
flow - Mi 14.05.03 07:46
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure GetRichEditRowCol(R: TRichEdit; var Row, Col : LongInt); begin Row := SendMessage(R.Handle, EM_LINEFROMCHAR, R.SelStart, 0); Col := M.SelStart-SendMessage(R.Handle, EM_LINEINDEX, Row, 0); end; |
Gibt dir die genaue Zeile und Spalte wo sich der Cursor befindet.
Delphi-Quelltext
1: 2: 3: 4:
| procedure SetRichEditRowCol(R : TRichEdit; Row, Col : Integer); begin R.SelStart := SendMessage(R.Handle, EM_LINEINDEX, Row, 0) + Col; end; |
Setzt dir die genaue Cursor Position.
FLOW
Simon Joker - Mi 14.05.03 11:20
Hi
zu 1:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| i:=2; while (Memo1.Lines.Count>0) and (i>0) do begin Memo1.Lines.Delete(Memo1.Lines.Count-1); dec(i); end; |
ich würde es so lösen.
@Ex0rzist
dein Vorschlag crasht. Du löschtst erst die letzte Zeile und dann die VORLETZTE! Bei mehr als 2 Zeilen wird die falsche gelöscht und bei 2 Zeilen versuchst du Zeile -1 zulöschen. Die Befehle müssen getauscht werden.
StefanH - Mi 14.05.03 15:47
Jo, Danke!! Werds probieren (wird schon gehen, ich will euch ja nicht schlecht machen :wink: )
Ex0rzist - Do 15.05.03 19:36
@Simon Joker
Stimmt. :shock:
Asche auf mein Haupt.
StefanH - Do 15.05.03 19:38
Ex0rzist hat folgendes geschrieben: |
2. Delphi-Quelltext 1: 2: 3:
| For i := 0 to RichEdit1.Lines.Count-1 do If RichEdit1.Lines[i] = 'Das soll in der Zeile stehen' then RichEdit1.Lines.Delete[i]; <-: Fehlermeldung |
|
Fehlermeldung hat folgendes geschrieben: |
Nicht genügend wirkliche Paramenter :( |
mfg Stefan
Ex0rzist - Do 15.05.03 20:01
Delphi-Quelltext
1: 2: 3:
| For i := 0 to RichEdit1.Lines.Count-1 do If RichEdit1.Lines[i] = 'Das soll in der Zeile stehen' then RichEdit1.Lines.Delete(i); |
Da müssen natürlich runde Klammern hin. Immer diese Flüchtigkeitsfehler ...
StefanH - Do 22.05.03 19:26
Und nun die anderen 2:
- Schauen ob ein bestimmtes Wort öfter auftaucht als ein anders (z.B.: ob mehr Klammern geöffnet sin als geschlossen)
- Verhindern, dass man nach Textende noch scrollen kann bis der Text ganz weg ist
Stefan
GSE - So 25.05.03 12:34
zu 1.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure CompareWords(text, wort1, wort2: string); var p, p2, cw1, cw2: integer; begin cw1 := 0; cw2 := 0; p := 1; p2 := 1; Repeat p := pos(wort1,text); if p <> 0 then begin inc(cw1); delete(text,p,length(wort1)); end; p2 := pos(wort2,text); if p2 <> 0 then begin inc(cw2); delete(text,p2,length(wort2)); end; Until (p = 0) and (p2 = 0); if cw1 > cw2 then showmessage(wort1+' ist häufiger '+wort2); if cw1 < cw2 then showmessage(wort2+' ist häufiger als '+wort1); if cw1 = cw2 then showmessage(wort1+' ist genauso oft vorhanden wie '+wort2); end; |
mfg
GSE
Moderiert von
tommie-lie: Code- durch Delphi-Tags ersetzt
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!