Files
yapetavi/frmdiscovererlist.pas
2022-10-24 22:07:20 +02:00

114 lines
3.1 KiB
ObjectPascal

{
********************************************************************************
YaPeTaVi - Yet another Periodic Table Viewer
Copyright (C) 2009-2010 Geoffray Levasseur <geoffray.levasseurbrandin@numericable.fr>.
All rights reserved.
http://www.geoffray-levasseur.org/
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA.
********************************************************************************
Description:
Discoverer list form and associated tools
}
unit frmDiscovererList;
{$mode objfpc}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Buttons, StdCtrls;
type
{ TDiscovererListForm }
TDiscovererListForm = class(TForm)
btnWikipedia: TBitBtn;
btnClose: TBitBtn;
Label1: TLabel;
lblDiscoName: TLabel;
lbDiscoverer: TListBox;
memElements: TMemo;
procedure btnCloseClick(Sender: TObject);
procedure btnWikipediaClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure lbDiscovererClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
DiscovererListForm: TDiscovererListForm;
implementation
uses
uIconManager, uUtils, uElemListClass, uStrings, uConst, uCommon;
{ TDiscovererListForm }
procedure TDiscovererListForm.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TDiscovererListForm.btnWikipediaClick(Sender: TObject);
begin
if not OpenURL(rsWikipediaAddr + lblDiscoName.Caption) then
MessageDlg(rsError, erOpenUrl, mtError, [mbOK], '');
end;
procedure TDiscovererListForm.FormCreate(Sender: TObject);
var
Str: TStrings;
begin
lblDiscoName.Caption := '';
memElements.Clear;
InitBtnGlyphs(Self);
lbDiscoverer.Sorted := False;
lbDiscoverer.Items.Clear;
Str := ElementsList.GetDiscovererList;
lbDiscoverer.Items.Assign(Str);
lbDiscoverer.Sorted := True;
end;
procedure TDiscovererListForm.lbDiscovererClick(Sender: TObject);
var
I, J: integer;
begin
memElements.Clear;
lblDiscoName.Caption := lbDiscoverer.Items[lbDiscoverer.ItemIndex];
for I := 1 to ElemNumber do
for J := 1 to CountItemsInStr(ElementsList.Elements[I].Discoverer, ',') do
if Trim(GetItemInStr(ElementsList.Elements[I].Discoverer, ',', J)) =
lblDiscoName.Caption then
memElements.Lines.Add(ElementsList.Elements[I].Name + ' (' +
ElementsList.Elements[I].ShortName + ') in ' +
IntToStr(ElementsList.Elements[I].DiscoYear));
end;
initialization
{$I frmdiscovererlist.lrs}
end.