喫茶XRAYトップページ

[スレッド全体
]

[10986] TOPMOSTの簡単なテスト返信 削除
2017/3/29 (水) 15:47:57 Mr.XRAY
サンプルをダウンロードしたけど,Windows API 使いまくりで,
何がなんだか分からない,
いや,精通していないので,という方のために,簡単なサンプルです.
てもやっぱり Windows API 使っています.

以下の Windows API の関数を使用しています.
ほとんど Windows API だけのコードだな.ハハハッ.
難解だな,こりゃ.
この場合「簡単」と言うのは,コードを簡単にコピーしてテストしやすい
という意味にとってください.

  ShellExecute
  FindWindow
  SetForegroundWindow
  SetWindowPos

フォームに TButton を 2 つ配置して,以下のコードとします.

uses
  ShellAPI;

{$R *.dfm}

//=============================================================================
//  フォーム生成時の処理
//=============================================================================
procedure TForm1.FormCreate(Sender: TObject);
begin
  Self.FormStyle := fsStayOnTop;
end;

//=============================================================================
//  メモ帳を起動
//  usesにShellAPIが必要
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, '', 'Notepad.exe', nil, nil, SW_SHOW);
end;

//=============================================================================
//  メモ帳を最前面に表示
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var
  LHandle : HWND;
  LFlags  : Cardinal;
begin
  LHandle := FindWindow('Notepad', nil);

  if LHandle > 0 then begin
    LFlags := SWP_NOSIZE or SWP_NOMOVE or SWP_SHOWWINDOW;

    SetForegroundWindow(LHandle);
    SetWindowPos(LHandle, HWND_TOPMOST, 0, 0, 0, 0, LFlags);
  end;
end;


[10987] Re:TOPMOSTの簡単なテスト返信 削除
2017/3/29 (水) 16:29:07 igy
▼ Mr.XRAYさん
> ほとんど Windows API だけのコードだな.ハハハッ.
> 難解だな,こりゃ.


うわー、これだけのWindows APIを習得するのは、かなり難しいですねー(棒読み)


[10988] Re2:TOPMOSTの簡単なテスト返信 削除
2017/3/29 (水) 17:34:52 Mr.XRAY
▼ igyさん
> > ほとんど Windows API だけのコードだな.ハハハッ.
> > 難解だな,こりゃ.
>
> うわー、これだけのWindows APIを習得するのは、かなり難しいですねー(棒読み)


ハハハッ.
いや〜,彼の方があんな反応したから意識してしまいます.
改めて考えてみると,意識するしないにかかわらず,
Windows API ってかなり使っていますね.

もちろん,VCL のコード中だって...


[10989] Re3:TOPMOSTの簡単なテスト返信 削除
2017/3/29 (水) 18:32:00 igy
▼ Mr.XRAYさん
> ハハハッ.
> いや〜,彼の方があんな反応したから意識してしまいます.
> 改めて考えてみると,意識するしないにかかわらず,
> Windows API ってかなり使っていますね.
>
> もちろん,VCL のコード中だって...



ですよねー

私なんか、あまりVCLのクラスのメソッドか、Windows APIの関数か、なんてあまり意識せずに使ってますね。
StringGridでOnDrawCellイベントで、文字列を描画するとき、
CanvasのTextOutメソッド・TextRect メソッドより、DrawText関数のほうが便利だから・機能が多いから、
使ってるみたいな感じで・・・


[10991] Re4:TOPMOSTの簡単なテスト返信 削除
2017/3/30 (木) 10:37:50 taki
▼ igyさん
> ▼ Mr.XRAYさん
> > ハハハッ.
> > いや〜,彼の方があんな反応したから意識してしまいます.
> > 改めて考えてみると,意識するしないにかかわらず,
> > Windows API ってかなり使っていますね.


理由は案外単純かもしれません。

私がWindowsAPIが少し苦手なのは、F1でHelpした時、説明が英語だからです。
慣れれば問題ないのでしょうが、慣れようとしないといつまでも高い障壁になります。

英語嫌いなおっさんより。


[10992] Re5:TOPMOSTの簡単なテスト返信 削除
2017/3/30 (木) 13:19:43 Mr.XRAY
> 理由は案外単純かもしれません。
>
> 私がWindowsAPIが少し苦手なのは、F1でHelpした時、説明が英語だからです。
> 慣れれば問題ないのでしょうが、慣れようとしないといつまでも高い障壁になります。
>
> 英語嫌いなおっさんより。


使わなくて済むのであればいいとは思うのです.

https://forums.embarcadero.com/thread.jspa?messageID=881615#881615
のように,

>どのような学習方法がいいのでしょうか?

なんてことを訊かない限り.
お遊戯を手取り足取り教える幼稚園じゃないって !
第一,ヘルプを読まない人の学習方法なんてないって.


[10993] Re6:TOPMOSTの簡単なテスト返信 削除
2017/3/30 (木) 16:07:15 taki
▼ Mr.XRAYさん

> お遊戯を手取り足取り教える幼稚園じゃないって !
> 第一,ヘルプを読まない人の学習方法なんてないって.


おっしゃる通りです。

プログラムを組む人はみ〜んな英語と格闘してきたのです。
Google翻訳を駆使して…悩みながら大きくなったのです。


[10996] Re7:TOPMOSTの簡単なテスト返信 削除
2017/3/30 (木) 16:23:09 Mr.XRAY
▼ takiさん

> プログラムを組む人はみ〜んな英語と格闘してきたのです。
> Google翻訳を駆使して…悩みながら大きくなったのです。


えっ ?  大きくなった ?
廃人になっていった,の間違いでは ?
ウソ,ウソです.冗談ですってば (^^;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82