Delphi --- ListBox

// Tutkitaan löytyykö ListBox1:sestä nappia painamalla Edit1 kentässä oleva nimi

procedure TForm1.Button1Click(Sender: TObject);
  begin
       if ListBox1.Items.IndexOf(Edit1.Text) > -1 then
           begin
              ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit1.Text);
              Label1.Caption := 'LÖYTYY riviltä  '+ IntToStr(ListBox1.ItemIndex-1);
           end
              else
              Label1.Caption := 'EI LÖYDY';
  end;
// Viedään ListBox1:sestä rivi tuplaklikkaamalla leikepöydälle
// Huom! laita unitin uses lauseeseen sana Clipbrd
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons, ComCtrls, Grids, Calendar, Menus, Clipbrd;

procedure TForm1.ListBox1DblClick(Sender: TObject);
  begin
    Clipboard.AsText := ListBox1.items[ListBox1.ItemIndex];
  end;
// Jos ListBox1:sestä löytyy jo sama merkkijono kuin mitä käyttäjä
// kirjoittaa Edit2:seen, merkkijono vieritetään näkyville ja "maalataan"
procedure TForm1.Edit2Change(Sender: TObject);
var i,kaikki: integer;
    jono: String;
begin //1.
jono := Edit2.Text;                           // mitä etsitään
kaikki := ListBox1.Items.Count - 1 ;  // alkioiden kokonaismäärä
for i:= 0 to kaikki do
   begin
    if jono = ListBox1.items[i] then
       begin
       ListBox1.TopIndex := i;    // vieritetään näkyville
       ListBox1.ItemIndex := i;   // kohde valitaan (maalataan)
       end;
   end;
end; //1. 
// Näyttää kuinka monta riviä ListBox1:ssä on.
// Oletuksena käydään sekunnin välein katsomassa onko tullut lisää alkioita
// Formille laitettu StaticText1 ja Timer ja sen OnTimer tapahtumakäsittelijään kirjoitetaan:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
StaticText1.Caption := IntToStr(ListBox1.Items.Count);
end;

// Formille laitettu StaticText2 ja siinä näytetään monesko rivi on valittuna
// tietenkin kannattaa laittaa ohjelman käynnistyessä rutiini joka esittää
// StaticText2:n tyhjänä eli StaticText2.Caption := ' ';

procedure TForm1.ListBox1Click(Sender: TObject);
begin
StaticText2.Caption := IntToStr(ListBox1.ItemIndex+1);
end;
//Jos halutaan ohjelmallisesti valita ListBoxista yksi rivi

ListBox1.ItemIndex := 2;  //valitaan kolmas rivi, koska indeksointi alkaa nollasta

***********************************************
//Jos halutaan ohjelmallisesti valita monta riviä, laita ListBox1:sen multiselect trueksi.

ListBox1.Selected[2] := True; //valitaan kolmas rivi
ListBox1.Selected[5] := True; //valitaan kuudes rivi 
// (3.1.2001 PP) ListBoxin tekstin  (t)ulostus:
Laita Dialogs välilehdeltä PrintDialog komponentti formille ensin,
ja jollekkin napille (tässä Speed Buttonille) kirjoitat:
...Memo-komponentin tulostus toimii muuten samoin, mutta punaisella
olevat rivit korvataaan vihreillä riveillä...

// (1.10.2002) lisää uses lauseeseen Printers

procedure TForm1.SpeedButton4Click(Sender: TObject);
var
   rivi: integer;
   ulos: TextFile;
begin
   PrintDialog1.Options := [poHelp, poWarning];

   if PrintDialog1.Execute then
    begin
      AssignPrn(ulos);
    try
      Rewrite(ulos);
      Printer.Canvas.Font := ListBox1.Font;
      //Printer.Canvas.Font := Memo1.Font;
      Printer.Canvas.Font.Size := 14; //Vaihdetaan isompi fontti

        for rivi := 0 to ListBox1.Items.Count -1 do
        Writeln(ulos, ListBox1.Items[rivi]);
 
       //for rivi := 0 to Memo1.Lines.Count -1 do
       //Writeln(ulos, Memo1.Lines[rivi]);
 
    finally
        CloseFile(ulos);
    end; //finally
    end;
end;