• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DelphiのInputQueryで整数値を入力させたい)

DelphiのInputQueryで整数値を入力させる方法

このQ&Aのポイント
  • DelphiのInputQueryを使用して、ユーザーに整数値を入力させたい場合、適切な引数の型を指定する必要があります。
  • InputQuery関数には、整数値を入力させるためのオーバーロードが用意されています。
  • 具体的には、InputQuery関数の引数リストの中から、整数型の引数を適切に指定する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

Delphi7のコンポーネントには、VLC(Windows専用)とCLX(クロスプラットフォーム用)があります。 VLCでは function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; しか使えません。 それ以外のInputQueryを使いたい場合は、CLXを利用しなければなりません。 InputQueryが定義されているユニットは、VCLはDialogs、CLXはQDialogsです。

moja37
質問者

お礼

あ、そういう事でしたか。 素直にStrToIntする事にします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#182251
noname#182251
回答No.1

Delphiのバージョンは? 最近D6からXEに切り替えようとしているところで、ほとんど浦島太郎状態ですが(^^; XEでInputQueryのヘルプを見ると function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; しか表示されません。 教えてgooではDelphiユーザーが少ないようです。下記MLで問い合わせすることをお奨めします。メンバーには錚々たるエキスパートが揃っています。 http://www.freeml.com/delphi-users

moja37
質問者

お礼

あ、すみません。Delphi 7 Professionalです。 バージョンも書かずに失礼しました。 もう少し待ってみて、解決しなければMLにも質問してみたいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 次のDelphiプログラムで

    type TStrArray = class private fStrList: TStringList; procedure SetItem(index: Integer; const Value: string); function GetItem(index: Integer): string; public constructor Create; destructor Destroy; override; procedure Clear; function GetCount: Integer; procedure Push(Item: string); function Pop: string; procedure UnShift(Item: string); function Shift: string; property Items[index: Integer]: string read GetItem write SetItem; default; end; TStrArray = class は TStrArray = class(TObject) としても同じでしょうか? GetItem write SetItem; default; の「default;」の意味を教えてください。

  • DELPHI 5でコンパイルできたソースがDELPHI 6でコンパイルできない

    DELPHI 5(英語版)でコンパイルできたソースが、DELPHI 6(personal、無償版、日本語版)でコンパイルをしようとするとエラーが出てコンパイルできません。一般的に、5から6へ移行する際に注意することがありますでしょうか?あるいは、英語版と日本語版で異なるという可能性はありますでしょうか? ソースの一部は以下の通りです。 ********** IMPLEMENTATION USES Windows, Messages, Dialogs, FileCtrl; CONST BUFLEN = 10240; FindSortMax = 1024; SHIFT_RECHTS = 1; (* Flags f・ Sondertasten *) SHIFT_LINKS = 2; (* Flags f・ Sondertasten *) CTRL = 4; (* Flags f・ Sondertasten *) ALT = 8; (* Flags f・ Sondertasten *) SCROLL = 16; (* Flags f・ Sondertasten *) NUM_LOCK = 32; (* Flags f・ Sondertasten *) CAPS_LOCK = 64; (* Flags f・ Sondertasten *) TYPE BufAr = ARRAY [1..BUFLEN] OF BYTE; TextFiles = RECORD open : BOOLEAN; Name : STRING[255]; buffer : ^BufAr; END; Zeichen = RECORD C : CHAR; A : BYTE; END; Screen = ARRAY [1..25] OF ARRAY [1..80] OF Zeichen; (* Entspricht der EGA/VGA Bildschirmstruktur *) VAR TF : ARRAY[1..MAXFILES] OF TextFiles; i : INTEGER; VGA : Screen ABSOLUTE $0B800; (* VGA-Screen-Adresse *) sommerzeit : BOOLEAN; stmp : STRING; FindSortNr : INTEGER; FindSortP : INTEGER; FindSortRecs: ARRAY[1..FindSortMax] OF ^TSearchRec; ActTextForeGround, ActTextBackGround : BYTE; ********** エラーは、「VGA : Screen ABSOLUTE $0B800; (* VGA-Screen-Adresse *)」の行にて、  [エラー] Alib.pas(605): 変数名が必要です と言うエラーが出ます。 他人からもらったソースの為、問題を簡略化して示すことができないのですが、もし上記の情報だけで何かしら問題点があるようでしたらお教えいただければ幸いです。

  • [Delphi] StrToInt64がしたい

    16バイトの文字列を8バイトのint64型に変換したいです 下記コードのようにやってみたのですが上手く動きません 何か間違っている、他に方法などがありましたら教えてください。 function HexToInt64(const S: string): Int64; const hexstr : string = '0123456789abcdefABCDEF'; var I,L,h,m: Integer; j: Int64; p: PByteArray; test: string; begin result:=-1; p := @j; L:=Length(s); test:= ''; if L <> 16 then Exit; for i:=1 to L do if Pos(s[i], hexstr)<=0 then Exit; h:= strtoint('$' + Copy(S,0,8)); CopyMemory(@p[0], @h, 8); m:= strtoint('$' + Copy(S,9,8)); CopyMemory(@p[8], @m, 8); CopyMemory(@j, @p, 16); result:=j; end;

  • javaプログラムについて

    コマンドライン引数から複数の値を受け取り、それらの最大と最小を表示する、というプログラムなのですが。 class Maxmin{   public static void main (String[] args) {    int max=Integer.MIN_VALUE;    int min=Integer.MAX_VALUE;    for (int i=0; i<args.length; i++){     int num= Integer.parseInt(args[i]);     if(num>max)     max=num;     if(num<min)     min=num;    }    System.out.println("最大値は" + max + "です。");    System.out.println("最小値は" + min + "です。");  } } このプログラムでも問題なく表示されるのですが、MIN_VALUEとMAX_VALUEを使用せずに表示する事、と指摘を受けました。自分の中でぱっと思いついたのがこれだったのですが、他にはどのような方法があるのでしょうか?

    • ベストアンサー
    • Java
  • 秀丸の正規表現用DLLをDelphiから使いたい

    秀丸に同梱されている正規表現処理用DLL、HMJRE.DLLをDelphiで使用しようとしているのですが、 うまくいきません。 実行しようとすると「エントリーポイントが見つかりません」と表示されます。 ---------------------- function dllfuncstr(func:String;find_str:String;target_str:String;start_pos:Integer;replace_str:String;kind:Integer):String; external 'HMJRE.DLL'; ... procedure TForm1.Button1Click(Sender: TObject); var find_str, target_str, replace_str:String; start_pos, kind:Integer; begin find_str := '123'; target_str := Memo1.Lines[0]; start_pos := 0; replace_str := 'abc'; kind := 1;// Memo2.Lines[0]:= dllfuncstr('ReplaceRegularNoCaseSence',find_str,target_str,start_pos,replace_str,1); end; ----- 秀丸のヘルプにマクロから呼び出す場合の例 が次のように記載されています。 $s = dllfuncstr( "ReplaceRegular", "([a-z]+)([0-9]+)", "--abcdefg1234567--", 0, "\\2\\1" ); message $s; DelphiのバージョンはXE5です。

  • Delphiの定数とローカル変数の初期化

    Embarcadero RAD Studio 2010 Architect Trialというお試し版を使っています。 constを使って定義した定数をローカル変数の初期化の際に以下のようになります。 [DCC エラー] Test.pas(39): E2026 定数式が必要です これでは、定数を1箇所で定義しても定数が使えず即値なので、 プログラム作成やメンテナンスに困ると思うのですが、 昔、Delphiを使っていたのですが忘れてしまって、どうしていたか思い出せませんでした。 皆さんは定数をどのように定義して、どのように使っているのでしょうか? //■定義 unit DEFUnit; interface // 定数・変数 const DAT1 :Integer = 10; const DAT2 :Integer = 20; const DAT3 :Integer = 30; implementation // なし end. //■利用 unit TestUnit; interface uses DEFUnit; var data : Array [0..2, 0..1] of Integer = ( // 先手駒 (DAT1, 1), (DAT2, 2), (DA3T, 3) ); implementation end.

  • (Delphi) 例外の再生成について

    例外の再生成のことで質問があります。 Delphi の Ini ファイルを操作するクラス TCustomIniFile には、 ReadDate や ReadFloat といったメソッドがありますが、 このメソッドのソースコードを拝見すると、例外処理を行っている部分で EConvertError 例外以外の時は else 節の raise で同じ例外を再生成しているのですが、 この else 節は無くても同じ気がするのですが、どうしてわざわざ else 節で キャッチした例外を再生成しているのでしょうか? EConvertError 例外以外は例外処理しなければそのままメソッド呼び出し元に伝わりますが、 あえて raise で再生成していることに何か意図はあるのでしょうか? 以下は ReadFloat メソッドのソースコードです。 1 と 2 の部分がなくても結果は同じではないのでしょうか? function TCustomIniFile.ReadFloat(const Section, Name: string; Default: Double): Double; var  FloatStr: string; begin  FloatStr := ReadString(Section, Name, '');  Result := Default;  if FloatStr <> '' then  try   Result := StrToFloat(FloatStr);  except   on EConvertError do    // Ignore EConvertError exceptions   else ←―――――――――――――― 1    raise; ←―――――――――――――― 2  end; end;

  • DelphiからHDDを直接読みたいのですが・・

    最終的には数テラの容量があるハードディスクドライブを,Delphi6からWin32APIのSetFilePointerで位置付けて,ReadFileでセクタを直接読み取りたいと思っていますが,現在,125GB辺りでエラーが発生し,以降がのセクタが読めません。(DelphiXEでも同じエラーとなります)  参考にできる日本語のサンプルも乏しく困り果てています。  どなたか,お教えください。  m(_ _)m  よろしくお願いいたします。 【動作環境】 OS:Windows7 (32) professional 言語: Delphi6(personal) 及びDelphi XE メモリ:2GB 対象ドライブ:USB外付けHDD 250GB(1論理ドライブWindows7でフォーマット) 名称:\\.\PHYSICALDRIVE1 CylindersLo : 30401 CylindersHi : 0 TracksPerCylinder : 255 SectorsPerTrack : 63 BytesPerSector: 512 【問題点】 セクタ0からセクタ245127535までは読める様なのですが,1セクタ進めて245127536セクタを読み込もうとすると,SetFilePointerはエラーなしで通過するも,ReadFileでエラーとなってしまいます。 エラーが起きた時のSetFilePointerとReadFileに与えたパラメータは次の通りです。 Stsector : 245,127,536 real ofset: 125,505,298,432 p_hi: 58 p_lo: 951,246,848 p_hiの戻り値: 58 【プログラムのソース】 var DHandle : Thandle; // ハンドル drv_cnt : integer; // 接続ドライブ数 drvname : String; // 扱おうとするドライブの名称 sectorSize: integer; // セクタのサイズ SectorNum : word; // セクタ番号 Max_num : word; // 読み込もうとするバイト数 buf : array[0..4095*2] of byte; // 読み取りデータの格納域 STsector : int64; // 読み込み開始のセクタ番号 //----------------------------------------------------------- function getSector:boolean; // ダイレクト読み取り var dwRet : integer; // Seekのリターンコード dwSize : DWORD; // 読み取ったバイト数 iRet : Boolean; // Readのリターンコード real_ofs : int64; // 読み込もうとする位置(先頭からのバイト数) p_lo : integer; // SetFilePointerで使用するseek相対位置の下位32bit p_hi : integer; // 上位32bit begin result := false; SectorNum := 1; //一度に読むセクタ数 Max_num := SectorNum * SECTORSIZE; // 一度に読むバイト数 // ハンドルの取得 DHandle:=CreateFile(PChar(drvname),GENERIC_READ or GENERIC_WRITE, 0,nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0 ); if DHandle = INVALID_HANDLE_VALUE then begin // Openエラー処理 showmessage('open device エラー'); exit; end else begin // real_ofs := STsector * SECTORSIZE; // seek位置をバイト単位で取得 p_hi := real_ofs div 2147483648; // 上位32bitを計算 p_lo := real_ofs mod 2147483648; // 下位32bitを計算 dwRet:= SetFilePointer(DHandle, p_lo, @p_hi, FILE_BEGIN ); // seek if dwRet <> -1 then begin // 1セクタ分をbuf[]へ読み込み iRet := ReadFile(DHandle,buf,Max_num,dwSize,nil); if iRet = False then begin // Readエラー処理 showmessage('Read device エラー'); CloseHandle(DHandle); exit; end // dump_Buf; 読み取ったバッファの16進ダンプルーチン呼び出し end else begin // seekエラー処理 showmessage('Seek エラー'); CloseHandle(DHandle); exit; end; end; CloseHandle(DHandle); result := true; end; ※申し訳ありません,先頭の空白がGooによって自動的に削除されてしまうようです。

  • オーバーロードで

    オーバーロードでメソッドgetvalueへコマンドライン引数から取得した値を渡したいのですが、どのようにすればいいのでしょうか。エラー:シンボルが見つけられません。 ×としたところでol.getvalue( args[i] );←ここに値をいれたいのですが、できません。なにか方法はありますでしょうか。 class OverLoad{     void getvalue(Boolean value){   System.out.println("Boolean型:" + value);     }     void getvalue(int value){   System.out.println("int型:" + value);     } public class Capsule{     public static void main(String[] args){   OverLoad ol = new OverLoad(); ×   ol.getvalue( args[i] ); ○   ol.getvalue(false); ○     ol.getvalue(80);     } }

  • 型変換プログラムで

      以下の型変換プログラムで質問です!? PHPレベルは下の下です。 <html> 1 <head> 2 <title>型変換</title> 3 </head> 4 <body> 5 <?php 6 $var = TRUE; 7 print (gettype($var). "<br />"); 8 $var=100; 9 print (gettype($var). "<br />"); 10 $var=100.001; 11 print (gettype($var). "<br />"); 12 $var="TRUE"; 13 print  (gettype($var)); 14 ?> 15 </body> 16 </html>   以上ですが、result(実行結果は)以下です。  boolean integer double string  以上の実行結果で疑問に思うことは、 同じ変数のTRUEでありながら プログラムの6の実行結果の”boolean”と   プログラム12の”string”の実行結果と違いがあるのはなぜですか!?  ※agunuz 回答禁止    宜しくお願いします。

    • ベストアンサー
    • PHP
【HL-L3230CDW】カラー印刷不具合
このQ&Aのポイント
  • カラー印刷で虹色になり、色が薄くかすれる問題について解決方法を教えてください。
  • 白黒印刷時にサイドに線が入ってしまう問題について、対処法を教えてください。
  • Windows11での無線LAN接続において、【HL-L3230CDW】の印刷不具合が発生しています。対処方法をお教えください。
回答を見る

専門家に質問してみよう