トップページ⇒tech
1001コメント290KB

くだすれDelphi(超初心者用)その25

■ このスレッドは過去ログ倉庫に格納されています
0001774: 3   挿入2005/06/17(金) 20:34:51
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その24
http://pc8.2ch.net/test/read.cgi/tech/1115581376/

<雑談・討論などはこちらへ>
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その23
http://pc8.2ch.net/test/read.cgi/tech/1116997081/

<その他>
Borland Home Page
http://www.borland.co.jp/
DelWiki (無料版Delphiの入手方法など)
http://onigiri.s3.xrea.com:8080/delphi/
0685デフォルトの名無しさん2005/07/01(金) 10:50:12
KylixにはC版があるのですが、Delphiにもあるのでしょうか?
0686デフォルトの名無しさん2005/07/01(金) 10:53:03
>>684
検索キーワードは何でしらべたらよいのでしょう?
最小化などのキーワードで検索しましたがヘルプには乗っていませんでした。
マニュアルも過去に一通り目を通しましたが乗っていませんでした。
0687デフォルトの名無しさん2005/07/01(金) 10:54:02
>>685
マニュアル嫁
0688デフォルトの名無しさん2005/07/01(金) 10:54:20
>>686
検索っていうかマニュアル買ってないのか?
今後必要になるんだからかっとけ
0689デフォルトの名無しさん2005/07/01(金) 10:54:51
>>686
位置は指定できないと思う。
0690デフォルトの名無しさん2005/07/01(金) 10:56:14
>>685
kylixは結局LinuxにDelphiを持っていったのはいいが誰も使わなかったから
Cバージョンを出しただけ
DelphiにCバージョンがあるならそれはDelphiではないし
もしあるならみんなそっちを使ってる
06916822005/07/01(金) 10:57:31
>>688
マニュアルを買う?Borlandからですか?
pdfのマニュアルも検索しましたが、
購入するマニュアルにはpdf以上の事が書いてあるのでしょうか?

>>689
そうですか・・・。
ご解答ありがとうございます。
0692デフォルトの名無しさん2005/07/01(金) 10:58:12
>>685
言語部分をC++に置き換えたC++Builderという別製品がある。
0693デフォルトの名無しさん2005/07/01(金) 10:59:28
>>683

その言い方だとなんでもラップしたものはダメ、みたいに聞こえるな。
みんながみんなソケットやAPIを裸で使う必要はないだろ
0694デフォルトの名無しさん2005/07/01(金) 11:00:06
>>691
頭悪いのか?
0695デフォルトの名無しさん2005/07/01(金) 11:02:54
ダイアログの最小化についてはDelphiとなんの関係もない。
マニュアル関係なし。アホが粘着してるからスルーするように
06966822005/07/01(金) 11:05:59
>>694
?
あなたがですか?
解決方法も記さず、さっきからマニュアル嫁としか言わない。
また何処で買えてどのマニュアルをさしているのかもわからない。
これでは何とも・・・。

>>695
承知しました。
他所で調べてみたいと思います。
ありがとうございました。
0697デフォルトの名無しさん2005/07/01(金) 11:06:04
C++Builderはコンポーネントの関係からCじゃ使えないんじゃなかったっけ?
0698デフォルトの名無しさん2005/07/01(金) 11:07:15
おまえら必死だな

最小化で指定できないんなら、ラップして最小化を偽装すればいいだけだろ?
頭悪いのか?
0699デフォルトの名無しさん2005/07/01(金) 11:11:29
質問の意味が分かってない >>698 であった
0700デフォルトの名無しさん2005/07/01(金) 11:12:37
「あいう"えお」というデータを「あいう""えお」というよに
文字列内に"があれば自動的に後ろにもう1個足すには
どうすればいいでしょうか?

