Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вызов процедуры из процедуры
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
kaa
procedure VernutCatalog(var NewDisk1 : String);

begin

end;


procedure TForm1.SearchClick(Sender: TObject);
var
S : string;
begin
S := 'D:\Soft\';
VernutCatalog(S); // Здесь ругаеться
end;
end.

Project.exe raised exception class EAccessViolation
Morpheus
Для: kaa
а как Вы задекларировали VernutCatalog ?
kaa
Цитата(Morpheus @ 21:09:2007, 14:52 )
а как Вы задекларировали VernutCatalog ?
*


для тупых новичков объесните пожалуйста
zubr
Код процедуры VernutCatalog в студию - скорее всего в ней ошибка.
kaa
procedure VernutCatalog(NewDisk1: String);
var
PrF : Integer;
ResultSearch : TSearchRec;
NameCatalog : string;
begin
Spis.Clear;
NewDisk1 := NewDisk1+'*.*';
PrF := FindFirst(NewDisk1,faAnyFile,ResultSearch);//находим файл
if PrF=0 then
repeat
NameCatalog := ResultSearch.Name+'\';

if DirectoryExists(NameCatalog) then
begin
Spis.Lines.Add(NameCatalog);
VernutCatalog(NameCatalog);
end;

until (FindNext(ResultSearch)<>0);
FindClose(ResultSearch);

end;
zubr
А глобальную переменную Spis ты инициализируешь? Я так понимаю это переменная типа TStringList.
kaa
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Search: TButton;
Resultat: TMemo;
Disks: TComboBox;
Label1: TLabel;
procedure FormShow(Sender: TObject);
procedure SearchClick(Sender: TObject);
private
{ Private declarations }
procedure VernutCatalog(NewDisk1:String);
public
{ Public declarations }
end;
var
Form1: TForm1;
Spis : TMemo;
implementation
uses Unit2;
{$R *.dfm}
Barmutik
А как насчёт создать Spis : TMemo ? Или это происходит за кадром?

Честно говоря первый раз за свою карьеру вижу глобальный компонент TMemo cool.gif
kaa
пробывал заменить процедуру функцией которая бы возвращала Spis - непомогло
zubr
Для: kaa
Создай Spis в DesignTime (то есть кинь на форму компонент TMemo и обзови его Spis) и будет тебе счастье.
kaa
Для: zubr

Дело втом что на форме он ненужен, и пользователю его видеть незачем(если только сделатьневидимым )

а как создать програмно новый компанент?
zubr
Spis : =TMemo.Create(Form1);
Spis.Parent:=Form1;
Spis.Left:=100;
Spis.Top:=100;
.......................
kaa
Для: zubr
Спасибо! smile.gif

Еще вопрос
Есть ветка реестра с несколькими параметрами как узнать количество параметров и соответственно перебрать их в цикле
Silver Wind
Делфовая обертка над реестром - класс TRegistry, у него есть метод, для текущего ключа:

function GetKeyInfo(var Value: TRegKeyInfo): Boolean;

где

TRegKeyInfo = record
NumSubKeys: Integer;
MaxSubKeyLen: Integer;
NumValues: Integer;
MaxValueLen: Integer;
MaxDataLen: Integer;
FileTime: TFileTime;
end;

или вот еще в том же классе
procedure GetKeyNames(Strings: TStrings);
procedure GetValueNames(Strings: TStrings);

Оно?
kaa
Для: Silver Wind
Да спасибо!!


Для: Silver Wind
Да спасибо!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.