![]() |
Suchfunktion
Hallo Alle!
Ich habe mir hier eine Suchfunktion gebaut, welche aus einem TMemo einen bestimmten Text sucht.
Delphi-Quellcode:
Klappt ganz gut. Wie kann ich nun erreichen, dass der gefundene Text immer in der ersten Linie erscheint?
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; Gruß Heike |
Re: Suchfunktion
Hallo,
kannst Du bitte erläutern, was Du mit "immer in der ersten Linie" meinst? Das würde helfen :wink: . Gruß xaromz |
Re: Suchfunktion
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) ._. |
Re: Suchfunktion
Versuch mal
Delphi-Quellcode:
.
ScrollBy();
Delphi-Quellcode:
Da fehlt ein "-1". :)
for I := 0 to Memo2.Lines.Count do
|
Re: Suchfunktion
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 :wall: ] |
Re: Suchfunktion
Zitat:
Gruß Heike |
Re: Suchfunktion
Zitat:
Zitat:
Gruß Heike |
Re: Suchfunktion
Versuch das hier mal:
Delphi-Quellcode:
Edit:
Memo2.ScrollContent(dirUp)
Sorry das bezieht sich auf das von mir benutzte TcxMemo. |
Re: Suchfunktion
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 ^^) |
Re: Suchfunktion
Hallo,
zum Bestimmen der momentanen Startzeile ist die Message ![]() Mit ![]() Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz