| 556 |
EndIndex: Integer; OldState, NewState: TItemStates); |
EndIndex: Integer; OldState, NewState: TItemStates); |
| 557 |
procedure BrowserStatusTextChange(Sender: TObject; |
procedure BrowserStatusTextChange(Sender: TObject; |
| 558 |
const Text: WideString); |
const Text: WideString); |
|
procedure BrowserTitleChange(Sender: TObject; const Text: WideString); |
|
| 559 |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
| 560 |
procedure TreeViewChanging(Sender: TObject; Node: TTreeNode; |
procedure TreeViewChanging(Sender: TObject; Node: TTreeNode; |
| 561 |
var AllowChange: Boolean); |
var AllowChange: Boolean); |
| 1237 |
newBrowser.OnEnter := BrowserEnter; |
newBrowser.OnEnter := BrowserEnter; |
| 1238 |
newBrowser.OnNewWindow2 := BrowserNewWindow2; |
newBrowser.OnNewWindow2 := BrowserNewWindow2; |
| 1239 |
newBrowser.OnStatusTextChange := BrowserStatusTextChange; |
newBrowser.OnStatusTextChange := BrowserStatusTextChange; |
| 1240 |
newBrowser.OnTitleChange := BrowserTitleChange; |
//newBrowser.OnTitleChange := BrowserTitleChange; |
| 1241 |
newBrowser.Navigate(BLANK_HTML); |
newBrowser.Navigate(BLANK_HTML); |
| 1242 |
ShowWindow(newBrowser.Handle, SW_HIDE); |
ShowWindow(newBrowser.Handle, SW_HIDE); |
| 1243 |
FBrowsers.Add(newBrowser); |
FBrowsers.Add(newBrowser); |
| 2493 |
board : TBoard; |
board : TBoard; |
| 2494 |
Protocol, Host, Path, Document, Port, Bookmark: string; |
Protocol, Host, Path, Document, Port, Bookmark: string; |
| 2495 |
|
|
| 2496 |
//wkInt: Integer; |
wkInt: Integer; |
| 2497 |
wkIntSt: Integer; |
wkIntSt: Integer; |
| 2498 |
wkIntTo: Integer; |
wkIntTo: Integer; |
| 2499 |
ActiveFileName: string; |
ActiveFileName: string; |
| 2518 |
if PreviewTimer.Enabled then |
if PreviewTimer.Enabled then |
| 2519 |
PreviewTimer.Enabled := False; |
PreviewTimer.Enabled := False; |
| 2520 |
Application.CancelHint; |
Application.CancelHint; |
| 2521 |
if GetActiveContent <> nil then |
try |
| 2522 |
ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '') |
if GetActiveContent <> nil then |
| 2523 |
else |
ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '') |
| 2524 |
ActiveFileName := ''; |
else |
| 2525 |
|
ActiveFileName := ''; |
| 2526 |
|
except |
| 2527 |
|
FActiveContent := nil; |
| 2528 |
|
Exit; |
| 2529 |
|
end; |
| 2530 |
|
|
| 2531 |
StatusBar.Panels[1].Text := Text; |
StatusBar.Panels[1].Text := Text; |
| 2532 |
|
|
| 2618 |
end else if (wkIntSt > 0) and (wkIntTo = 0) then begin |
end else if (wkIntSt > 0) and (wkIntTo = 0) then begin |
| 2619 |
wkIntTo := wkIntSt; |
wkIntTo := wkIntSt; |
| 2620 |
end else if wkIntSt > wkIntTo then begin |
end else if wkIntSt > wkIntTo then begin |
| 2621 |
//wkInt := wkIntTo; |
wkInt := wkIntTo; |
| 2622 |
wkIntTo := wkIntSt; |
wkIntTo := wkIntSt; |
| 2623 |
wkIntSt := wkIntTo; |
wkIntSt := wkInt; |
| 2624 |
end; |
end; |
| 2625 |
//if wkIntSt = 0 then |
//if wkIntSt = 0 then |
| 2626 |
// wkIntSt := 1; |
// wkIntSt := 1; |
| 2670 |
end; |
end; |
| 2671 |
end; |
end; |
| 2672 |
|
|
|
procedure TGikoForm.BrowserTitleChange(Sender: TObject; |
|
|
const Text: WideString); |
|
|
var |
|
|
Title: string; |
|
|
begin |
|
|
if (Text = BLANK_HTML) or (Text = GikoSys.GetHtmlTempFileName) then |
|
|
Title := CAPTION_NAME |
|
|
else |
|
|
Title := CAPTION_NAME + ' - [' + Text + ']'; |
|
|
Caption := Title; |
|
|
//Application.Title := Title; |
|
|
end; |
|
|
|
|
| 2673 |
procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean); |
procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean); |
| 2674 |
var |
var |
| 2675 |
SysMenu: HMenu; |
SysMenu: HMenu; |
| 3282 |
newBrowser.Repaint := true; |
newBrowser.Repaint := true; |
| 3283 |
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3284 |
|
|
| 3285 |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin |
BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
| 3286 |
{ |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin |
| 3287 |
if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then |
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 1 ] ) ); |
|
FActiveContent := nil; |
|
|
BrowserTab.Tabs.Objects[ 0 ].Free; |
|
|
BrowserTab.Tabs.Objects[ 0 ] := newBrowser; |
|
|
BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20); |
|
|
} |
|
|
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
|
| 3288 |
end;// else begin |
end;// else begin |
|
BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
|
| 3289 |
//end; |
//end; |
| 3290 |
BrowserTab.Repaint; |
BrowserTab.Repaint; |
| 3291 |
if ActiveTab then begin |
if ActiveTab then begin |
| 3311 |
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3312 |
newBrowser.Repaint := true; |
newBrowser.Repaint := true; |
| 3313 |
|
|
| 3314 |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin |
i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
| 3315 |
{ |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin |
|
if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then |
|
|
FActiveContent := nil; |
|
|
BrowserTab.Tabs.Objects[ 0 ].Free; |
|
|
BrowserTab.Tabs.Objects[ 0 ] := newBrowser; |
|
|
BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20); |
|
|
} |
|
| 3316 |
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
| 3317 |
end;// else begin |
end; |
|
i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
|
| 3318 |
//end; |
//end; |
| 3319 |
BrowserTab.Repaint; |
BrowserTab.Repaint; |
| 3320 |
if ActiveTab then begin |
if ActiveTab then begin |
| 3321 |
BrowserTab.TabIndex := i; |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then |
| 3322 |
|
BrowserTab.TabIndex := 0 |
| 3323 |
|
else |
| 3324 |
|
BrowserTab.TabIndex := i; |
| 3325 |
end; |
end; |
| 3326 |
end; |
end; |
| 3327 |
if(ActiveTab) or (idx = -1) then begin |
if(ActiveTab) or (idx = -1) then begin |
| 3373 |
finally |
finally |
| 3374 |
end; |
end; |
| 3375 |
end; |
end; |
| 3376 |
if inThread = nil then |
if not (Assigned(inThread)) or (inThread.Thread = nil) then begin |
|
Exit |
|
|
else if inThread.Thread = nil then begin |
|
| 3377 |
inThread.Browser.Navigate(BLANK_HTML); |
inThread.Browser.Navigate(BLANK_HTML); |
| 3378 |
BrowserBoardNameLabel.Caption := ''; |
BrowserBoardNameLabel.Caption := ''; |
| 3379 |
ItemBoardImage.Picture := nil; |
ItemBoardImage.Picture := nil; |
| 3408 |
ReleaseCapture; |
ReleaseCapture; |
| 3409 |
|
|
| 3410 |
Screen.Cursor := crHourGlass; |
Screen.Cursor := crHourGlass; |
| 3411 |
|
|
| 3412 |
|
|
| 3413 |
try |
try |
| 3414 |
if inThread.FThread.UnRead then begin |
if inThread.FThread.UnRead then begin |
| 3415 |
inThread.FThread.ParentBoard.UnRead := inThread.FThread.ParentBoard.UnRead - 1; |
inThread.FThread.ParentBoard.UnRead := inThread.FThread.ParentBoard.UnRead - 1; |
| 3422 |
if (not Assigned(inThread.Browser.Document)) then begin |
if (not Assigned(inThread.Browser.Document)) then begin |
| 3423 |
inThread.Browser.Navigate('about:blank'); |
inThread.Browser.Navigate('about:blank'); |
| 3424 |
end; |
end; |
| 3425 |
//if inThread.Browser <> BrowserNullTab.Browser then begin |
while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 3426 |
while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
(inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 3427 |
(inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
Application.ProcessMessages; |
| 3428 |
Application.ProcessMessages; |
if idx <> BrowserTab.TabIndex then begin |
| 3429 |
if idx <> BrowserTab.TabIndex then begin |
FActiveContent := inThread; |
| 3430 |
BrowserTab.OnChange(nil); |
//BrowserTab.OnChange(nil); |
| 3431 |
Exit; |
Exit; |
|
end; |
|
| 3432 |
end; |
end; |
|
//end; |
|
| 3433 |
|
|
| 3434 |
|
end; |
| 3435 |
|
if not (Assigned(inThread)) or not (Assigned(inThread.Thread)) then begin |
| 3436 |
|
FActiveContent := nil; |
| 3437 |
|
Exit; |
| 3438 |
|
end; |
| 3439 |
if not inThread.FThread.IsLogFile then begin |
if not inThread.FThread.IsLogFile then begin |
| 3440 |
|
Caption := CAPTION_NAME ; |
| 3441 |
try |
try |
| 3442 |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
| 3443 |
doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2; |
doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2; |
| 3448 |
finally |
finally |
| 3449 |
end; |
end; |
| 3450 |
end else begin |
end else begin |
| 3451 |
|
Caption := CAPTION_NAME + ' - [' + inThread.Thread.Title + ']'; |
| 3452 |
//Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき |
//Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき |
| 3453 |
//新規にThreadを開いたときに真になっている。 |
//新規にThreadを開いたときに真になっている。 |
| 3454 |
if(inThread.Repaint) or (inThread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin |
if(inThread.Repaint) or (inThread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin |
| 3464 |
//ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。 |
//ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。 |
| 3465 |
//相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる |
//相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる |
| 3466 |
// byもじゅ(2004/01/20) |
// byもじゅ(2004/01/20) |
| 3467 |
|
try |
| 3468 |
if inThread.FThread.UnRead then |
if (Assigned(inThread)) and (Assigned(inThread.Thread))then begin |
| 3469 |
BrowserMovement('new', inThread) |
if inThread.FThread.UnRead then |
| 3470 |
else if inThread.FThread.ScrollTop <> 0 then begin |
BrowserMovement('new', inThread) |
| 3471 |
try |
else if inThread.FThread.ScrollTop <> 0 then begin |
| 3472 |
doc.Body.ScrollTop := inThread.FThread.ScrollTop; |
try |
| 3473 |
except |
doc.Body.ScrollTop := inThread.FThread.ScrollTop; |
| 3474 |
on E: Exception do |
except |
| 3475 |
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
on E: Exception do |
| 3476 |
|
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
| 3477 |
|
end; |
| 3478 |
|
end; |
| 3479 |
|
end else begin |
| 3480 |
|
FActiveContent := nil; |
| 3481 |
|
BrowserTab.Repaint; |
| 3482 |
|
Exit; |
| 3483 |
end; |
end; |
| 3484 |
|
except |
| 3485 |
|
FActiveContent := nil; |
| 3486 |
|
BrowserTab.Repaint; |
| 3487 |
|
Exit; |
| 3488 |
end; |
end; |
| 3489 |
finally |
finally |
| 3490 |
// Application.ProcessMessages; |
// Application.ProcessMessages; |
| 3497 |
if (FActiveContent.Browser <> BrowserNullTab.Browser) then |
if (FActiveContent.Browser <> BrowserNullTab.Browser) then |
| 3498 |
ShowWindow(FActiveContent.Browser.Handle, SW_HIDE); |
ShowWindow(FActiveContent.Browser.Handle, SW_HIDE); |
| 3499 |
end; |
end; |
| 3500 |
FActiveContent := inThread; |
if (Assigned(inThread)) and (Assigned(inThread.Thread)) then begin |
| 3501 |
|
FActiveContent := inThread; |
| 3502 |
|
|
| 3503 |
BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title; |
BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title; |
| 3504 |
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
| 3505 |
BrowserNameLabel.Caption := inThread.FThread.Title; |
BrowserNameLabel.Caption := inThread.FThread.Title; |
| 3506 |
ItemImage.Picture := nil; |
ItemImage.Picture := nil; |
| 3507 |
if inThread.FThread.IsLogFile then |
if inThread.FThread.IsLogFile then |
| 3508 |
if inThread.FThread.NewArrival then |
if inThread.FThread.NewArrival then |
| 3509 |
ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) |
ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) |
| 3510 |
|
else |
| 3511 |
|
ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) |
| 3512 |
else |
else |
| 3513 |
ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) |
ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); |
|
else |
|
|
ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); |
|
|
|
|
|
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
|
|
BrowserNameLabel.Left := ItemImage.Left + 20; |
|
| 3514 |
|
|
| 3515 |
|
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
| 3516 |
|
BrowserNameLabel.Left := ItemImage.Left + 20; |
| 3517 |
|
end else begin |
| 3518 |
|
FActiveContent := nil; |
| 3519 |
|
end; |
| 3520 |
finally |
finally |
| 3521 |
Screen.Cursor := crDefault; |
Screen.Cursor := crDefault; |
| 3522 |
end; |
end; |
| 3524 |
|
|
| 3525 |
function TGikoForm.GetActiveContent: TThreadItem; |
function TGikoForm.GetActiveContent: TThreadItem; |
| 3526 |
begin |
begin |
| 3527 |
if( FActiveContent <> nil) and (FActiveContent.Thread <> nil)then |
try |
| 3528 |
Result := FActiveContent.Thread |
if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))then |
| 3529 |
else |
Result := FActiveContent.Thread |
| 3530 |
|
else begin |
| 3531 |
|
FActiveContent := nil; |
| 3532 |
|
Result := nil; |
| 3533 |
|
end; |
| 3534 |
|
except |
| 3535 |
|
FActiveContent := nil; |
| 3536 |
Result := nil; |
Result := nil; |
| 3537 |
|
end; |
| 3538 |
end; |
end; |
| 3539 |
|
|
| 3540 |
procedure TGikoForm.SetActiveList(Obj: TObject); |
procedure TGikoForm.SetActiveList(Obj: TObject); |
| 5346 |
FBrowsers.Move(4, 0); |
FBrowsers.Move(4, 0); |
| 5347 |
end; |
end; |
| 5348 |
BrowserTab.Tabs.EndUpdate; |
BrowserTab.Tabs.EndUpdate; |
| 5349 |
BrowserTab.OnChange(nil); |
if( FActiveContent = nil) then |
| 5350 |
|
BrowserTab.OnChange(nil); |
| 5351 |
Exit; |
Exit; |
| 5352 |
end; |
end; |
| 5353 |
end; |
end; |
| 5408 |
end; |
end; |
| 5409 |
|
|
| 5410 |
BrowserTab.Tabs.EndUpdate; |
BrowserTab.Tabs.EndUpdate; |
| 5411 |
BrowserTab.OnChange(nil); |
if( FActiveContent = nil) then |
| 5412 |
|
BrowserTab.OnChange(nil); |
| 5413 |
Exit; |
Exit; |
| 5414 |
end; |
end; |
| 5415 |
end; |
end; |
| 5886 |
end else begin |
end else begin |
| 5887 |
URL := GikoSys.GetHRefText(Html); |
URL := GikoSys.GetHRefText(Html); |
| 5888 |
URL := GikoSys.HTMLDecode(URL); |
URL := GikoSys.HTMLDecode(URL); |
| 5889 |
//アドレスバーの履歴 |
if( AnsiPos('http://', URL) = 1) or (AnsiPos('https://', URL) = 1) or |
| 5890 |
if GikoSys.Setting.LinkAddAddressBar then begin |
( AnsiPos('ftp://', URL) = 1) then begin |
| 5891 |
idx := AddressComboBox.Items.IndexOf(URL); |
//アドレスバーの履歴 |
| 5892 |
if idx = -1 then begin |
if GikoSys.Setting.LinkAddAddressBar then begin |
| 5893 |
AddressComboBox.Items.Insert(0, URL); |
idx := AddressComboBox.Items.IndexOf(URL); |
| 5894 |
if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then |
if idx = -1 then begin |
| 5895 |
AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1); |
AddressComboBox.Items.Insert(0, URL); |
| 5896 |
end else begin |
if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then |
| 5897 |
AddressComboBox.Items.Delete(idx); |
AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1); |
| 5898 |
AddressComboBox.Items.Insert(0, URL); |
end else begin |
| 5899 |
|
AddressComboBox.Items.Delete(idx); |
| 5900 |
|
AddressComboBox.Items.Insert(0, URL); |
| 5901 |
|
end; |
| 5902 |
end; |
end; |
| 5903 |
|
MoveToURL( URL ); |
| 5904 |
end; |
end; |
|
MoveToURL( URL ); |
|
| 5905 |
end; |
end; |
| 5906 |
end; |
end; |
| 5907 |
|
|
| 6037 |
OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred; |
OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred; |
| 6038 |
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 6039 |
|
|
| 6040 |
if GikoSys.Setting.URLDisplay then |
if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then |
| 6041 |
AddressComboBox.Text := ThreadItem.URL; |
AddressComboBox.Text := GetActiveContent.URL; |
| 6042 |
end; |
end; |
| 6043 |
|
|
| 6044 |
end; |
end; |
| 10289 |
|
|
| 10290 |
if not GikoSys.Setting.BrowserTabVisible then |
if not GikoSys.Setting.BrowserTabVisible then |
| 10291 |
if Item <> nil then |
if Item <> nil then |
| 10292 |
if TObject( Item.Data ) is TThreadItem then |
if (TObject( Item.Data ) is TThreadItem) then begin |
| 10293 |
SelectTimer.Enabled := True; |
if not SelectTimer.Enabled then begin |
| 10294 |
|
SelectTimer.Tag := 0; |
| 10295 |
|
SelectTimer.Enabled := True; |
| 10296 |
|
end else begin |
| 10297 |
|
SelectTimer.Tag := 0; |
| 10298 |
|
SelectTimer.Enabled := false; |
| 10299 |
|
SelectTimer.Enabled := True; |
| 10300 |
|
end; |
| 10301 |
|
end; |
| 10302 |
|
|
| 10303 |
end; |
end; |
| 10304 |
|
|
| 10305 |
procedure TGikoForm.SelectTimerTimer(Sender: TObject); |
procedure TGikoForm.SelectTimerTimer(Sender: TObject); |
| 10306 |
begin |
begin |
| 10307 |
SelectTimer.Enabled := False; |
if SelectTimer.Tag = 0 then |
| 10308 |
ListClick; |
SelectTimer.Tag := 1 |
| 10309 |
|
else begin |
| 10310 |
|
SelectTimer.Tag := 0; |
| 10311 |
|
SelectTimer.Enabled := False; |
| 10312 |
|
ListClick; |
| 10313 |
|
end; |
| 10314 |
end; |
end; |
| 10315 |
|
|
| 10316 |
initialization |
initialization |