![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите исправить процедуру [D7, XP]
Adios © (2006-03-21 23:29:00)компилятор ругается типа "error seting path: "\Data Files\UninstallMod"", может я чего не досмотрел?
procedure gameexists(Sender: TObject);
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
if R.KeyExists('SOFTWARE\\Bethesda Softworks\\Morrowind') then
begin
game:=R.Readstring('Installed Path');
lit:=ShortToLongFileName(game);
r.WriteString('Installed Path',lit);
if fileexists(R.Readstring('Installed Path')+'\Morrowind.exe') then
begin
game:=R.Readstring('Installed Path');
end
else
search.ShowModal;
end;
if directoryexists(game+'\Data Files\UninstallMod')=false then
begin
CreateDir(game+'\Data Files\UninstallMod');
uninstallpath:=game+'\Data Files\UninstallMod';
mainform.uninst.Root:=uninstallpath;
end;
if directoryexists(game+'\Data Files\UninstallMod') then
begin
uninstallpath:=game+'\Data Files\UninstallMod';
mainform.uninst.Root:=uninstallpath;
end;
r.CloseKey;
r.Free;
end;
Adios (2006-03-22 04:25:00) [1]
>Джо В данном случае нужно установить т.н. "точку останова" (break
> points)
спасибо тебе дружище, а я всё гадал, к чему там эта хрень ставится.
Adios (2006-03-22 04:23:00) [2]Я решил проблему!, правда пол кода переписать пришлось, зато работает:)
Германн (2006-03-22 02:52:00) [3]
> Джо © (22.03.06 02:43) [15]
>
> > [14] Германн © (22.03.06 02:39)
> > Достаточно ли?
>
> Конечно, нет. Затем и добавил постфактум [13].
Да. Но увы и я не смог ясно дать понять "пользу книги о Делфи".
Джо (2006-03-22 02:43:00) [4]> [14] Германн © (22.03.06 02:39)
> Достаточно ли?
Конечно, нет. Затем и добавил постфактум [13].
Германн (2006-03-22 02:39:00) [5]
> Джо © (22.03.06 02:22) [12]
>
> Посмотреть
> текущее значение переменной несложно — достаточно навести
> на идентификатор указатель мыши и задержать его на пару
> секунд.
>
Достаточно ли?
А если применён оператор with?
А влияние оптимизатора?
Это только примеры.
Джо (2006-03-22 02:24:00) [6]А вообще, купи или скачай книгу, в которой описывается работа со средой Делфи, в частности, возможности встроенного отладчика.
Джо (2006-03-22 02:22:00) [7]> [10] Adios © (22.03.06 02:10)
> хотя бы как его включить, а там дальше уже другой разговор
> будет
В данном случае нужно установить т.н. "точку останова" (break points). Они устанавливаются щелчком на левом gutter'e (полоска слева от редактора кода) . Установливаешь этиточки на нужных строках программы. По достижению этой строки в процессе выполнения программы, выполнение приостановится. Посмотреть текущее значение переменной несложно — достаточно навести на идентификатор указатель мыши и задержать его на пару секунд.
Также полезно знать комманды пошагового выполнения, вызываются клавишами F8 и F7.
Германн (2006-03-22 02:17:00) [8]
> Adios © (22.03.06 02:10) [10]
>
> хотя бы как его включить, а там дальше уже другой разговор
> будет
Если ты про отладчик, то его "включать" не надобно. Он и так всегда включён. Тебе нужно просто воспользоваться им.
Adios (2006-03-22 02:10:00) [9]хотя бы как его включить, а там дальше уже другой разговор будет
Германн (2006-03-22 02:08:00) [10]
> Adios © (22.03.06 01:27) [8]
>
> если не в лом, объясни поподробней про отладчик
>
Эта тема заслуживает раздела в книге по Делфи. Врядли Плохиш © возьмётся тут "объяснять поподробней". Хотя это не мне решать.
Adios (2006-03-22 01:27:00) [11]если не в лом, объясни поподробней про отладчик
Adios (2006-03-22 01:18:00) [12]это тот который с 1 и 0, я таким не умею пользоваться
Плохиш (2006-03-22 01:15:00) [13]
> Adios © (22.03.06 01:10) [5]
> что за EAkcessViolation ошибка? там типа он не по адресу
> обратился?
Ну, куда просил, туда и обратился. см. п. 3 в [4]
Adios (2006-03-22 01:10:00) [14]что за EAkcessViolation ошибка? там типа он не по адресу обратился?
Плохиш (2006-03-22 00:47:00) [15]
> if R.KeyExists('SOFTWARE \\Bethesda Softworks \\Morrowind')
> then
> begin
> game:=R.Readstring('Installed Path');
1. Это, что и в справке написано, что так путь писать надо?
2. Ключ открывать Пушкин должен?
3. Отладчик в делфи, как думаешь, для кого встраивали?
Adios (2006-03-22 00:17:00) [16]она не может ровняться пустой строке, потомучто в Readstring('Installed Path'); полюбому есть значение, а если нет, то должно выскакивать модальное окно, которое делает ветку реестра и game всёравно назначается, и ещё выскакивали разные ругательства связанные с этой процедурой, например EregistryExsception с сообщением типа не может установить значение для 'Installed Path', это выскакивает если все нужные ветки реестра существуют, а если их нет, то тогда такое, EAkcessViolation
Игорь Шевченко (2006-03-21 23:53:00) [17]Джо © (21.03.06 23:45) [1]
> Не верю.
Я тоже не верю. Прямо клуб атеистов какой-то.
Но такое сообщение (не компилятора, а того, кто чуть позже него) будет, если переменная game равна пустой строке.
Джо (2006-03-21 23:45:00) [18]> компилятор ругается типа "error seting path: "\Data Files\UninstallMod""
Не верю.