Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 638
от 02.11.2006, 09:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 401, Экспертов: 68
В номере:Вопросов: 5, Ответов: 15


Вопрос № 60324: Ув. эксперты! Помогите решить такую проблему: Необходимо (программой написанной на Delphi) открыть интернет страничку (пока для этого пользуюсь TWebBrowser-ом, но если предложите лучший и бесплатный компонент буду очень благодарен), в ко...
Вопрос № 60352: здравствуйте, подкажите пож.как решить проблему. из дельфи запускаю приложение word и excel с помощью след.кода: var w,e:variant; .. try w:=getactiveoleobject('word.application'); except w:=createoleobject('word.applicatio...
Вопрос № 60401: Здравствуйте господа эксперты. Существуют ли компоненты (для D7 и WinXP) предназначенные для компилирования с ассемблера микропроцессоров семейства MCS-51. Можно ли написать такой компонент на основе DOS ассемблеров, работающих из команд...
Вопрос № 60411: прошу неудивляйтесь моему вопросу потомучто ответ может быть простой а я как новичек невижу его задача такай на форме есть Edit в который я ввожу с клавиатуры набор цифр или букв как сделать чтобы при вводе они появлялись типа звездочек...
Вопрос № 60429: Здравствуйте, УВАЖАЕМЫЕ ЭКСПЕРТЫ!!!! Подскажите, как правиьно сделать в данном тесте, чтобы на Form3 в Label6 по клику на кнопке BitBtn1 отобразить результат ответа на вопрос (правильно/неправильно). Заранее СПАСИБО!!!!! ...

Вопрос № 60.324
Ув. эксперты!

Помогите решить такую проблему:
Необходимо (программой написанной на Delphi) открыть интернет страничку (пока для этого пользуюсь TWebBrowser-ом, но если предложите лучший и бесплатный компонент буду очень благодарен), в которой находится несколько фреймов (без названий) и остановить загрузку страницы в одном из фреймов.

Заранее огромное спасибо!
Отправлен: 27.10.2006, 06:21
Вопрос задал: Устинов Сергей Евгеньевич (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PaVeL_Ekt
Здравствуйте, Устинов Сергей Евгеньевич!

Скорее всего все интернет компоненты загружают страницы автоматически и остановить выборочно загрузку врядтли удастся.

По крайней мере, таких компонентов я не знаю.

Но если вам так нужно останавливать загрузку выборочных страниц отображающихся в фреймах, то в принципе можно использовать TClientSocket.

На етом компоненте можно построить свой BROWSER.
В его использовании кончно есть сложности, но с поставленной задачей он справиться.
Правда надо провести анализ запросов и сообщений с вебсервером !!!
см. приложение, там я привел несколько примеров запросов и ответов сервера !!!

отправить сообщение на сервер можно так:
Первое при соединении:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
Begin
socket.SendText(Запрос_1);
end;

Прием текста:
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var i:integer;s,s1:string;
begin
s:=socket.ReceiveText;
// обработка текста
// если нужно запрашивать еще страницы то
socket.SendText(Запрос_2);
end;

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 27.10.2006, 07:34
Оценка за ответ: 4
Комментарий оценки:
Ой как все сложно :(
Вариант решения я все-таки создал - он находится в минифоруме вопроса.

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Устинов Сергей Евгеньевич!
Вначале посмотрите эту статью
Загрузку нужного фрейма можно отследить, например, по достижению специальной переменной-счетчика определенного значения.
Для остановки загрузки вызовите WebBrowser.Stop;

В приложении перевод комменатрия к статье на случай, если совсем плохо с иностранными языками.

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 27.10.2006, 15:20
Оценка за ответ: 4
Комментарий оценки:
Остановить загрузку страницы во фрейме, и остановить загрузку всей страницы это, по-моему, немножко разные вещи :) А вообще спасибо!


Вопрос № 60.352
здравствуйте, подкажите пож.как решить проблему.
из дельфи запускаю приложение word и excel с помощью след.кода:
var w,e:variant;
..
try
w:=getactiveoleobject('word.application');
except
w:=createoleobject('word.application');
end;

c excelем также.
если в момент запуска проги есть открытое приложение word/excel, то все работает нормально, т.е.дельфи подключается к запущенному приложению, а если открытого нет, то программа ничего не открывает и выдает ошибку "invalid variant action".
помогите разобраться, в чем проблема и как ее можно обойти.
Отправлен: 27.10.2006, 11:42
Вопрос задала: Ladykey (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gladiator
Здравствуйте, Ladykey!

На createoleobject напиши также
try
except
on E: Exception do begin
Result:=E.Message; // строка сообщения
Exit
end;
end;

Не уверен что здесь w:=createoleobject('word.application'); ошибка.
Ответ отправил: Gladiator (статус: 5-ый класс)
Ответ отправлен: 27.10.2006, 12:03

Отвечает: PaVeL_Ekt
Здравствуйте, Ladykey!

Ошибка будет выходить только при программировании (свойство TRY) а в скомпилеванном екзешнике она не возникает (сам проверил), и код полностью выполняется (создается новый образец Word.application), так что работайте дальше и не обращайте внимание на ошибки !!!

Могу посоветовать Вам использовать компоненты WordApplication и ExcelApplication на вкладке Servers.
Там у них есть свойство ConnectKind которое по умолчанию равно ckRunningOrNew, тобиш если Word или Excel запущены, тогда он работает с ними иначе запускает.

А вообще эти компоненты очень хороши, мне очень даже понравились !!!


---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 27.10.2006, 12:40

Отвечает: Sattar
Здравствуйте, Ladykey!
try
W:=GetActiveOleObject('word.application');
except
W:=CreateOleObject('Word.Application');
end;

Ответ отправил: Sattar (статус: 2-ой класс)
Ответ отправлен: 27.10.2006, 19:45

Отвечает: FighterFJ13
Здравствуйте, Ladykey!
Попробуй так:
var
W: OLEVariant;
....
W := CreateOleObject('Word.Application');
W.Visible := True;
....
с Екселем также.
Ответ отправил: FighterFJ13 (статус: 2-ой класс)
Ответ отправлен: 28.10.2006, 01:49


Вопрос № 60.401
Здравствуйте господа эксперты.

Существуют ли компоненты (для D7 и WinXP) предназначенные для компилирования с ассемблера микропроцессоров семейства MCS-51.
Можно ли написать такой компонент на основе DOS ассемблеров, работающих из командной строки, так чтобы при компиляции не отображалось DOS- окно, а результаты работы компилятора выводились в TMemo.

С уважением NickSt
Отправлен: 27.10.2006, 20:32
Вопрос задал: Николай Петров (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Николай Петров!
Про подобные компоненты я не знаю, но навряд ли, т.к. каждый компилятор компилирует только инструкции своего языка.
А вот использовать для этой цели компилятор командной строки для МП вполне возможно. Если, конечно, в Вашей винде они успешно работают. :)
Добавляете в своей программе модуль ShellAPI и выдаете процедуру такого вида:
Shellexecute(0, 'open', 'Название_компилятора_для_МП', 'опции_которые_нужны_для_компилирования', NIL, NIL, SW_HIDE);
В параметр с опциями Вы добавляете досовский знак перенаправления в текстовый файл, например '> error.txt', тогда этот файл с инфой компилятора Вы сможете загрузить в Мемо:
Memo1.Lines.LoadFromFile('error.txt');
И любоваться результатом работы компилятора. :)
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 28.10.2006, 06:58


Вопрос № 60.411
прошу неудивляйтесь моему вопросу
потомучто ответ может быть простой а я как новичек невижу его
задача такай
на форме есть Edit в который я ввожу с клавиатуры набор цифр или букв как сделать чтобы при вводе они появлялись типа звездочек
(чтото типа пароля)
если в Edit это сделать невозможно то покажите пример где ето можно сделать и каким образом.
Заранее спасибо.
Отправлен: 27.10.2006, 21:05
Вопрос задал: Fins (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Fins!

Свойству PasswordChar объекта Edit присвойте значение *.

Удачи!
---------
Ответы на все вопросы - на сайте www.ya.ru
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 27.10.2006, 21:46

Отвечает: Sattar
Здравствуйте, Fins!
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.PasswordChar:='*';
end;
Ответ отправил: Sattar (статус: 2-ой класс)
Ответ отправлен: 27.10.2006, 22:01

Отвечает: Andronik
Здравствуйте, Fins!

Добавлю к ответам предыдущих экспертов, что для этого можно использовать не только TEdit, но и специализированный компонент TMaskEdit с палитры Additional, у которого тоже есть свойство PasswordChar. Кроме того, можно использовать не только звездочки, но и вообще любой символ - для этого нужно использовать его код с предшествующим знаком #

Edit1.PasswordChar := #32; //замена пойдет пробелами, а не звездочками
Edit1.PasswordChar := #7; // на каждый введенный символ будет гудеть бипер
---------
Запрограммировать можно все... кроме собственного поведения
Ответ отправил: Andronik (статус: 1-ый класс)
Ответ отправлен: 27.10.2006, 22:41

Отвечает: W@NDeReR
Здравствуйте, Fins!
Чтобы текст или цифры появлялись в виде звёздочек можно воспользоватьтся компонентом MaskEdit c вкладки Additional, в свойстве MaskEdit passwordChar
нужно указать какие символы будут видны заместо текста в вашем случае это *
Ответ отправил: W@NDeReR (статус: 1-ый класс)
Ответ отправлен: 28.10.2006, 09:43

Отвечает: Александр Викторович Анкудинов
Здравствуйте, Fins!
У Edit'а есть свойство PasswordChar. Чтобы все вводимое отоброжадось в виде звездочек оно должно быть равным "*". Но лучше используй что нибудь другое.
Больно легко Edit взламывается.
---------
Век живи - век учись
Ответ отправил: Александр Викторович Анкудинов (статус: 1-ый класс)
Ответ отправлен: 28.10.2006, 15:33

Отвечает: PaVeL_Ekt
Здравствуйте, Fins!

У EDIT есть свойство PasswordChar
Сделайте его * и все !!!

УДАЧИ
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 30.10.2006, 09:17


Вопрос № 60.429
Здравствуйте, УВАЖАЕМЫЕ ЭКСПЕРТЫ!!!! Подскажите, как правиьно сделать в данном тесте, чтобы на Form3 в Label6 по клику на кнопке BitBtn1 отобразить результат ответа на вопрос (правильно/неправильно). Заранее СПАСИБО!!!!!

Приложение:

Отправлен: 28.10.2006, 00:13
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Melamed
Здравствуйте, Алена!
В обрабодчике события OnClick для кнопки BitBtn1 при условии правельности проведенного рассчета пишешь

Form3.Label6.Caption := "Правильно"

в противном случае

Form3.Label6.Caption := "Неправильно"

Смотри логику своей программы. По вашему вопросу условие правильности произведенных дейсвий я определить, к сожалению, не могу
Ответ отправил: Melamed (статус: 7-ой класс)
Ответ отправлен: 28.10.2006, 15:06

Отвечает: PaVeL_Ekt
Здравствуйте, Алена!

не совсем понял Ваш вопрос, если Вам нужно с 2 формы нажать кнопку тогда
Form3.label6.caption:='Текст'

Если кнопка находиться на 3 форме но, Вам нужно ее нажать находясь на 2 форме
тогда
Form3.BitBnt1.click;
или можно вызвать обработчик условия нажатия кнопки
Form3.BitBtn1.OnClick(BitBtn1);

Алена убедительная просьба в следующий раз более четко составлять вопросы, это упростит понимание, увеличит скорость ответов, и исключит излишнюю информацию.

УДАЧИ !!!
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 30.10.2006, 09:28


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное