Главная страница
    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.036 c
14-1089555184
Makssimm
2004-07-11 18:13
2004.08.01
как один комп через другой выходить в интернет заставить?


1-1089881798
Th
2004-07-15 12:56
2004.08.01
Проблема с определением позиции каретки в TMemo


14-1089700442
leonidus
2004-07-13 10:34
2004.08.01
Как MMS-сообщение из инета на телефон послат


1-1089984574
Term
2004-07-16 17:29
2004.08.01
DBGrid


1-1090268197
Виталий
2004-07-20 00:16
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский