Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

Помогите исправить процедуру   Найти похожие ветки 

 
Adios ©   (2006-03-21 23:29) [0]

компилятор ругается типа "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;


 
Джо ©   (2006-03-21 23:45) [1]

> компилятор ругается типа "error seting path: "\Data Files\UninstallMod""

Не верю.


 
Игорь Шевченко ©   (2006-03-21 23:53) [2]

Джо ©   (21.03.06 23:45) [1]


> Не верю.


Я тоже не верю. Прямо клуб атеистов какой-то.

Но такое сообщение (не компилятора, а того, кто чуть позже него) будет, если переменная game равна пустой строке.


 
Adios ©   (2006-03-22 00:17) [3]

она не может ровняться пустой строке, потомучто в Readstring("Installed Path"); полюбому есть значение, а если нет, то должно выскакивать модальное окно, которое делает ветку реестра и game всёравно назначается, и ещё выскакивали разные ругательства связанные с этой процедурой, например EregistryExsception с сообщением типа не может установить значение для  "Installed Path", это выскакивает если все нужные ветки реестра существуют, а если их нет, то тогда такое, EAkcessViolation


 
Плохиш ©   (2006-03-22 00:47) [4]


> if R.KeyExists("SOFTWARE\\Bethesda Softworks\\Morrowind")
> then
>  begin
>  game:=R.Readstring("Installed Path");

1. Это, что и в справке написано, что так путь писать надо?
2. Ключ открывать Пушкин должен?
3. Отладчик в делфи, как думаешь, для кого встраивали?


 
Adios ©   (2006-03-22 01:10) [5]

что за EAkcessViolation ошибка? там типа он не по адресу обратился?


 
Плохиш ©   (2006-03-22 01:15) [6]


> Adios ©   (22.03.06 01:10) [5]
> что за EAkcessViolation ошибка? там типа он не по адресу
> обратился?

Ну, куда просил, туда и обратился. см. п. 3 в [4]


 
Adios ©   (2006-03-22 01:18) [7]

это тот который с 1 и 0, я таким не умею пользоваться


 
Adios ©   (2006-03-22 01:27) [8]

если не в лом, объясни поподробней про отладчик


 
Германн ©   (2006-03-22 02:08) [9]


> Adios ©   (22.03.06 01:27) [8]
>
> если не в лом, объясни поподробней про отладчик
>

Эта тема заслуживает раздела в книге по Делфи. Врядли Плохиш © возьмётся тут "объяснять поподробней". Хотя это не мне решать.


 
Adios ©   (2006-03-22 02:10) [10]

хотя бы как его включить, а там дальше уже другой разговор будет


 
Германн ©   (2006-03-22 02:17) [11]


> Adios ©   (22.03.06 02:10) [10]
>
> хотя бы как его включить, а там дальше уже другой разговор
> будет

Если ты про отладчик, то его "включать" не надобно. Он и так всегда включён. Тебе нужно просто воспользоваться им.


 
Джо ©   (2006-03-22 02:22) [12]

> [10] Adios ©   (22.03.06 02:10)
> хотя бы как его включить, а там дальше уже другой разговор
> будет

В данном случае нужно установить т.н. "точку останова" (break points). Они устанавливаются щелчком на левом gutter"e (полоска слева от редактора кода) . Установливаешь этиточки на нужных строках программы. По достижению этой строки в процессе выполнения программы, выполнение приостановится. Посмотреть текущее значение переменной несложно — достаточно навести на идентификатор указатель мыши и задержать его на пару секунд.
Также полезно знать комманды пошагового выполнения, вызываются клавишами F8 и F7.


 
Джо ©   (2006-03-22 02:24) [13]

А вообще, купи или скачай книгу, в которой описывается работа со средой Делфи, в частности, возможности встроенного отладчика.


 
Германн ©   (2006-03-22 02:39) [14]


> Джо ©   (22.03.06 02:22) [12]
>
> Посмотреть
> текущее значение переменной несложно — достаточно навести
> на идентификатор указатель мыши и задержать его на пару
> секунд.
>


Достаточно ли?
А если применён оператор with?
А влияние оптимизатора?
Это только примеры.


 
Джо ©   (2006-03-22 02:43) [15]

> [14] Германн ©   (22.03.06 02:39)
> Достаточно ли?

Конечно, нет. Затем и добавил постфактум [13].


 
Германн ©   (2006-03-22 02:52) [16]


> Джо ©   (22.03.06 02:43) [15]
>
> > [14] Германн ©   (22.03.06 02:39)
> > Достаточно ли?
>
> Конечно, нет. Затем и добавил постфактум [13].

Да. Но увы и я не смог ясно дать понять "пользу книги о Делфи".


 
Adios ©   (2006-03-22 04:23) [17]

Я решил проблему!, правда пол кода переписать пришлось, зато работает:)


 
Adios ©   (2006-03-22 04:25) [18]


>Джо В данном случае нужно установить т.н. "точку останова" (break
> points)

спасибо тебе дружище, а я всё гадал, к чему там эта хрень ставится.



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
15-1142984761
Andy BitOff
2006-03-22 02:46
2006.04.09
Windows XP Service Pack 2


1-1141591754
Кальян
2006-03-05 23:49
2006.04.09
Закраска в StringGrid


2-1143393140
Bogdan1024
2006-03-26 21:12
2006.04.09
Неудобная TChart


3-1139404580
Megabyte
2006-02-08 16:16
2006.04.09
Статистика в БД


2-1143100184
Bool
2006-03-23 10:49
2006.04.09
FormKeyDown