高見知英の技術ログ

技術関係のログをQiitaから移行してきました。プログラミングのほか、使っているアプリの細かい仕様についてなど書いていきます。

Element.requestFullscreen() APIはほかのウィンドウには使えない(っぽい)

きっかけはこの辺から。 github.com ブラウザ上の任意の要素を画面いっぱいに表示するには、Element.requestFullscreen()というAPIを使います。 developer.mozilla.org このAPIですが、どうもwindow.open()によって開かれたウィンドウから、元のウィンドウを…

YouTubeの動画をプレイリストに自動登録するツールを作った

YouTubeには、以前プレイリストに動画を自動追加する機能がありました。ただ、いつの間にかこの機能は削除されてしまいました。 アップロードした動画の場合はアップロード中の設定画面でプレイリストを選択できるのでそんなに登録し忘れることはないのです…

PowerShellでパスワードを生成する(.NET Coreな環境でも動くバージョン)

表題の通りですがPowerShellでパスワードを生成する方法です。 PowerShellでパスワードを生成するというと、多くのサイトでSystem.Web.Security.Membership#GeneratePassword()メソッドを使う方法が紹介されていますが、.NET Coreのみが入っているような環境…

結局今Lazarusを使う理由とは

このブログはLazarus(FreePascal)アドベントカレンダー25日目の記事です。 qiita.com 大オチ。 で、結局今Lazarusを使う理由とはなんなのか。 一言で言うと、そんなものはないに尽きます(権利関係とか分からないので画像略)。 ただでさえ言語自体がマイナー…

標準ライブラリのソースコード読解のススメ

このブログはLazarus(FreePascal)アドベントカレンダー24日目の記事です。 qiita.com 24日は標準ライブラリのソースコードについて。 Pascalはやはりマイナーな言語です。とくにDelphiではなくあえてFree Pascalを使う という人は更に少ない。 あえてLazarus…

Lazarus(というかPascal)のデータ型について

