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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 378
от 07.02.2006, 05:00

Администратор:Калашников О.А.
В рассылке:Подписчиков: 253, Экспертов: 53
В номере:Вопросов: 4, Ответов: 11


Вопрос № 34547: Здравствуйте Уважаемые Эксперты! Сегодня у меня такой вопрос подскажите пожалуйсто как можно написать свой интернет браузер с нуля или нахудой конец где можно скачать ядро браузера например Opera или Mozilla FireFox. Компонент WebBrowser от IE6 не ус...
Вопрос № 34565: Здравствуйте уважаемые эксперты. Помогите пожалуйста. В моей программе используеться отправка почтовых сообщений, отпрвляеться сообщение нормально, но при приеме в Outlook сообщения принимаються в "непонятной" кодировке, приходиться по...
Вопрос № 34571: Здравствуйте господа эксперты! У меня тут такая проблемка нарисовалась! Есть табличка в которую попадает результат запроса. Там отображаются только названия. Проблема состоит в том как сделать что бы можно было отмечать каждое название и ли несколько...
Вопрос № 34585: Здравствуйте, эксперты. Пользуюсь компонентом Indy Clients -- IdFTP. Нужно поставить время задержки поменьше. Только нет свойства timeout. Может кто подскажет как или покажет какую-нить ссылку на пример FTP клиента. За все буду благодарен. Заране...

Вопрос № 34.547
Здравствуйте Уважаемые Эксперты! Сегодня у меня такой вопрос подскажите пожалуйсто как можно написать свой интернет браузер с нуля или нахудой конец где можно скачать ядро браузера например Opera или Mozilla FireFox. Компонент WebBrowser от IE6 не устраивает.
Заранее Спасибо!
Отправлен: 01.02.2006, 14:34
Вопрос задал: Шишкин М.А. (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bochvarov NikB
Здравствуйте, Шишкин М.А.!
Тебе ядро или source нужно?
Ответ отправил: Bochvarov NikB (статус: 5-ый класс)
Отправлен: 01.02.2006, 15:14

Отвечает: sir henry
Здравствуйте, Шишкин М.А.!
Полностью с нуля - задача очень долгая. Попробуйте скачать с сайта разработчиков мозилы нужную документацию и инструмент. Так дело намного ускорится:
http://www.mozdev.org/
Ответ отправил: sir henry (статус: Академик)
Отправлен: 01.02.2006, 16:17

Отвечает: Rusland
Здравствуйте, Шишкин М.А.!
Исходники мозилы можно скачать с ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5/source/. Но паскаль там не поможет.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Специалист)
Отправлен: 01.02.2006, 16:45

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Шишкин М.А.!
Как написать с нуля? Брать спецификацию HTML и писать свой парсер кода (в сильно упрощенном варианте). На деле вам придется включать поддержку Java и подобного... Дело не стоит потраченного времени;)

Насчет Opera - это проект с закрытым исходным кодом - соответственно ядро никак не получить, Mozilla FireFox - продукт OpenSource, исходники можете поискать на mozilla.org

Успехов;)
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 01.02.2006, 16:51


Вопрос № 34.565
Здравствуйте уважаемые эксперты.
Помогите пожалуйста. В моей программе используеться отправка почтовых сообщений, отпрвляеться сообщение нормально, но при приеме в Outlook сообщения принимаються в "непонятной" кодировке, приходиться постоянно в каждом письме выбирать "Кодировка"--> "Кирилица "Windows"; а TheBat нормально принимает, т.е он видимо сам конвертирует... Но мне обязательно нужно чтобы сообщения пользователям приходили пользователям Outlook сразу на русском языке. При отправке использую IdSMTP, IdMessage. (Delphi7, WinXP).
Отправлен: 01.02.2006, 19:21
Вопрос задал: Пепеляев Александр Павлович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Пепеляев Александр Павлович!

Для указания кодировки используйте поле объекта TIdMessage TIdMessage.CharSet

