Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите исправить процедуру [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""

Не верю.


Наверх

Титульная страница Поиск, карта сайта Написать письмо