Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

Ошибка Type в DLL   Найти похожие ветки 

 
Jim^sz ©   (2004-07-16 18:57) [0]

Я создаю DLL, в ней Type (type options=record),
и 4 функции
1: Загрузка файла ( с настройками Type)
2: Сохранение файла ( с настройками Type)
3: Применение настроек (с Type в компоненты)
4: Чтение настроек (с компонентов в Type)

И при загрузке настроек или применении их возникает ошибка
Access Volation Read of adress ...


Чё за ерунда.


type Traffic=record
SpeedINOUT: Integer;      
SPEEDINFO: Integer;        

ShowTime: Boolean;        
FormatTime: Integer;    
ShowComputer: Boolean;    
ShowName: Boolean;      
ShowPath: Boolean;    
ShowID: Boolean;    
ShowVersion: Boolean;      
ShowNetProtocol: Boolean;

OnFilter: Boolean;        
FormatViewBytes: integer; end;

type Progman=record
LoadFromWindows: Boolean;  
PathProgram: String[255];

FolderSave: String[255];  
AutoSave: Boolean;        
ListItemLimit: Integer;    
FormatSaveFile: Integer;  
end;

type NetOptions=record
TNet: TRaffic;
TPSy: Progman;
end;

Const DFile="NSnetIUser.nec";
     FIDO="NetIsUse";

var
 NetXOp: TNetXOp;
  XFolder: File of NetOptions;
  NetUse: NetOptions;

  Dir:String;
implementation

{$R *.dfm}

procedure TNetXOP.SaveFile; stdcall;
begin
try
 AssignFile(XFolder, DIR+DFile);
 Rewrite(XFolder);
 Write(XFolder, NetUse);
 CloseFile(XFolder);