iLength := AnsiPos('"', 'あいう"えお');
と書いて"の場所はわかりましたがその後ろに"を
付ける方法がわかりません。よろしくお願いいたします。
0701デフォルトの名無しさん2005/07/01(金) 11:12:52
アンチがまだ潜んでるみたいだな。いい加減巣に帰れよ。。
0702デフォルトの名無しさん2005/07/01(金) 11:13:59
>>700
StringReplace
0703デフォルトの名無しさん2005/07/01(金) 11:14:46
粘着基地害カエレ
超初心者スレなのに簡単な質問きたら頭悪いってアホかとバカかと…
~~~~~~~~~
0704デフォルトの名無しさん2005/07/01(金) 11:18:46
>>702
ありがとうございました。StringReplaceをすっかり忘れてました
StringReplace('あいう"えお', '"', '""', [rfReplaceAll])で解決ですね
0705デフォルトの名無しさん2005/07/01(金) 11:59:48
>>701
今日はアンチはいないと思うけど
それがいいたいだけなの?
0706デフォルトの名無しさん2005/07/01(金) 12:14:37
SetWindowPlacementでできるぞ>最小化時の位置指定
0707デフォルトの名無しさん2005/07/01(金) 12:51:02
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0708デフォルトの名無しさん2005/07/01(金) 12:53:55
で?
0709デフォルトの名無しさん2005/07/01(金) 12:55:43
たまに変なのが沸きますが無視してください。ご不便をおかけしますm(_ _)m
0710デフォルトの名無しさん2005/07/01(金) 12:59:48
>>707
>>707
0711デフォルトの名無しさん2005/07/01(金) 14:03:15
次期Delphiは、VBを越えると思いますか?
0712デフォルトの名無しさん2005/07/01(金) 14:10:20
PascalにはBASICは超えられない
0713デフォルトの名無しさん2005/07/01(金) 14:11:07
PascalにはBASICは超えられない
0714デフォルトの名無しさん2005/07/01(金) 14:19:04
全自動で Delphiのソースを解析して、ソフトの説明などを勝手に考えて
ヘルプファイルを作ってくれるロボットプログラムはどこですか?
0715デフォルトの名無しさん2005/07/01(金) 14:19:36
ホイ、被害担当艦新スレ↓

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その24
http://pc8.2ch.net/test/read.cgi/tech/1120195090/
0716デフォルトの名無しさん2005/07/01(金) 14:48:24
会社に転がってるdelphi7をいじり始めたのですが、

子フォームをボタンで開くと言うだけの事がなぜか動きません。

procedure TfrmEstimateEntry.btnOlditemClick(Sender: TObject);
begin

if not assigned(frmOlditem) then
begin
frmOlditem := TfrmOlditem.create(self);
frmOlditem.Show;
end;
end;

こんなプロシージャー書いたのですが、
フォームが開いていないにもかかわらず、ifからendに飛んでしまいます。

フォームが開いていなったら開けって意味で書いたのですが、
何か認識が間違ってるのでしょうか?
implementationのusesにも子フォームのユニット名は記述してあります。

何か我ながらものすごい馬鹿くさいことを忘れている気もするんですが
宜しくお願いします。
0717デフォルトの名無しさん2005/07/01(金) 14:51:15
馬鹿くさいことを忘れている気がするなら自分で考えて
0718デフォルトの名無しさん2005/07/01(金) 14:52:26
ヒント:
プロジェクト オプション フォーム
0719デフォルトの名無しさん2005/07/01(金) 14:53:03
>>716
子フォームを自動生成の対象に入れてないか?
プロジェクトオプションのフォームタブをチェック。
0720デフォルトの名無しさん2005/07/01(金) 14:54:10
>717
馬鹿くさいこともわからないのが
Del坊なんです