Успехов!!!
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 01.02.2006, 19:38
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Пепеляев Александр Павлович!
Либо настройте в Outlook Express шрифт по умолчанию (поставьте "Кирилица(Windows)", либо при заполнении письма используйте кодировку KOI-8R, которая, по всей видимости, стоит у Вас по умолчанию в Outlook Express.
Можно попробовать явно указать нужную кодировку в свойстве IdMessage.CharSet, но у меня с оутлуком это почему-то не срабатывало.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 01.02.2006, 20:16


Вопрос № 34.571
Здравствуйте господа эксперты! У меня тут такая проблемка нарисовалась! Есть табличка в которую попадает результат запроса. Там отображаются только названия. Проблема состоит в том как сделать что бы можно было отмечать каждое название и ли несколько названий и потом чтобы они были результатами следующего запроса.по сути как в ней сделать что-то наподобие CheckBox. Вот я и хочу выбрать название и чтобы оно ушло в качестве параметра для запроса.

С уважением! Александр
Отправлен: 01.02.2006, 22:15
Вопрос задал: Кныш Александр Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ujin Antikvar
Здравствуйте, Кныш Александр Александрович!

Как я вас правильно понял вам нужно засунуть CheckBox в таблицу StringGrid
Если так то привожу вам два примера.

//Первый пример:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
cell_x = 2;
cell_y = 2;

var
Form1: TForm1;
CheckBox1: TCheckBox;

implementation

{$R *.DFM}

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
r:trect;
begin
if(cell_x>=StringGrid1.LeftCol) and
(cell_x<=StringGrid1.LeftCol+StringGrid1.VisibleColCount) and
(cell_y>=StringGrid1.TopRow) and
(cell_x<=StringGrid1.TopRow+StringGrid1.VisibleRowCount) then
CheckBox1.Visible:=true
else
CheckBox1.Visible:=false;

if (acol=cell_x) and (arow=cell_y) then
begin
r:=stringgrid1.CellRect(cell_x,cell_y);
r.Left:=r.left+stringgrid1.left+2;
r.right:=r.right+stringgrid1.left+2;
r.top:=r.top+stringgrid1.top+2;
r.bottom:=r.bottom+stringgrid1.top+2;
CheckBox1.BoundsRect:=r;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1:=TCheckBox.Create(form1);
CheckBox1.parent:=form1;
CheckBox1.Caption:='proba';
end;

end.

//Второй пример
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
CheckBox1: TCheckBox;
procedure CheckBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AddCheckBoxes;
procedure clean_previus_buffer;
procedure set_checkbox_alignment;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowMessage('There it is!!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0, 0] := 'A Simple';
StringGrid1.Cells[1, 0] := 'Way';
StringGrid1.Cells[2, 0] := 'To';
StringGrid1.Cells[3, 0] := 'Do It';
StringGrid1.Cells[4, 0] := 'Check !!';

AddCheckBoxes; //Добавляем CheckBox'ы...
end;

procedure TForm1.clean_previus_buffer;
var
NewCheckBox: TCheckBox;
i: Integer;
begin
for i := 1 to StringGrid1.RowCount do
begin
NewCheckBox := (StringGrid1.Objects[4, i] as TCheckBox);
if NewCheckBox <> nil then
begin
NewCheckBox.Visible := false;
StringGrid1.Objects[4, i] := nil;
end;
end;
end;

procedure TForm1.AddCheckBoxes;
var
i: Integer;
NewCheckBox: TCheckBox;
begin
clean_previus_buffer; //удаляем неиспользуемые чекбоксы...

for i := 1 to 4 do
begin
StringGrid1.Cells[0, i] := 'a';
StringGrid1.Cells[1, i] := 'b';
StringGrid1.Cells[2, i] := 'c';
StringGrid1.Cells[3, i] := 'd';

NewCheckBox := TCheckBox.Create(Application);
NewCheckBox.Width := 0;
NewCheckBox.Visible := false;
NewCheckBox.Caption := 'OK';
NewCheckBox.Color := clWindow;
NewCheckBox.Tag := i;
NewCheckBox.OnClick := CheckBox1.OnClick; //связываем предыдущее событие OnClick
// с существующим TCheckBox
NewCheckBox.Parent := Panel1;

StringGrid1.Objects[4, i] := NewCheckBox;
StringGrid1.RowCount := i;
end;
set_checkbox_alignment; // расположение чекбоксов в ячейках таблицы...
end;

procedure TForm1.set_checkbox_alignment;
var
NewCheckBox: TCheckBox;
Rect: TRect;
i: Integer;
begin
for i := 1 to StringGrid1.RowCount do
begin
NewCheckBox := (StringGrid1.Objects[4, i] as TCheckBox);
if NewCheckBox <> nil then
begin
Rect := StringGrid1.CellRect(4, i); // получаем размер ячейки для чекбокса
NewCheckBox.Left := StringGrid1.Left + Rect.Left + 2;
NewCheckBox.Top := StringGrid1.Top + Rect.Top + 2;
NewCheckBox.Width := Rect.Right - Rect.Left;
NewCheckBox.Height := Rect.Bottom - Rect.Top;
NewCheckBox.Visible := True;
end;
end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if not (gdFixed in State) then
set_checkbox_alignment;
end;

end.

---------
"Будущее принадлежит тем, кто верен своей мечте" - Элеонора Рузвельт
Ответ отправил: Ujin Antikvar (статус: 5-ый класс)
Отправлен: 01.02.2006, 22:51

Отвечает: sir henry
Здравствуйте, Кныш Александр Александрович!
У DBGrid, в параметре Options, есть свойство dgMultiSelect. Поставьте его в TRUE, тогда сможете в таблице выбирать несколько записей стандартным для винды способом. После этого, в SelectedRows, у Вас будут выбранные строки, значения из которых можно получить в цикле:
For i:=0 To DBGrid1.SelectedRows.Count-1 Do
DBGrid1.SelectedRows.Items[i] <- вот это значение можно засунут в следующий запрос
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.02.2006, 07:33


Вопрос № 34.585
Здравствуйте, эксперты.
Пользуюсь компонентом Indy Clients -- IdFTP. Нужно поставить время задержки поменьше. Только нет свойства timeout. Может кто подскажет как или покажет какую-нить ссылку на пример FTP клиента. За все буду благодарен. Заранее спасибо
Отправлен: 02.02.2006, 02:31
Вопрос задал: Repose (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Repose!

Воспользуйтесь компонентом TIdTrivialFTP с вкладки Indy Clients.

Пример использования лежит по адресу:
{Program Files}BorlandDelphiExamplesIndyTrivialFTPClient

Тайм-аут: TIdTrivialFTP.ReceiveTimeout в Инспекторе объектов.

Успехов!
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 02.02.2006, 05:11

Отвечает: sir henry
Здравствуйте, Repose!
Процедура соединения:
procedure Connect(AAutoLogin: boolean = True; const ATimeout: Integer = IdTimeoutDefault); reintroduce;
Выставляете в параметре ATimeout нужное Вам время.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.02.2006, 07:18

Отвечает: Ерёмин Андрей
Здравствуйте, Repose!
Я могу ошибаться, но по-моему таймаут устанавливается хостером на сервере и изменить его нельзя, т.е. это вообще к FTP-клиенту не относится. Хотя, повторюсь, я могу ошибаться. Пример FTP-клиента в прикреплённом файле.

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Работа - не волк, а произведение силы на расстояние!

Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 02.02.2006, 13:50


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

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

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

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

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


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


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

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное