<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Lazarus Pascal - Snel en eenvoudige een zoek functie toevoegen aan een TMemo - Delphi, Lazarus, Free Pascal				            </title>
            <link>https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-snel-en-eenvoudige-een-zoek-functie-toevoegen-aan-een-tmemo/</link>
            <description>Tweaking4All.nl Discussie Forum</description>
            <language>nl-NL</language>
            <lastBuildDate>Sat, 05 Sep 2026 21:03:08 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Lazarus Pascal - Snel en eenvoudige een zoek functie toevoegen aan een TMemo</title>
                        <link>https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-snel-en-eenvoudige-een-zoek-functie-toevoegen-aan-een-tmemo/#post-1596</link>
                        <pubDate>Sun, 25 Sep 2022 10:37:04 +0000</pubDate>
                        <description><![CDATA[Ik wilde een zoekfunctie toevoegen aan een TMemo (Memo1) in een van mijn projecten - met de optie om van gevonden tekst naar de volgende gevonden tekst te springen, en de gevonden tekst te h...]]></description>
                        <content:encoded><![CDATA[<p>Ik wilde een zoekfunctie toevoegen aan een TMemo (<strong>Memo1</strong>) in een van mijn projecten - met de optie om van gevonden tekst naar de volgende gevonden tekst te springen, en de gevonden tekst te highlighten.<br />Dit is geheel gebaseerd op <a href="https://wiki.freepascal.org/TMemo#Search_text" target="_blank" rel="noopener">dit voorbeeld in de Lazarus Wiki</a> - ik plaats het hier met wat kleine modificaties en voor mijn eigen referentie.</p>
<p>Uiteraard hebben we hiervoor een TEdit (<strong>Edit1</strong>, enter search criteria) en een TButton (<strong>Button1</strong>) nodif.</p>
<pre contenteditable="false">...
Uses ... , StrUtils, LazUTF8;

...
function TForm1.FindInMemo(AString: String; StartPos: Integer): Integer;
begin
  Result := PosEx(AString, Memo1.Text, StartPos);

  if Result &gt; 0 then
    begin
      Memo1.SelStart  := UTF8Length(PChar(Memo1.Text), Result - 1);
      Memo1.SelLength := Length(AString);
      Memo1.SetFocus;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  SearchStart : Integer = 0;
  SearchStr   : string = '';
begin
  if SearchStr &lt;&gt; Edit1.Text then
    begin
      SearchStart := 0;
      SearchStr := Edit1.Text;
    end;

  SearchStart := FindInMemo(SearchStr, SearchStart + 1);

  if SearchStart = 0 then beep;
end;                                 </pre>
<p> </p>
<p>Het onClick event can de button moeten we natuurlijk aan de Button1Click() procedure koppelen.</p>
<p>Ik heb als extra nog een popup menu gemaakt voor de TMemo zodat ik een toets-combinatie kan gebruiken om naar het volgende zoek resultaat te springen (Mac: Command+G, Windows/Linux: F3).</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/">Delphi, Lazarus, Free Pascal</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-snel-en-eenvoudige-een-zoek-functie-toevoegen-aan-een-tmemo/#post-1596</guid>
                    </item>
							        </channel>
        </rss>
		