さいしょに
> もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
ってあるでしょ。
0721デフォルトの名無しさん2005/07/01(金) 14:57:33
if not assigned(frmOlditem) then
begin
frmOlditem := TfrmOlditem.create(self);
frmOlditem.Show;
end
else
frmOlditem.Show;
0722デフォルトの名無しさん2005/07/01(金) 15:04:32
スッキリ!!スッキリ!!スッキリ!!
if not assigned(frmOlditem) then
frmOlditem := TfrmOlditem.create(self);
frmOlditem.Show;
0723デフォルトの名無しさん2005/07/01(金) 15:04:37
最適化されるコードの典型
0724デフォルトの名無しさん2005/07/01(金) 15:21:26
>>718>>719
ああああ、ビンゴでした。

自分で設定した覚えが無いのになぜ・・・
もしかしてデフォは自動生成なんですか?

>>721
それでもいいかと思ったんですが、
なぜかってに生成されてるのか分かってなかったのが気持ち悪かったもので。

>>722
これだと短くていいですね。


何はともあれ皆さん、くだらない質問にマジレスいただいてありがとうございました。

正直ググっても、初歩過ぎて文献が見つからなかったっすorz
0725デフォルトの名無しさん2005/07/01(金) 15:26:12
しねよ
0726デフォルトの名無しさん2005/07/01(金) 16:01:16
>>716
> フォームが開いていなったら開けって意味で書いたのですが、

>>724
> それでもいいかと思ったんですが、
> なぜかってに生成されてるのか分かってなかったのが気持ち悪かったもので。

矛盾してるやん。
「フォームが開いていなったら開けって」ってコードはどうみても >>722 だろ
0727デフォルトの名無しさん2005/07/01(金) 16:21:57
DelphiとVBでどっちが勝ってますか?
0728デフォルトの名無しさん2005/07/01(金) 16:23:33
VB
0729デフォルトの名無しさん2005/07/01(金) 16:24:31
ユーザの質とか全てにおいてVB
このスレ見てたらわかるかと
0730デフォルトの名無しさん2005/07/01(金) 16:28:18
VS C#に Delphi勧誘いってきました(^_-)
0731デフォルトの名無しさん2005/07/01(金) 17:15:35
そんなことするから荒れるんだなぁ
0732デフォルトの名無しさん2005/07/01(金) 18:06:24
まぁどうせVB厨だろ。チョソが日本人名乗って悪さすんのと同じ。
0733デフォルトの名無しさん2005/07/01(金) 18:11:01
Delphiユーザってなんでこんなに必死なの?
はたから見てたら本当にDelphiユーザが痛いように見えるよ
0734デフォルトの名無しさん2005/07/01(金) 18:14:40
ユーザから見てても痛いのに
傍から見てたらもっと痛いんだろうな
まあ、一部の奴だけだろうけどね
0735デフォルトの名無しさん2005/07/01(金) 18:31:37
はいはい、いちいち施設まで用意してるんだからこっちいけ

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その24
http://pc8.2ch.net/test/read.cgi/tech/1120195090/
0736ななしへたぐらま ◆XcB18Bks.Y 2005/07/01(金) 18:33:11
>>682
最小化されたサブフォームの移動はDelphi側ではサポートしていませんが
APIで直接動かすことができるようです.以下サンプル.

{★最小化したフォームのウィンドウ領域を返す関数です.}
function GetIconizedFormRect(aForm: TCustomForm): TRect;
begin
 Windows.GetWindowRect(aForm.Handle, Result);
end;

{★最小化したフォームを指定した場所に移動します.}

procedure MoveIconizedForm(aForm: TCustomForm; Left, Top: integer);
var
 WinRect: TRect;
begin
 WinRect := GetIconizedFormRect(aForm);
 Windows.MoveWindow(aForm.Handle, Left, Top,
  abs(WinRect.Right - WinRect.Left), abs(WinRect.Bottom - WinRect.Top), True);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 aRect: TRect;
begin
 // 最小化されたForm2を右16ピクセル,上16ピクセル移動する.
 aRect := GetIconizedFormRect(Form2);
 MoveIconizedForm(Form2, aRect.Left + 16, aRect.Top - 16);
end;
0737ななしへたぐらま ◆XcB18Bks.Y 2005/07/01(金) 18:45:08
>>724
> もしかしてデフォは自動生成なんですか?

