Главная страница
    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.48 MB
Время: 0.016 c
2-1143202636
Vyacheslav
2006-03-24 15:17
2006.04.09
Virtual метод


15-1142780184
Petr V. Abramov
2006-03-19 17:56
2006.04.09
Эти ребята достойны первого приза...


2-1143009568
burk
2006-03-22 09:39
2006.04.09
Как открыть окно эксплорера?


2-1143014377
Dmitrij_K
2006-03-22 10:59
2006.04.09
Путь в файлу


15-1142793886
Piter
2006-03-19 21:44
2006.04.09
Может кто разбирается в настройках .htaccess ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский