Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Вниз

Ошибка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1090078500
AlexG
2004-07-17 19:35
2004.08.01
Сертификационные экзамены Microsoft по VB, BC# и пр.


3-1089121283
AlexG
2004-07-06 17:41
2004.08.01
Характеристика поля из грида...


3-1089103922
guest_Dmitry
2004-07-06 12:52
2004.08.01
Передать права от одной роли другой


8-1084537064
Musiy
2004-05-14 16:17
2004.08.01
Плавный переход полупрозрачности окна!


4-1087230752
Алексей Петухов
2004-06-14 20:32
2004.08.01
Точка на доп. клавиатуре





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский