• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Вызов процедуры из процедуры

  • Автор темы kaa
  • Дата начала
K

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
 
M

morpheus

Для: kaa
а как Вы задекларировали VernutCatalog ?
 
K

kaa

<!--QuoteBegin-Morpheus+21:09:2007, 14:52 -->
<span class="vbquote">(Morpheus @ 21:09:2007, 14:52 )</span><!--QuoteEBegin-->а как Вы задекларировали VernutCatalog ?
[snapback]79123" rel="nofollow" target="_blank[/snapback]​
[/quote]

для тупых новичков объесните пожалуйста
 
Z

zubr

Код процедуры VernutCatalog в студию - скорее всего в ней ошибка.
 
K

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;
 
Z

zubr

А глобальную переменную Spis ты инициализируешь? Я так понимаю это переменная типа TStringList.
 
K

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}
 
B

Barmutik

А как насчёт создать Spis : TMemo ? Или это происходит за кадром?

Честно говоря первый раз за свою карьеру вижу глобальный компонент TMemo :rolleyes:
 
K

kaa

пробывал заменить процедуру функцией которая бы возвращала Spis - непомогло
 
Z

zubr

Для: kaa
Создай Spis в DesignTime (то есть кинь на форму компонент TMemo и обзови его Spis) и будет тебе счастье.
 
K

kaa

Для: zubr

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

а как создать програмно новый компанент?
 
Z

zubr

Код:
Spis : =TMemo.Create(Form1);
Spis.Parent:=Form1;
Spis.Left:=100;
Spis.Top:=100;
.......................
 
K

kaa

Для: zubr
Спасибо! <_<

Еще вопрос
Есть ветка реестра с несколькими параметрами как узнать количество параметров и соответственно перебрать их в цикле
 
S

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);

Оно?
 
K

kaa

Для: Silver Wind
Да спасибо!!


Для: Silver Wind
Да спасибо!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!