Вопрос № 55204: Здраствуйте!!!
Скажите как можно сделать так чтобы полудуплексные устройства в Combobox`e были синего цвета ,а полнодуплексные зелёного, вообщем вопрос только о прорисовке!
И есть ли какой-нибудь более гуманный способ определить полнодуплексн...Вопрос № 55209: Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, где можно почитать об использовании ActionManager, желательно еще исходник посмотреть. Самому разобраться не получилось, а навязать ToolButton горячие клавиши надо бы. Спасибо....Вопрос № 55237: Здраствуйте уважаемые эксперты! Помогите мне пожалуйста!
У меня Table база данных, необходимо создать индекс, а в конце
программы удалить его! Большое спасибо!...Вопрос № 55255: Добрый день, уважаемые Эксперты!
В программе требуется передать определенный файл по протоколу FTP на заданный FTP-сервер. Как осуществить передачу файла - разобрался(пример в Indy). Подскажите как сделать, что бы прога проверила подключен ли инт...Вопрос № 55259: Доброго времени. Разрабатываем ПО (Dephi 6, WIN XP SP1), использующее для обмена 485 интерфейс (15 Mбит PCI плата,-высокоскоростной аналог rs-232).Компонет для обмена AsyncPro.Проблема в том,что на скоротях считывания >4Мбит начинают
теряться данн...Вопрос № 55317: Доброго времени суток. Вроде простая задача, но не могу решить: как из программы запустить командную строку DOS?...Вопрос № 55332: Здравствуйте уважаемые эксперты!!!
В процедуре OnClose (для Form1) применил такой код (в цикле):
with TEdit(findComponent('Edit'+inttostr(i))) do free. После чего программа (во время работы и закрытия формы) выдала такое сообщение:
…excep...
Вопрос № 55.204
Здраствуйте!!!
Скажите как можно сделать так чтобы полудуплексные устройства в Combobox`e были синего цвета ,а полнодуплексные зелёного, вообщем вопрос только о прорисовке!
И есть ли какой-нибудь более гуманный способ определить полнодуплексное аудио устройство или нет,не гуманный это:
Если при попытки открыть устройство и на In и на Out и вылетит ошибка значит не полнодуплексное???!
Отправлен: 12.09.2006, 21:02
Вопрос задал: chikanok (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: n0name
Здравствуйте, chikanok!
Тебе придется самостоятельно перерисовывать ComboBox.
В VCL OnDrawItem, в WinAPI ловишь в радительском окне WM_DRAWITEM И WM_MEASUREITEM.
Ответ отправил: n0name (статус: 4-ый класс)
Ответ отправлен: 12.09.2006, 22:21
Вопрос № 55.209
Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, где можно почитать об использовании ActionManager, желательно еще исходник посмотреть. Самому разобраться не получилось, а навязать ToolButton горячие клавиши надо бы. Спасибо.
Отправлен: 12.09.2006, 21:18
Вопрос задал: Piit (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zлоумышленник
Здравствуйте, Piit!
ToolButton можно подцепить на элемент главного меню с гор. клавишей.
Об ActionManager можно почитать у Марко Кэнту "Delphi 7 для профессионалов". Там офигенный исходник.
Книжку возьмёшь сдесь: http://webmate.com.ru/ebooks/book100.html?action=results&poll_ident=6
Исходники с сайта автора.
Ответ отправил: Zлоумышленник (статус: 10-ый класс)
Ответ отправлен: 12.09.2006, 21:34 Оценка за ответ: 5
Отвечает: n0name
Здравствуйте, Piit!
Исходники можешь посмотреть в папке с примерами которые идут вместе с Delphi.
В Delphi7 точно есть, если ты конечно при установке не отрубил копирование их.
Ответ отправил: n0name (статус: 4-ый класс)
Ответ отправлен: 12.09.2006, 22:23 Оценка за ответ: 4
Вопрос № 55.237
Здраствуйте уважаемые эксперты! Помогите мне пожалуйста!
У меня Table база данных, необходимо создать индекс, а в конце
программы удалить его! Большое спасибо!
Отправлен: 13.09.2006, 02:04
Вопрос задал: Luminarc (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Luminarc!
У базы данных нет индексов, индексы есть у таблиц. Поэтому приведу пример создания индекса для таблицы Table. Поскольку Вы не захотели сказать, какого типа у Вас база данных, то придется применять универсальный язык SQL и соответствующий компонент для него - TQuery.
Кладете на форму компонент, в свойство DatabaseName прописываете имя Вашей базы данных (если она определена в BDE), Потом:
- для построения индекса
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:='CREATE INDEX Название_Индекса ON Название_Таблицы (А здесь записываете индексное выражение. В простейшем случае это будет название поля, по которому строится индекс)
{Например индекс по полю Main_id}
Query1.SQL.Text:='CREATE INDEX Main_id ON Table (Main_id)';
Query1.SQL.ExecSQL; {Строим индекс}
- удаление индекса
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:='DROP INDEX Main_id';
Query1.SQL.ExecSQL; {Удаление}
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 13.09.2006, 06:53
Вопрос № 55.255
Добрый день, уважаемые Эксперты!
В программе требуется передать определенный файл по протоколу FTP на заданный FTP-сервер. Как осуществить передачу файла - разобрался(пример в Indy). Подскажите как сделать, что бы прога проверила подключен ли интернет и если нет, то установила бы соединение. Желательно при этом выбрать подключение. Очень буду рад примеру.
Заранее благодарен.
Отвечает: Coupler
Здравствуйте, Дмитрий Александрович!
Вот как проверить, подключен ли компьютер к интернету:
1 способ:
function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes:=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result:= InternetGetConnectedState(@dwConnectionTypes, 0);
end;
procedure TForm1.XiButton1Click(Sender: TObject);
begin
if IsConnectedToInternet then showmessage ('Y') else showmessage ('N');
end;
2 способ:
function GetConnect(var strKind: string): Boolean;
var
flags: DWORD;
begin
strKind := '';
Result := InternetGetConnectedState(@flags, 0);
if Result then
begin
if (flags and 1) = 1 then strKind := 'Modem';
if (flags and 2) = 2 then strKind := 'LAN';
if (flags and 4) = 4 then strKind := 'Proxy';
if (flags and 8) = 8 then strKind := 'Modem Busy';
end;
end;
procedure TForm1.XiButton2Click(Sender: TObject);
var strkind:string;
begin
if GetConnect(strKind) then
ShowMessage('есть')
else
ShowMessage('нету');
end;
По поводу соединения: сообщите мне свой e-mail (по вн.почте или в мини-форуме), я вам вышлю проект или сами поищите в сети файл d_ras.zip.
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 13.09.2006, 14:06 Оценка за ответ: 3 Комментарий оценки: Спасибо, но, к сожалению, оба предложенных Вами варианта правильно не работают. На машине, непосредственно подключенной к интернету, через WDSL модем получаем Есть - Modem. На машине не подключенной к сети (выдернут сетевой кабель) все равно есть - Lan. Вопрос остается открытым.
Отвечает: n0name
Здравствуйте, Дмитрий Александрович!
Можно пропинговать www.ru, можно использовать InetIsOffline или InternetCheckConnection.
Приложение:
Ответ отправил: n0name (статус: 4-ый класс)
Ответ отправлен: 13.09.2006, 16:48
Вопрос № 55.259
Доброго времени. Разрабатываем ПО (Dephi 6, WIN XP SP1), использующее для обмена 485 интерфейс (15 Mбит PCI плата,-высокоскоростной аналог rs-232).Компонет для обмена AsyncPro.Проблема в том,что на скоротях считывания >4Мбит начинают теряться данные,причем количество потерянной информации зависит от производительности конкретного ПК.Что делать?То ли Винда не успевает,то ли AsyncPro не рассчитан..Поделитесь опытом.
Отправлен: 13.09.2006, 11:23
Вопрос задал: Миша. (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zлоумышленник
Здравствуйте, Михон!
На таких скоростях скорее всего не успевает Винда. Я с AsyncPro не работал, поэтому тонкстей реализации не знаю. Не так давно обмен через RS-232 делал на чистом API. Там была следующая схема: отдельный поток считывал данные с порта в буфер определённой длины; при заполнении буфера выделялась область памяти, в которую сбрасывался буфер с последующей очисткой (буфера); посылалось пользовательское сообщение основному процессу с адресом памяти с данными буфера; в основном потоке данные обрабатывались и память освобождалась.
И всё это повторялось снова.
Данные шли плотным потоком и приложение захлёбывалось, если передавать данные сразу, без заполнения буфера.
Вывод: посмотрите, есть ли в AsyncPro что-то типа буфера и свойства логического,которое бы указывало, передавать данные сразу или только после заполнения буфера.
Ответ отправил: Zлоумышленник (статус: 10-ый класс)
Ответ отправлен: 13.09.2006, 19:46 Оценка за ответ: 4
Вопрос № 55.317
Доброго времени суток. Вроде простая задача, но не могу решить: как из программы запустить командную строку DOS?
Отправлен: 13.09.2006, 18:08
Вопрос задал: Elpher2006 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 13.09.2006, 19:10
Вопрос № 55.332
Здравствуйте уважаемые эксперты!!!
В процедуре OnClose (для Form1) применил такой код (в цикле):
with TEdit(findComponent('Edit'+inttostr(i))) do free. После чего программа (во время работы и закрытия формы) выдала такое сообщение:
…exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process stopped. Use Step or Run to continue.
И такое сообщение (при другом запуске программы):
…exception class EInvalidOperation with message 'Control '' has no parent window'. Process stopped. Use Step or Run to continue.
Метод Free применяю только в процедуре OnClose и нигде больше.
Что делать в этом случае? Спасибо за внимание.
Отправлен: 13.09.2006, 19:43
Вопрос задал: Piit (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Piit!
Функция FindComponent не нашла какого-то из Edit-ов - тогда ее результат nil
Правда, метод Free ругаться не должен в этом случае... Нет ли выше случайно еще какой-либо строки, обращающейся к Edit-у таким же образом?
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 5-ый класс)
Ответ отправлен: 13.09.2006, 19:52 Оценка за ответ: 5