Вопрос № 23317: Уважаемые эксперты!!! У кого есть документация на DSPack, или есть ссылки на нее же - большая прозьба , ПОМОГИТЕ. Очень нужно!...Вопрос № 23318: Здраствуйте уважаемые эксперты! Можно ли как-нибудь отформатировать текст перед тем как вставить его в TRichEdit? Мне нужно подчеркнуть определенные слова в тексте... А желательно их было бы конечно сделать ссылками, при нажатии на котоорые производи...Вопрос
№ 23328: Вот вам, уважаемые эксперты, вопрос не из простых:
Есть mail.ru и надо скачать страничку, которую можно получить только после авторизации, т.е. например мне надо скачать страничку приветствия пользователя. Передача данных - POST. Например 2 поля:...
Вопрос № 23.317
Уважаемые эксперты!!! У кого есть документация на DSPack, или есть ссылки на нее же - большая прозьба , ПОМОГИТЕ. Очень нужно!
Отправлен: 11.07.2005, 02:45
Вопрос задал: Malish (статус: Студент)
Всего ответов отправлено: 1
Отвечает: Werewolf
Здравствуйте, Malish!
Отсюда можно закачать
http://www.progdigy.com/modules.php?name=Downloads&d_op=getit&lid=1
Документация прилагается на английском+ неплохие демки
Ответ отправил: Werewolf (статус: 2-ой класс)
Отправлен: 11.07.2005, 11:09
Вопрос № 23.318
Здраствуйте уважаемые эксперты! Можно ли как-нибудь отформатировать текст перед тем как вставить его в TRichEdit? Мне нужно подчеркнуть определенные слова в тексте... А желательно их было бы конечно сделать ссылками, при нажатии на котоорые производилось бы определеное действие...
Отправлен: 11.07.2005, 03:43
Вопрос задал: Палян Александр Михайлович (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Jadd
Здравствуйте, Палян Александр Михайлович!
Можно. Возьми пакет RxLib. У них есть свой richEdit, в котором этот вопрос почти решен. Почти, потому что тебе только останется добавить обработчик, который будет искать нужное слово и менять ему аттрибуты. А затем там есть событие для линков. Все. Если не устроит, тогда лучшим примером кода будет именно эта компонента, т.к. ее исходный код можно всегда посмотреть.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 11.07.2005, 10:00
Отвечает: Werewolf
Здравствуйте, Палян Александр Михайлович!
Вот пример работы со ссылками в RichEdit.
{
So what we need:
1. drop on your form a RichEdit component from win32 page of component
palette
2. in OnCreate event of your form write the next code:
}
procedure TForm1.FormCreate(Sender: TObject);
var
mask: Word;
begin
mask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);
RichEdit1.Text := 'SwissDelphiCenter.com: '#13#10 +
' Site is located at www.SwissDelphiCenter.com';
end;
{
After that your Richedit will convert automatically any URLs in highlighted
(blue color and underlined). Even if you'll start to enter any text directly
in Richedit, any begings for URL will be converted too (not only existing
text string but new too)
}
// 3. now we must detect mouse clicks in URL range. For this task we must
// override WndProc method of our form:
type
TForm1 = class(TForm)
protected
procedure WndProc(var Message: TMessage); override;
end;
// 4. the implementation looks like this:
procedure TForm1.WndProc(var Message: TMessage);
var
p: TENLink;
strURL: string;
begin
if (Message.Msg = WM_NOTIFY) then
begin
if (PNMHDR(Message.lParam).code = EN_LINK) then
begin
p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
if (p.Msg = WM_LBUTTONDOWN) then
begin
SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
strURL := RichEdit1.SelText;
ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL);
end
end
end;
inherited;
end;
{
5. Now you can compile your project (don't forget to include Richedit and
ShellAPI units in uses clause).
}
Ответ отправил: Werewolf (статус: 2-ой класс)
Отправлен: 11.07.2005, 10:53
Отвечает: sir henry
Здравствуйте, Палян Александр Михайлович!
Нет, нельзя. Текст форматируется ТОЛЬКО в TRichEdit и сохраняется в формате файла поддерживающим это самое форматирование. Можно вставлять специальные тэги которые отвечают за форматирование (как в документах HTML). Для этого нужно изучить формат RTF.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 12.07.2005, 19:34
Вопрос № 23.328
Вот вам, уважаемые эксперты, вопрос не из простых:
Есть mail.ru и надо скачать страничку, которую можно получить только после авторизации, т.е. например мне надо скачать страничку приветствия пользователя. Передача данных - POST. Например 2 поля: логин (login), пароль (passwd).
Как их передать? Как получить кукис? И, главное, как его (кукис) сохранить и в дальнейшем воспользоваться, чтобы постоянно подставлять во время выкачки остальных страниц?
Отправлен: 11.07.2005, 10:40
Вопрос задал: Asker (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Werewolf
Здравствуйте, Asker!
Не проще воспользоваться POP3 протоколом и напрямик закачивать почту?
Если не проще, то вот пример поиска по html и вставке текста куда нужно
{
This example shows how to automatically fill in a search string
in the "Search Tip" page and click the search button.
}
uses
MSHTML_TLB;
// first navigate to tipspage
procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/tipsuchen.php');
end;
// Try to access IE instance and fill out the search field with
// a text and click the search button
procedure TForm1.Button3Click(Sender: TObject);
var
hIE: HWND;
ShellWindow: IShellWindows;
WB: IWebbrowser2;
spDisp: IDispatch;
IDoc1: IHTMLDocument2;
Document: Variant;
k, m: Integer;
ovElements: OleVariant;
i: Integer;
begin
ShellWindow := CoShellWindows.Create;
// get the running instance of Internet Explorer
for k := 0 to ShellWindow.Count do
begin
spDisp := ShellWindow.Item(k);
if spDisp = nil then Continue;
// QueryInterface determines if an interface can be used with an object
spDisp.QueryInterface(iWebBrowser2, WB);
if WB <> nil then
begin
WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
if iDoc1 <> nil then
begin
WB := ShellWindow.Item(k) as IWebbrowser2;
begin
Document := WB.Document;
// count forms on document and iterate through its forms
for m := 0 to Document.forms.Length - 1 do
begin
ovElements := Document.forms.Item(m).elements;
// iterate through elements
for i := 0 to ovElements.Length - 1 do
begin
// when input fieldname is found, try to fill out
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'text') = 0) then
begin
ovElements.item(i).Value := 'FindWindow';
end;
except
end;
// when Submit button is found, try to click
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and
(ovElements.item(i).Value = 'Search') then // Suchen fьr German
begin
ovElements.item(i).Click;
end;
except
end;
end;
end;
end;
end;
end;
end;
end;
Ответ отправил: Werewolf (статус: 2-ой класс)
Отправлен: 11.07.2005, 10:59
Отвечает: Tsechoev Bagaudin
Здравствуйте, Asker!
Если есть необходимость передачи параметров, то посмотри код внизу:
procedure TForm1.Button1Click(Sender: TObject);
var
URL: OleVariant;
begin
URL:= 'http://win.mail.ru/cgi-bin/auth?Login=логин&Password=пароль&Domain=list.ru';
WebBrowser1.Navigate2(Url);
end;
Просто нужно знать как названы элементы в html передать им параметры, вызывая при этом то что задано для свойства action самой формы.
Что касается куки, то все зависит от того, что прописано на самом сервере, время их хранения, разрешены они и т.д. Если разрешены они пишутся автоматически иначе нет.
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 7-ой класс)
Отправлен: 11.07.2005, 11:48