AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

gerade geschriebenes wort erkennen

Ein Thema von Gentleman · begonnen am 30. Okt 2004 · letzter Beitrag vom 4. Nov 2004
Antwort Antwort
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#1

gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 20:12
hi!

ich habe einen Richedit in den belibiger text eingegeben werden kann.ich möchte jetzt bei jedem tastendruck das gerade geschriebene wort erkennen. ich habe schon so einiges versucht...allerdings ohne erfolg. ich hoffe ihr könnt mir helfen.


thx im voraus!
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 20:18
Du könntest beim TRichedit.OnChange die aktuelle Zeile (zu bekommen pber Delphi-Referenz durchsuchenCaretPos.Y) holen und dir das Wort bei CaretPos.X kopieren. Vielleicht so:
Delphi-Quellcode:
procedure TForm1.Richedit1Change(Sender: TObject);
var
  Line, Word: string;
  i, t: integer;
  Delimiters: set of Char;
begin
  Delimiters := [' ', ';', ',', '.', '-']; //Viel mehr Möglichkeiten..
  Line := Richedit1.Lines[Richedit1.CaretPos.Y-1];
  for i := Richedit1.CaretPos.X downto 1 do
    if Line[i] in Delimiters then Break;
  for t := Richedit1.CaretPos.X to Length(Line) do
    if Line[i] in Delimiters then Break;
  Word := Copy(Line, i, t-i);
end;
  Mit Zitat antworten Zitat
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 20:35
also irgendwie funzt das nich...oder bin ich jetzt zu blöd ?
wenn ich das ganze so ins OnChane schreibe dann bekomme ich eine Fehlermeldung, wegen dem Break-befehl.
muss ich da noch was ändern?
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 20:41
Irgendwie hab' ich da was durcheinander gebracht.. aber jetzt stimmts.
Delphi-Quellcode:
var
  Line, Word: string;
  i, t: integer;
  Delimiters: set of Char;
begin
  Delimiters := [' ', ';', ',', '.', '-']; //Viel mehr Möglichkeiten..
  Line := Richedit1.Lines[Richedit1.CaretPos.Y];
  for i := Richedit1.CaretPos.X downto 1 do
    if Line[i] in Delimiters then Break;
  for t := Richedit1.CaretPos.X to Length(Line) do
    if Line[t] in Delimiters then Break;
  Word := Copy(Line, i, t-i);
end;
  Mit Zitat antworten Zitat
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 21:02
erst mal vielen dank!das geschriebene wort wird jetzt erkannt. allerding bringt er mir jetzt eine fehlermeldung, wenn ich eine neue zeile beginne...
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 21:03
ich glaube da hatten wir auch schon so manchen thread dazu...
allerdings muss ich gestehen dass ich nicht weis was man so als suchwort eintippen könnte
vielleicht findest du trotzdem was hier in der dp...
  Mit Zitat antworten Zitat
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 21:08
im forum hab ich auch schon gesucht...aber leider nichts brauchbares gefunden. die meisten theards sind über pos und so weiter, das hilft mir allerdings nicht so richtig weiter...
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: gerade geschriebenes wort erkennen

  Alt 30. Okt 2004, 21:12
Wenn ich mich nicht ganz irre, wird ein ähnlicher Code auch in SynEdit verwendet, um die Wörter für den Highlighter aus dem Text zu holen..
  Mit Zitat antworten Zitat
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: gerade geschriebenes wort erkennen

  Alt 4. Nov 2004, 16:50
falls es noch jemanden interessiert, hab ich hier nochmal den code so wie er bei mir einwandfrei funzt...

Code:
procedure TForm1.RichEdit1Change(Sender: TObject);
var
  Line: string;
  i, t, X: integer;
  Delimiters: set of Char;
begin
  Delimiters := [' ', ';', ',', '.', '-']; //Viel mehr Möglichkeiten..
  Line := Richedit1.Lines[Richedit1.CaretPos.Y];
  for i := Richedit1.CaretPos.X downto 1 do
    if Line[i] in Delimiters then Break;
  if Line<> '' then
    begin
      for t := Richedit1.CaretPos.X to Length(Line) do
        if Line[t] in Delimiters then Break;
    end;
  Word := Copy(Line, i, t-i);
end;
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz