Tipy a triky v Delphi, díl 95.

I dnešní díl bude zaměřen spíše na začátečníky. Ukážeme si, jak v komponentě RichEdit vyhledat a označit nalezený text a pak si předvedeme, jak dynamicky změnit hlavní formulář aplikace na základě spouštěcích parametrů aplikace.
Začneme tedy hledáním a označováním textu v komponentě RichEdit. Podobně jako každá rozumná "textová" komponenta nám i RichEdit nabízí řadu metod pro práci s textem a nechybí mezi nimi pochopitelně ani hledání textu. Konkrétně se jedná o metodu FindText, které musíme jednak říci, jaký text hledáme, kde (tedy odkud kam) a parametry hledání (rozlišování velikosti písmen, pouze celá slova...). Na výstupu dostaneme pozici prvního znaku nalezeného řetězce a nebo -1 v případě neúspěchu.

Tolik tedy hlavní myšlenka, která je ostatně popsána v nápovědě. My si poté získanou hodnotu vezmeme jako základ pro druhou část úkolu - pro označení textu. Nejprve nastavíme komponentě Focus, aby se nám výřez okna vždy přesunul na nalezenou část textu. Dále zvolíme počáteční bod označení textu, kterým je právě ona pozice nalezená v první části úkolu a konečně zvolíme délku označení. Ta je samozřejmě shodná s délkou hledaného textu, kterou rovněž známe.

function SearchAndSelect(RichEdit: TRichEdit; SearchText: string): Boolean;
var
  Position: Integer;
begin
  Result := False;
  with RichEdit do
  begin
    Lines.BeginUpdate;
    Position := FindText(SearchText, 0, Length(RichEdit.Text), [stMatchCase]);
    if Position <> -1 then
    begin
      SetFocus;
      SelStart := Position;
      SelLength := Length(SearchText);
      Result := true;
    end;
    Lines.EndUpdate;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not SearchAndSelect(RichEdit1, `hledaný text`) then ShowMessage(`Nenalezeno`);
end;

Takto napsaná funkce nám najde první výskyt hledaného výrazu a označí jej. Budete-li chtít nalézt i ostatní výrazy, stačí dát celou „věc“ do cyklu a posouvat hranice prohledávaného textu. Označit více nesouvislého textu bohužel nelze.

A dostáváme se k druhému dnešnímu tématu. Ukážeme si, jak na základě parametrů při spouštění naší aplikace zvolit, který formulář bude otevřen jako první (hlavní). Toho se dá využít mnoha způsoby, například můžete podle vstupních parametrů měnit uživatelské rozhraní a podobně. Této změny docílíme velmi snadno drobnou úpravou projektového souboru, který bude vypadat takto:

program Project1;

uses
  Forms, Classes, SysUtils,
  Unit1 in `Unit1.pas` {Form1}
  Unit2 in `Unit2.pas` {Form2}

{$R *.res}

var
  InstanceClass: TComponentClass;
  FormReference: TForm;

begin
Application.Initialize;
  if FindCmdLineSwitch(`druhy`,  [`-`, `/`], True) then
  begin
    InstanceClass := TForm2;
    FormReference := Form2;
  end
  else
  begin
    InstanceClass := TForm1;
    FormReference := Form1;
  end;
  Application.CreateForm(InstanceClass, FormReference);
  Application.Run;
end.

Jak vidíte, do "klasické" struktury je vloženo jednoduché větvení na základě vstupního parametru při spouštění. Vložíte-li tedy za název aplikace a lomítko (pomlčku) parametr "druhy", bude hlavním formulářem druhý formulář místo prvního. Tímto způsobem samozřejmě můžete volit mezi mnoha různými formuláři na základě celé řady vstupních parametrů či jejich kombinací.

Témata článku: Software, Programování, Trik, Focus, Hlavní myšlenka, První parametr, Díl

Určitě si přečtěte

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

** Po půl roce je tu další aktualizace Windows ** A opět přináší hlavně hromadu drobných kosmetických vylepšení ** Podívali jsme se na ty nejzajímavější

17.  10.  2017 | Jakub Čížek | 185

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

** Fluent Design je vzhled, do kterého postupně Microsoft převleče celý systém ** Staví na průhlednosti a velkých plochách ** Do Windows 10 se z části dostane už zítra při vydání podzimní aktualizace

16.  10.  2017 | Stanislav Janů | 155

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

** Přečerpávací vodní elektrárna Dlouhé stráně je obdivuhodné technické dílo ** Stejná turbína vyrábí elektřinu i tlačí vodu zpět do horního jezera ** Strojovna elektrárny je zabudována v podzemí

19.  10.  2017 | David Polesný | 17

Nejlepší optické iluze: Z toho vám půjde hlava kolem

Nejlepší optické iluze: Z toho vám půjde hlava kolem

** Mozek se nechá snadno ošálit, a to mnoha způsoby ** Podívejte se na několik nejlepších optických iluzí ** Iluze dokazují, že vnímání reality může být značně zkreslené

16.  10.  2017 | Vojtěch Malý


Aktuální číslo časopisu Computer

Nový seriál o programování elektroniky

Otestovali jsme 17 bezdrátových sluchátek

Jak na nákup vánočních dárků ze zahraničí

4 tankové tiskárny v přímém souboji