Главная страница
    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.03 c
8-1084092251
X-Disa
2004-05-09 12:44
2004.08.01
Image c масштабированием


6-1085983190
it-doctor
2004-05-31 09:59
2004.08.01
Как включить и выключить компьютер по сети?


1-1090222653
Sam
2004-07-19 11:37
2004.08.01
как можно программно добавить ярлык прогарммы в автозагрузку


9-1082373856
DeleteR
2004-04-19 15:24
2004.08.01
Тетрис


1-1089828609
Olesya
2004-07-14 22:10
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский