Вопрос № 41921: Всем здравствуйте.
Вот пишу следуйщий код:
uses ComObj
var
IE,Doc: Variant;
begin
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate2('http://www.stc-istok.com.ua');
while ...Вопрос № 41928: Здравствуйте, уважаемые спициалисты. У меня к вам 2 вопроса:
1) Дана задача ниписания программы тестирования студентов со статистикой, преподаватель сказал что нужно использовать ADO. С чего начать, и какие таблицы и их взаимсвязь посоветуете.<b...Вопрос № 41974: Как реализовать изменение записей базы данных (Interbase) после того, как из общего набора записей была выделена некая группа (запрос был реализован с помощью IBQuery)? Отобранные данные отображаются с помощью DBGrid. Как мне теперь изменять уже отоб...Вопрос № 41976: Здравствуйте! Уважаемые эксперты, я являюсь новичком в среде Delphi и хотел бы получить графическое представление снятого с звуковой карты сигнала. Не могли бы подсказать (или прислать исходник) каким образом это можно осущесвить?...
Вопрос № 41.921
Всем здравствуйте.
Вот пишу следуйщий код:
uses ComObj
var
IE,Doc: Variant;
begin
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate2('http://www.stc-istok.com.ua');
while (IE.ReadyState<>4) or (IE.Busy) do
begin
Sleep(100);
Application.ProcessMessages;
end;
Doc := IE.Document;
Doc.execCommand('SaveAs',False,'c: est1.htm' );
после его выполнения у меня появляеться окна
сохранения теперь мне надо как то нажать сохраниться ,конечно можно просто нажать на кнопку сохранить и потом проверять пока активно окно прогресса сохранения тогда оставться в цикле while.
а к окна нет то выходить из цикла.но это замарочено через findwindow писать.Должен быть способ проще какой-то через COM.Максимум в пару строк.Так какой же?
И почему если я хочу нажать энтер в активное окно вот так keybd_event(VK_RETURN,0,0,0);
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);то всё работает,а если я хочу так же нажать клавиатурную правую кнопу мыши вот так
keybd_event(VK_RBUTTON,0,0,0);
keybd_event(VK_RBUTTON,0,KEYEVENTF_KEYUP,0); то она не нажимаеться.Кто нить сталкивался?
Отвечает: Решетник Д
Здравствуйте, Паша паш паша!
Вот нашел на форуме ком-то 2 варианта
(не проверял)
uses MSHTML;
var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
PersistFile.Save(StringToOleStr('С: est.txt'), True);
while HTMLDocument.readyState <> 'complete' do Application.ProcessMessages;
----------------
uses
ActiveX;
function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 5-ый класс)
Ответ отправлен: 03.05.2006, 18:05
Вопрос № 41.928
Здравствуйте, уважаемые спициалисты. У меня к вам 2 вопроса:
1) Дана задача ниписания программы тестирования студентов со статистикой, преподаватель сказал что нужно использовать ADO. С чего начать, и какие таблицы и их взаимсвязь посоветуете.
2) Задача создания программы для "больницы" даны документы: Траспортный лист, Медицинская карта, переводной эпикриз, первичный осмотр в отделении реанимации. Всё это надо сделать на Delphi и ADO. Какие таблицы посоветуете, если можно опишите их связь.
Заранее благодарен за любые ответы.
Отвечает: sir henry
Здравствуйте, Самолдин Геннадий Геннадьевич!
Формат хранения данных можно выбирать исходя из следующих принципов:
1. Если количнство пользователей мало (не более 3..5 человек) и планируемый размер БД не превышает 100..300 МБ, то вполне можно использовать файловый тип (FoxPro, dBase, Paradox). Если при этом максимальный размер БД определить невозможно, однако предполагается бысрое ее нарлнение, то предпочтительнее будет Paradox, т.к. этот формат может корректно работать с большими (выше 500 МБ) таблицами.
2. Если количество пользователей велико (больше 5-ти), то лучше будет использовать какой-либо сервер БД, например InterBase/FireBird.
3. Если при большом числе пользователей предполагается большой объем данных (более 15..20 ГБ), то стоит родумать над использованием пробышленных серверов БД, типа MS SQL или Oracle.
--------------------------------------------
При проектировании таблиц и их связей, прежде необходимо тщательно продумать, а какие данные будут хранится в БД. Исходя из этого подбираются типы данных. Например, список студентов:
уникальный номер студента - явно должен быть целочисленный,
Имя-Фамилия-Отчесво - тут кроме строкового типа придумать что-либо еще довольно трудно,
Группа, где учится студент - скорее всего в названиях групп присутствуют буквы, так что это строка.
Таблица успеваемости студентов:
Уникальный номер записи - см выше,
уникальный номер студента - для связи со списком студентов, целочисленный,
ну и так далее...
Для связи между таблицами должны быть построены индексы по тем полям, по которым предусматривается связь. У главной таблицы этот индекс должен быть обязательно уникальным, у подчиненной скорее всего нет.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 03.05.2006, 08:25
Вопрос № 41.974
Как реализовать изменение записей базы данных (Interbase) после того, как из общего набора записей была выделена некая группа (запрос был реализован с помощью IBQuery)? Отобранные данные отображаются с помощью DBGrid. Как мне теперь изменять уже отобранные записи и сохранять изменения в общей базе? Можно ли это сделать с помощью IBUpdateSQL?
Отправлен: 03.05.2006, 14:21
Вопрос задала: Malishkin (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Проходящий Мимо
Здравствуйте, Malishkin!
Вам нужно было использовать компонент IBDataSet с той же закладки (Interbase), в нем заполнить свойства аналогичные IBUpdateSQL:
для выборки SelectSQL
для изменения ModifySQL
для вставки InsertSQL
для удаления DeleteSQL
GeneratorField можно использовать для привязки существующего генератора в базе и ключевого поля. Тогда можно обойтись без IBUpdateSQL.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 2-ой класс)
Ответ отправлен: 03.05.2006, 14:37
Вопрос № 41.976
Здравствуйте! Уважаемые эксперты, я являюсь новичком в среде Delphi и хотел бы получить графическое представление снятого с звуковой карты сигнала. Не могли бы подсказать (или прислать исходник) каким образом это можно осущесвить?