Subversion Repositories decoder

Compare Revisions

Regard whitespace Rev 1 → Rev 2

/trunk/Quelltext/About.pas
0,0 → 1,159
unit About;
 
interface
 
uses
Windows, Messages, SysUtils, Forms, StdCtrls, ExtCtrls, Inifiles, shellapi,
DCConst, Controls, Classes;
 
type
TAboutForm = class(TForm)
lbl_name: TLabel;
img_schloss: TImage;
lbl_version: TLabel;
lbl_leader: TLabel;
lbl_copyright: TLabel;
spe_leftshape: TShape;
gbx_lang: TGroupBox;
lbl_lang_value: TLabel;
lbl_translator_value: TLabel;
lbl_revision_value: TLabel;
btn_close: TButton;
lbl_url: TLabel;
lbl_lang_name: TLabel;
lbl_translator_name: TLabel;
lbl_revision_name: TLabel;
procedure form_create(Sender: TObject);
procedure btn_closeClick(Sender: TObject);
procedure lbl_urlClick(Sender: TObject);
private
LangArray, LangArraySig: array of TLanguageEntry;
function GetLangEntry(name: string): string;
function GetLangSig(name: string): string;
end;
 
var
AboutForm: TAboutForm;
 
implementation
 
{$R *.dfm}
 
function TAboutForm.GetLangEntry(name: string): string;
var
i: integer;
begin
for i := 0 to high(LangArray) do
begin
if LangArray[i].name = name then
begin
result := LangArray[i].text;
break;
end;
end;
end;
 
function TAboutForm.GetLangSig(name: string): string;
var
i: integer;
begin
for i := 0 to high(LangArraySig) do
begin
if LangArraySig[i].name = name then
begin
result := LangArraySig[i].text;
break;
end;
end;
end;
 
procedure TAboutForm.lbl_urlClick(Sender: TObject);
begin
shellexecute(application.Handle, 'open', 'http://www.viathinksoft.de/', '', '', sw_normal);
end;
 
procedure TAboutForm.btn_closeClick(Sender: TObject);
begin
close;
end;
 
procedure TAboutForm.form_create(Sender: TObject);
var
ini: TIniFile;
str: TStringList;
i: integer;
Y, M, D: Word;
begin
// Sprachdatei & Signatur auslesen
 
ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Language.ini');
str := TStringList.Create();
try
ini.ReadSection(Name, str);
for i := 0 to str.count-1 do
begin
setlength(LangArray, length(LangArray)+1);
LangArray[length(LangArray)-1].name := str.strings[i];
LangArray[length(LangArray)-1].text := ini.ReadString(Name, str.strings[i], '?');
LangArray[length(LangArray)-1].text := StringReplace(LangArray[length(LangArray)-1].text, '###', #13#10, [rfReplaceAll]);
end;
 
ini.ReadSection('Signature', str);
for i := 0 to str.count-1 do
begin
setlength(LangArraySig, length(LangArraySig)+1);
LangArraySig[length(LangArraySig)-1].name := str.strings[i];
LangArraySig[length(LangArraySig)-1].text := ini.ReadString('Signature', str.strings[i], '?');
LangArraySig[length(LangArraySig)-1].text := StringReplace(LangArraySig[length(LangArraySig)-1].text, '###', #13#10, [rfReplaceAll]);
end;
finally
ini.free;
str.Free;
end;
 
// Bilder
 
icon.LoadFromResourceID(hInstance, 104);
img_schloss.Picture.Bitmap.LoadFromResourceName(hInstance, 'SCHLOSS');
 
// Texte
 
Caption := GetLangEntry('about');
lbl_translator_value.Caption := GetLangSig('Translator');
lbl_lang_value.Caption := GetLangSig('Language');
lbl_revision_value.Caption := GetLangSig('Revision');
gbx_lang.Caption := GetLangEntry('installedlang');
lbl_leader.Caption := Format(GetLangEntry('leader'), ['Daniel Marschall']);
lbl_version.Caption := Format(GetLangEntry('version'), [DC4Ver]);
lbl_name.Caption := '(De)Coder';
lbl_url.Caption := 'www.viathinksoft.de';
DecodeDate(Now(), Y, M, D);
lbl_copyright.Caption := Format(GetLangEntry('copyright'), [2001, Y, 'ViaThinkSoft']);
lbl_lang_name.Caption := GetLangEntry('lang');
lbl_translator_name.Caption := GetLangEntry('translator');
lbl_revision_name.Caption := GetLangEntry('revision');
btn_close.Caption := GetLangEntry('ok');
 
// Horizontal
 
spe_leftshape.Width := img_schloss.Width + 16;
lbl_name.Left := spe_leftshape.Left + spe_leftshape.Width + 8;
lbl_url.left := lbl_name.left;
lbl_version.left := lbl_url.left;
lbl_leader.left := lbl_version.left;
lbl_copyright.left := lbl_leader.left;
gbx_lang.Left := lbl_copyright.left;
gbx_lang.Width := max_4(lbl_name.width, lbl_version.width, lbl_leader.width, lbl_copyright.width);
btn_close.Left := gbx_lang.left + gbx_lang.width - btn_close.width;
lbl_lang_value.Left := lbl_lang_name.left + max_3(lbl_lang_name.Width, lbl_translator_name.Width, lbl_revision_name.Width) + 8;
lbl_translator_value.left := lbl_translator_name.left + max_3(lbl_lang_name.Width, lbl_translator_name.Width, lbl_revision_name.Width) + 8;
lbl_revision_value.left := lbl_revision_name.left + max_3(lbl_lang_name.Width, lbl_translator_name.Width, lbl_revision_name.Width) + 8;
 
// Vertikal
 
spe_leftshape.Height := btn_close.Top + btn_close.Height + 8;
clientheight := spe_leftshape.top + spe_leftshape.Height;
clientwidth := btn_close.Left + btn_close.Width + 8;
end;
 
end.