その通りです.デフォで自動生成にしたくない場合は
[環境オプション]→[設定]タブ→[フォームデザイナ]グループの
『自動作成とする』のチェックをはずして下さい.
(うちはDelphi 5なので6以降は多少変わっているかもしれませんがオプション自体はあるはずです)
0738デフォルトの名無しさん2005/07/01(金) 19:50:55
> デフォで自動生成にしたくない場合

チェックをはずすとデフォが非自動生成になるってか?
0739デフォルトの名無しさん2005/07/01(金) 19:51:55
なる
0740デフォルトの名無しさん2005/07/01(金) 20:01:35
なるなぁ。知らんかった。
なぜ彼がファビョってるのかも知らんが。
0741デフォルトの名無しさん2005/07/02(土) 10:14:22
StringGridで、エクセルの詳細表示のように、タイトル(FixedRows)をクリックしたときに
その列の値を並べ替えようと思い、FixedRowにボタンを配置し、そこをクリックしたときに
ソートするようにして機能は実現できたのですが、
OptionsのColSizingをTrueにしていても、サイズ変更ができなくなってしまいました。

ソートと、サイズ変更両方できるようにするにはどうすればよいでしょうか。
よろしくお願いします。

 private
  BtnGrdSort1, BtnGrdSort2, BtnGrdSort3, BtnGrdSort4 : TButton; //必要なcol分宣言

procedure TForm1.FormCreate(Sender: TObject);
begin
 BtnGrdSort1 := TButton.Create(Self); //必要なCol分Create 以下同じく
 BtnGrdSort1.OnMouseDown := BtnSortMouseDown;
 BtnHaiti(BtnGrdSort1 ,1,0);
end;
procedure TForm1.BtnHaiti(BtnName :TButton;Col,Row:Integer);
var  BLoc:TPoint;
begin
 BLoc:=Point(Col,Row);
 BtnName.Parent:=StringGrid1;
 BtnName.BoundsRect :=StringGrid1.CellRect(BLoc.X,Bloc.Y);
end;

procedure TForm1.BtnSortMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
 ShowMessage('ソート処理');
end;
0742デフォルトの名無しさん2005/07/02(土) 10:26:18
おまえにはむり
0743デフォルトの名無しさん2005/07/02(土) 10:33:48
>>741
DevelopperExpressの追加コンポーネント買えば一発なんだがなw
0744デフォルトの名無しさん2005/07/02(土) 10:50:24
>>741
そんなことはない。おそらくプロパティが間違っている。
最初からやり直して、普通のイベントハンドラつかって試してから
応用実装した方がよい。
0745デフォルトの名無しさん2005/07/02(土) 10:57:35
vb.netなら簡単

イベント作ってやってるから待ってろ
0746デフォルトの名無しさん2005/07/02(土) 11:09:33
procedure TForm1.BtnHaiti(BtnName :TButton;Col,Row:Integer);
begin
...
StringGrid1.Objects[Col,Row] := BtnName;
end;
の最後に追加

StringGrid1DrawCellイベントを作成して下記をペースト

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
AStringGrid : TStringGrid;
begin
if (Sender is TStringGrid) then
AStringGrid := TStringGrid(Sender)
else
AStringGrid := StringGrid1;

if ARow < AStringGrid.FixedRows then
if Assigned(AStringGrid.Objects[ACol, ARow])
and (AStringGrid.Objects[ACol, ARow] is TWinControl) then
begin
TWinControl(AStringGrid.Objects[ACol, ARow])
.SetBounds(Rect.Left,Rect.Top,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top);
end;
end;
0747デフォルトの名無しさん2005/07/02(土) 15:38:00
Delphi6を使ってるんですが、 eval は無いんでしょうか…?
無いのであれば、何か別の良い方法をお教え下さい。
よろしくお願いします。
0748デフォルトの名無しさん2005/07/02(土) 16:48:46
つ[マニュアル]
0749デフォルトの名無しさん2005/07/02(土) 17:05:21
>>747
どの言語のevalですか?
実現したい機能について説明しましょう。
07507412005/07/02(土) 20:13:35
>>746
返事が送れてしまい、すみません。
バッチリです。ありがとうございました。
0751デフォルトの名無しさん2005/07/03(日) 05:31:46
>>747
evalってのは基本的に、インタプリタ型特有のもんだろ。