except
  MessageDlg("Íå óäà¸òñÿ çàïèñàòü ôàéë: ""+DIR+DFILE+"""+#10+#13+"Îøèáêà: ¹1 SaveFile@DLL", mtError, [mbOK], 0);
end;
end;

procedure TNetXOP.LoadFile; stdcall;
begin
if FileExists(Dir+DFile) then
begin
 try
  AssignFile(XFolder, DIR+DFile);
  Reset(XFolder);
  Read(XFolder, NetUse);
  CloseFile(XFolder);
 except
  MessageDlg("Íå óäà¸òñÿ ïðî÷èòàòü ôàéë: ""+DIR+DFILE+"""+#10+#13+"Îøèáêà: ¹2 LoadFile@DLL", mtError, [mbOK], 0);
 end;
end
else SaveFile;
end;

procedure TNetXOP.LoadFromWindows(Active:Boolean); stdcall;
var Reg:TRegistry;
begin
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Run",false);
if Active then
 Reg.WriteString(FIDO, NetXOp.Label10.Caption) else
 Reg.DeleteValue(FIDO);
Reg.CloseKey;
Reg.Free;
end;

function TNetXop.ExistloadFromWindows:Boolean; stdcall;
var Reg:TRegistry;
begin
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Run", false);
 if Reg.ValueExists(FIDO) then Result:=true else Result:=false;
Reg.CloseKey;
Reg.Free;
end;

procedure TNetXOp.AssignOptions; stdcall;
begin
With NetXOp do
begin
 NetUse.TNet.SpeedINOUT := TrackBar1.Position * 100;
 NetUse.TNet.SPEEDINFO := TrackBar2.Position * 100;
 NetUse.TNet.ShowTime := CheckBox1.Checked;
 NetUse.TNet.FormatTime := Combobox1.ItemIndex;
 NetUse.TNet.ShowComputer := CheckBox2.Checked;
 NetUse.TNet.ShowName := CheckBox3.Checked;
 NetUse.TNet.ShowPath := CheckBox4.Checked;
 NetUse.TNet.ShowID := CheckBox5.Checked;
 NetUse.TNet.ShowVersion := Checkbox6.Checked;
 NetUse.TNet.ShowNetProtocol := CheckBox7.Checked;
 NetUse.TNet.OnFilter := CheckBox8.Checked;
 if NetUse.TNet.FormatViewBytes < 8 then NetUse.TNet.FormatViewBytes := 8;

 LoadFromWindows(Checkbox9.Checked);
 NetUse.TPSy.LoadFromWindows := CheckBox9.Checked;

 NetUse.TPSy.PathProgram := DIR;
 NetUse.TPSy.FolderSave := Edit1.Text;
 NetUse.TPSy.AutoSave := CheckBox10.Checked;
 NetUse.TPSy.ListItemLimit := SpinEdit1.Value;
 if NetUse.TPSy.FormatSaveFile < $1F then
    NetUse.TPSy.FormatSaveFile := $1F;
end;

end;

procedure TNetXOp.ReadOptions; stdcall;
begin
With NetXOP do
begin
 TrackBar1.Position := NetUse.TNet.SpeedINOUT div 100;
 TrackBar2.Position := NetUse.TNet.SPEEDINFO div 100;

 Checkbox1.Checked := NetUse.TNet.ShowTime;
 Combobox1.ItemIndex := NetUse.TNet.FormatTime;
 Checkbox2.Checked := NetUse.TNet.ShowComputer;
 Checkbox3.Checked := NetUse.TNet.ShowName;
 Checkbox4.Checked := NetUse.TNet.ShowPath;
 Checkbox5.Checked := NetUse.TNet.ShowID;
 Checkbox6.Checked := NetUse.TNet.ShowVersion;
 Checkbox7.Checked := NetUse.TNet.ShowNetProtocol;

 Checkbox8.Checked := NetUse.TNet.OnFilter;

 case NetUse.TNet.FormatViewBytes of
  8: RadioButton1.Checked := true;
  16: RadioButton2.Checked := true;
  32: RadioButton3.Checked := true;
  64: RadioButton4.Checked := true;
 end;

 Checkbox9.Checked := ExistloadFromWindows;
 NetXop.Edit1.Text := NetUse.TPSy.FolderSave;

 CheckBox10.Checked := NetUse.TPSy.AutoSave;
 SpinEdit1.Value := NetUse.TPSy.ListItemLimit;

  Case NetUse.TPSy.FormatSaveFile of
   $1F: RadioButton5.Checked := true;
   $2F: RadioButton6.Checked := true;
  end;
end;
end;
//==============================================================================

procedure TNetXOp.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TNetXOp.TrackBar1Change(Sender: TObject);
begin
Label2.Caption := Inttostr(100*TrackBar1.Position)+ " &#241;.&#241;";
end;

procedure TNetXOp.TrackBar2Change(Sender: TObject);
begin
Label4.Caption := Inttostr(100*TrackBar2.Position)+ " &#241;.&#241;";
end;

procedure TNetXOp.Button3Click(Sender: TObject);
begin
BR.Execute;
if (Trim(BR.FolderName)<>"") and
 (DirectoryExists(BR.FolderName)) then Edit1.Text := BR.FolderName else
  Edit1.Text := DIR;
end;

procedure TNetXOp.CheckBox10Click(Sender: TObject);
begin
if Checkbox10.Checked then
 SpinEdit1.Enabled := true else
  SpinEdit1.Enabled := false;
end;

procedure TNetXOp.RadioButton1Click(Sender: TObject);
begin
NetUse.TNet.FormatViewBytes := 8;
end;

procedure TNetXOp.RadioButton2Click(Sender: TObject);
begin
 NetUse.TNet.FormatViewBytes := 16;
end;

procedure TNetXOp.RadioButton3Click(Sender: TObject);
begin
 NetUse.TNet.FormatViewBytes := 32;
end;

procedure TNetXOp.RadioButton4Click(Sender: TObject);
begin
  NetUse.TNet.FormatViewBytes := 64;
end;

procedure TNetXOp.RadioButton5Click(Sender: TObject);
begin
 NetUse.TPSy.FormatSaveFile := $1F;
end;

procedure TNetXOp.RadioButton6Click(Sender: TObject);
begin
 NetUse.TPSy.FormatSaveFile := $2F;
end;

procedure TNetXOp.Button2Click(Sender: TObject);
begin
AssignOptions;
SaveFile;
Button1.Click;
end;

procedure TNetXOp.FormActivate(Sender: TObject);
begin
Dir:= Label9.Caption;

LoadFile;
ReadOptions;
end;

end.


 
Fay ©   (2004-07-16 19:04) [1]

Ужасно



Страницы: 1 вся ветка

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.065 c
14-1089451132
YurikGL
2004-07-10 13:18
2004.08.01
Форум по системному администрированию и вопрос по нему


4-1087740038
Kluyg
2004-06-20 18:00
2004.08.01
Путь к папке Temp.


4-1087906515
Buster
2004-06-22 16:15
2004.08.01
Как открыть стандартное окно со свойством файл?


6-1086268814
Grey
2004-06-03 17:20
2004.08.01
Вопросы по Novell-у


3-1089360692
denis24
2004-07-09 12:11
2004.08.01
table1.filter