procedure Statusbar2Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
private
HistoryIndex: Integer;
HistoryList: TStringList;
UpdateCombo: Boolean;
procedure FindAddress;
procedure HomePageRequest(var message: tmessage); message CM_HOMEPAGEREQUEST;
end;
var
MainForm: TMainForm;
implementation
uses DocSrc, About, SMTP, FTP, NNTP, CHAT;
{$R *.DFM}
procedure TMainForm.Exit1Click(Sender: TObject);
begin
Close;
procedure TMainForm.FindAddress;
HTML1.RequestDoc(URLs.Text);
procedure TMainForm.About1Click(Sender: TObject);
ShowAboutBox;
procedure TMainForm.DocumentSource1Click(Sender: TObject);
with DocSourceFrm do
Show;
Memo1.Lines.Clear;
Memo1.Lines.Add(AdjustLineBreaks(HTML1.SourceText));
Memo1.SelStart := 0;
SendMessage(Memo1.Handle, EM_ScrollCaret, 0, 0);
procedure TMainForm.StopBtnClick(Sender: TObject);
HTML1.Cancel('Cancel');
HTML1EndRetrieval(nil);
procedure TMainForm.HTML1BeginRetrieval(Sender: TObject);
{ Turn the stop button dark red }
StopBtn.ImageIndex := 4;
{ Play the avi from the first frame indefinitely }
Animate1.Active := True;
procedure TMainForm.HTML1EndRetrieval(Sender: TObject);
{ Turn the stop button grey }
StopBtn.ImageIndex := 2;
{ Stop the avi and show the first frame }
Animate1.Active := False;
procedure TMainForm.URLsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
if Key = VK_Return then
UpdateCombo := True;
FindAddress;
procedure TMainForm.URLsClick(Sender: TObject);
procedure TMainForm.LinksClick(Sender: TObject);
if (Sender as TToolButton).Hint = '' then Exit;
URLs.Text := (Sender as TToolButton).Hint;
procedure TMainForm.RefreshBtnClick(Sender: TObject);
procedure TMainForm.BackBtnClick(Sender: TObject);
URLs.Text := HistoryList[HistoryIndex - 1];
procedure TMainForm.ForwardBtnClick(Sender: TObject);
URLs.Text := HistoryList[HistoryIndex + 1];
procedure TMainForm.HTML1DoRequestDoc(Sender: TObject;
const URL: WideString; const Element: HTMLElement;
const DocInput: DocInput; var EnableDefault: WordBool);
NewIndex: Integer;
NewIndex := HistoryList.IndexOf(URL);
if NewIndex = -1 then
{ Remove entries in HistoryList between last address and current address }
if (HistoryIndex >= 0) and (HistoryIndex < HistoryList.Count - 1) then
while HistoryList.Count > HistoryIndex do
HistoryList.Delete(HistoryIndex);
HistoryIndex := HistoryList.Add(URL);
end
else
HistoryIndex := NewIndex;
if HistoryList.Count > 0 then
ForwardBtn.Enabled := HistoryIndex < HistoryList.Count - 1;
BackBtn.Enabled := HistoryIndex > 0;
ForwardBtn.Enabled := False;
BackBtn.Enabled := False;
if UpdateCombo then
UpdateCombo := False;
NewIndex := URLs.Items.IndexOf(URL);
URLs.Items.Insert(0, URL)
URLs.Items.Move(NewIndex, 0);
URLs.Text := URL;
Statusbar1.Panels[0].Text := URL;
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
if Shift = [ssAlt] then
if (Key = VK_RIGHT) and ForwardBtn.Enabled then
ForwardBtn.Click
else if (Key = VK_LEFT) and BackBtn.Enabled then
BackBtn.Click;
procedure TMainForm.Toolbar3Click(Sender: TObject);
with Sender as TMenuItem do
Checked := not Checked;
Coolbar1.Visible := Checked;
procedure TMainForm.Statusbar2Click(Sender: TObject);
StatusBar1.Visible := Checked;
procedure TMainForm.HomePageRequest(var Message: TMessage);
URLs.Text := 'http://www.altavista.com';
procedure TMainForm.FormCreate(Sender: TObject);
HistoryIndex := -1;
HistoryList := TStringList.Create;
{ Load the animation from the AVI file in the startup directory. An
alternative to this would be to create a .RES file including the cool.avi
as an AVI resource and use the ResName or ResId properties of Animate1 to
point to it. }
Animate1.FileName := ExtractFilePath(Application.ExeName) + 'cool.avi';
{ Find the home page - needs to be posted because HTML control hasn't been
registered yet. }
PostMessage(Handle, CM_HOMEPAGEREQUEST, 0, 0);
procedure TMainForm.FormDestroy(Sender: TObject);
HistoryList.Free;
procedure TMainForm.ToolButton2Click(Sender: TObject);
TMail.create(Application).showmodal;
procedure TMainForm.ToolButton3Click(Sender: TObject);
TMyFtp.create(Application).showmodal;
procedure TMainForm.ToolButton4Click(Sender: TObject);
TNewsForm.create(Application).showmodal;
procedure TMainForm.ToolButton9Click(Sender: TObject);
TChatForm.create(Application).showmodal;
end.
файл chat.pas
unit chat;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, Buttons, ScktComp, ExtCtrls, ComCtrls;
type
TChatForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Exit1: TMenuItem;
FileConnectItem: TMenuItem;
FileListenItem: TMenuItem;
StatusBar1: TStatusBar;
Bevel1: TBevel;
Panel1: TPanel;
Memo1: TMemo;
Memo2: TMemo;
N1: TMenuItem;
SpeedButton1: TSpeedButton;
Disconnect1: TMenuItem;
ServerSocket: TServerSocket;
ClientSocket: TClientSocket;
procedure FileListenItemClick(Sender: TObject);
procedure FileConnectItemClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
procedure FormCreate(Sender: TObject);
procedure ServerSocketError(Sender: TObject; Number: Smallint;
var Description: string; Scode: Integer; const Source,
HelpFile: string; HelpContext: Integer; var CancelDisplay: Wordbool);
procedure Disconnect1Click(Sender: TObject);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ServerSocketClientRead(Sender: TObject;
procedure ServerSocketAccept(Sender: TObject;
procedure ServerSocketClientConnect(Sender: TObject;
procedure ClientSocketDisconnect(Sender: TObject;
procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ServerSocketClientDisconnect(Sender: TObject;
protected
IsServer: Boolean;
ChatForm: TChatForm;
Server: String;
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17