>>749
どの言語のevalも大体同じじゃね?
文字列をコードとして解釈ってのが一般的だと思うんだけど、
他にあるのか?
0752デフォルトの名無しさん2005/07/03(日) 08:45:21
>>747
if (fooA = fooB) then
begin
//trueのときの処理
end else
begin
//Falseのときの処理
end;
こんな感じのことがしたのか?
0753デフォルトの名無しさん2005/07/03(日) 09:07:18
>>750
どうしたしまして。

あの 今日 おきて そのコードを見て はっ!! と気がつきました。
スクロールすると、同期しません(>_<)
左上の位置が変更されたら、位置を変えるコードを追加します
下記を加えてください。

procedure TForm1.StringGrid1TopLeftChanged(Sender: TObject);
var
i : integer;
R : TRect;
begin
// 行は0に固定しているので 好きに変更してください。
if (Sender is TStringGrid) then
for i := 0 to TStringGrid(Sender).ColCount-1 do
if (TStringGrid(Sender).Objects[i, 0] <> nil)
and (TStringGrid(Sender).Objects[i, 0] is TWinControl) then
begin
R := TStringGrid(Sender).CellRect(i,0);
TWinControl(TStringGrid(Sender).Objects[i, 0])
.SetBounds(R.Left,R.Top ,R.Right - R.Left, R.Bottom - R.Top);
end;
end;
07547412005/07/03(日) 09:17:10
>>753
早速コードに追加させて頂き、
確かに今まではスクロールすると同期がとれていない現象が出ていたことと、
今回の修正で直ったことを確認しました。
本当にありがとうございました。
07557472005/07/03(日) 15:00:25
>>749,>>752
evalの機能については、>>751さんの説明の通りです。
単純な例を下に・・・。

var
 Str : String ;
begin
 Str := '1+3' ;
 showmessage(Str) ;
end;

例えばこのままでは「1+3」がそのまま表示されますが、evalがあれば
 eval( Str );
で、計算結果の「4」を得ることが出来ます。
与えられた文字列をコードや式として解釈して、
その結果を返します。
0756デフォルトの名無しさん2005/07/03(日) 15:16:52
すみません、アドバイスをお願いします。

ギコナビのビルド方法
http://deuxdeux.hp.infoseek.co.jp/gikobuild.html#bmRegExp

Delphi6無料版とIndy_9_00_17_src、他に上記手順どおり全てのファイルを
組み込んで最終的にコンパイルしてgokonavi.exeが出来上がりました。

しかし、最初の板一覧更新から以下のエラーが正常に動作しません。

-------------------
プロジェクト gikoNavi.exeがEAccessViolationクラスの例外を作成しました。
'Access Violation at address 004EECCF in Module 'gikonavi.exe' Read of address 00000000' プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
-------------------

var
Readbuff : string;
Indy: TIdHTTP;
begin
Readbuff := indy.get('http://www.yahoo.co.jp/');
showmessage(Readbuff);
end;

このプログラムを実行させても同じようなエラーになります。
どなたか問題を解決する方法を教えてください。
07577472005/07/03(日) 15:17:18
>>749
evalの機能説明ばかりで、ちゃんと返答してなかったかもしれないので・・・。

具体的には、
Edit1.Text の「1」と、Edit2.Textの「+3」を足したとき、
文字列「1+3」ではなく、計算結果の「4」が返ってきてほしいんです。
07587562005/07/03(日) 15:18:12
>しかし、最初の板一覧更新から以下のエラーが正常に動作しません。

