property LastSize : Integer read FLastSize write FLastSize;
property Repaint : Boolean read FRepaint write FRepaint;
//property Movement : string read FMovement write FMovement;
- procedure Move(const AName: string);
+ procedure Move(const AName: string); overload;
+ procedure Move(scroll: Integer); overload;
procedure IDAnchorPopup(Abody :string);
procedure OpenFindDialog;
end;
end;
end;
end;
+// *************************************************************************
+//! \83u\83\89\83E\83U\82ð\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+// *************************************************************************
+procedure TBrowserRecord.Move(scroll: Integer);
+var
+ top: Integer;
+ item: OleVariant;
+begin
+ //\83u\83\89\83E\83U\82ª\95t\82¢\82Ä\82é\82Æ\82«\82¾\82¯\8f\88\97\9d\82·\82é
+ if (Self.Browser <> nil) then begin
+ //\83u\83\89\83E\83U\82ª\83f\81[\83^\82Ì\93Ç\82Ý\8d\9e\82Ý\92\86\82Ì\8e\9e\82Í\93Ç\82Ý\8d\9e\82Ý\82ð\91Ò\82Â
+ while (Self.Browser.ReadyState <> READYSTATE_COMPLETE) and
+ (Self.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
+ Sleep(1);
+ Application.ProcessMessages;
+ end;
+
+ try
+ OleVariant(Self.Browser.Document as IHTMLDocument2).body.scrollTop
+ := OleVariant(Self.Browser.Document as IHTMLDocument2).body.scrollTop
+ + scroll;
+ except
+ end;
+ end;
+end;
+
//ID\83A\83\93\83J\81[\92Ç\89Á
procedure TBrowserRecord.IDAnchorPopup(Abody :string);
const
// \83^\83u\8dí\8f\9c\81i\8eÀ\91\95\95\94\81j
procedure DeleteTab(index, selectIndex: Integer); overload;
//\8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83X\83N\83\8d\81[\83\8b
- procedure BrowserMovement(const AName: string);
+ procedure BrowserMovement(const AName: string); overload;
+ //\8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83X\83N\83\8d\81[\83\8b
+ procedure BrowserMovement(scroll: Integer); overload;
//Application\82ÌMainForm\82ð\8eæ\93¾\82·\82é
function GetMainForm(): TComponent;
procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
FActiveContent.Move(AName);
end;
end;
-
+//\8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83X\83N\83\8d\81[\83\8b
+procedure TGikoForm.BrowserMovement(scroll: Integer);
+begin
+ if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0)
+ and (FActiveContent <> nil) then begin
+ FActiveContent.Move(scroll);
+ end;
+end;
procedure TGikoForm.TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
begin
if TObject(Node.Data) is TBBS then begin
OnExecute = ScrollKokoActionExecute
OnUpdate = ScrollKokoActionUpdate
end
+ object ScrollPageDownAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #27425#12506#12540#12472
+ Hint = #27425#12506#12540#12472#12473#12463#12525#12540#12523
+ OnExecute = ScrollPageDownActionExecute
+ OnUpdate = DependActiveCntentActionUpdate
+ end
+ object ScrollPageUpAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #21069#12506#12540#12472#12473#12463#12525#12540#12523
+ Hint = #21069#12506#12540#12472#12473#12463#12525#12540#12523
+ OnExecute = ScrollPageUpActionExecute
+ OnUpdate = DependActiveCntentActionUpdate
+ end
object EditorAction: TAction
Category = #12473#12524#12483#12489
Caption = #12524#12473#26360#12365#36796#12415'(&R)'
Caption = 'NG'#12527#12540#12489#32232#38598#12501#12457#12540#12512
Hint = 'NG'#12527#12540#12489#32232#38598#12501#12457#12540#12512#12458#12540#12503#12531
end
+ object AllLinkToClipboardAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #12522#12531#12463'URL'#21462#24471
+ Hint = #12522#12531#12463'URL'#21462#24471
+ OnExecute = AllLinkToClipboardActionExecute
+ OnUpdate = DependActiveCntentActionUpdate
+ end
+ object NewLinkToClipboardAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #26032#30528#12524#12473#12522#12531#12463'URL'#21462#24471
+ Hint = #26032#30528#12524#12473#12522#12531#12463'URL'#21462#24471
+ OnExecute = NewLinkToClipboardActionExecute
+ OnUpdate = DependActiveCntentActionUpdate
+ end
end
object ToobarImageList: TImageList
Left = 44
SetForcusForAddresBarAction: TAction;
NewBoardSearchAction: TAction;
NGWordEditFormAction: TAction;
+ ScrollPageDownAction: TAction;
+ ScrollPageUpAction: TAction;
+ AllLinkToClipboardAction: TAction;
+ NewLinkToClipboardAction: TAction;
procedure EditNGActionExecute(Sender: TObject);
procedure ReloadActionExecute(Sender: TObject);
procedure GoFowardActionExecute(Sender: TObject);
procedure AllImageLinkToClipbordActionExecute(Sender: TObject);
procedure SetForcusForAddresBarActionExecute(Sender: TObject);
procedure NewBoardSearchActionExecute(Sender: TObject);
+ procedure ScrollPageDownActionExecute(Sender: TObject);
+ procedure ScrollPageUpActionExecute(Sender: TObject);
+ procedure AllLinkToClipboardActionExecute(Sender: TObject);
+ procedure NewLinkToClipboardActionExecute(Sender: TObject);
private
{ Private \90é\8c¾ }
procedure ClearResFilter;
procedure MoveURLWithHistory(URL : String);
procedure BackToHistory(item: TMoveHistoryItem);
function GetActiveThreadLinks : IHTMLElementCollection;
- procedure GetImageLinkURLs(links : IHTMLElementCollection;
- URLs : TStringList; const Start: Integer);
+ procedure GetLinkURLs(links : IHTMLElementCollection;
+ URLs : TStringList; const Start: Integer; Exts : TStringList);
public
{ Public \90é\8c¾ }
procedure RepaintStatusBar;
procedure TGikoDM.AllImageLinkToClipbordActionExecute(Sender: TObject);
var
links : IHTMLElementCollection;
- urls : TStringList;
+ urls, exts : TStringList;
begin
links := GetActiveThreadLinks;
if (links <> nil) then begin
urls := TStringList.Create;
+ exts := TStringList.Create;
try
- GetImageLinkURLs(links, urls, 0);
+ exts.CaseSensitive := False;
+ exts.Sorted := True;
+ exts.Delimiter := ';';
+ exts.DelimitedText := '.gif;.jpg;.jpeg;.png';
+ GetLinkURLs(links, urls, 0, exts);
Clipboard.SetTextBuf(urls.GetText);
finally
+ exts.Free;
urls.Free;
end;
end;
procedure TGikoDM.NewImageLinkToClipBoardActionExecute(Sender: TObject);
var
links : IHTMLElementCollection;
- urls : TStringList;
+ urls, exts : TStringList;
ThreadItem : TThreadItem;
begin
ThreadItem := GikoForm.GetActiveContent;
links := GetActiveThreadLinks;
if (ThreadItem <> nil) and (links <> nil) then begin
urls := TStringList.Create;
+ exts := TStringList.Create;
try
- GetImageLinkURLs(links, urls,
- (ThreadItem.Count - ThreadItem.NewResCount + 1) );
+ exts.CaseSensitive := False;
+ exts.Sorted := True;
+ exts.Delimiter := ';';
+ exts.DelimitedText := '.gif;.jpg;.jpeg;.png';
+
+ GetLinkURLs(links, urls,
+ (ThreadItem.Count - ThreadItem.NewResCount + 1), exts );
+ Clipboard.SetTextBuf(urls.GetText);
+ finally
+ exts.Free;
+ urls.Free;
+ end;
+ end;
+end;
+{
+\breif \83\8a\83\93\83NURL\8eæ\93¾
+\91Î\8fÛ\8ag\92£\8eq\82Í\81A\8fÚ\8d×\90Ý\92è\82Å\90Ý\92è\82³\82ê\82Ä\82¢\82é
+}
+procedure TGikoDM.AllLinkToClipboardActionExecute(Sender: TObject);
+var
+ links : IHTMLElementCollection;
+ urls, exts : TStringList;
+begin
+ links := GetActiveThreadLinks;
+ if (links <> nil) then begin
+ urls := TStringList.Create;
+ exts := TStringList.Create;
+ try
+ exts.CaseSensitive := False;
+ exts.Sorted := True;
+ exts.Delimiter := ';';
+ exts.DelimitedText :=
+ MojuUtils.CustomStringReplace(GikoSys.Setting.ExtList, '*', '');
+ GetLinkURLs(links, urls, 0, exts);
+ Clipboard.SetTextBuf(urls.GetText);
+ finally
+ exts.Free;
+ urls.Free;
+ end;
+ end;
+end;
+{
+\breif \90V\92\85\83\8c\83X\83\8a\83\93\83NURL\8eæ\93¾
+\91Î\8fÛ\8ag\92£\8eq\82Í\81A\8fÚ\8d×\90Ý\92è\82Å\90Ý\92è\82³\82ê\82Ä\82¢\82é
+}
+procedure TGikoDM.NewLinkToClipboardActionExecute(Sender: TObject);
+var
+ links : IHTMLElementCollection;
+ urls, exts : TStringList;
+ ThreadItem : TThreadItem;
+begin
+ ThreadItem := GikoForm.GetActiveContent;
+ links := GetActiveThreadLinks;
+ if (ThreadItem <> nil) and (links <> nil) then begin
+ urls := TStringList.Create;
+ exts := TStringList.Create;
+ try
+ exts.CaseSensitive := False;
+ exts.Sorted := True;
+ exts.Delimiter := ';';
+ exts.DelimitedText :=
+ MojuUtils.CustomStringReplace(GikoSys.Setting.ExtList, '*', '');
+ GetLinkURLs(links, urls,
+ (ThreadItem.Count - ThreadItem.NewResCount + 1), exts );
Clipboard.SetTextBuf(urls.GetText);
finally
+ exts.Free;
urls.Free;
end;
end;
end;
+
{
\brief \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\82·\82×\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é\81B
\return IHTMLElementCollection \83\8a\83\93\83N\82Ì\83R\83\8c\83N\83V\83\87\83\93
end;
end;
{
-\brief \83C\83\81\81[\83W\82Ö\82Ì\83\8a\83\93\83N\82ÌURL\82ð\8eæ\93¾\82·\82é
+\brief \83\8a\83\93\83N\82ÌURL\82ð\8eæ\93¾\82·\82é
\param links \8eæ\93¾\82·\82é\83\8a\83\93\83N\82Ì\91S\91Ì\82Ì\83R\83\8c\83N\83V\83\87\83\93
\param URLs \8eæ\93¾\82µ\82½URL\82Ì\95Û\91¶\90æ
\param Start \90Ý\92è\82µ\82½\83\8c\83X\94Ô\8d\86\88È\8d~\82ð\8eæ\93¾( > 0)
+\param Exts \8eæ\93¾\82·\82é\83\8a\83\93\83N\82Ì\8ag\92£\8eq
}
-procedure TGikoDM.GetImageLinkURLs(links : IHTMLElementCollection;
- URLs : TStringList; const Start: Integer);
+procedure TGikoDM.GetLinkURLs(links : IHTMLElementCollection;
+ URLs : TStringList; const Start: Integer; Exts : TStringList);
var
- index ,i : Integer;
+ index ,i, j : Integer;
item : IHTMLElement;
url, ext : string;
begin
// \8aJ\8en\83\8c\83X\94Ô\8d\86\88È\8d~\82©\83`\83F\83b\83N
if (index >= Start) then begin
ext := ExtractFileExt( AnsiLowerCase(url) );
- // jpg,jpeg,gif,png\82ð\83`\83F\83b\83N
- if (ext = '.jpg') or (ext = '.jpeg') or
- (ext = '.gif') or (ext = '.png') then begin
+ // \8ag\92£\8eq\82ð\83`\83F\83b\83N
+ if Exts.Find(ext, j) then begin
urls.Add(url)
end;
end;
form.Release;
end;
end;
+//! \83u\83\89\83E\83U\82ð1\83y\81[\83W\95ª\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+procedure TGikoDM.ScrollPageDownActionExecute(Sender: TObject);
+begin
+ GikoForm.BrowserMovement(GikoForm.BrowserPanel.Height);
+end;
+//! \83u\83\89\83E\83U\82ð1\83y\81[\83W\95ª\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
+procedure TGikoDM.ScrollPageUpActionExecute(Sender: TObject);
+begin
+ GikoForm.BrowserMovement(-GikoForm.BrowserPanel.Height);
+end;
+
+
end.
ZERO_DATE: Integer = 25569;
BETA_VERSION_NAME_E = 'beta';
BETA_VERSION_NAME_J = 'ÊÞÀ';
- BETA_VERSION = 55;
+ BETA_VERSION = 56;
BETA_VERSION_BUILD = ''; //!< debug\94Å\82È\82Ç
APP_NAME = 'gikoNavi';
BE_PHP_URL = 'http://be.2ch.net/test/p.php?i=';
Top = 0
Width = 517
Height = 393
- ActivePage = TabSheet1
- TabIndex = 0
+ ActivePage = KakikomiTabSheet
+ TabIndex = 2
TabOrder = 0
object TabSheet1: TTabSheet
Caption = #35443#32048#35373#23450#65297
Left = 16
Top = 16
Width = 473
- Height = 105
+ Height = 97
Caption = #12463#12483#12461#12540
TabOrder = 0
object Label8: TLabel
end
object GroupBox3: TGroupBox
Left = 16
- Top = 126
+ Top = 118
Width = 473
- Height = 51
+ Height = 43
Caption = #12522#12531#12463#31227#21205#23653#27508
TabOrder = 1
object Label10: TLabel
end
object AHandredGroupBox: TGroupBox
Left = 16
- Top = 184
+ Top = 168
Width = 473
- Height = 65
+ Height = 49
Caption = '100'#12524#12473#34920#31034#35373#23450
TabOrder = 2
object AHandredLabeledEdit: TLabeledEdit
Left = 96
- Top = 24
+ Top = 19
Width = 73
- Height = 20
+ Height = 19
EditLabel.Width = 81
EditLabel.Height = 12
EditLabel.Caption = #20808#38957#34920#31034#12524#12473#25968
end
object UpDown1: TUpDown
Left = 169
- Top = 24
+ Top = 19
Width = 15
- Height = 20
+ Height = 19
Associate = AHandredLabeledEdit
Min = 1
Position = 1
end
object ThreadGroupBox: TGroupBox
Left = 16
- Top = 256
+ Top = 224
Width = 473
- Height = 65
+ Height = 113
Caption = #12473#12524#12483#12489
TabOrder = 3
+ object Label15: TLabel
+ Left = 11
+ Top = 64
+ Width = 225
+ Height = 12
+ Caption = #8251#23550#35937#12392#12377#12427#25313#24373#23376#12434' ; '#12391#12388#12394#12370#12390#12367#12384#12373#12356#12290
+ end
object AddKeywordCheckBox: TCheckBox
- Left = 16
- Top = 24
+ Left = 12
+ Top = 19
Width = 233
Height = 17
Caption = #38306#36899#12461#12540#12527#12540#12489#12398#12522#12531#12463#12434#36861#21152#12377#12427
TabOrder = 0
end
+ object ExtListLabeledEdit: TLabeledEdit
+ Left = 96
+ Top = 43
+ Width = 361
+ Height = 19
+ EditLabel.Width = 82
+ EditLabel.Height = 12
+ EditLabel.Caption = 'URL'#21462#24471#25313#24373#23376
+ LabelPosition = lpLeft
+ LabelSpacing = 3
+ TabOrder = 1
+ OnExit = ExtListLabeledEditExit
+ end
end
end
object TabSheet2: TTabSheet
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil, ExtCtrls;
+ Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil, ExtCtrls, StrUtils;
type
TKuroutOption = class(TForm)
SentIniFileSizeUpDown: TUpDown;
Label13: TLabel;
Label14: TLabel;
+ ExtListLabeledEdit: TLabeledEdit;
+ Label15: TLabel;
procedure OkBottonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CDeleteButtonClick(Sender: TObject);
procedure BDownButtonClick(Sender: TObject);
procedure MoveHistoryMaxEditExit(Sender: TObject);
procedure AHandredLabeledEditExit(Sender: TObject);
+ procedure ExtListLabeledEditExit(Sender: TObject);
private
{ Private \90é\8c¾ }
procedure SetValue;
// \8cë\94½\89\9e\91Î\8dô
ReplaceDatCheckBox.Checked := GikoSys.Setting.ReplaceDat;
SentIniFileSizeUpDown.Position := GikoSys.Setting.SentIniFileSize;
+ ExtListLabeledEdit.Text := GikoSys.Setting.ExtList;
end;
procedure TKuroutOption.SaveSetting;
// \8cë\94½\89\9e\91Î\8dô
GikoSys.Setting.ReplaceDat := ReplaceDatCheckBox.Checked;
GikoSys.Setting.SentIniFileSize := SentIniFileSizeUpDown.Position;
+ GikoSys.Setting.ExtList := ExtListLabeledEdit.Text;
end;
procedure TKuroutOption.RecvBufferSizeExit(Sender: TObject);
PostTimeEditExit(Sender);
MoveHistoryMaxEditExit(Sender);
AHandredLabeledEditExit(Sender);
+ ExtListLabeledEditExit(Sender);
PostColumnData();
SaveSetting;
end;
end;
+procedure TKuroutOption.ExtListLabeledEditExit(Sender: TObject);
+begin
+ if AnsiEndsStr(';', ExtListLabeledEdit.Text) then begin
+ ExtListLabeledEdit.Text :=
+ Copy(ExtListLabeledEdit.Text, 0,
+ Length(ExtListLabeledEdit.Text) - 1);
+ end;
+end;
+
end.
FReplaceDat: Boolean;
//! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
FSentIniFileSize: Integer;
-
+ //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
+ FExtList: String;
function GetMainCoolSet(Index: Integer): TCoolSet;
function GetBoardCoolSet(Index: Integer): TCoolSet;
function GetBrowserCoolSet(Index: Integer): TCoolSet;
property ReplaceDat: Boolean read FReplaceDat write FReplaceDat;
//! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
property SentIniFileSize: Integer read FSentIniFileSize write FSentIniFileSize;
+ //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
+ property ExtList: String read FExtList write FExtList;
end;
end;
FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);
-
+ FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');
ini.UpdateFile;
finally
ini.Free;
ini.WriteBool('Thread', 'AddKeywordLink', FAddKeywordLink);
ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);
ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);
+ ini.WriteString('Function', 'ExtList', FExtList);
ini.UpdateFile;
finally
ini.Free;
-\81¡\83M\83R\83i\83r Version1.00 ÊÞÀ55 Readme.txt
+\81¡\83M\83R\83i\83r Version1.00 ÊÞÀ56 Readme.txt
------------------------------
------------------------------
\97\9a\97ð
------------------------------
+2007/XX/YY
+ Version ÊÞÀ56
+
2007/04/01
Version ÊÞÀ55
\81@\8fÚ\8d×\90Ý\92è\82É\81A\8aÖ\98A\83L\81[\83\8f\81[\83h\82Ì\83\8a\83\93\83N\82ð\92Ç\89Á\82·\82é\83I\83v\83V\83\87\83\93\82ð\92Ç\89Á
GetSpecialFolder\(
CodeModule\.Lines
ms-its:mhtml:
-
+!exec*:*:
\ No newline at end of file