Доброе время суток, Андрей! Kak eto... INDY 100 % est tam!!! Ответ отправлен: 13.02.2004, 15:06 Отправитель: THE_PRO Отвечает sir henry
Доброе время суток, Андрей! В Delphi 7 Enterprise Indy есть. Видимо Вам надо просто поменять дистрибутив на Enterprise. Либо компоненты Indy у Вас просто не установлены, тогда при переустановке, надо выбрать установку вручную и проверить, стоит ли птичка возле компонентов Indy. Ответ отправлен: 13.02.2004, 12:27 Отправитель: sir henry Отвечает Boriss
Приветствую Вас, Андрей! ????? А почему Вы решили, что нет ! 4 панели посвященных INDY есть в 7-м. Находят после ActiveX, Rave. Возможно, что Вы их не установили Ответ отправлен: 13.02.2004, 13:54 Отправитель: Boriss Отвечает Pawel
Доброе время суток, Андрей! Вообщето INDY в delphi 7 есть. Ответ отправлен: 13.02.2004, 16:55 Отправитель: Pawel Отвечает CJ
Приветствую Вас, Андрей! Нет потому что не впихнули его туда! :) Ответ отправлен: 14.02.2004, 21:57 Отправитель: CJ
Вопрос № 1334
Приветствую вас уважаемые эксперты подскажите плиз как из реестра например здесь "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerDisallowRun" прочитать все содержащиеся в этом разделе (строковые) ключи (я думаю надо использовать функцию RegEnumValue из advapi32.dll но как этой функцией пользоватся столько не понятных параметров)
Добрый день, funtik! Rabotay s klassom TRegistry iz modulya Registry Naprimer Rgistry1.ReadString(... Ответ отправлен: 13.02.2004, 15:05 Отправитель: THE_PRO Отвечает Boriss
Приветствую Вас, funtik! Не обязательно WinAPI для этого использовать. В Delphi есть класс TRegistry. И для него много примеров
Приложение: Ответ отправлен: 13.02.2004, 18:01 Отправитель: Boriss Отвечает sir henry
Приветствую Вас, funtik! function RegEnumValue(hKey: HKEY; dwIndex: DWORD; lpValueName: PChar; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; stdcall; hKey - ключ. dwIndex - этот параметр должен быть 0 при первом вызове, а далее по анологии с RegEnumKey (т.е. можно использовать в цикле), lpValueName - буфер для названия значения lpcbValueName - размер lpValueName lpReserved должно быть всегда 0 lpType - буфер для названия типа (int) lpData - буфер для данных lpcbData-размер для lpData Примечание: При каждой новом вызове функции после предыдущего нужно заново переназначить lpcbValueName. lpcbValueName = sizeof(lpValueName) Ответ отправлен: 13.02.2004, 16:00 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, funtik! А чем вас не устраевает клас TRegistry? Ответ отправлен: 13.02.2004, 16:57 Отправитель: Pawel Отвечает CJ
Добрый день, funtik! Используй registry.pas Ответ отправлен: 14.02.2004, 21:56 Отправитель: CJ Отвечает samum2000
Здравствуйте, funtik! В Delphi есть тип TRegistry, который обеспечивает доступ к реестру, но если вы все же хотите использовать API, то вот небольшая информация (выдержки из справочника по API). Получить имена всех подразделов раздела Key: RegEnumKey(Key:HKey; index: Longint; Buffer: PChar; cb: Longint): Longint; где Key - Handle на открытый или созданный раздел Buffer - указатель на буфер cb - размер буфера index - индекс, должен быть равен 0 при первом вызове RegEnumKey. Типичное использование - в цикле While, где index увеличивается до тех пор, пока очередной вызов RegEnumKey не завершится ошибкой Раздел должен быть предварительно открыт: RegOpenKey(Key: HKey; SubKey: PChar; var Result: HKey): Longint; Раздел Key Подраздел SubKey Возвращает Handle на подраздел в переменной Result. Если раздела с таким именем нет, то
он не создается. Возврат - код ошибки или ERROR_SUCCESS, если успешно. Или создан: RegCreateKey (Key:HKey; SubKey: PChar; var Result: HKey): Longint; Key - указывает на "корневой" раздел реестра, в Delphi1 доступен только один - HKEY_CLASSES_ROOT, а в Delphi3 - все. SubKey - имя раздела - строится по принципу пути к файлу в DOS (пример subkey1subkey2 ...). Если такой раздел уже существует, то он открывается. В любом случае при успешном вызове Result содержит Handle на раздел. Об успешности вызова судят по возвращаемому значению, если ERROR_SUCCESS, то успешно, если иное - ошибка. Подробнее о них можно узнать в Windows SDK. Ответ отправлен: 15.02.2004, 16:09 Отправитель: samum2000
Вопрос № 1335
В программе (InterBase + Delphi6) имеются DBEdit'ы, в которых должны появляться определенные значения при переходе со строки на строку в гриде. Почему-то однажды появившееся значение (при запуске программы или при переходе со страницы на страницу PageControl'а) не изменяется, точнее, изменяется, если щелкнуть мышью на DBEdit'е. Как это побороть с минимальными издержками?
Доброе время суток, Loko! Не знаю, почему у Вас так, у меня при передвижении по запросу данные в DBEdit меняются исправно. По умолчанию так и должно быть. Компоненты: TIBDatabase->TIBQuery->TDataSource->TDBEdit. Попробуйте удалить компоненты с формы и поставить их заново, изменяя только необходимые свойства. Ответ отправлен: 13.02.2004, 15:40 Отправитель: sir henry Отвечает THE_PRO
Приветствую Вас, Loko! Vrode bi u menya vse normalno, ya ne znayu pochemu u tebya tak?! Ответ отправлен: 13.02.2004, 15:01 Отправитель: THE_PRO Отвечает Pawel
Добрый день, Loko! Работать по идее должно. Ответ отправлен: 13.02.2004, 16:57 Отправитель: Pawel
Вопрос № 1336
Здравствуйте эксперты ! Помогите разобраться в следующем: имею следующий тип и переменные type MyType = record Name: String[20]; Age: Byte; end; var Form1: TForm1; MyArr: array of MyType; n: Byte; по кнопке выполняю procedure TForm1.Button1Click(Sender: TObject); var i: byte; begin n:=15; SetLength(MyArr,n); for i:=1 to n do begin MyArr[i].Name:='Рамзес '+IntToStr(i)+'й'; MyArr[i].Age:=i*5+Random(10); Memo1.Lines.Add(MyArr[i].Name+IntToStr(MyArr[i].Age)); end; end; Вылетает эксепшн EAccessViolation, не пойму в чем дело. Оболочка Delphi 6. Заранее спасибо.
Доброе время суток, Радик! Dinamicheskiya massivi numeruyutsya s 0 a ne 1 i poetomu: ... n:=15; SetLength(MyArr,n); for i:=1 to n do ... ne rabotayet, a ... n:=15; SetLength(MyArr,n); for i:=0 to n-1 do ... rabotayet! Ответ отправлен: 13.02.2004, 16:30 Отправитель: THE_PRO Отвечает Boriss
Доброе время суток, Радик! Все просто - в массиве N элементов, но их номера от 0 до N-1! То есть, пытаясь записать в N-ый элемент - пишешь мимо! Ответ отправлен: 13.02.2004, 17:56 Отправитель: Boriss Отвечает sir henry
Добрый день, Радик! Задавая размер массива SetLength(MyArr, 15), Вы получаете массив MyArr : array[0..14] of MyType. Элементов в нем 15, но первый элемент - 0, а последний - 14. Ответ отправлен: 14.02.2004, 03:54 Отправитель: sir henry Отвечает Pawel
Здравствуйте, Радик! Массив, особенно динамический лучше обрабатывать начиная с 0. Ответ отправлен: 13.02.2004, 17:00 Отправитель: Pawel Отвечает samum2000
Доброе время суток, Радик! Ошибка вылетает потому, что вы обращаетесь к области памяти, которая не принадлежит вашему массиву. Динамические массивы начинают номерацию с ноля, поэтому, если вы пишите SetLength(MyArr,n);, то можете обращаться к элементам MyArr[0]..MyArr[14]. Вот и вся ошибкаж исправте цикл таким образом: .. for i:=0 to n-1 do .. Попутного ветра! Ответ отправлен: 15.02.2004, 16:09 Отправитель: samum2000
Вопрос № 1337
Приветствую ЭКСперты! Подскажите пожалуйста можно ли программно заполнять поля формы в IE. Т.е. запущен IE и паралельно моя прога и автоматом, при нажатии на кнопку, заполняются нужные поля. Имена поле известны.. Если можно то как? И еще:есть ли компонент и как он называется, который позволял бы отправлять форму и получать выходные данные, минуя использование браузера... Если можно пример.
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.