Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизРеестр Найти похожие ветки
← →
Ultimate © (2008-02-28 17:29) [0]Проблема с реестром. Записал ключ через:
var
Form1: TForm1; var i:byte;
implementation
{$R *.dfm}
var
RegFile: TRegIniFile;
const
//Подсекция
SubKey: string = "Software\Ultimate DVD";
StrKey: string = "StrKey";
....................
RegFile := TRegIniFile.Create(SubKey);
RegFile.WriteString(StrKey, "Value", IntToStr(znach+555));
через редактор реестра вижу, что ключ на месте...
но когда прошу вывести значение ключа по командеEdit2.Text:=RegFile.ReadString(StrKey, "Value", "");
Ничего не выходит... Пишет про EAccesViolation и адреса всякие...Если вместоRegFile.ReadString(StrKey, "Value", "")
ввести строку, для вывода в edit2, то всё нормально... Может что-то не так? Скажите что... или напишите подробно другой способ как считать строку с HKEY_CURRENT_USER\Software\Ultimate DVD\RegKey\Value="значение"??? Я новичок, так шо изините...
← →
Palladin © (2008-02-28 17:35) [1]в справку смотрел? примеры видел? для чего TRegIniFile осознал?
← →
Ultimate © (2008-02-28 17:46) [2]она англицкая... мало че понял, но предположительно, если имеется INI часть, значит дело идет в внешним ini файлом... мне это сделать - последняя моя задача в моей задумке... поэтому., мне се равно как, но надо считать данные оттуда :(
← →
Palladin © (2008-02-28 18:08) [3]
> она англицкая..
и что теперь? бросай тогда это грязное дело... иди метлу покупай...
там если что ссылка examples есть, но там тоже по англицки...
← →
macrodens © (2008-02-28 21:36) [4]to Ultimate © (28.02.08 17:46) [2]
А ты думаешь мы все здесь с рождения английский знаем??
в тырнете есть онлайн переводчики если что, да и просто переводчиков полно.
← →
Ultimate © (2008-02-29 08:51) [5]англицкий я знаю чуть. и переводчик есть... да и кажись я что-то нашел... по своей проблеме
← →
Ultimate © (2008-02-29 08:56) [6]всё. сделал..сделал считывание ключа через
uses Registry;
function GetRegistryValue: string;
var
Registry: TRegistry;
S: string;
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_LOCAL_MACHINE;
{False because we do not want to create it if it doesn’t exist}
Registry.OpenKey("MYKEY",False);
Result :=Registry.ReadString("VALUE1");
Registry.Free;
end;
который дается в примере delphi
← →
Сергей М. © (2008-02-29 08:57) [7]
> Пишет про EAccesViolation и адреса всякие
Есть основания для подозрения в несуществовании объекта, на который ссылается переменная RegFile.
← →
Anatoly Podgoretsky © (2008-02-29 09:46) [8]
> или напишите подробно другой способ как считать строку с
> HKEY_CURRENT_USER\
> Registry.RootKey:=HKEY_LOCAL_MACHINE;
-----
> всё. сделал..сделал считывание ключа через
Есть подозрение (номер 1), что нет
Есть подозрение (номер 2), что это не будет работать на большинстве компьтеров.
← →
Ultimate © (2008-02-29 10:22) [9]
> > Registry.RootKey:=HKEY_LOCAL_MACHINE;
>
> -----
>
> > всё. сделал..сделал считывание ключа через
ну это я общий скрипт вынес... мой выглядит так:function GetRegistryValue: string;
var
Registry: TRegistry;
S: string;
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
{False because we do not want to create it if it doesn’t exist}
Registry.OpenKey("Software\Ultimate DVD\ver2.4",False);
Result :=Registry.ReadString("Value");
Registry.Free;
end;
Так что всё работает... и работает так как я хотел. в общем все вопросы заданные тут, касались тока одной програмки для диска... а именно Autorun.exe... Ну а зачем эти все фичи мне туда, объяснять не буду... :)
← →
Anatoly Podgoretsky © (2008-02-29 10:59) [10]А зачем ты приводишь чужой код, а сам используешь другой.
В интернете очень много кода, но к чему его приводить здесь?
Но и приведеный код с ошибками. Будет и утечка памяти и сообщени об ошибке. Если хочешь получать сообщения об ошибках, то хотя бы сделай защищенный блок.
ЗЫЖ в коде есть лишняя неиспользуемая переменная.
← →
sniknik © (2008-02-29 11:55) [11]> ЗЫЖ в коде есть лишняя неиспользуемая переменная.
даже две... ;)
(вот как не люблю with, но именно для подобного рода кода (короткий, и в нем можно за счет with убрать лишнее) всетаки использую)
← →
Ultimate © (2008-02-29 12:33) [12]
> > ЗЫЖ в коде есть лишняя неиспользуемая переменная.
> даже две... ;)
это ты про S: string; и Registry.Free; ???
я проста непойму, зачем они нужны :)
> Но и приведеный код с ошибками. Будет и утечка памяти и
> сообщени об ошибке. Если хочешь получать сообщения об ошибках,
> то хотя бы сделай защищенный блок.
ну у меня ошибок нет... все работает... утечка памяти... в смысле?
***
Да и еще одно... невкурсе как перевести числовое значение из типа string в тип integer??? чета у меня не варит чайник?
← →
Ultimate © (2008-02-29 13:38) [13]
procedure TForm1.FormActivate(Sender: TObject);
var
SerialNum : dword;
a, b : dword;
Buffer : array [0..255] of char;
begin
if GetVolumeInformation("c:\", Buffer, SizeOf(Buffer),
@SerialNum, a, b, nil, 0) then
Edit1.Text:=IntToStr(SerialNum);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=StrToInt(Edit2.Text) + 555;
end;
проблема вEdit2.Text:=StrToInt(Edit2.Text) + 555;
код вроде нормальный, но пишет про несовместимость типов :( какгбы string и integer... но ведь StrToInt(Edit2.Text) должно быть integer.... что не так?
← →
Palladin © (2008-02-29 13:48) [14]Edit2.Text у тебя тоже я так понимаю integer ?
брысь книжки читать
← →
Ultimate © (2008-02-29 17:29) [15]я понял в чем прикол был... немного я думаю (в смысле мало :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c