Показать сообщение отдельно
  #8  
Старый 20.06.2013, 09:12
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.Buttons,
  Vcl.ExtCtrls,IniFiles,Vcl.Themes,unit2;

type
  TForm1 = class(TForm)
    Image1: TImage;
    BitBtn1: TBitBtn;
    RichEdit1: TRichEdit;
    ComboBox1: TComboBox;
    ListBox1: TListBox;
    procedure ComboBoxEx1Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Type
TStyleIniVCL=Record
  PathStyleName:String;
  NameStyle,TextStyle:String;
  BmpPathNameStyle:String;
End;
Procedure LoadIniStyleData;
Function LoadStyleReadIni(TextOkno:String;TextButton1:String;TextMemo:String):Boolean;
var
  Form1: TForm1;
  STL:Array[1..9] of String;
  StyleIniVCL:Array of TStyleIniVCL;
  Strsi:String;
  StyleManager:TStyleManager;
implementation
uses un2;
{$R *.dfm}

Procedure LoadIniStyleData;
var tyhjk:Integer;
begin
  IniStyleData:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'LibxEditFiles\Style\cfgStyle.StyleData');
  SetLength(StyleIniVCL,IniStyleData.ReadInteger('Style','MaxStyle',8));
  for tyhjk := 0 to IniStyleData.ReadInteger('Style','MaxStyle',8) do
  begin
    Form1.ComboBox1.Items.Add(IniStyleData.ReadString('Style','Text'+inttostr(tyhjk),''));
    StyleIniVCL[tyhjk].PathStyleName:=ExtractFilePath(Application.ExeName)+IniStyleData.ReadString('Style','StylePath'+inttostr(tyhjk),'');
    StyleIniVCL[tyhjk].NameStyle:=IniStyleData.ReadString('Style','Name'+inttostr(tyhjk),'');
    StyleIniVCL[tyhjk].TextStyle:=IniStyleData.ReadString('Style','Text'+inttostr(tyhjk),'');
    StyleIniVCL[tyhjk].BmpPathNameStyle:=ExtractFilePath(Application.ExeName)+IniStyleData.ReadString('Style','BmpStyle'+inttostr(tyhjk),'');
  end;
  IniStyleData.Free;
  Lang:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'LibxEditFiles\Lang\'+Language+'.data');
  for tyhjk := 1 to 9 do begin
    STL[tyhjk]:=Lang.ReadString('Текст-->Style','STL'+Inttostr(tyhjk),'');
  end;
  StyleDLG3:=Lang.ReadString('Текст-->Dialog','StyleDLG3','');
  Lang.Free;
end;

Function LoadStyleReadIni(TextOkno:String;TextButton1:String;TextMemo:String):Boolean;
begin
  LoadIniStyleData;
  Form2.ImageList1.GetBitmap(6,Form1.BitBtn1.Glyph);
  Form1.Caption:=TextOkno;
  Form1.RichEdit1.Lines.Text:=TextMemo;
  Form1.BitBtn1.Caption:=TextButton1;
  Form1.BitBtn1.ModalResult:=mrOk;
  Result:=Form1.ShowModal=mrOk;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Form1.Close;
  StyleManager.TrySetStyle(form1.ListBox1.Items.Strings[Form1.ListBox1.ItemIndex],True);
  StyleManager.Free;
end;

procedure TForm1.ComboBoxEx1Change(Sender: TObject);
var si : TStyleInfo;
i:Integer;
begin
  StyleManager:=TStyleManager.Create;
  if StyleManager.IsValidStyle(StyleIniVCL[Form1.ComboBox1.ItemIndex].PathStyleName,si) then
  begin
    Form1.RichEdit1.Clear;
    AddColorText(STL[1]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(si.Name,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[2]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(StyleIniVCL[Form1.ComboBox1.ItemIndex].NameStyle,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[3]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(StyleIniVCL[Form1.ComboBox1.ItemIndex].PathStyleName,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[4]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(StyleIniVCL[Form1.ComboBox1.ItemIndex].BmpPathNameStyle,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[5]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(si.Author,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[6]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(si.AuthorEMail,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[7]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(si.AuthorURL,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[8]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(si.Version,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    AddColorText(STL[4]+' ',ClBlue,Form1.RichEdit1);
    AddColorText(StyleIniVCL[Form1.ComboBox1.ItemIndex].TextStyle,clPurple,Form1.RichEdit1);
    Form1.RichEdit1.Lines.Add('');
    Form1.Image1.Picture.LoadFromFile(StyleIniVCL[Form1.ComboBox1.ItemIndex].BmpPathNameStyle);
    if StyleManager.Style[si.Name]=nil then
    begin
      StyleManager.LoadFromFile(StyleIniVCL[Form1.ComboBox1.ItemIndex].PathStyleName);
      ListBox1.Items.Clear;
      for i := 0 to Length(StyleManager.StyleNames)-1 do begin
        ListBox1.Items.Add(StyleManager.StyleNames[i]);
      end;
    end;
  end else begin
    ShowMessage(StyleDLG3);
  end;
end;

end.

при первом открытии окна нет ошибок но при втором открытии окна системная ошибка. скажте почему и как исправить
Ответить с цитированием