しかし、最初の板一覧更新から以下のエラーが出て、正常に動作しません。
0759デフォルトの名無しさん2005/07/03(日) 15:20:12
>>755
コンパイル言語でそういうのって難しいんじゃないかな。
その部分だけインタプリタ的な動作をする必要があるわけでしょ?
DMonkeyっていうのがあるけど、使ったことないから分からん。

http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDMonkey%5D%5D
0760デフォルトの名無しさん2005/07/03(日) 15:33:02
>>756
beginの後ろに
Indy:= TIdHTTP.Create(....
みたいのいれなくていいの?
0761デフォルトの名無しさん2005/07/03(日) 15:41:37
先生方お願いします。
どういうことよ 【作者、意図的なウィルスか】
http://pc8.2ch.net/test/read.cgi/software/1119624855/464-

465 :鯨田 ◆lazy.NRKzk [sage] :2005/07/03(日) 15:17:34 ID:ihTzppkq0
ttp://www.geocities.jp/troj_hirofu/about_virus.html
間違えがないかさがしてください。。。
0762デフォルトの名無しさん2005/07/03(日) 15:53:43
// TIdHTTP フォームに貼っていないのなら、createがいる。
procedure TForm1.Button1Click(Sender: TObject);
var
Readbuff : string;
Indy: TIdHTTP;
begin
Indy := TIdHTTP.create(self);
try
Readbuff := indy.get('http://www.yahoo.co.jp/');
showmessage(Readbuff);
finally
Indy.free;
end;
end;
0763デフォルトの名無しさん2005/07/03(日) 15:54:53
>>757

http://onigiri.s3.xrea.com:8080/delphi/index.php?gikobasic
UGIKOSCR.PAS を使えば
GikoScript.ExecToVar( Edit1.Text ) とするだけで結果が返ってくるよ
0764デフォルトの名無しさん2005/07/03(日) 15:55:58
一行の計算だけなら電卓コンポでも探しとけ
07657562005/07/03(日) 16:06:02
>>760
>>762

TIdHTTPをフォームに張った場合は、 >>756 のエラーが出てしまい、
貼らない場合に >>762 のソースをコンパイラして実行させると以下のエラーになります。

-------------------
プロジェクト test.exeがEIdConnClosedGracefullyクラスの例外を作成しました。
'Connection Closed Gracefully'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
-------------------

Indyコンポーネントを使いたいのに、一番最初に躓いています・・・。
すみません。さらにアドバイスをお願いします。
0766デフォルトの名無しさん2005/07/03(日) 16:07:22
>>765
Indy付属のサンプルは動くのか?
07677562005/07/03(日) 16:07:50
Readbuff := indy.get('http://www.yahoo.co.jp/');

↑でエラーが出てしまいます。
0768デフォルトの名無しさん2005/07/03(日) 16:09:49
付属のサンプル
07697562005/07/03(日) 16:10:10
>>765

今日始めてIndyをインストールしたので、初歩の段階ですみません。
付属のサンプルってどこにあるのですか?
07707562005/07/03(日) 16:11:44
Indy_9_00_17_srcの中にそれらしきものが。。

試してみます
0771デフォルトの名無しさん2005/07/03(日) 16:14:01
> 例外クラス EIdConnClosedGracefully は,接続が正常に閉じられた場合に生成されます。
>
> EIdSilentException から派生しているため,VCL の EAbort 例外のように動作します。
> [ツール|デバッガオプション|言語固有の例外|追加] をクリックして「EIdSilentException」と入力し,
> この例外を無視するように IDE を設定することをお勧めします。
07727562005/07/03(日) 16:14:50
ispFix.bpr
Computil.bpr

というのがありますが、サンプルじゃありませんでした。
07737562005/07/03(日) 16:17:14
>>771

手順どおり設定したところ、エラーが出なくなり正常に動作しました。

スゴイ感激です。有難うございます!
0774デフォルトの名無しさん2005/07/03(日) 16:19:30
>>757
var
 Atext : String;
 Apos : Integer;
begin
 Atext := Edit1.Text + Edit2.Text ;
 //足すの場合
 Apos := AnsiPos('+',AText);
 if Apos <> 0 then
 begin
  result := StrToInt(Edit1.text) + StrToInt(Edit2.text)
  Apos:=0;
 end;
 //かけるの場合
 Apos := AnsiPos('*',AText);
 if Apos <> 0 then
 begin
  result := StrToInt(Edit1.text) * StrToInt(Edit2.text)
  Apos:=0;
  end;
 //引くと割るの場合は自分で考えてみよう。それと、TEdit.textの値が有効なものか事前にチェックする必要がある。
end;
0775デフォルトの名無しさん2005/07/03(日) 16:26:18
>>757
すまない>>774は間違えた。
var
 Atext : String;
 Apos : Integer;
begin
 Atext := Edit1.Text + Edit2.Text ;
 //足すの場合
 Apos := AnsiPos('+',AText);
 if Apos <> 0 then
 begin
  result := StrToInt(copy(Atext,1,Apos-1)) + StrToInt(Copy(Atext,Apos+1,Length(Atext))) ;
  Apos:=0;
 end;
 //かけるの場合
 Apos := AnsiPos('*',AText);
 if Apos <> 0 then
 begin
  result := StrToInt(copy(Atext,1,Apos-1)) * StrToInt(Copy(Atext,Apos+1,Length(Atext))) ;
  Apos:=0;
  end;
 //引くと割るの場合は自分で考えてみよう。それと、TEdit.textの値が有効なものか事前にチェックする必要がある。
 //やっていることは文字列を結合して、演算子を探して、演算子の前後を数値として演算子に応じて計算する。
end;
0776デフォルトの名無しさん2005/07/03(日) 17:06:37
"試してみます"じゃなくて迅速に試して結果を報告しる
0777デフォルトの名無しさん2005/07/03(日) 17:47:32
>>775
そういうまるでVBで書くようなコードじゃなくて、
普通に再帰下降で書くべきだろう。

http://piza2.2ch.net/tech/kako/1003/10035/1003559977.html
この4レス目にコード例があるから
0778デフォルトの名無しさん2005/07/03(日) 18:51:35
プログラム板が荒れているため、IDを導入するか検討中です。
賛成の方も反対の方も、このスレで自分は賛成か反対かをお書きください。

プログラム技術板に強制ID制を導入すべきか否か
http://etc4.2ch.net/test/read.cgi/vote/1118144381/

理由などの記入は別に構いません。
<<賛成>>か<<反対>>かだけ御記入頂ければ結構です。
ちなみに、当たり前ですが運営の方にIPが見えているので、1日ごとにIDが変わるからといって多重投稿しないでください。
0779デフォルトの名無しさん2005/07/03(日) 20:34:28
面倒だからどうでもいいけど。↑ こういうのは荒らしの一種だと思う
0780デフォルトの名無しさん2005/07/03(日) 21:23:38
よその ほがらかな掲示板に引っ越します。
さようなら(;_;)/~~~
0781デフォルトの名無しさん2005/07/03(日) 21:34:50
だまって引っ越せ
0782デフォルトの名無しさん2005/07/03(日) 21:58:21
ただいま。
0783デフォルトの名無しさん2005/07/03(日) 23:48:34
>756
勘違いしているといけないので念のため
例外が発生したものをIDEが捕捉したからといって必ずしも
エラーなわけではない。>771はIDEが特定の例外を捕捉しない
ように設定しているだけ。
0784デフォルトの名無しさん2005/07/04(月) 13:48:36
TExeIcon と言うコンポーネントをDelphi6 Personalで使いたいんですが、書庫の中にdcuとdcrファイルしか無く、
どうすればいいのか分かりません。 誰か分かる人いますか?
■ このスレッドは過去ログ倉庫に格納されています