AGB  ·  Datenschutz  ·  Impressum  







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

Suchfunktion

Ein Thema von smart · begonnen am 11. Jul 2006 · letzter Beitrag vom 11. Jul 2006
Antwort Antwort
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Suchfunktion

  Alt 11. Jul 2006, 14:09
Hallo Alle!

Ich habe mir hier eine Suchfunktion gebaut, welche aus einem TMemo einen bestimmten Text sucht.
Delphi-Quellcode:
procedure TBondruck.Button4Click(Sender: TObject);
Var
  I, J, PosReturn, SkipChars: Integer;
begin
  for I := 0 to Memo2.Lines.Count do
  begin
    PosReturn := Pos(Edit1.Text,Memo2.Lines[I]);
    if PosReturn <> 0 then {gefunden!}
    begin
      Skipchars := 0;
      for J := 0 to I - 1 do
        Skipchars := Skipchars + Length(Memo2.Lines[J]);
      SkipChars := SkipChars + (I*2);
      SkipChars := SkipChars + PosReturn - 1;

      Memo2.SetFocus;
      Memo2.SelStart := SkipChars;
      Memo2.SelLength := Length(Edit1.Text);
      Break;
    end;
  end;
end;
Klappt ganz gut. Wie kann ich nun erreichen, dass der gefundene Text immer in der ersten Linie erscheint?

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Suchfunktion

  Alt 11. Jul 2006, 14:18
Hallo,

kannst Du bitte erläutern, was Du mit "immer in der ersten Linie" meinst? Das würde helfen .

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

Re: Suchfunktion

  Alt 11. Jul 2006, 14:36
Es soll bestimmt so gescrollt werden, das der markierte Textabschnitt soweit wie möglich im orbern sichtbaren Bereich liegt.

(hab nur keine Ahnung wie man scrollt ... programmseitig) ._.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: Suchfunktion

  Alt 11. Jul 2006, 14:38
Versuch mal
ScrollBy(); .

for I := 0 to Memo2.Lines.Count do Da fehlt ein "-1".
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Suchfunktion

  Alt 11. Jul 2006, 14:39
IMHO wenn in Zeile X der Text gefunden wird kommt Zeile X im Memo in die Erste Zeile und der Rest rutscht eins runter...


[rot][nochmal rot ]
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Suchfunktion

  Alt 11. Jul 2006, 14:51
Zitat von xaromz:
Hallo,

kannst Du bitte erläutern, was Du mit "immer in der ersten Linie" meinst? Das würde helfen .
xaromz
Es soll im TMemo der gefundene Text nach oben gescrollt werden, so dass er in der ersten Zeile steht.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Suchfunktion

  Alt 11. Jul 2006, 14:56
Zitat von ste_ett:
Versuch mal
ScrollBy();
Schade, klappt leider nicht!
Zitat von ste_ett:
for I := 0 to Memo2.Lines.Count do Da fehlt ein "-1".
Vielen Dank, habe ich vergessen.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: Suchfunktion

  Alt 11. Jul 2006, 15:00
Versuch das hier mal:
Memo2.ScrollContent(dirUp) Edit:
Sorry das bezieht sich auf das von mir benutzte TcxMemo.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

Re: Suchfunktion

  Alt 11. Jul 2006, 15:02
ScrollBy scrollt doch nur Relativ?
Dann müßtest du ja erstmal die Position des Testes rausfinden und die aktuelle Scrollposition und könntest dann per ScrollBy die Diverenz hoch-/runterscrollen.

Aber gibt es nicht zumindestens einen Befehl, welcher den markierten Text in den Sichtbaren Bereich scrollt? (zwar nicht nach ganz oben, aber immerhin kann man den dann sehen ^^)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Suchfunktion

  Alt 11. Jul 2006, 15:09
Hallo,

zum Bestimmen der momentanen Startzeile ist die Message MSDN-Library durchsuchenEM_GETFIRSTVISIBLELINE geeignet.
Mit MSDN-Library durchsuchenEM_LINESCROLL kannst Du festlegen, wie viele Zeilen gescrollt werden sollen.

Gruß
xaromz
  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 09:54 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