このブログはLazarus(FreePascal)アドベントカレンダー23日目の記事です。 qiita.com 今回の内容はPascalのデータ型について。 Pascalのデータ型はちょっと特徴的で(といっても、最近PythonやJavaScriptなど明確に型のない言語しかつかってないのでどれだけ…

Lazarusのユニットファイルの循環参照を避ける

このブログはLazarus(FreePascal)アドベントカレンダー22日目の記事です。 qiita.com 22日目はユニットファイルの循環参照について。 ほかの言語と同様、usesでお互いのユニットを参照したプログラムを作ると、循環参照が発生します。 循環参照を示すメッセ…

Lazarusアプリ終了時にメモリリークチェック用ダイアログが表示される件

このブログはLazarus(FreePascal)アドベントカレンダー21日目の記事です。 qiita.com 今回のテーマはLazarusのアプリを終了すると表示されることがある デバッグレポートについて。 Heap dump heaphtc unitのダイアログ プロジェクトオプションの「コンパイ…

Lazarusのパッケージマネージャ

このブログはLazarus(FreePascal)アドベントカレンダー20日目の記事です。 qiita.com 今回のお題はLazarusのパッケージマネージャについて。Lazarusにはオンラインパッケージマネージャというものが付属しており、パッケージメニューから起動することができ…

LazarusのIDE構成を変更する

このブログはLazarus(FreePascal)アドベントカレンダー19日目の記事です。 qiita.com 今回のお題はIDEの構成。LazarusはIDEの構成を変更することで、機能を追加・削除することができるというユニークな機能を持った開発環境です。 パッケージは基本的に*.lpk…

LazarusでDelphiのプロジェクトを読み込む

このブログはLazarus(FreePascal)アドベントカレンダー18日目の記事です。 qiita.com この機能を使えば昔Delphiで作ったあんなアプリをインポートして、Lazarusで使うことができます。 LazarusのLCLなどのライブラリにはある程度DelphiのVCLと互換性があるの…

Lazarusでコードの折りたたみ

このブログはLazarus(FreePascal)アドベントカレンダー17日目の記事です。 qiita.com 今回は(も)小ネタ。Lazarusでコードの折りたたみブロックを作ります。 やり方は簡単で、折りたたみを開始する箇所を{$REGION 'リージョンの名前'}、終了する箇所を{$ENDRE…

Lazarusにおけるドキュメントコメント

このブログはLazarus(FreePascal)アドベントカレンダー16日目の記事です。 qiita.com Lazarus(というかPascal)ではメソッドの使用方法などを紹介するために、ドキュメントコメントを設定することができます。 Pascalにおけるドキュメントコメントは、XMLの形…

LazarusでHTMLをレンダリングする

このブログはLazarus(FreePascal)アドベントカレンダー15日目の記事です。 qiita.com 最近はなんだかんだちょっと複雑なテキストをレンダリングするには、HTMLビューアを使う というパターンが多いのではないかと思います。 LazarusでHTMLビューアを内蔵した…

Lazarusプロジェクトのビルドをコマンドラインで行なう

このブログはLazarus(FreePascal)アドベントカレンダー14日目の記事です。 qiita.com たとえばリリースパッケージを作りたいときなど、Lazarusのコンパイル以外にも複数の処理を行ないたいのでIDE以外からコンパイル操作を行いたい ということはときどきあり…

ClipboardMonitor作りました

このブログはLazarus(FreePascal)アドベントカレンダー13日目の記事です。 qiita.com 13日目はそもそもLazarusを触るきっかけにもなったアプリ、ClipboardMonitorについて。 github.com このアプリは、クリップボードを常に監視し、テキストがコピーされたら…

PascalPad作ってみた

このブログはLazarus(FreePascal)アドベントカレンダー12日目の記事です。 qiita.com ちょこっとしたプログラムの動作検証を行なうときにいちいちコードを書き込める場所を探すのが面倒なので、PascalPadというツールを作ってみました。 github.com とりあえ…

Lazarusで拡張メソッド?

このブログはLazarus(FreePascal)アドベントカレンダー11日目の記事です。 qiita.com Lazarusには(というかPascalには)、他の言語でいう拡張メソッド的な書き方を実現する仕組みがあります。 それがヘルパークラスです。 wiki.freepascal.org えっ、そんな機…

LazarusのGUIデザイナーでコンポーネントをコピーすると…

このブログはLazarus(FreePascal)アドベントカレンダー10日目の記事です。 qiita.com 今日は小ネタ・・・ですが、意外と重要な小ネタ。 LazarusでGUIデザイナー上よりコンポーネントをコピーしようとすると、lfmファイルに書き込まれているのとおなじテキス…

Lazarusアプリのバージョン情報を取得する

このブログはLazarus(FreePascal)アドベントカレンダー9日目の記事です。 qiita.com Delphiでアプリケーションのバージョン情報を取得するには、FileInfoユニットにあるTVersionInfoクラスを用います。 procedure TAboutDialog.FormCreate(Sender: TObject);…

Lazarusのfor文

このブログはLazarus(FreePascal)アドベントカレンダー8日目の記事です。 qiita.com 8日目はアッサリ目にfor文の話し。 Lazarusでのfor文はfor [カウンタ] := [開始値] to [終了値] do ...です。他の言語のように増分を指定するStep値の指定はできません。常…

Lazarusでコモンダイアログを表示する

このブログはLazarus(FreePascal)アドベントカレンダー7日目の記事です。 qiita.com 7日目はLazarusでファイルを開く・保存ダイアログやメッセージボックスを表示する方法を。 コモンダイアログを表示する Lazarusは、Delphiと同様、LCLに標準ダイアログを表…

Lazarusプログラムからショートカットを作る

このブログはLazarus(FreePascal)アドベントカレンダー6日目の記事です。 qiita.com プログラムのショートカットファイル(*.Ink)を作るには、ほかの言語と同様にCOMオブジェクトのShellLinkオブジェクトを使用します。 詳細については公式Wikiを参照。 wiki.…

Lazarusでテストを書く

このブログはLazarus(FreePascal)アドベントカレンダー5日目の記事です。 qiita.com 5日目はおまちかね(?)テストについて。 コンパイルして動かすLazarusのプログラムはとくに、メソッドを作ったときのテストがないのは不安です。 なのでとりあえず、Lazarus…

Lazarusで別のプロセスを呼び出す

このブログはLazarus(FreePascal)アドベントカレンダー4日目の記事です。 qiita.com Lazarusでほかのプロセスを呼び出す場合、ProcessモジュールにあるTProcessというクラスを使用します。 Executing External Programs/ja - Free Pascal wiki 使い方は大ま…

Lazarusでリソースを使う

このブログはLazarus(FreePascal)アドベントカレンダー3日目の記事です。 qiita.com Lazarusでリソースを使う画像やアイコン、スクリプトファイルなどのファイルはリソースとしてプロジェクトに取り込んでおくと便利です。 Lazarusで扱えるリソースには2種類…

LazarusプロジェクトをGit管理する

このブログはLazarus(FreePascal)アドベントカレンダー2日目の記事です。 qiita.com Lazarusでプロジェクトを作成する場合、まず気になるのがGitで管理できるかということです。 Delphiも昔は「他人が作ったコンポーネントの情報とかを自プロジェクトに含め…

Lazarusってなんぞや

このブログはLazarus(FreePascal)アドベントカレンダー1日目の記事です。 qiita.com さて、今回は以前もちょこっと話題にしたLazarusという環境について2,3書いてみようと思い、勢いでこのカレンダーを立ち上げました(Delphiアドベントカレンダーはあるけど…

PowerShellの文字化け対策

PowerShellのバージョンを5.1.19041.1320にあげてから、急に既存のスクリプトが文字化けを起こすようになってしまいました*1。 とりあえず「PowerShell 文字化け」などで検索すると「-NoExit -Command "chcp 65001"という文言をPowerShellの起動ショートカッ…

tkinterで表示するダイアログをマウスカーソル位置に表示する

Pythonで簡単なGUIを表示する場合、標準モジュールで何も追加しなくても使えるtkinterが便利です。 tkinterには、tkinter.simpledialog.Dialogというダイアログを表示するためのひな形クラスが存在するので、それを使用すると割と簡単にダイアログを作ること…