OnEdit1mousedown の使い方について


AS  2025-02-24 08:58:28  No: 151780

また、ボケた年寄りの質問ですが、よろしくお願いします。

Onbutton1mousedownnでは、
if button=mbLeft then で使えますが、

OnEdit1mousedown では
if edit=mbLeft then  でエラーが出ます。

どうしたら使えますか

Help をクリックしても使えません。

よろしくお願いします。


igy  2025-02-24 12:04:09  No: 151781

>if edit=mbLeft then
ではなく、buttonのOnMouseDownイベント同様、
if button=mbLeft then
とするのでは、ダメですか?


私も年寄りですよ  2025-02-24 20:22:42  No: 151782

おそらく、「Button1」のイベントだから「Button」になってると早とちりされたのだと思います。

私も趣味だけで Delphi やってきた還暦越えですが、もう少しご自分が書いているコードの意味を理解していきましょう。
何もわからずコピペだけしていたら次もまた無駄な時間が過ぎていくだけですよ。
正常にコンパイル出来る方のコードで「Button」を「コントロール(Ctrl)キーを押しながらクリック」してみてください。

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbLeft then
end;

二つ上の行に移動すると思います。ここで宣言されている「Button: TMouseButton;」がその正体です。
Button は「マウスボタン」のボタンです。
ちなみに「mbLeft」も「TForm1」も Ctrl+クリックでその場所に飛んでいきます。
元の場所に戻るのは「Alt+←」(古いDelphiでは上の方にある「←」アイコンで)

あと、もしお持ちでしたら Delphi6 とか古~いバージョンのヘルプの方が直感的でわかりやすいです。

もうひとつ。
質問される時はコピーペーストされた方がいいですよ。
打ち損じも防げますし、何より大文字小文字が不規則で読みにくいです。

ああもうひとつ。
「エラーが出ます」ではなく、コンパイラエラーの内容もコピペしましょう。
「未定義の識別子 : edit」
そしてそれを検索しましょう(今回はこれだけではだめかもしれませんが)


AS  2025-02-25 11:39:17  No: 151783

igyさん、私も年寄りですよさん、ありがとうございました。
どっちのボタンかを示すのですから、当たり前のことでしたね。

私も年寄りですよさん、還暦超えは年寄りではありませんよ。
使い物にならないようになって年取ったな思うんですよ。

Helpが生きていたら違うんでしょうけど、
ネットで検索して、ここでも検索してから質問しているんですが、
また、よろしくお願いします。


AS  2025-02-27 01:21:05  No: 151808

プログラムは完成しましたが、
if button=mbright  then
では、元に戻す灘の表示が出ます。
これを出なくするすることは可能ですか??

よろしくお願いします。


igy  2025-02-27 15:12:40  No: 151827

試していませんが、

D5でTEditやTMemoの標準ポップアップメニューを表示しないようにする
http://delfusa.main.jp/delfusafloor/archive/homepage1.nifty.com_beny/tips/vcl03.html
では、
> TEditやTMemoなどはPopupMenuプロパティを未定義にしているとコントロール標準のメニューが表示されます。
> これを非表示にするには項目のないPopupMenuを割り当てるなどする必要があるのですが
と、あります。


AS  2025-02-27 17:35:40  No: 151829

igyさん、ありがとうございました。
解決しました。

procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  Handled := True;
end;

procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if button = mbLeft then
  begin
   inc(Flg); if(Flg>1)then Flg:=-1 ;
  end
  else
  if button = mbRight then
  begin
   DEC(Flg); if(Flg<-1)then Flg:=1 ;
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加