【Delphi初心者】今から始めるDelphi Part01

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
初心者同士馴れ合いながら、一つのアプリを作成していく目標を持ったスレです。
もちろん、質問もOKです。

質問はage
回答はsage


第一回 画像表示ソフトを作ろう


くだすれDelphi(超初心者向け) Part5
http://pc2.2ch.net/test/read.cgi/tech/1061090908/l50
夏休みもおわったっていうのに、どうして次から次へと糞スレが…
質問です。png 画像を表示したいです。どうしたらよいですか。
>>3
IEコンポーネントを利用してください。
質問です。gif 画像を表示したいです。どうしたらよいですか。
6デフォルトの名無しさん:03/09/01 22:23
Delphiは7になってどのように変化しましたか?

VCL7は機能変更ですか、機能拡張ですか?
どのような機能が拡張されていますか?

Delphi6ではVCL7を使用できないのでしょうか?
>>5
Netscapeコンポーネントを利用してください。
質問です。Netscapeコンポーネントを利用したいです。どうしたらよいですか。
夏休みは今日までじゃなかったのか!?
にしても、>>1は糞スレ立てるなボケ
10デフォルトの名無しさん:03/09/01 22:36
Netscapeコンポーネントって
12デフォルトの名無しさん:03/09/04 13:40
>>6
Delphi.netに向けてコンパイラがやかましくなりました。

VCLはpro以上じゃないと意味ないかな IntraWebだけは楽しいです。
質問です。夏休みを増やしたいです。どうしたらよいですか。
14デフォルトの名無しさん:03/09/04 13:47
>>13 留学しましょう。 駅前じゃダメですよ。
質問です。夏休みを増やしたいです。どうしたらよいですか。
ただし、駅前に限定します。
今年のですか? 今年のならタイムマシンを発明して下さい。
来年のですか? 夏休みの多い学校に転校しましょう。
10年先に夏休みがあって欲しいならせめて公務員になりましょう。 プログラマにだけはならないようにね。
DMC = Delphiマンセー厨
>>13
海外に住んだら?
引きこもればいいんじゃないかな
質問です。pcx 画像を表示したいです。どうしたらよいですか。
ぐぐる。 > 20
>>21
ぐぐっても表示できませんでした。

>>22
そのページみても表示できませんでした。
悔い改める
>>24
悔い改めても表示できませんでした。
26冷たい名無しさん:03/09/05 22:47
リンクをつかうんですかぁ。
2820:03/09/05 23:54
>>26
ImageEn を使ってみる。ありがと。
29デフォルトの名無しさん:03/09/08 00:07
>>1
もう挫折したのか?(w
301:03/09/08 07:08
Delphiやっても将来がないことに気付きました。C#やります。
ばかだね。 プログラミングやるなら将来ない事に変わりはないのに。

どうせ何やっても将来ないならDelphiで楽しんだほうが人生楽しいと思うけどね。
新しいドトネト厨釣り堀はここですか?
そうです。最近数が激減したのでなかなか釣れませんが。
34デフォルトの名無しさん:03/09/20 13:51
 
世界のVCL
http://hp.vector.co.jp/authors/VA015730/vcl/vclworld.html
GraphicEX
GifImage
Project Jedi
最近VCLというボーランドのライブラリ名を
汎用的に使っている奴がいるな。
どうせただの一人だろうが。
>1は
part01てことはpart10まではスレを伸ばす気があるってこととみた。
>>36
はぁ ?
普通に、Delphi/C++ Builder 用のライブラリのこと言ってるだけだろ ?
どこが汎用的なんだ ?
39デフォルトの名無しさん:03/09/23 19:27
質問!!
4039:03/09/23 19:31
すみません、自己解決しますた。
どんな質問だったんだろう…
42デフォルトの名無しさん:03/09/25 23:18
今から始めるバッファオーバーフロー
43デフォルトの名無しさん:03/10/03 23:21
今から始めるバッファオーバーフロー
function SetRotFont(Canvas:TCanvas;Font:TFont;deg:double;back:TColor):TSaveFont;
 var lf:LOGFONT;
begin
 lf.lfCharSet  := Byte(Font.Charset);
 lf.lfEscapement  := round(deg*10) ;
 lf.lfHeight    := Font.Height;
 lf.lfWidth     := 0 ;
 lf.lfOrientation  := 0 ;
 lf.lfItalic    := Byte(fsItalic  in Font.Style);
 lf.lfUnderline   := Byte(fsUnderline in Font.Style);
 lf.lfStrikeOut   := Byte(fsStrikeOut in Font.Style);
 lf.lfOutPrecision := 0 ;
 lf.lfClipPrecision := 0 ;
 lf.lfQuality    := 0 ;
 lf.lfPitchAndFamily:= 0 ;
 if fsBold in Font.Style
 then lf.lfWeight := FW_BOLD
 else lf.lfWeight := FW_NORMAL;
 if AnsiCompareText(Font.Name, 'Default') = 0
 then  StrPCopy(lf.lfFaceName, DefFontData.Name)
 else  StrPCopy(lf.lfFaceName, Font.Name);
   Result.newFont := CreateFontIndirect(lf);
   Result.oldFont := SelectObject(Canvas.Handle , Result.newFont);
   SetTextColor( Canvas.Handle ,ColorToRGB(Font.Color));
   Canvas.TextFlags := 0;
   if back=clNone
   then begin Canvas.TextFlags := ETO_OPAQUE ;Canvas.Brush.Color:= back ; end;
end;
4544 :03/10/05 10:03
type TSaveFont=record
  oldFont:HFont;
  newFont:HFont;
end;
procedure FreeFont(Canvas:TCanvas;var oldFont,newFont:HFont);
begin
  SelectObject(Canvas.Handle, oldFont);
  DeleteObject(newFont);
end;

使い方、
with SetRotFont(Canvas,Font , 90, clWhite) do try
     Canvas.TextOut(x,y,s); //この文字描画は90度縦方向に描画出来る
finally FreeFont(Canvas,oldFont,newFont);end;

このセットで使用して下さい。
元スレ(>>1)は相当の基地害です。無視進行でお願いします。
47デフォルトの名無しさん:03/10/15 08:25
アプリ起動時(フォームが出る前)にコントロールキーが押されているか判断したいです。
Googleで探したけど、良い方法がみつかりません。
ヤバいくらいにクールなやりかたを教えてください。
これは?
GetKeyState(VK_CONTROL)
           _________
   ∧,,∧   / ヤバイくらいに
  ミ*゚Д゚彡 <  普通のやり方です。
   ミつ旦(ミ~~ \ どぞ。
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ ヤベーヨ ヤベーヨ

function PressKeyCode(const VirtualKey: Integer): Boolean;
begin
 if ((GetAsyncKeyState( VirtualKey ) and $8000) = 0) then
  Result := False
 else
  Result := True;
end;

begin
 if PressKeyCode(vk_control) then ShowMessage('コントロール押しすぎ!');
 if PressKeyCode(vk_Shift) then ShowMessage('シフト押しすぎ!');

 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.
5047:03/10/16 07:21
ありがとう
51デフォルトの名無しさん:03/10/17 09:21
delphiを使用してバイナリファイルをテキストファイルに変換したいのですが
やり方がさっぱりで・・・
charとpic形式が混じった物なのですがアドバイスをいただければ幸いです

char(8)…8byte
pic(15)…8byte
pic(11,2)…6byte(11桁+小数2桁)
を読み込んでテキスト化したいのですが

構造体?みたいなのを宣言して読み込めばいいのでしょうか?
>>51
ここは終わったスレだから、くだすれdelphiのほうに
質問したほうがよさげ
つか削除依頼だしてこい>>1
>>51
それだけなら
var buf : packed record
name1 : array[0..7] of char;
num1 : array[0..7] of byte;
num2 : array[0..5] of byte;
end;
として、
Stream.Read(buf,sizeof(buf));
で呼んで

num1,num2は16進数変換してから小数点やゼロ差プレスを入れたらどうなの?







     Delphi関連の本スレはこちらです。類似スレに注意。








55デフォルトの名無しさん:03/10/23 21:46
おながいです、おながいです、とても困っているので教えてくさい。
漏れはVBからdelに移行した物ですが、サパーリわからなくて困っています。

vbの場合、あるファイルをTxt_typeという構造体で開く時に
Open App.Path & "\***.txt" For Binary As #1
Put #1, 1, Txt_type
Close #1
としますよね。

これをdelで同じように開くにはどうしたら良いのでしょうか?
>>55
TFileStream使ってやったんじゃ駄目かい?
普通にアクセスするより楽だと思うけど・・・
>>55
もしくは小さなテキストファイルを扱いたいなら
TStringListを使ってみる。。。
>>55
 >>56のでいいんでない?
 もしくはTMemoryStreamに全部いれて地道に・・・
TFileStream や FileOpen, AssignFile の使い方が
解らないというレベルの話だと思うが。
因みに扱う形式はテキスト?バイナリ?どっちなのだ?
どんなデータを作りたいのかが判らんなぁ〜
Delphiの標準的な
文字列の型ってなんですか?
>>61
string
>>62
stringはそのままAPIの引数に使えますか?
使えないとしたらどのようなコードを書けばいいですか?
>>63
 使えるよ。
 C,C++から呼び出すときに使えないけどC++Builderからなら使えたはず。
 
>>63
String型はそのままAPIに引き渡すのは良くないですよ。
SetLengthでAPIが使用する文字列のサイズを指定してから
引き渡すようにして下さい。
>>64 >>65
で結局どっちなのさ。具体的なコードがあれば嬉しいんだけど。
たとえばstringにHELLOっていれて
APIのMessageBoxで表示するコード。
>>66
希望のサンプル
procedure TMainForm.Button1Click(Sender: TObject);
var
msg: String;
begin
//-----
msg := 'めっせーじじる';
if (MessageBox(self.Handle, @msg[1], 'きゃぷしょん', MB_OK) = IDOK) then begin
end;

end;
こうでもいいよ。
if (MessageBox(self.Handle, PChar(msg), 'きゃぷしょん', MB_OK) = IDOK) then begin
var
s:AnsiString;
nSize:Cardinal;
begin
nSize:=256;
SetLength(s,nSize);
GetUserName(PChar(s),nSize);
s := PChar(s);
ShowMessage(s);
end;

添え字が0から始まるChar型の配列も文字列として扱うことが可能。
文字列を受け取るAPIを多用するならこちらのほうが便利。
あぁ、そうそう。文字列を受け取る場合も知る必要があるね。
なんで、stringじゃなくてAnsiStringになっているのさ?
めんどくせーな。
って言うかいい初心者向けサイトない?
73デフォルトの名無しさん:03/11/11 10:47
使い始めて一週間です
プログラムの実行はF9でできるのですが
終了させるのにCtl+F2を押しても終了しません。
どうすればよろしいのでしょうか?
Alt+F4
75デフォルトの名無しさん:03/11/11 11:35
>>74
ありがとう、ございます
(でも、なんで実行の表示と違うのだろう)
なぜに今からDelphiを始めるんだろう…?

確かに数年前まではMSの開発環境より言語仕様やVCLの面でDelphiが大きな
アドバンテージを持っていた。
でも今から始めるなら.netがあるじゃん。言語仕様もクラスライブラリも
Delphiのそれとよく似ているし、機能面では遜色もない。
昔からDelphiの人ならともかく、今からあえてDelphiを学習するメリットって
あるのかな。
7773:03/11/11 16:29
仕事で使うことになったんです
始めまして。1点質問があるのですがよろしいでしょうか?
TQueryコンポーネントのFilterって基本的に「*」検索できないんでしょうか?
DBはOracleを使用しているのですが、どうも正しい検索結果が得られません。

例えば、

Name
-------
田中義剛

というデータがあったとして、以下のようなFilterをかけてもこちらの思うような結果が得られません。
・「Name = *剛」→ヒットせず。
・「Name = c*」→ヒット(なぜ?)

何かFilterを使うときの注意などはあるのでしょうか?
TQueryなら SQL で LIKE で絞り込むのではダメかい?
初めまして、非常に低レベルな質問なんですがよろしくお願いします。

X と Y (ともに符号なし整数) の和が奇数かどうかを調べたいんですが、
Odd(X + Y)、 Odd(X) xor Odd(Y)、 X and 1 xor Y and 1 = 1
のうちどれが一番高速でしょうか。
Odd(X xor Y)
8280:03/11/14 09:20
>>81
ありがとうございました。
83デフォルトの名無しさん:03/11/14 12:24
Cにおけるsystem()のようなものはDelphiにはないのでしょうか?
あります。
排他的論理和ってなんなんだ
排他的論理和 それはとても便利な演算
なんかすごそうですね。

ソンゴクウより強いですか?
おそらく五分。
最近Delphiの勉強を始めたのですが、何かゲームでも作っていきたいとおもいます。
でも、板違いですかね?
すぐにチャチャが入りますからね。 でも、このスレでこっそりやれば大丈夫でしょう。
>>89
板違いですよ。
9289:03/11/16 04:27
やはり快く思わない人もいるみたいだから、やめておいた方がよさげだね。
真性の馬鹿か?ゲ制作技術板でやるだろ普通。
でもこのスレを有効活用するにはいいんでない?
ゲームだと荒れそうだからゲーム以外のもの作ってみては?
ゲームを作るのが目的じゃなくて、勉強が目的で手段がゲームでも だと考えりゃいいんじゃないの
96 :03/11/18 01:06
>>89
板違いかどうかは分からん。
でも応援してる(藁

>>93
あそこは「ひどいインターネットですね」の見本みたいなとこだからなぁ…。
ずいぶん前に見る気失せた。
なんであんなに荒らされてんだろう?
paradox使ってデータベースアプリの作成をやっているのですが、
たまに「ドライバをロードできません。」というエラーメッセージが表示されます。
これは一体何が原因なんでしょうか?
再現性がないために、原因が掴めません。
何か知ってらっしゃる方がいたら回答頂けませんでしょうか?
宜しくお願いします。
特定の条件下でCD-ROMを使えなくするようなコードを書きたいのです
が、どのようにしたらいいでしょうか?
思いついたのは、レジストリをDelphiから操作して使えなくする事なの
ですが、どこをさわればいいのかわかりません。゜。・゜(つД`)゜・。
この他にDelphi側からハードをコントロールする方法はありますか?

現場の人が勝手にどんどんゲーム等をインストールしてしまう事への
対策なのです。(´・ω・`)
>>98
PC の蓋開けて、CD-ROM の電源ケーブル抜いときゃいいと思うけど。

つーか会社だったら、CD-ROM の蓋の部分に、「勝手にインストールするな !! 見つけたら、解雇するぞ !!」とでも書いた紙貼っときゃいいだろ。

まじめにやるなら、OS を WindowsNT 系にしてグループポリシーで制限すべきだと思うけどな。
XPで管理者権限外したの使わせたらインスコとかはできないんじゃ?
101 :03/11/24 23:16
つーか、あんまり変なコーディングするべきじゃないと…。
その話からすると、コーディング云々より人間性の問題かと…。
変なコーディングして思わぬ事が起きた場合から発生する問題が恐いかと…。
10298:03/11/28 09:31
レス遅れてすいまそん。

実はこの現場ってのは、国外でして・・・。ローカルの従業員(しかも工員)
に「絶対使うな!」と言ってもかなり難しいようです。
OSは予算の関係でそう簡単には変えられないので、ソフトでなんとかな
らないかと泣きつかれてしまった日曜プログラマなのでつ。(´・ω・`)

でも、どうやら無理そうですね。 あちらにはそのように返答しておきます。
ありがとうございました。
OS が 98 系なら、セキュリティの概念がない OS だから、何に対してもプロテクトを
かけることは難しいでしょう。ソフトレベルで小細工しても(たぶん)容易にはずされる。

98 系なら、OS リブートは当たり前ですから、割り切って、BIOS レベルで CD-ROM を切り離したら?
BIOS 設定にパスワードロックがかけられればなおよし。

単にエクスプローラーから見えないようにするなら、TweakUI で設定できます。おそらく
レジストリでも。けどドライブ自体は存在するので DOS に降りられたら終わり。
後は CD-ROM からの自動起動を OFF にしておけば、DOS を知らないユーザーなら何とかだませるだろう。
10498:03/12/01 12:30
そこに勤務する日本人はPCに詳しい人がいないので、出来たらプログラ
ムを作って簡単にやりたいらしいのです。
(CD-ROMを使う必要がある場合もあるので、ずっとそのままでも駄目な
為)
きっとBIOSなんていじらしたら、そのまま永遠に起動させなくしそうです・・・。

例えばTweakUIで実現しているCD-ROMを見えなくする方法は、Delphi
では出来ますか?
やはりレジストリを操作するのだと思うのですが、どの部分をDelphi側
から変えてやらなければいけないかご存知の方、教えていただけないで
しょうか?

Delphiと若干関係無い質問で申し訳ございません。
>申し訳ございません
というなら、場所を変えなさい。
Windows 板がよいかと思うよ。
今日からdelphi始めました。
変数・配列の宣言が変わってるよね・・・
なんだろう、VBに近いのかな?
とりあえず簡単なゲームぐらいは作れるようになりたいぽ
ゲー板のがいいんじゃない?

簡単なゲームってのがどの程度のものか知らないけど(w
CD-ROMドライブ自体を物理的に外してしまうのじゃだめ?>>98
>>108
>>104
> (CD-ROMを使う必要がある場合もあるので、ずっとそのままでも駄目な為)
110デフォルトの名無しさん:03/12/15 23:51
手伝ってくれる方キボンヌ
http://program.dot.thebbs.jp/1071486463.html
氏ね
スレ違ってたらすみません。

さきほど Delphi6 Personal を入れてこれから勉強始めようと思っているのですが
インストール時に FW で許可した D6REG.EXE は今後も通信する可能性あるので
しょうか?また、DELPHI32.EXE がブロックされていたのですが、許可しておいた方
が良いのでしょうか?
>>112
スレ違いじゃないけど、「ボーランドさんに聞け」と。
>>112
バージョンアップのお知らせとかだよ。
好きにしる。
他の情報が漏れてるかどうかはしらん
>>113-114
回答ありがとうございます、お知らせしてくれるとは親切ですねー。
最悪もれて困るようなデータは入っていないマシンなので、許可しておきます。
通信しっぱなしとかだったら考えてしまいますけど。
>>115
バージョンアップと言っても無料じゃないから親切ではないかと。
CMと似たようなもん
たまに表示されるがどうせ見ないから邪魔なだけ
TRrichEditを使って色付きのビュアーを作成しようとしているんですが
74kほどのファイルを表示させるのにもかなり時間(十数秒)かかるんですが、
画面に必要な分だけ表示させて画面スクロールしたらまた表示するようにして
表示速度を上げる方法をしりたいんですが、どこかにそういった情報乗ってる場所
ないでしょうか?

別のコンポーネントとかでもかまいません。
時間がかかっているのはどこですか?
RTF テキストの読み込み時に時間がかかっているのであれば、
データを書き換え/挿入している部分の前後を
RichEdit.Lines.BeginUpdate と EndUpdate ではさんで、よけいな再描画が起きないように
するというのがよくある話。
>画面に必要な分だけ表示させて画面スクロールしたらまた表示するようにして
見える部分だけをデータとして用意する仮想リストボックス風の処理をしたいのでは無いでしょうか。

RichEdit にそんな機能あったっけなぁ?
>>118
ソース出しますね。
まだこの処理の後色つけ等してるんですが・・・

AssignFile(InF, ファイル名);
Reset(InF);
log.Clear;

while Not EOF(Inf) Do
Begin
Readln(InF, Buf);
log.Add(Buf);
end;

logViewer.Lines.BeginUpdate;  //これ入れたらかなり改善したけど
//ここから
logViewer.Lines := log;
//ここまでの処理が大変時間かかる。
logViewer.Lines.EndUpdate;

ようは、EmEditorとか色付きで表示されているのにあれと同じような
レスポンスがないんで何をしてるのかなぁっておもってるんです。
これでどれくらいになりますか?

with logViewer.Lines do begin
 BeginUpdate;
 LoadFromFile(ファイル名);
 EndUpdate;
end;
ドルに換算すると1jくらいになります
今デバッグ中なのかリリース版(exeを普通に起動)したのか
わかる変数ってありませんか?

デバッグ中だけしたいことというのがあるんですが
今のところ
debug=1とconstで設定してリリース時にはconst=0とかにして
リコンパイルしてリリースしているんですが、これをミスるとデバッグ版を
出してしまいそうで。
74kのファイルでの時間測定

私のやり方では
8923ms
8903ms
9053ms
平均8959ms

>>121さんやり方では
271ms
310ms
281ms
平均287ms

約31倍速度アップしました

後1Mのファイルを開いてみたら
911msとかでたので比例的に時間かかるというわけでもなさそうですね。

ありがとうございました。これつかって作ってみます。
よくあるテクニックとして、社内デバッグ中であることを示す環境変数またはレジストリを準備し、
それが特定の値の時にはデバッグコードを動かします。

もちろん出荷製品のインストーラーにはそういう隠し設定は入れません。

もう少し微妙なテクニックとしては、プロセスがデバッガによって読み込まれているかどうかを
判断する API があります。
NT 系だと、IsDebuggerPresent とその一族を使ってデバッガにアタッチされていないかを検出できます。
95 系にはこの API がありませんが、その代わりに FS セグメントのオフセット 0x20 をチェックする。という
技法が使えます。Anti Crack 関連をぐぐってください。
1.IsDebuggerPresent関数
2.仮想デバイスドライバ検出
3.デバッガのウィンドウクラス名取得
裏で開く
procedure TMainWnd.actListOpenHideExecute(Sender: TObject);
var
item: TListItem;
thread: TThreadItem;
begin
(* *)
if ListView.SelCount > 1 then
item := ListView.ItemFocused
else
item := ListView.Selected;
if item = nil then
exit;
if UILock then
exit;
thread := TThreadItem(item.Data);
ShowSpecifiedThread(thread, Config.oprGestureThrOther, true, false, true);
SetRPane(ptList);
end;
全ての新着開く
procedure TMainWnd.actOpenAllNewThreExecute(Sender: TObject);
var
index: Integer;
item: TListItem;
thread: TThreadItem;
begin
if ListTabControl.Tabs.Count < 1 then
exit;
for index:=0 to ListView.Items.Count-1 do
begin
item := ListView.items[index];
if item = nil then
continue;
thread := TThreadItem(item.Data);
if (thread.lines > 0) and (thread.oldLines >= thread.lines)
and (thread.lines < thread.itemCount) then
begin
ShowSpecifiedThread(thread, Config.oprGestureThrOther,
(Config.oprOpenThreWNewView xor (GetKeyState(VK_SHIFT) < 0)));
SetRPane(ptView);
end;
end;
end;
130128:04/01/20 11:12
全ての新着を裏で開くにはどうソースを書いたらいいか分かりません
わかりやすく説明してもらえませんか?
131128:04/01/20 11:14
age忘れました
132デフォルトの名無しさん:04/01/21 17:43
>>123

デバッグを示すファイルを作成して そのファイルがあるときは デバッグ中とすればいいのでは?
133デフォルトの名無しさん:04/01/23 23:37
ゲームつくるにはデルヒが一番らくですか
ゲームっていっても色々あるんだが
じゃんけんゲームとか
もぐらたたきゲームとか
RPGとか

ゲーム板いったほうがいいよ
ありがとー。いってみます
1番楽。 VB,C#はゲーム向けではないし、C++は大変。
137デフォルトの名無しさん:04/02/02 00:48
動きの激しい(シューティングなどの)ゲームを作るとちょっと描画がもたつく
感じがするのですがDelphiで高速な描画というとどういった方法がセオリーですか?
今はImageList.Drawを使っています
ゲ製作板にいくほうがいいかと
>>138
失礼しました、こちらは描画一般は扱わないのでしょうか
(過去ログにピクセルの描画に関しての高速化があったのであえてこちらに書き込んでしまいました)
ゲ製作に逝ってきます
いえ、ゲームの場合は特別かと。それ専用の場所もありますし。
#ゲーム以外での描画の話題はあまりない気もしますが。OwnerDrawくらい?

http://216.239.57.104/search?q=cache:fGL7Wsv0RywJ:www.geocities.co.jp/SiliconValley/1367/drawspeed.html+Delphi+%E9%AB%98%E9%80%9F%E3%80%80%E6%8F%8F%E7%94%BB&hl=ja&lr=lang_ja&ie=UTF-8
141OpenGL:04/02/13 02:37
上の人とも関係するかもしれませんが、
DelphiでOpenGLを扱うやり方について、過去ログや文献、webで
参照すべきものがあれば教えていただけないでしょうか。
143141:04/02/13 03:58
>>142

有難うございます!
今、徹夜で頑張ってます(多分朝の10時くらいから寝ると思いますが…)。
144デフォルトの名無しさん:04/02/23 13:16
Delphi6 Perのヘルプのチュートリアルには誤記があるようですが、
誤記の内容と本来書かれるべき内容を教えてください。
他のスレやサイトに書かれている場合は、
そのスレやサイトのURLかタイトルなどを教えてください。
>>145
字余り
147デフォルトの名無しさん:04/02/23 16:24
trim関数を使ってもtabが取り除けないです
ヘルプには空白と制御文字をと書いてますし
制御文字で検索するとtabは制御文字で間違いないようです
うまくやる方法を教えてください
>>147
文字列の先頭と末尾しか取り除けないが、中間にあるのまで取り除こうとしてない?
>>147
AnsiReplaceStrやAnsiReplaceTextでどうでしょ?
(制御文字は自分ではやったことないけど大丈夫じゃないかな)
>>148
>>149
ありがとうございます、解決しました
>>148氏のアドバイスの後、まさかと思いつつ調べたところ
memo1上で目視確認で改行されてたものが実は繋がっていたというミスでした
お騒がせしました
ええとどこに書くか迷ったのですがはじめての事なのでこちらに書きます。
いままで98SEにDelphi 6 Personalをインストールして使っていたのですが
WinXP sp1へ移行する事になったのでDelphi 6もXPへ移行しようとしたら
対応OSがWindowsMe Windows2000 Windows98 WindowsNT となっています。
XPへインストールしてもいいのでしょうか。
>>151
俺XP sp1で使ってる
何の問題も無いよ
ていうかレス速すぎてずっとこのスレ見張ってたみたいだが
>>152
どうもです。
どのスレか見失ってしまったのですが、XPは対応していない
という書き込みを見たような気がしたものですから。
thxです。
Delphi6 Personalはもう落とせないのでしょうか。OSを再インストールして、
もう一度Delphiを入れ直そうとしたらDelphi7(使用期限あり)に変わってたようで。
ダウンロードページが書き換わってるね。
ファイルはまだある
Ftp://ftpa.borland.co.jp/pub/delphi/personal/BorlandDelphiPersonalEditionJP.exe
>>155
ありがとうございます。助かりました。
delphi7ってアカデミーパックないの?
studio proを買おうと思ってるんだけど、アカデミーパックが見付からない。
159デフォルトの名無しさん:04/05/30 23:29
こんばんわ
ListBoxについて質問です。

リソースファイルを以下の様に宣言して、画面に表示されたのですが、
値の追加はどのようにすればいいのでしょうか?
SendMessage(hWnd,LB_INSERTSTRING,0,s);
では値か表示されませんでした・・・

PAGE1 DIALOG DISCARDABLE 0, 0, 160, 124
CAPTION "未読"
FONT 9, "MS Pゴシック"
BEGIN
AUTOCHECKBOX"送受後(&R)",101, 12, 12, 100, 10
LISTBOX 151, 14, 20, 80 , 65
PUSHBUTTON"送信(&D)", 199, 140, 72, 48, 14
END
>>159 なんでDelphi?
161sage:04/05/30 23:42
>>160
ただで使えるからです・・・
SendMessage(GetDlgItem(hWnd, IDC_MCDLIST), LB_INSERTSTRING,0,Longint(PChar('kkk')));

で出来ました。ふぅ
163デフォルトの名無しさん:04/06/06 00:22
FileListBoxに対してフルパス もしくは fileNmaeを与えることによってそのList内での順番を得るにはどうしたらよいのでしょうか?


FileListBoxの中身
001.txt
002.txt
003.txt
・・
・・・
・・
・・


これに対して
003.txt(もしくはC:\・¥・・¥003.txt)という引数をを入れた場合の返り血として 3 がほしいのです。
>>163
FileListBox1.Items.IndexOf('003.txt');
0から始まるから、2が返ってくるけど。
165デフォルトの名無しさん:04/06/09 02:36
質問ですが、
配置したボタンをクリックすると、同時に起動している別のエディタのカーソルの位置に
指定の文字列が入力されるようにするにはどのようにすればよいのでしょうか?
以下のコードで起動してるメモ帳に Edit1 の内容を挿入できましたが、
ウィンドウの検索方法が厳密でないので、同名のウィンドウが複数
存在する場合、予期しない動作をするかもしれません。

procedure TForm1.Button1Click(Sender: TObject);
var
  Target: HWND;
begin
  Target := FindWindowEx(0, 0, 'Notepad', '無題 - メモ帳');
  if Target <> 0 then
  begin
    Target := FindWindowEx(Target, 0, 'Edit', nil);
    if Target <> 0 then
      SendMessage(Target, EM_REPLACESEL, 0, Integer(PChar(Edit1.Text)));
  end;
end;
メモ帳の場合はエディット部分がウィンドウズのEDITコントロールですから、
EM_XXXX メッセージが使えます。でも、秀丸とか EmEditor とか他のメジャー
なエディタは独自のエディットコントロールを使っていますので、EM_XXX や
WM_XXXX のようなメッセージにはほとんど応答しません。クリップボード経由
ならなんとかなるかも知れませんが。
168デフォルトの名無しさん:04/06/11 21:07
SelectDirectoryで取得したパスの一階層上のパス(C:\AAAA\BBBBをC:\AAAに)
を取ろうと思い。ExtractHTTPFieldsで分解してリストボックスに表示させました。

uses HTTPApp

var
 DirPath: string;
 chrSepa,chrWhite: TSysCharSet;
 sltResult: TStringList;
begin
 DirPath := DirPathBox.Text;
 sltResult := TStringList.Create;
 sltResult.Clear;
 chrSepa := ['\'];
 // 分解
 ExtractHTTPFields(chrSepa,chrWhite,PChar(DirPath),sltResult);
 // 表示
 ListBox1.Items.Assign(sltResult);
 sltResult.Free;
end;

その結果次の様になったのですがドライブを指定した場合不明な文字・が出てきます。

パス :C:\AAAA\BBBB | C:\
文字列:C:             | C:
      :AAAA          | ・   
      :BBBB          |

このままだと、この後にfor文でリストボックスのカウントを使って一階層上のパスに
結合させようとした事ができません。
この・は何なのでしょうか。出ないようにすることはできるのでしょうか?
また、もっと簡単に一階層上のパスを取得する方法が有ればそちらも教えて頂きたいです。
169デフォルトの名無しさん:04/06/11 21:10
えーと、C:\とC:\AAAを分解した時のリストボックスのカウントが
・のせいで同じ2になってしまうのです。
170デフォルトの名無しさん:04/06/11 21:48
書き忘れ…使ってるバージョンはデルファイ5です
なんだか、ワケワカだが

> パスの一階層上のパス(C:\AAAA\BBBBをC:\AAAに)を取ろうと思い

なら、ExtractFilePath() をつかって

ExtractFilePath('C:\AAAA\BBBB') → C:\AAAA\

だけど。
つづき

ExcludeTrailingBackslash(ExtractFilePath('C:\AAAA\BBBB')) → 'C:\AAAA'
ExtractFileDir
おお!
175168:04/06/12 09:36
>>171-173
ありがとうございます。
そうですか、関数でありましたか…
176デフォルトの名無しさん:04/08/06 11:53
Delphi使い始めの初心者です。だれか助けてくださいonz
str: string;

if OpenDialog.Execute then
str := OpenDialog.FileName;

with IBDatabase do begin // InterBaseDBへの接続
Params.Clear;
Params.Add('user_name=SYSDBA');
Params.Add('password=??????');
Params.Add('lc_ctype=sjis_0208');
DatabaseName := str;
Open;
end;

with IBTransaction do begin
DefaultDatabase := IBDatabase;
Active := True;
end;
こんな感でデータベースとの接続が出来るのは分かりました。
OpenDialogで選ばれたフォルダがローカルの時は問題なく動きます。
例 strの中身←'c:\ib\test.gdb'
LAN上の別のパソコンのDBに繋ぐにはどうしたらよいのでしょうか?
例 strの中身←'\\server\サーバー\ib\test.gdb'
とかで繋がらなくてエラーになります。

strの中身を'server:d:\ib\test.gdb'に書き変えると繋がる場合、
strをどのように書き換えたら良いのでしょうか?
'd:'指定が要らずに繋がったはずなのですが、やり方を忘れましたtt
どなたか教えてください。
共有フォルダの設定や、\\鯖\D$\Program Files\...とかじゃないんですか?

Explorerのアドレスバーへの入力ではそれでアクセス可能かと。

権限を得る方法は、知らないので誰か
フォローおねがいしまつ。
178176:04/08/06 14:09
177さん、ありがとうございます。

Explorerのアドレスバーへ \\server\ib と入力したら確かに test.gdbファイルが見えました。
見えるって事は権限あるって事ですよね?

理屈から考えると、パス込みのファイル名は \\server\ib\test.gdb のはず
なのですが、IBDatabase.FileNameにそのまま渡してもうまくいきません。

う〜ん、行き詰まってしまいましたonz
'server:d:\ib\test.gdb'の場合、そのマシンのInterbaseサーバが処理してて、それとクライアントが通信してるんだよね。

Interbaseサーバは違うマシンのDBファイルを扱わなかったと思うが違うか?
180176:04/08/06 14:54
179さん、ありがとうございます。

違うマシンのDBファイルじゃダメなんですね。
分かりました。他の方法を考えます。
>>180
安易な発想ですが、ネットワークドライブを割り当ててみたらどうですか?
質問なのですが、ShellListViewコンポーネントでフォルダを移動したときに
ディレクトリパスの表示を変えたいのですが、どのイベントで「フォルダを移動した」
ということがわかるのでしょうか??
onChangeでは取れないみたいなので。。
よろしくお願いします。
183182:04/08/13 14:43
age~
>>182
OnClickでいいんじゃないの?
185182:04/08/13 15:31
>>184
できたー!!ありがとうございます。
onDblClickでやったらできました!
ふぅ、勉強不足。。
質問です。swf(flash) を表示したいです。どうしたらよいですか。
ShellExecute
>>186
ShowMessage('swf(flash)');
189186:04/08/23 14:45
>187
その単語で検索していろいろとやってみます。
>188
センスなし!次ぃっ!
>>189
swf(flash).Visible:=True;
>>186
表示したい場所に TWebBrowser を貼り付ける。
WebBrowser1.Navigate('ファイル名.swf');
もし 'ファイルのダウンロード' が出てくるならもう少し工夫が必要。
192デフォルトの名無しさん:04/08/23 17:08
6.0使ってます。
QuickReportを使って、Paradox.DBの内容を一件ごとに一頁印刷し
改頁するというアプリを作ってるのですが、うまくいきません。

用紙は定形ではなく連続用紙なので、レポートの設定で用紙サイズと
同じ「カスタムサイズ幅210x長さ140」と設定してるんですが、実際
印刷するときはA4になってしまっているようで、改ページ位置がA4と
同じ位置になってしまいます。

プリンタ設定を見てみると用紙サイズA4になっているので、「ユーザー
定義1」に手動で変更してみても駄目です。
どうしたら縦140mmの位置で改ページできるでしょうか。
>>186
関連付けで実行したいなら>>187
IEコンポで開きたいなら>>191

そのまま開きたい場合。
Flashのバージョンや環境によって少々変化するかもしれません。
ActiveXコントロールからの取り込みでShockWave ActiveX Controlを取り込み
以下のような感じで開く。
LoadMovieの第一引数はよくわかりません
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ShockwaveFlash1.LoadMovie(0,od.FileName);
end;
194186:04/08/23 18:11
>193
ご丁寧にありがとう御座います。無事うまくできました。
>187,>191
ご助言感謝します。ありがとう御座いました。
195デフォルトの名無しさん:04/09/02 06:26
質問です。

ある9つのEditに、1から9の、それぞれ数字をランダムに入れたいと思います。
ランダマイズ関数だけでは数字がかぶってしまうことがあると思うのですが、どのようにすれば全て異なる数字になるのでしょうか。
配列に1..9をセットしてシャッフルする
197デフォルトの名無しさん:04/09/02 06:57
>>196
ありがとうございます。
シャッフルというのを使ったことがないのでわからないのですが、どう記述すればよいのでしょう。
>>197
こんな感じとか

procedure TForm1.Button1Click(Sender: TObject);
var
num:array[1..9] of integer;
i,j,tmp:integer;
begin
for i := 1 to 9 do num[i] := i;

randomize;
for i := 9 downto 2 do begin
j := Random(i)+1;
tmp := num[j];
num[j] := num[i];
num[i] := tmp;
end;

Memo1.Clear;
for i := 1 to 9 do
Memo1.Lines.Add(IntToStr(num[i]));
end;
199デフォルトの名無しさん:04/09/02 18:09
delphi6落としたんだけどまず何からつくればいい?
オンクリックメッセージとかなしで。
>>199
作りたいものがあるならそれを作ればいいし
単純に勉強したいならメモ帳クローン。
新規、ロード済み、編集中とかの状態を管理することを覚えられるし
標準的なメニューの実装方法をどう書くかとか
バージョン情報のダイアログの作り方とか一通りマスターできる。
>>199
プロジェクトを保存するディレクトリを作ろう。
俺はサブディレクトリ検索して分類・ランク付け・削除機能付のエロ画像をランダムに表示するビューア作ったな。
>>199
ゲームもよろしく

Delphiまとめ
http://gamdev.org/w/?%5B%5BDelphi%A4%DE%A4%C8%A4%E1%5D%5D
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://pc5.2ch.net/test/read.cgi/gamedev/1051110669/
Delphiでアクションゲームが作りたい!! Part2
http://pc5.2ch.net/test/read.cgi/gamedev/1027482533/
Delphiゲームプログラミング相談室
http://pc5.2ch.net/test/read.cgi/gamedev/1006249204/
delphiでMMO
http://pc5.2ch.net/test/read.cgi/gamedev/1072515100/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc5.2ch.net/test/read.cgi/gamedev/1028278884/
[Delphi] RPG作らねば [Delphi]
http://pc2.2ch.net/gamedev/kako/1013/10139/1013976376.html
>>199
画像サムネイル表示機能付きエクスプローラ。
それまんまExplorerじゃん
ShellExecute一発でできるよw
206199:04/09/02 19:10
おー
たくさんのレスありがとう。
やる気が出たよ
207デフォルトの名無しさん:04/09/02 22:28
>>198
お礼遅くなり申し訳ありません。
それではEditに書き込んでいく場合は、下の方のListBoxをEditでループさせていく、ということでしょうか。

本当にありがとうございます。
208デフォルトの名無しさん:04/09/02 22:33
意味不明なこと書いてました

ListBoxをEditでループさせていく

Memo.LinesでなくEditに置き換える
>>208
そうだね。Edit1 〜 Edit9 だとすると

for i := 1 to 9 do
TEdit(FindComponent('Edit'+IntToStr(i))).Text := IntToStr(num[i]);

のように。
as 使った方がいいよ。
どうして? キャストはノーコスト、as はいっぱいコードが走る。
確定時になぜに as ?
Edit1 という名前の TListBox があるかも知れない、とか心配してるんじゃないの
Edit1ってLabelがあったらクラッシュするから。
素のキャストをするのはisでチェックしたものだけにしといた方がいい。
プログラミングってそういうものだよ。
nil を心配してるんだろ
> Edit1 〜 Edit9 だとすると

これ読めないの?
TLabel に Edit1 っていう名前を付けないようにする。
プログラミングってそういうものだよ。
>>214
nilはasでも検出できない。

>>215
そういう別の場所で決められたルールには依存したくないってこと。
begin〜end内で完結した正しい記述ができればそうしたい。
パフォーマンスが問題にならないところで安全なコードが書けるなら安全に書く。
という習慣づけをしてるってだけ。強要はしないけどね。
as がいいことは分かった。でも TLabel に Edit1 っていう名前を付けるのはそれ以前の問題
>>216
>別の場所で決められたルールには依存したくないってこと

なら、FindComponent は、はなから使えないじゃん
for ループ内 FindComponent 使ってるんだから、名前にある種の規則性を前提に
していることは明白だろう
>>219-220
FindComponentの話はしてないよ・・・
is/asの使い分けの基準のことしか言ってないよ。
210は独りことかよ
「馬鹿に何を言っても無駄」の良い例ですね。
224221:04/09/03 00:30
>is/asの使い分けの基準のことしか言ってないよ。
is/asじゃなくてキャストとasの使い分けだった。

>>222
210は自分じゃないよ。それ以降が自分が書いたレス。
ま、主張は同じだけど。
で 理由は 「Edit1ってLabelがあったらクラッシュするから。」ですか?
実行中にはコンポーネントの名前をユーザは変えられないんだから、キャストで問題ないんじゃないの
>>225
違う。もっと一般的な理由。

一般に外から渡されたTObjectなオブジェクトの参照はキャストすべきでない。
asを使うかisでチェックしてからキャストすべき。
理由はもし想定外のオブジェクトが渡されたときデバッグが困難になるから。
ただし、動作速度が問題になるようなケースではこのルールは適用しないことも考慮すべき。

補足すると>>209のケースに限定すればはっきりいってどうでもいいよ。
どうしてと聞いたので理由を述べただけだし。
ただ自分は常にasを書くね。>>217でも言ったとおり
どっちでもいいなら安全なコードを書きたいし
外部の条件を一々考慮せずになるべく統一的に書きたい心理があるから。

以上。もう寝る。
>>227
>一般に外から渡されたTObjectなオブジェクトの参照はキャストすべきでない。

はい、もちろんこれは同意します。

>補足すると>>209のケースに限定すればはっきりいってどうでもいいよ。

そうですね、FindComponent は「想定外のオブジェクトが渡されたとき」ってないですよね。
だから、

>確定時になぜに as ?

と訊いたのです。その回答が

>Edit1ってLabelがあったらクラッシュするから。

というものだったので、それは納得できないと。どっちでもいいのではなく、as が
この場合は冗長なのだと。

> 外部の条件を一々考慮せずに

一々考慮するべきだと思うよ。

>プログラミングってそういうものです。
>>227
一般論に適合しないケースに一般論を適用しようとしたら無理があるだろ
>>228
>一々考慮するべきだと思うよ。
まぁ、ベーシックは全てグローバル変数だから、
いちいち考慮する必要がありますけどね。
私なら型チェックは徹底して行いますね。

冗長性というのは、is の後に as でキャストする事では?
232208:04/09/03 07:11
>>209
ありがとうございました。

>>210以降
私がいただいたアドバイスの派生ですよね。
難しすぎてわからず、何がなにやらというところなのですが(汗)、ありがとうございました。
>>228
>確定時になぜに as ?
>この場合は冗長なのだと。
それは問題があまりにも単純だからだよ。
イベントハンドラが数十個あってそのうちのいくつか(どれかはコーディングによって刻々と変化していく)
にはSenderに複数(場合によっては同一オブジェクトだったり異なるオブジェクトだったり)
渡されるような状況で、どのSenderにどのオブジェクトが渡されるか
ソースコード的にははっきり決まっているけどプログラマがきっちり把握するのが怪しくなるような
ケースであってもasが無駄だと思う?
>>228
>>233へのレスはやっぱいらないや。
一つ聞きたいんだけどバグがまったくない状態でasが失敗するようなコーディングってする?
つまりasは純粋にバグ検出のためにだけ使っているかどうか。
それだけ聞いておしまいにしたい。
>>234
> バグがまったくない状態でasが失敗するようなコーディングってする?

バグが無くて、as が失敗するようなコードをどうやって書くのかな。
バグが無いことを一般には確信出来ないから as をつかうんだろう。
>>209 の場合は >>233 も言うように単純すぎて as 使う意味がないから違う。
>>231
>冗長性というのは、is の後に as でキャストする事では?

is のあとに as で動的型チェックするのは冗長であると確信できるからですね?
わたしは Edit1 という名前のコンポは TEdit であると確信できるようなプログ
ラミングをすべきだと思います。
TObject.ClassNameは駄目なの?
as のような動的型チェックは、上位クラスでも true を返すようにしなければ
多態性がつかえなくなるので、TObject.ClassName ではだめです。
× >true を返すようにしなければ
○ >成功するようにしなければ
241デフォルトの名無しさん:04/09/03 13:04
えーと
エディタでソースかいてるときの
最後のend.は何ですか?
なんでここだけend;じゃないの?
end; → 文の終わり
end. → プログラムの終わり
243デフォルトの名無しさん:04/09/03 13:10
らじゃ
ヘルプより

・すべてのソースファイルと同じように,プロジェクトファイルはピリオドで終わります。
・ユニットは end とピリオドで終わらなければなりません。

・ブロック内の複数の文およびユニットの初期化部と終了処理部の複数の文を区切るには,セミコロンを使用します。
>end; → 文の終わり

これは違う。文の区切り。だから次に区切るべき文がない場合はなくてもよい。
end; の直前の文の末尾とか
正しくは
 end. → プロジェクトまたはユニットの終わり
でした。失礼しました。
247sorry:04/09/03 13:21
end; → 文の区切り
end. → プロジェクトまたはユニットの終わり
248デフォルトの名無しさん:04/09/03 13:26
どうもでした。
as の前に nil のチェックを入れた方が良さそう。
as のみの場合は軽いチェックにしか使えないな。

var
 Hoge: THoge;
begin
 Hoge := nil;
 (Hoge as THoge).Test;
 Hoge.Test;
end;

どちらも Test が呼び出されるけど、おかしいよね。
どうしてBorlandは nil as で例外を出さないようにしたのかな。
nil is は False なのに。
昔のDelphiは nil is が True を返してたけど、
このあたりの仕様の解りずらさが関係してたのかな。

>>237
私は型チェックもするし、紛らわしい名前も付けないように努力してますよ。
>>249
>私は型チェックもするし、紛らわしい名前も付けないように努力してますよ。

237 です。どうも真意が分かって頂いてないような気が・・・・

IDE が配置したコンポは、name プロパティーとインスタンス変数の名前が一致
しています。プログラマは、どのインスタンスがどのクラスなのか知っていない
とコードが書けません。'edtName' とか 'edtAge' に対応する edtName と
edtAge が TEdit であることを知っているからこそ

edtName.Text := 'John';
edtAge.Text := '23';

というコードが書けます。

(FindComponent('edtName') as TEdit).Text := 'John';

と書くのは、'edtName' に対応する edtName が TEdit であることを知って
いる場合は、冗長じゃないか、と言いたいのです。edtName が TEdit でない
かもしれないから as を使うべきだ、という主張どおりなら

(edtName as TEdit).Text := 'John';
(edtAge as TEdt).Text := '23';

と書かねばならず、コードは as だらけになってしまうでしょう。これは変です。
Sender:TObject で渡された場合には、実行時型チェックはキャストの前に必須
である、ということと FindComponent() の場合とは明らかに違います。
人間はミスを犯すもの。
コンパイル時チェックができないのであれば、実行時チェックをしましょう。

「両取り逃げるべからず」という将棋の格言があります。素直にそれに従って
玉を取られて負けた、という笑い話があります。格言も適用できるかどうか
頭を使って考える必要がありますね。
>>251
> コンパイル時チェックができないのであれば、実行時チェックをしましょう。

なるほど。

edtName.Text := 'John';

の場合は edtName の型チェックはコンパイラがやってくれると。しかし、

FindComponent('edtName')

が返すオブジェクトの場合はそうではない、と。たしかに。

208さんのコードは

var
cmp:TComponent;

for i := 1 to 9 do
begin
cmp := FindComponent('Edit'+IntToStr(i));
if Assigned(cmp) and (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
end;

とすべきですね。ありがとう。

>>252
格言には互いに相反するものもありますよね。でもなにがしかの先人の知恵が
入ったものなので、場面場面で適用すべきかどうかは一考する価値がありますよね。

ありがとう。
>>249
>as の前に nil のチェックを入れた方が良さそう。

as で nil チェックができないとすると、どんな場面で as を使うんでしょうね。

>if Assigned(cmp) and (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);

では as の出る幕がありませんよね・・・・・
あっ、間違えた。is は nil チェックするんでしたね。

if (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);

で OK でした。 Assigned は余計でした。でも as の出番がない。
FindComponentの場合なら、最も多いミスは違った型が返されることでなくて
名前のタイポやiが大きくてあり得ない名前になったりした場合にnilが返される
場合なんだから as じゃ役に立たない、ってことね
なんかNullReferenceExceptionとInvalidCastExceptionを混同してるアホがいるな。
両者のエラー検出は全く別物。asは望んだ型の参照を得るのが目的なんだから
nil参照前提で取得することも普通にある得る。だからasでnilチェックをしないのは当然。

幸いC#では通常の型キャストで必ず実行時型チェックが入るから
Delphiみたいにアホ開発者がバグをばら撒くのを未然に防止している。
それからお前らが書くような小規模ゴミアプリの開発においては
プログラミング作法なんて全く不要。
好きなだけゴミコードを撒き散らして結構。好きにしとけ。議論なんて時間の無駄。
まともな議論したいなら、まずはまともな知識を得た上で経験を積めと。

>>255
>if (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
はバグがあった場合素通りしてしまう最悪なコード。
予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。
>>256
>予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。

結局、>>208 場合、どうすればいいの?

> 幸いC#では通常の型キャストで必ず実行時型チェックが入るから

JIT だから、実行時情報が取りやすいからでしょ
>>258
>結局、>>208 場合、どうすればいいの?

>>249 の言うように as に先だって nil かどうかを確認するといいのでは。

var obj:TComponent;

for i := 1 to 9 do
begin
obj := FindComponent('Edit'+IntToStr(i));
if Assigned(obj) then
try
(obj as TEdit).Text := 'Test';
except
raise Exception.Create('InvalidCast');
end
else
raise Exception.Create('InvalidCast');

>>257
>予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。

僕のD5では obj が nil でも TEdit(obj).Text で例外がでない。何事もなく通り過ぎる。
nil も含めて、TEdit 以外では例外を出すべきなんだから

if (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i])
else raise Exception.Create('InvalidCast');

でいいと思う。>>257 の説明を読んでも as が nil を参照したら例外を出してくれた
ほうが、ずっと便利だと思う。だって、実際、nil をキャストしたい場面が思い浮かばない。
現状の as がどの場面で使われるのかやっぱ分かんない。
>>234 あたりが回答してくれるはず。
Delphiで作ったexeファイルの名前を、「エディタ.exe」 にすると、
タスクバーに、「トディタ」って表示されるんですが……
これはOSのバグですか??

ちなみに環境は、win98 で Delphi6 Personalです。
exe の名前が表示されているんじゃなくて、Application.Title が表示されている。
Project.exe でも表示できるよ。

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title := 'エディタ';
end;
>>260
TControl.SetText は Self = nil ならフィールドにアクセスしないので、
AVは起きません。
TButton や TLabel のインスタンスを渡すと、TEdit でキャストしても、
Caption が変更されるのでびっくり。>>265 の説明でなるほどと。
ちょっと! C#は面白いよ。

is と as
http://black.sakura.ne.jp/~third/programming/cs/cs46.html

as が失敗すると例外は発生せず null を返すんだって。
しかし、null の参照で例外が出るんだって。
ということは、C# の as は、InvalidCastException を NullReferenceException
に変換してるんだね。>>257 の言うように

> なんかNullReferenceExceptionとInvalidCastExceptionを混同してるアホがいるな。

と同じで C# で as を使うと、区別できないのね。ま、仕様としては C# の as の
方がいいと思うけど。>>257 は C# で as 使ってないんじゃないの。
C#のasユーザは、はなから混同もできないアホばかり、ってことになる
>>268
> InvalidCastException を NullReferenceException に変換してるんだね

?asで例外が起きることは無いけど。C++のdynamic_castと同じでnullを返すだけ。
>>270
>asで例外が起きることは無いけど。

それは >>267 で書いてあるので知っている。返されたオブジェクトをそのままキャストしたとき、
null だったら NullReferenceException 相当が起こると。
Delphiのasの使い方がわからないとか言ってる奴は
VCLのソースをas, FindComponentなんかで検索して読んどけと。
にわかPersonal厨には無理だろうけど。
えらそうにいってるだけで説明できないんだよな
お前らアホどもを納得させるのは不可能だよ。
えらそうにいってるだけで説明できないんだよな
全部じゃなくても >>208 の場合は as を使ってどうやればいいのかと
>>276
FindComponentのキャストにasを使うだけだろ。
理由は上のほうで散々書かれているだろ。
それで納得できないアホにはこれ以上かける言葉が見つからない。
>FindComponentのキャストにasを使うだけだろ。

それだったら、>>261 のほうがいいと思うな。
こういうスレの>>2ってかわいそう
かなりヨスレ
ass には穴があるんだよ。
結局、だれも as の正しい使い方知らないみたい
>>279
そうだね。すべのキャストでそう書いとけばいいよ。
>>284
as はいらないってこと?
うん。いらないよ。使わないほうがいい。
ほう。
Delphi が発売されて9年余。この5日間で「 as 使え 」から「使わないほうがいい。」
に大転換!!  

すごいね、このスレ!
いままで >>234>>257 みたいのが as 使いまくってたのどうするんだろ
289デフォルトの名無しさん:04/09/07 14:08
type ENullpoError = class(Exception);
function NullpoCheck(obj: TObject): TObject;
begin
 if obj = nil then raise ENullpoError.Create('ガッ');
 Result := obj;
end;

((NullpoCheck(FindComponent('Edito1')) as TEdit).Text := 'ぬるぽ';

ってやれば完璧
それ >>261 と同じ
でも無理矢理 as 使ってるけど。is + キャスト で十分
なんかasがいらないことになっててワロタ。
そういやforもwhileもifとgotoがあるからいらないな。
つかCかアセンブラで十分。
コンピュータもいらないな。
人力で十分。
この際人間も要らないな
>>264
亀レスすいません。

ありがとうございます。
早速試してみます。
>>292
えらそうにいってるだけで説明できないんだよな
頭悪いのは笑うしかないんだよ
771 :デフォルトの名無しさん :04/09/06 22:49
そういうな。馬鹿は馬鹿なりに頑張っているんだ
299デフォルトの名無しさん:04/09/08 17:51
TFormがICON化してる状態ってWindowStateがwsMinimizedかと思ったら、
違うみたいですね。
どうやって判断したら良いですか?
300299:04/09/08 17:54
TFormがICON化ってのは、タスクバーに収まって画面が出てない状態のことでつ。
>>299
IsIconic
302デフォルトの名無しさん:04/09/08 18:17
TDateTimePickerの初期表示を空にする方法教えて下さい。
>>299

function GetWindowState(WndHandle: HWnd): TWindowState;
var
 pw : TWINDOWPLACEMENT;
begin
 pw.length := SizeOf(TWINDOWPLACEMENT);
 GetWindowPlacement(WndHandle, @pw);

 case pw.showCmd of
  SW_SHOWNORMAL:{=1}
   Result := wsNormal;
  SW_SHOWMINIMIZED: {=2}
   Result := wsMinimized;
  SW_MAXIMIZE: {=3}
   Result := wsMaximized;
 else
  raise Exception.Create('WindowStateのエラー'+IntToStr(pw.showCmd));
 end;
end;
>>300
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if IsIconic(Application.Handle) then Beep;
end;
305デフォルトの名無しさん:04/09/08 22:26
VBを学んでからDelphiに移ったという方が多いですが、そうしたほうがいいのですか?
移ったんじゃなくて複数使えるようになっただけだよ。
>>305
VC++に挫折してDelphiに移ったという方ならここに居るがVBは触った事ない。
て言うか、VC++はどの辺がVisualだったのかいまだに分からにゃい。
>>307
とりあえずコマンドラインでビルドしないからに1票
とりあえず VB と名前を共通にしたかったから、に20票
実はVirtual C++だったに1票。
20:1:1で309の勝ち
..............................................
ビクトリー コンバトラーの略です。
>>313
ああ、今度ガンダムAで連載されるコンバトラーVの続編だね。
315デフォルトの名無しさん:04/09/10 15:54:55
ヴィジュアル系でもできるC++
316デフォルトの名無しさん:04/09/10 20:16:41
MSはVisual Xシリーズでアルファベット制覇を目指すべき

VA Visual Assembler
VB Visual Basic
VC Visual C++/C#
VD Visual Delphi
VE Visual Eiffel
VF Visual Fortran
317デフォルトの名無しさん:04/09/11 02:56:43
男はだれでもできるCw
318デフォルトの名無しさん:04/09/15 04:55:23
>>316
D言語のほうが可能性あるような……
319デフォルトの名無しさん:04/09/22 05:40:11
OpenJaneDoe-Lovelyと言うのがソース付きなので、
自分でビルドしようと思ったのですが、うまくいきません。
どこがと言うと、ActiveXコンポーネントを二つ使わないと行けないのですが、
一つしか入ってくれず、もう一つは「既にそのクラスがあります」と言った
メッセージが出ます。

環境はDel7Proです。

MS-HTTP何とかは入るのですが、MS-Internet何とかが
クラスが既にあると言うことでパッケージになってくれません。
どうしたらよいでしょうか。
320デフォルトの名無しさん:04/09/22 10:10:20
わかんないっす
321デフォルトの名無しさん:04/09/22 23:51:19
>>319
TWebBrowser がすでにインストールされているからだと思います。
入手したソースを Grep 検索して uses 節の ShDocVw_TLB を ShDocVw に
置換するのでは駄目でしょうか?
プロジェクトオプションのユニットの別名でもいけるかもしれません。
322319:04/09/23 03:36:37
>>321
お返事ありがとうございます。
お返事では方法は二つあると言うことでしょうか。
・ソースのコンポーネント?パッケージ?の引用部分を書き換える。

二つめが分かりません。
ユニットの別名とは何でしょうか。
323デフォルトの名無しさん:04/09/23 03:39:27
>>1
今から始めるのはやめた方がいいと思う。
もうすぐ消える言語だし。
324デフォルトの名無しさん:04/09/23 03:42:55
03:39:27
325321:04/09/23 04:49:22
TWebBrowser は標準でついていますのでタイプライブラリを作成する必要は
ありません。ユニットは ShDocVw です。
まず、Jane のプロジェクトファイル (dpr) を開いてください。

1 つ目の方法は、'検索' → 'ファイル検索' でプロジェクト全体を検索して
uses 節で 'ShDocVw_TLB' を参照している箇所があれば 'ShDocVw' に直すと
いうことです。

2 つ目の方法は、'プロジェクト' → 'オプション' を開いて、
'ディレクトリ/条件' タブにある 'ユニットの別名' に
'すでにある文字列;ShDocVw_TLB=ShDocVw' を設定するということです。
セミコロン以降を入力してください。

これでうまく行かないようなら Jane スレで聞いた方がよろしいかと思います。
326319:04/09/23 07:08:57
>>325
ここまで親切にして頂きありがとうございます。
JaneDoe-Lovelyはソースを公開しており、
いじることから始められるので、IDEの勉強にもなるし、
プログラミングそれ自体の勉強にもなります。
一からだととても難しいですから。
327319:04/09/23 07:10:38
かきわすれ。
まず、今現在のLovelyだと不具合がでるので
それのないVerを探して、それから無改造ビルドとなるので、
結果には少々時間が掛かります
失礼します。
328デフォルトの名無しさん:04/09/23 08:00:10
delphiで何かお勧めなリファレンス本あるかい
OBpascalについても詳しいやつ。
329319:04/09/23 19:20:41
俺もそれは興味津々だ。
ここで聞いてなければ、参考書スレで聞こうか。
330デフォルトの名無しさん:04/09/23 19:52:09
標準のヘルプ嫁
331デフォルトの名無しさん:04/09/23 20:12:34
Borland Delphiリファレンスガイド―6&7 Personal対応
http://www.amazon.co.jp/exec/obidos/ASIN/4798004626/qid=1095937657/sr=1-1/ref=sr_1_10_1/250-0148492-1276277

Delphiクイックリファレンス A NUTSHELL HANDBOOK
http://www.amazon.co.jp/exec/obidos/ASIN/4873110408/qid=1095937795/sr=1-33/ref=sr_1_2_33/250-0148492-1276277

どちらも持ってるけどよい本だよ
332デフォルトの名無しさん:04/09/23 20:31:28
下のやつめちゃくちゃたけーーーですね
333デフォルトの名無しさん:04/09/23 20:47:59
うーん、その分の価値はあると思う
334デフォルトの名無しさん:04/09/23 21:00:49
上のヤツは、amazon では在庫2点!だけ

このごろDelphi本がめっきり減ってしまった。
335デフォルトの名無しさん:04/09/25 11:34:47
近所の割と大きい本屋3つ回ったら、Delphi本壊滅。
オフィシャルコースウェア以外なくなってしまった!
336デフォルトの名無しさん:04/09/25 13:33:42
>>335
1.売れてる
2.撤去
337デフォルトの名無しさん:04/09/25 13:45:11
335です。
1. なら、補充が間に合わなくてもじょじょに減っていくはず。だいたい3週間周期
で行ってるから、それはないと思う。違う本屋なのに、なぜか一斉に返本された感じ
言語のところでは C# 関連も減っている。新刊本が出てない。VB.NET ASP.NET と
JAVA UML 関係が増えている感じ。
338デフォルトの名無しさん:04/09/25 13:50:32
>VB.NET ASP.NET と JAVA UML 関係が増えている感じ。

趣味関係が減って、お仕事関係が増えたんだな
339デフォルトの名無しさん:04/09/26 12:24:20
所詮 プログラムは趣味で手を出せる時代は終わったってことだ。
趣味でやるとしても積極的にベクターにUPするぐらいの気合がないと
とても半端に手を出せないよなー。ポトぺタいじってもやりがいがないし。
今趣味でやるのならphpがお勧めかな。
ちょっとまえまではperlだったが。

340デフォルトの名無しさん:04/09/26 12:26:52
VS.NETの中でもVBだけは公式本(基礎編)読めば驚くほど理解できるが
delphiではそういうのはないからな。
341デフォルトの名無しさん:04/09/26 12:34:16
昔は町工場でバイクつくって
大手のメーカーさえもおびやかす性能を出す例もあった。
しかし、それも遠い昔。

どんな技術も洗練されれば、素人は表面的に扱うだけで
中身にはさわることができなくなる。
プロも自分に許された一工程に携わるだけになる。

そのうちプログラムなんてボイラー操作技術学ぶのと
同じような認識になると思う。いやもうなってるか。
342デフォルトの名無しさん:04/09/26 12:36:47
で今現在Delphi学んでなんか役に立つ?
343デフォルトの名無しさん:04/09/26 13:21:18
自分次第
344デフォルトの名無しさん:04/09/26 13:59:58
>>341
>いやもうなってるか。

そうですね。特に、.NET = WinFX になってくると、オブジェクトレベルの API に
なって、プログラミングがレゴブロックをつかって何かつくるような感じがしてきます。
デバイスドライバや組み込み系などの低レベル以外では、こんな傾向が強まってきて
趣味でプログラミングするのは、すくなくても Windows 上では面白くなくなってきた
ように感じます。
345デフォルトの名無しさん:04/09/26 14:06:13
>>339
>ポトぺタいじってもやりがいがないし。

御意。
346デフォルトの名無しさん:04/09/26 14:19:05
プログラミングの本質的なところを楽しみたいなら
HaskellでもSchemeでもやっときゃいいのに。
といってもそもそも理解できないだろうけど。
お前らの愚痴り方は意味がわからん。
347デフォルトの名無しさん:04/09/26 14:40:28
>>341
どうなんだろうね。
洗練されるほど、面白くなるものだと思うのだけど・・・

ボイラー操作技術も結構勉強すべき事も面白い所もありそうだけどね
348デフォルトの名無しさん:04/09/26 14:56:38
ポトペタでできる部分をコードで書きたいんかなぁ?
俺ならポトペタでできる部分はポトペタでやって
ポトペタでできない核の部分だけをコードで書くけどな。

ポトペタでできる部分って基本的にソフトの"ガワ"だけだし、
"ガワ"なんかいじってもやりがいないし。
もしかしてポトペタで完成できる程度のソフトしか作ってないとか?
349デフォルトの名無しさん:04/09/26 15:05:20
自慢のRADをあっさりVB.NETに抜かれてしまったから
必死に否定したがってるんだよ。
それくらい察してやれよ。
350デフォルトの名無しさん:04/09/26 15:10:46
>>344
> なって、プログラミングがレゴブロックをつかって何かつくるような感じがしてきます。
それは単に、自分がやる気がないだけでは?

たとえばブラウザを作るときIEコンポーネントを作ったら確かに
レゴブロックのような感じになる。

でも本来ブラウザを作るといったらタグ解析して適切な位置に描画する
などというプログラミングをするってことだ。少なくともIEが
コンポーネントとして簡単に使えない時代はそうしていた。

多分自分で作ってもIEよりもすぐれたものは作れないだろう。
しかし今でもIEコンポーネントを使わずにブラウザを作ることはできる。

レゴブロックのように感じてしまうのは、自分で作ろうとせずに使ってばかりとか
すでに優れたものがあるから作るのをあきらめとか、今までにない物を作ろうとしないとか
そういう考えをしている自分のせいだと思うぞ。
351デフォルトの名無しさん:04/09/26 15:50:27
学校の授業などで限られた材料の中から
一番いいものをつくったやつを表彰するといった形ならば
それなりにやる気もおきると思う。
しかし実用のためにつくるとなるとがんばっても既にあるものに
追いつくのがやっととなるとやる気は失せるな。
それでもやりたいやつはやればよいけど、
そういうやつはたくさんはいない→廃れる。
ってのはある意味自然な流れ。
歴史が証明している。
352デフォルトの名無しさん:04/09/26 15:54:31
ただのユーザーでいたいならWin板に帰りな。
ただし市場活性化のためにもちゃんと金払えよ。
353デフォルトの名無しさん:04/09/26 16:00:03
まあ、純粋に企業戦略に踊らされずいいプログラミング書きたいのなら
linuxでC言語でコンソールプログラミングだけしておくのが
ベストだな。

初心者がポトペタから入るという風潮が一番おかしい。
354デフォルトの名無しさん:04/09/26 16:03:27
で、それで面白みを感じなくて
仕事にする気もないやつはもうprgやめたほうがいい。
355あぼーん:あぼーん
あぼーん
356デフォルトの名無しさん:04/09/26 16:07:15
貴重な休日にくんずほぐれつよくやるよ。仲の良いこと・・・
357デフォルトの名無しさん:04/09/26 16:15:34
レゴブロックとか言ってポトペタを嫌っているのは
GUI普及しはじめごろからプログラミングしてきた人だろうな。
そのころはGUIは苦労して作るものだった。
そのためプログラミング=良いGUIを作ることになってしまっているのだろう。

GUI部分以外に力を入れている人にとっては、
ポトペタはつまらなくて面倒な部分を便利に使えるツールと認識するが、
良いGUIを作ることだけがプログラミングの人は、自分が苦労して作っていた
GUIを簡単に作れてしまうようになったわけで自分の仕事を取られたって気がするのだろう。

その点コンソールプログラミングから入った人は、そもそもGUIなんてない状態で
プログラミングの面白さを知るわけで、ポトペタを嫌うことはないだろうな。
まあGUIなんていらないなんて極端な方向に行くのもちょっと困るが。
358デフォルトの名無しさん:04/09/26 16:20:55
>>351
それは廃れるというよりか、
使えない奴=すでにあるものにしか追いつけない奴 が
淘汰されるだけのことじゃないのか?

はっきり言ってすでにあるものにしか追いつけない奴はいらないよ。
実用アプリを作りたいのなら、すでにあるもの以上のものを作らなきゃ。
やる気があっても、すでにあるもの以下のものは実用にはならない。
359デフォルトの名無しさん:04/09/26 16:27:44
もともと書店からDELPHI本が消えているっていう話からはじまったんだろ?
それはしょうがないっていうのはみんな否定できないところだろ?
360デフォルトの名無しさん:04/09/26 17:12:41
プログラムなんて法律と一緒。
人間が作り出した法則を学ぶだけ。
作り出した人間の恣意に左右される。(企業戦略も含む。)
本質的も糞もない。
それがいやなら関わらないこった。
361デフォルトの名無しさん:04/09/26 17:24:26
釣りはageなきゃw
362デフォルトの名無しさん:04/09/26 18:54:48
>>360
>人間が作り出した法則を学ぶだけ。

20年以上プログラミングを趣味としてきたけど、これ、つよく思うようになってきた。
仕事は自然科学の研究なんだけど、それは神の法則について調べることなので、まだ
飽きないよ。人文科学の人は、人間や人間の行為とその結果に興味があるんだね。
プログラミングは人文科学じゃなく、数学に通じる論理の美しさがあるけど、OS 依存
なところは、知識としてもなにかむなしい感じがするね。MS のつくった六法全書を
勉強している感じはする。
363デフォルトの名無しさん:04/09/26 19:47:44
>>362
君は実はプログラミングをしていないのだよ。
絵画にたとえれば君は絵筆の使い方を勉強しているだけ。
本当のプログラマは道具(API等)を使って自分の思うものを作るんだよ。
絵筆という道具を使って絵画を書くようにね。
君はまだまだ道具に使われているだけのようだね。
364デフォルトの名無しさん:04/09/26 19:55:43
DeDeというDelphi用の逆コンパイラがあるらしいのですが、何処で入手出来るかご存知に方はいらっしゃいませんか?
自分なりにぐぐってみたんですがどうしても見つける事ができませんでした。
365デフォルトの名無しさん:04/09/26 20:50:26
>>363
そう思いたい気持ちはよーくわかる。
趣味でプログラミングやるひとの大半は
それを信じよう、信じようとして
信心深さからMS大明神にお布施を惜しまない。
統一協会もまっつぁおです。
366デフォルトの名無しさん:04/09/26 20:57:24
ボーランド菩薩もいるでよ。
367デフォルトの名無しさん:04/09/26 21:06:49
略してボー薩
368デフォルトの名無しさん:04/09/26 21:16:03
仕事でdelphi得意のデータベース構築とかに
特化して使う分にはそんなに乗せられてるって感じはしないな。
出費もあくまで経費だし。
ただ、なんでもできるよって言われてホイホイ乗せられてる
personalユーザーはちょっとね・・って感じもするけど
本人が楽しめてるのなら構わないだろう。

369デフォルトの名無しさん:04/09/26 21:27:42
苺きんたま
370デフォルトの名無しさん:04/09/26 23:10:15
>>363

「OS 依存なところは・・・」だけを拡大解釈しているような気がするが。
371デフォルトの名無しさん:04/09/27 01:47:28
>>363
>君は実はプログラミングをしていないのだよ。

なるほど。道具の周辺をうろうろしているつもりはないのですが、業務で使う以外
では、趣味とは言え、プログラミングではないのかも知れません。自分にはそのような
才能がないのかもしれせんね。Vector などで公開されているフリーウェアなどを
見てみると、半分以上は自分でも作れそうに思います。でも、ユーザの要望に応えて
メンテナンスを行う根気がありません。

趣味は別な方面に移した方がいいような気がしてきました。

アドバイス、ありがとうございます。
372デフォルトの名無しさん:04/09/27 08:01:21
趣味でやる制御系はプログラムじゃない。
メーカーに乗せられてるだけだ。

趣味の場合は処理系の充実こそがプログラムだ。
将棋のAIをつくるようなのが趣味プログラムの王道。
373デフォルトの名無しさん:04/09/27 19:21:56
いや、某iEPGサイトを使って自宅の家電に予約を入れたいんだが
うちの家電は某iEPGサイトに対応してないからゴニョゴニョっと自
作してってのが趣味グラムだ。

当然、いきなりWEBブラウザを書き始めるなんて事はしない。
できるだけ少ない手数で、できるだけ短い時間で、とにかく動くもの
を作る。
374デフォルトの名無しさん:04/09/27 23:28:01
自動保全ソフトあたりもIndyやHTTPの勉強がてらに初心者にお勧め
375デフォルトの名無しさん:04/09/27 23:48:19
そういえば苺きんたまもDelphiで作られていたそうだが・・
376デフォルトの名無しさん:04/09/28 14:43:53
俺は仕事がらみで苺きんたま似のソフトをDelphiで作ろうとしてるが
仕組み自体は簡単そうだな
377デフォルトの名無しさん:04/09/29 19:37:32
あっそ
378デフォルトの名無しさん:04/09/30 19:13:44
ボタンを押してWindowsを再起動させたいのですが、どのようなコードを書けば良いでしょうか。
また、usesに何か追加する必要はありますか?
379デフォルトの名無しさん:04/09/30 19:59:08
380デフォルトの名無しさん:04/09/30 20:30:16
>>378
ライブラリ使えば、自分で書かずに済む
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BJCL%2FMiscellaNeous%5D%5D
381378:04/10/01 00:31:30
>>379,380
無事にできました〜
ありがとうございます。
382デフォルトの名無しさん:04/10/01 05:59:30
タスクマネージャでなく、フォーム上のボタンを押すなどして任意のアプリ(プロセス)を強制終了させる
ようなプログラムを作る事は可能なのでしょうか?_?
383デフォルトの名無しさん:04/10/01 09:11:24
可能か不可能か答えれば気が済むんだな?
可能だ。
384382:04/10/01 13:27:39
なるほど。できればそのコードも希望なのですが^_^;
385デフォルトの名無しさん:04/10/01 16:12:22
?_?

 ↑ このAAは他でも見たな。そこでもコードくれって言ってた
386デフォルトの名無しさん:04/10/01 16:32:48
>>385
熱心なんだろうな。
俺が教えられれば教えたいところだが、残念ながら知らんw
387デフォルトの名無しさん:04/10/01 16:48:43
おれは質問自体の意味がわからんかった
388デフォルトの名無しさん:04/10/01 17:24:56
外部のプロセスを終了させたいって事だよねたぶん。
389デフォルトの名無しさん:04/10/01 17:57:01
いや、あっちのほう
390デフォルトの名無しさん:04/10/02 03:44:32
クライアント側でcaseを使った条件分岐の数字と文字列を同時に送信し、それをサーバ側で受信するにはどうすれば良いでしょうか?
クライアント[01,文字列]→サーバ[01(条件分岐),文字列(ダイアログボックスに使う文字列)]
391デフォルトの名無しさん:04/10/02 07:16:21
あなた、あちこちで聞いていませんか?
392デフォルトの名無しさん:04/10/05 16:23:53
異議有り!みたいなゲームを作りたいのですがどうすれば良いのでせう?
393デフォルトの名無しさん:04/10/05 19:03:16
ガンガレ
394デフォルトの名無しさん:04/10/05 20:11:34
フラグ勃った
395デフォルトの名無しさん:04/10/07 12:59:23
実行ファイルをつくっているのはコンパイラ様なのだ。
お前らなんてコンパイラに下手な文章でお願いして
つくってもらってるだけじゃん。
自分で実行ファイルつくった気になるんじゃないよ。
396デフォルトの名無しさん:04/10/07 19:55:06
お前なんてパソコンに下手な文章でお願いして
ここに書き込んでもらってるだけじゃん。
自分で書き込んだ気になるんじゃないよ。
397デフォルトの名無しさん:04/10/08 14:54:06
お前もな
398デフォルトの名無しさん:04/10/08 16:10:41
オマエモナー
399デフォルトの名無しさん:04/10/08 21:10:18
そして俺もな
400デフォルトの名無しさん:04/10/09 11:36:52
俺を忘れるな。
401デフォルトの名無しさん:04/10/09 15:46:16
俺はコンパイラを奴隷として扱える。
めんどくさいことは全てコンパイラにやらせる。
俺は神なのだ。
402デフォルトの名無しさん:04/10/09 21:49:23
糞スレ
403デフォルトの名無しさん:04/10/10 02:22:19
糞には紙が似合う
404デフォルトの名無しさん:04/10/13 21:52:37
TMenubarをインストールしようと思ったら、
baseclxがないとかでるんですが、
どうすればいいか教えてください。お願いしますm(_ _)m

ちなみに6 Personalです。
405デフォルトの名無しさん:04/10/13 23:24:28
インストールしてみたがどこから始めるのかさっぱり。
文字すら表示できない('A`)
406デフォルトの名無しさん:04/10/14 06:25:39
IDE は起動した?
フォームは出せた? >>405
407デフォルトの名無しさん:04/10/14 16:28:48
>>406
次にIDEって何?フォームって何?
って質問がくるから注意w
408デフォルトの名無しさん:04/10/14 23:00:47
Delphiで最初に作ったソフトは?
409デフォルトの名無しさん:04/10/15 00:15:35
project1.exe
410デフォルトの名無しさん:04/10/15 00:26:38
DelphiでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はDelphiでブロック崩し
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
Delphiの基礎からすべてを叩き込んでくれませんか??
お願いします。
411デフォルトの名無しさん:04/10/15 01:56:17
なんかここの質問って
「二階建のベランダ付きの家を建てたいんですが、どうすればよいですか?」
みたいな質問が多いような気がする…

うん、いゃ、分かりにくいが、なんか、言いたくなっただけだ、それだけだ…
412デフォルトの名無しさん:04/10/15 04:48:39
>>411
まぁまぁ。作業する前に困難さがわかるようになったら、どんな業界でも一人前といえるのさ。

「Excel はアセンブラで書かれていると聞きました。TurboAssembler で Excel のような
アプリを作るにはどうしたらよいですか?」という質問があったそうな。

「ガンガレ」としかいえないだろ?
413デフォルトの名無しさん:04/10/15 08:16:11
VSってなんでこんな重いの
414デフォルトの名無しさん:04/10/15 22:59:31
>>413 スレ違い
415デフォルトの名無しさん:04/10/24 19:34:35
Delphi7のエディタで、行末でカーソル「→」を押すと次行の行頭に、
行頭でカーソル「←」を押すと前行の行末に移動するようにできませんか?
416デフォルトの名無しさん:04/10/25 03:02:14
指定したフォントで文字を書きたいのですが、反映されてくれません。

Image1.Canvas.Font.Name := 'Arial Black';
Image1.Canvas.TextOut( x, y, 'ABC' );

どのように指定したらいいのでしょうか?
417デフォルトの名無しさん:04/10/25 04:31:32
>>415
フリーカーソルの世界へようこそ!
418デフォルトの名無しさん:04/10/25 08:05:34
ショートカットすらないのか(プッ
419デフォルトの名無しさん:04/10/25 14:02:55
>>416
Image1.Canvas.Font.Name := 'Arial Black';
Image1.Canvas.Font.Charset := ANSI_CHARSET; //追加
Image1.Canvas.TextOut( 10, 10, 'ABC' );
420416:04/10/25 14:21:31
>>419
できました! ありがとうございます!!
421デフォルトの名無しさん:04/10/25 17:00:12
GLDPNGを使ってPNG形式で保存しようとしています。
BMP形式での保存は問題なかったので。

png := TGLDPNG.Create;
png.Width := bmp.Width;
png.Height := bmp.Height;
//png.Assign(bmp);
png.Image := bmp;
png.SaveToFile('test.png');

とやったのですが、書き出されたファイルは壊れたカラーテレビのようで
絵は微妙に縦長になるし、画面全体が縦のスプライトで埋め尽くされるし、
グレーになっているし。

Assign()でやっても同じでした。なにがいけないのでしょう?
422421:04/10/25 17:01:02
ごめんなさい、縦長ではなく「横長」でした。
423デフォルトの名無しさん:04/10/25 17:20:15
>421
png.Width := bmp.Width;
png.Height := bmp.Height;
が冗長な気がする。これとっぱらってAssignしてもだめかね。

それと、bmpかTBitmapなら、bmpとpngのassignの間に、
中村センセーのTNkDIBでのassignを一枚噛ませてみるのも良い手。
TNkDIBでの画像が正しく出るかで、問題の切り分けができるし、
TNkDIBはTBitmapよりあきらかに速いから元からTBitmapを使っていた
部分をTNkDIBに切り替えるという手もある。
424421:04/10/25 19:40:23
>423
ありがとうございます。
TNkDIBに移行しようとしたらまた別のところでつまづいています。
CopyRect() でパーツを取り出そうとすると TBitmapでできたものが
できなくなってしまいました。

ドキュメントを見る限りでは Canvasによる描画ができるようなのですが。

bmp1 := TNkDIB.Create;
bmp1.LoadFromFile('test.bmp');
bmp2 := TNkDIB.Create;
bmp2.Width := 400;
bmp2.Height := 400;

Canvas1 := TNkDIBCanvas.Create(bmp1);
canvas2 := TNkDIBCanvas.Create(bmp2);
canvas2.CopyRect(Rect(0,0,399,399), Canvas1, Rect(0,0,399,399));

canvas1.Free;
canvas2.Free;
bmp2.SaveToFile('test3.bmp');

bmp1.Free;
bmp2.Free;
425421:04/10/25 20:26:21
たびたびすいません。
TGLDPNGですが、bmp.Canvas.CopyRect() を使って部分複製した
画像を保存しようとすると崩れるようです。
426423:04/10/25 20:29:52
>424
おまいさん、TNkDIBはcreateした直後は8bpsだということを忘れとるよ。
以下な風に書き換えてみそ


bmp1 := TNkDIB.Create;
bmp1.LoadFromFile('x.bmp');
bmp2 := TNkDIB.Create;
bmp2.PixelFormat:=nkPf24Bit;
bmp2.Width:=400;
bmp2.Height:=400;

Canvas1 := TNkDIBCanvas.Create(bmp1);
canvas2 := TNkDIBCanvas.Create(bmp2);
canvas2.CopyMode:=cmNotSrcCopy;//好きなコピーモード
canvas2.CopyRect(Rect(0,0,399,399), Canvas1, Rect(0,0,399,399));

canvas1.Free;
canvas2.Free;
bmp2.SaveToFile('test.bmp');

bmp1.Free;
bmp2.Free;
427421:04/10/25 21:18:53
>426
>bmp2.PixelFormat:=nkPf24Bit;
うわぁ! なるほど!! ありがとうございます。

TBitmap関係をいろいろ漁っていてパレット関係が怪しいとにらみ

bmp2.PixcelFormat := bmp1.PixcelFormat;

とやってムリヤリ自力解決したのですが、そっちの方法のほうが
断然スマートですね(あたりまえだ。

というわけで解決しました!!
428426:04/10/25 21:33:30
>427
いや、どちらかというと、それが正解だよそれが。
おいらは、8bpsじゃないってことであーかいたけだけだ。
とにかく、画像処理は深みに入っていくと楽しすぎるから頑張ってな−

あと、そのうち、パレットとかハンドルについて悩むときも来そうなので予めいっとくが、
TNkDIBから直接ハンドル・ポインタを取り出した時の不具合がどうしても
解消できそうにないときは、TMemoryStream変数にloadtostreamさせて、
直接画像データをみに行くという方法もあるから覚えておくと良いよ。
幸い、DIBのファイルフォーマットは、探せばそこらにやたらあるので。
429421:04/10/25 22:47:23
>428
ありがとうございます。
おそらくこれからアルファブレンド、スクリーン合成、乗算、覆い焼き
などでハマっていくことになると思います。
その時に参考にさせていただきます。
430デフォルトの名無しさん:04/10/28 16:59:41
あるフォームがモーダルダイアログを開いているかどうか判断する方法教えて下さい。
431デフォルトの名無しさん:04/10/28 19:59:54
432デフォルトの名無しさん:04/10/28 21:01:22
モーダルダイアログってフォームが開くものなんか?
はじめて聞いた。
433デフォルトの名無しさん:04/10/29 00:51:10
なんとも頭の固い人達ですね
434デフォルトの名無しさん:04/10/29 01:55:49
そうか?
単にモーダルダイアログが何なのか解かってないんでしょ。
435デフォルトの名無しさん:04/10/30 01:02:41
下記のように二次元配列を varで渡したかったのですが、エラーになってしまいます。
一次元だと出来るのですが、どのようにすればいいでしょうか?

procedure TForm1.Button1Click(Sender: TObject);
var
  hoge : array[0..10] of array[0..10] of Integer;
begin
  hoge[1][2] := 20;
  hoe( hoge );
end;
/// -----------------------------------------
procedure TForm1.hoe(var hoge : array of array of Integer );
begin
  Showmessage(IntToStr(hoge[1][2]));
end;
436デフォルトの名無しさん:04/10/30 01:05:48
typeしろ
437435:04/10/30 01:09:02
type hoge = array of array of Integer;
ですね。自力で解決できました。^^;

>>436
あ、先に書かれていた。ありがとうございます。
438デフォルトの名無しさん:04/11/01 19:51:36
VCLのCoolBarの挙動が変なんですが、何か回避方法とかありますか?
439デフォルトの名無しさん:04/11/01 20:33:07
あれはバグが多いとオモタ。
とりあえずTB2K+TBXを使って回避してる。(つかこっちの方が高機能だったり
440デフォルトの名無しさん:04/11/01 21:16:57
TB2Kも試したのですが、なんか動作が気に入らない・・・orz
IEみたいな動作のCoolBarがベストなんですが・・・
441デフォルトの名無しさん:04/11/01 22:32:19
困りましたな。
442デフォルトの名無しさん:04/11/01 22:50:07
いやぁー、あちこち書きまくりですな、クールバーとかrebarとか。
443デフォルトの名無しさん:04/11/02 00:36:58
>>440
自分で作れ。

そして俺にくれ
444デフォルトの名無しさん:04/11/02 00:37:35
CoolBarってそんなに変か?
445デフォルトの名無しさん:04/11/21 23:20:24
今日初めてプログラミングでアプリ作りました。
サイトみながらでしかも
内容はテキストエディタってメモ帳なんかにも及ばない
くだらないものなんすけど、それでも十分感動しました。


446デフォルトの名無しさん:04/11/21 23:48:06
>>445
おめでとう。どういう環境でどのサイトを参考にしたのかきいていいかい?
447デフォルトの名無しさん:04/11/22 18:46:25
>>446
ありがとうございます。
環境なんて・・・フリーのDelphiダウンロードしただけです。
ttp://www.geocities.jp/happy4clucky/
のサイトをたよりにがんばってつくりました。

簡単なものだけどプログラミングやってみてよかったと思いました。
448デフォルトの名無しさん:04/11/22 23:07:45
>>447
私も最初は本と解説サイトを手本になんとなくDelphiに慣れていったよ。
ある程度使えるようになってきたら次の本をお勧めしておくよ。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4844312731/
449デフォルトの名無しさん:04/11/23 14:44:49
環境はDelphi 6 personalなのですが、TChartコンポーネントが使えません。
ていうか、インストールされてません。どこで、インストールできますか?
450デフォルトの名無しさん:04/11/23 15:40:06
personal にはありませんし、DLして使うモノではありません。
451449:04/11/23 22:09:56
では、諦めるしかありませんか?
452デフォルトの名無しさん:04/11/23 22:24:46
Professional版を買ったら?
453デフォルトの名無しさん:04/11/23 22:49:30
csvではき出してエクセルで十分だろw
454デフォルトの名無しさん:04/11/24 09:31:54
Delphi6 の IdHTTP を使用し、2chのDAT差分を取得したいのですが

IdHTTP.Request.ExtraHeaders.Values['Range'] := 'bytes=1000-';

と書いてGetしても、必ず全体を取得してしまいます。
何か指定の方法がまずいのでしょうか?
455デフォルトの名無しさん:04/11/24 11:05:24
IdHttp1.Request.ContentRangeStart := 1000;
456デフォルトの名無しさん:04/11/24 13:43:31
>>445
おめでとう。次はここ見てブラウザでも作ってみるといいかも。

ttp://delphi.sakura.vg/index2.html
457デフォルトの名無しさん:04/11/24 19:48:06
>>456
いきなりブラウザですか・・・
ちょっとハードル高いかな。

ちょっとしたミニゲームみたいなのを作ってみようと思います。
458デフォルトの名無しさん:04/11/24 20:08:51
>>457
そのサイト読んでから文句言うように。
テキストエディタより簡単だと思うが…。
459デフォルトの名無しさん:04/11/24 21:00:59
そうだね。簡単だけど成果がはっとしてて作り甲斐があるよね。
460デフォルトの名無しさん:04/11/24 21:48:58
そうですか・・・
ちょっとがんばってみます。
461デフォルトの名無しさん:04/11/24 23:12:46
がんばれー。がんばることは良いことだー。
462デフォルトの名無しさん:04/11/25 17:39:07
SeventhDelphi、いいサイトだったのにこの前行ったら突然新しくなって
前にあったHTMLファイルが消えてた。

誰か保存している人いないかな…
463デフォルトの名無しさん:04/11/25 20:04:14
> SeventhDelphi、いいサイトだったのに

そうだね。GUI がどうの、このクラスはどうの、といったあまりプログラミングの
本質ではないところをなくして、論理重視に変更されたんだね。これは管理人の
個性でしょう。依然としていいサイトであるとは思うけど、コンテンツの量が減った
のは残念だね。
464デフォルトの名無しさん:04/11/25 20:44:04
画像は無いけど、Internet Archiveにあった
465デフォルトの名無しさん:04/11/29 00:04:09
Delphi6 personalを使って大量の計算を行っているのですが、
計算中に音楽でも添付して流してみたいと思いました。
そういうことはできるのでしょうか?
できたとしてもMedia playerが立ち上がったりするんでしょうか?
466デフォルトの名無しさん:04/11/29 00:08:47
467デフォルトの名無しさん:04/11/29 00:10:20
やってみろ。
468465:04/11/29 00:14:02
やってみます。
ありがとうございました。
469デフォルトの名無しさん:04/11/29 03:10:40
16進法表記と10進法表記では10進法のほうがやりやすいのですが、
16進法にすると処理速度が上がったりとか、何か得でもあるのでしょうか?
470デフォルトの名無しさん:04/11/29 03:30:42
$FF + $FF と 255 + 255 はどっちが速いかって事?
同じだよ。

ビット演算子(andやor)は、16進数表記の方がわかりやすい。
アドレスも16進数。
471デフォルトの名無しさん:04/11/29 03:40:09
>>469
別に16進法にしたって動作速度速いこたないが、プログラミングを続けていると嫌でも16進法で表記した法が
圧倒的にコーディングが楽な場合が出てくる。

たとえば、2進数との親和性が高いので、
アーカイバ作るときにビット演算の式を作るのが楽だとか
10進法では1周360度の場合、361度や-57度を正規化するのにdivやら負の場合分けをしなくちゃいけないのに対し、
一周を2のn乗、たとえば16乗の65536($10000)度系とかにすれば、
16進法だと87308や-53812がnに角度として入っていても、正規化は n and $FFFFだけですむ。

あるいは、TColorやHTMLの様に、一般的には色は16進数で表示されるので
Delphi上でも色を扱うときは16進数が楽とか。
例えば10進数で 16711680 とか書かれても何色だかわからんだろ。
16進数だと$FF0000(C言語なら0xFF0000)となって、
TColorなら青、HTMLなら赤のことを指し示しているとすぐわかる。
472469:04/11/29 07:38:49
>>470-471
わかりやすいご説明ありがとうございました。
16進法に慣れるようにこれから切り替えていこうと思います。


473デフォルトの名無しさん:04/11/29 20:24:44
Imageに対する描画で背景色を透明にするには、
Image1.Canvas.Draw(i*32 + 17, j*24, Load_Bmap)
に何を追加すればいいのでしょうか…?
474デフォルトの名無しさん:04/11/29 21:05:13
age忘れました…orz
475ホントの初心者:04/11/29 22:22:08
単にInteger型の配列の読み書きをしたいのですが読み込みでIOエラーが出ます。どこが悪いのでしょ?
var
UArrayNo: array[0..99] of Integer;
procedure TForm1.sbTest1Click(Sender: TObject);
var
i: Integer;
F:File of Integer;
begin
AssignFile(F,ExtractFilePath(Application.ExeName)+'FileNo.dat');
ReWrite(F);
for i := 0 to 99 do
begin
UArrayNo[i] := Random(100); Write(F,UArrayNo[i]);
end;
CloseFile(F);
end;

procedure TForm1.sbTest2Click(Sender: TObject);
var
i: Integer;
F:File of Integer;
begin
AssignFile(F, ExtractFilePath(Application.ExeName)+'FileNo.dat');
Reset(F);
i := 0;
while not Eof do
begin
Read(F,UArrayNo[i]); Inc(i);
end;
CloseFile(F);
end;
476デフォルトの名無しさん:04/11/29 22:39:37
>>475
>F:File of Integer;
これがまずくないかい。
任意のファイル型は、TYPEで宣言するような。
あるいは、 F: TextFile; にしておいて、IntToStrやStrToIntでやり取りしたらどうだろう。

はずしてたらスマン。
477デフォルトの名無しさん:04/11/29 22:48:39
while not Eof(F) do
478475:04/11/29 22:51:29
>>477
どうもです。お恥ずかしい限り・・・・・
479デフォルトの名無しさん:04/11/29 22:51:39
>>473

透過は描かれる Load_Bmap のほうの特性
480デフォルトの名無しさん:04/11/29 22:54:46
なんでnot eof doでビルドとおるんだ?
481デフォルトの名無しさん:04/11/29 22:56:15
>>480
ヘルプ嫁
482デフォルトの名無しさん:04/11/29 22:57:52
命令すんなボケ
483デフォルトの名無しさん:04/11/29 22:59:48
逆ギレすんなカス
484デフォルトの名無しさん:04/11/29 23:25:37
(´-`)
485デフォルトの名無しさん:04/11/29 23:37:57
「ヘルプ嫁」っていうのはここでは常套句。 >>482 面白すぎ
486ぼぼしごろ:04/11/29 23:41:56
>>480
Eof は,現在のファイルポインタがファイルの終わりであるかどうかをテストします。F はファイル変数です。
F を省略した場合,F は標準ファイル変数 Input になります。
487& ◆R7PNoCmXUc :04/11/30 19:34:45
>>475をファイルストリームを使って同じことするにはどうするのかな。
TFileStreamってヘルプ読んでもよくわからない。
488デフォルトの名無しさん:04/11/30 19:53:06
var
  UArrayNo: array[0..99] of Integer;
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
  i: integer;
begin
  fs := TFileStream.Create(ExtractFilePath(Application.ExeName)+'FileNo.dat',fmCreate or fmShareExclusive);
  try
    for i := 0 to 99 do begin
      UArrayNo[i] := Random(100);
      fs.Write(UArrayNo[i],SizeOf(Integer));
    end;
  finally
    fs.Free;
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
  fs: TFileStream;
  i: integer;
begin
  fs := TFileStream.Create(ExtractFilePath(Application.ExeName)+'FileNo.dat',fmOpenRead or fmShareExclusive);
  try
    for i := 0 to 99 do begin
      fs.Read(UArrayNo[i],SizeOf(Integer));
      Memo2.Lines.Add(IntToStr(UArrayNo[i]));
    end;
  finally
    fs.Free;
end;
end;
489デフォルトの名無しさん:04/11/30 19:54:55
× Memo2.Lines.Add(IntToStr(UArrayNo[i]));

デバッグ用
490デフォルトの名無しさん:04/11/30 20:00:24
スクロール上で右クリックのままドラッグでぐりぐり動かすとスクロール内もそれにあわせて動くってのはどうやるんだ?
教えてエロイ人
491487:04/11/30 20:23:28
>>488
おお! サンクス!!
492デフォルトの名無しさん:04/11/30 21:07:17
右クリックでスクロールバーぐりぐりすると何かいいことあるんか?
493デフォルトの名無しさん:04/11/30 21:12:56
>>490
1. OnMouseDownで現在のX,Y座標を取得 + スクロール中フラグを立てる。
2. OnMouseMoveでスクロール中フラグが立っていたなら、1のX,Y座標と
現在のX,Y座標の差を取り、スクロールバーのPositionにセット。
3. OnMouseUpでスクロール中フラグを下ろす。
494デフォルトの名無しさん:04/11/30 22:25:52
おお、ありがとうございます。
いえ、ちょっとゲームを作ってまして…。
画面のスクロールでそれができたら楽だなぁ、と。
495490:04/11/30 22:54:43
早速記述したんですが、何か違うっぽい…orz
procedure TForm1.ScrollBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X1, Y1: Integer);
begin
MouseDown := True;
end;

procedure TForm1.ScrollBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X1, Y1: Integer);
begin
MouseDown := False;
end;

ではいけないんですか?
一応グローバル変数のところには
MouseDown : Boolean;
と書いてあるんですが。
496デフォルトの名無しさん:04/11/30 23:21:15
それただフラグ立てただけ。

X,Y も記録 MouseMove でずれ取得 ずれ分スクロール
497490:04/12/01 18:52:13
あ、いえMouseDown/MouseUpだけでテストしてからMouseMoveしようとして、
その時点でエラーが出たんです。
言い忘れてましたね。すいませんです。
問題はどうしてこの時点でエラーが出るんだろということです。

その後、X1-X2,Y1-Y2をそれぞれHorzScrollBar.PositionとVertScrollBar.Positionに足せばいいんですよね?
498デフォルトの名無しさん:04/12/01 19:09:07
こっちはエスパーじゃないのでエラーの内容を晒せ。
499490:04/12/01 19:15:41
MouseDown := True;
MouseDown := False;
それぞれに「実パラメータが足りません」との表示が。
500デフォルトの名無しさん:04/12/01 19:27:06
TFormにはMouseDownというメソッドがあって名前がかぶってるので、変数名を変える。
501490:04/12/01 19:37:24
ナルホド、MouseDownCheckに名前を変えたらサクサクできました。
ありがとうございます。
502デフォルトの名無しさん:04/12/01 20:21:51
あっちにも応答しとけよ
503デフォルトの名無しさん:04/12/01 20:29:10
いまさらだが初心者スレ重複してないか?
504デフォルトの名無しさん:04/12/01 20:36:29
クダスレは結構レベル高いぞ。
こっちがほんとの初心者向けかな。
505デフォルトの名無しさん:04/12/02 15:31:46
くだすれにレベルの低い質問をしてはいけない、なんてことはないのだが。
実際向こうで俺レベルが答えられる質問が減っているのは確かだけど。
506デフォルトの名無しさん:04/12/02 18:01:42
507デフォルトの名無しさん:04/12/02 21:40:30
var
 FromF, ToF: file;
 NumRead, NumWritten: Integer;
 Buf: array[1..2048] of Char;
begin
 if OpenDialog1.Execute then
 begin
  AssignFile(FromF, OpenDialog1.FileName);
  Reset(FromF, 1);  //レコードサイズ = 1
  if SaveDialog1.Execute then
  begin
   AssignFile(ToF, SaveDialog1.FileName);
   Rewrite(ToF, 1); //レコードサイズ = 1
   DMemo.Lines.Add(IntToStr(FileSize(FromF)) + ' bytes...');
   repeat
    BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
    BlockWrite(ToF, Buf, NumRead, NumWritten);
   until (NumRead = 0) or (NumWritten <> NumRead);
    CloseFile(FromF);
    CloseFile(ToF);
  end;
 end;
end;
-------------------------------------------------------------------------
これはヘルプにあるサンプルですが、2048バイトずつコピーすればそれで割り切れないバイト数が残ることもあるはず
なのに、なぜこれでいいのでしょ? あとできたらこれもTFileStreamを利用した例が知りたいです。
508507これでいいのかな?:04/12/02 23:42:04
var
 ReadF,WriteF: TFileStream;
 NumRead: Integer;
 Buf: array[1..2048] of Char;
begin
 if OpenDialog1.Execute then
 begin
  ReadF := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  if SaveDialog1.Execute then
  begin
   WriteF := TFileStream.Create(SaveDialog1.FileName, fmCreate);
   repeat
    NumRead:= ReadF.Read(Buf, SizeOf(Buf));
    WriteF.Write(Buf, NumRead);
   until NumRead <> SizeOf(Buf);
  end;
 end;
 ReadF.Free;
 WriteF.Free;
end;
509デフォルトの名無しさん:04/12/03 09:55:35
> 2048バイトずつコピーすればそれで割り切れないバイト数が残ることもあるはず

なぜ NumRead を使っているのか考えること。BlockRead のヘルプを読むこと
510なるほど507:04/12/03 19:24:15
要するに何もしないでも残りが2048バイト未満であっても自動的に読み込んでくれるんですねえ。
どんな仕組みになっているか BlockRead のソースをチェックしたのですが
アッセンブリーコードでした(*_*)。
511デフォルトの名無しさん:04/12/03 23:55:20
2048ずつ読んでるだけじゃないの?
何か疑問?
512デフォルトの名無しさん:04/12/04 02:48:48
>>511
君には理解不能
513デフォルトの名無しさん:04/12/05 06:42:55
>>507,508
こういう場合読み込むサイズをどれくらいにするのが適当なんだろ?
1024,2048,4096,8192 で確認したけどスピードは変わらない。
514デフォルトの名無しさん:04/12/05 10:07:04
スピードはディスクアクセスがボトルネック。1バイトバッファなら差がでるかな?
515デフォルトの名無しさん:04/12/07 17:05:35
ロボット作りマニュアル本でこれから始めるならcよりdelphiが良いって本で見たのですが、実際はどうなんですか?
ぐぐっても、制御系のサイトがあまりみつからなかった・・・・・・・・・。
516デフォルトの名無しさん:04/12/07 17:18:31
花の盛りは短くて儚い
517デフォルトの名無しさん:04/12/07 19:13:03
>>516
禿同。ソースを将来とも大事にしたいならCでやっとけばいい。
とりあえずはやくつくりたいならDelphiでもいいけど。
518デフォルトの名無しさん:04/12/09 16:41:06
初めまして。当方趣味程度でDelphi3をやっておりました。むろん正式ユーザーです。
今度、社内と関連会社で使うテキスト操作と小規模のデーターの仕事関係の
プログラミングを頼まれたのですが、XPの現在でもDelphi3は使えますでしょうか?
Delphi6の無料版を考えていましたが、よそにやることも考えて(そこから先、どうなるか
分からないため)Delphi3で組もうと思います。
データー管理は300人程度の小規模のものです。

Delphi3ってXPの現在、使えますか?
519デフォルトの名無しさん:04/12/09 17:01:21
また、使っている方いらっしゃいますでしょうか?

XPで特に気をつけるようなことありましたらアドバイスお願いします
520デフォルトの名無しさん:04/12/09 17:30:24
Del6per のほうがよい。文字列操作関係の関数も充実してるし、最新版との互換性も
Del3とは大違い。仕事に使うんならライセンスをクリアするために、ひとつくらい最新版を
購入しよう。XPスタイルへの対応だけが問題。
521デフォルトの名無しさん:04/12/09 17:33:52
業務用には使えないだろボケ
522デフォルトの名無しさん:04/12/09 17:34:26
c言語を勉強しているけど、何かこっちの方が理解し易いな・・・・・・・変えようかな・・・・・・・
でも、マイナーで入門書とサイトが少ないのが初心者にはキツイ。
523デフォルトの名無しさん:04/12/09 17:39:25
>>520
お前、面白いよ
524デフォルトの名無しさん:04/12/09 17:49:49
最新版って Delphi2005 でしょ。これを買って、実際は Del6per で開発って、いいじゃないの。
525デフォルトの名無しさん:04/12/09 17:52:54
最後だけ2005の糞重いIDEを起動してコンパイルするとなおいいね。
526デフォルトの名無しさん:04/12/09 18:01:23
>>522
入門書は確かに少ないけど、その分厳選されているし、大きな本屋を漁ってみればさほど問題ない。
サイトは少ないように見えてけっこうあるよ。Delスレの過去ログとか見るとあちこちにちりばめられている。
WEB上の情報は必要十分にある。

英語が読めるとなお情報を入手しやすいんだけどね。
527デフォルトの名無しさん:04/12/10 00:15:15
なんかいい感じのスレですね。
でも最近マカーなので……。
Mac OS X対応のKylixが出てくんないですかね。
528デフォルトの名無しさん:04/12/10 15:04:33
> 入門書は確かに少ないけど、その分厳選されているし

厳選してないよ、ただたんに少ないだけ
529デフォルトの名無しさん:04/12/10 15:25:34
2,3年まえには結構な数があったけどね > 入門書
ムックまであったし。いま入手できるのは、売れ残ったやつだけ。新刊書がないから。
530デフォルトの名無しさん:04/12/10 15:28:46
じゃ、終わりって事じゃんか・・・・・・・・・。
531デフォルトの名無しさん:04/12/10 15:37:04
正直、Delphi入門者の取るべき書籍が無いのは由々しき状態。
日某はそこらへんわかってるのかなあ。
532デフォルトの名無しさん:04/12/10 15:38:33
>じゃ、終わりって事じゃんか・・・・・・・・・。

そう。需要がないから供給もない。入門者が減ってるんだよ。
533デフォルトの名無しさん:04/12/10 15:50:50
amazonで検索して購入すればいいだけの話だろう。
534デフォルトの名無しさん:04/12/10 15:58:36
入手方法はこのさい関係なし。
535デフォルトの名無しさん:04/12/10 16:41:10
どうしても購入させたくない必死な香具師がいるようだな。
536デフォルトの名無しさん:04/12/10 17:36:00
入手方法ではなく入門書に新刊がないことを言ってるの。頭割り意のがいるな。
537デフォルトの名無しさん:04/12/10 17:49:54
いまから入門するとして、リッチなのは D2005 を買う。そうすると新IDEに対応した
手取足取り入門書は皆無。プアーなのは D6per をDLして使い始める。本がなくても
入門サイトが結構あるから大丈夫かもね。
538デフォルトの名無しさん:04/12/10 20:02:03
いや、amazonだろうがなんだろうが、
評判いい入門用の本の多くが絶版になってるんだよ。
中村御大が褒めている本とか。
539デフォルトの名無しさん:04/12/11 07:49:01
Delphi8の入門書はとうとう出なかったな。
540デフォルトの名無しさん:04/12/11 08:07:51
おいおまいら、
Seventh Delphiの旧入門コンテンツが復活してますよ。
もういまとなっちゃ、ここ以外、総合的にDelphiを扱った入門サイトが
皆無だからよかったよかった。
541デフォルトの名無しさん:04/12/11 11:39:39
そこ、並みの入門書よりかなりいい内容だよね。新Delphi入門もトライして見る価値はおおいにある。
542デフォルトの名無しさん:04/12/11 16:19:45
今更、Delphiの勉強を始めたんだけどややこしいなこの言語。
CやJavaなら簡単に出来る事を、Delphiでどうやったらいいかを調べるだけで
時間がどんどん過ぎていく…。
543デフォルトの名無しさん:04/12/11 16:33:17
ドルフラングレンと関係は無いみたい。
544デフォルトの名無しさん:04/12/11 16:42:10
>>540
おぉ、フィードバックで旧コンテンツの復活望んだ甲斐があった。
545デフォルトの名無しさん:04/12/11 17:44:48
>>542

よく考えて堅牢なコードを書くという習慣が身につきます。
あとで「ああ良かった」ときっと思えます。
546デフォルトの名無しさん:04/12/11 18:10:35
Delphiってひょっとしてオブジェクト指向に向いてなくない?
547デフォルトの名無しさん:04/12/11 20:23:48
君に向いてないだけ
548デフォルトの名無しさん:04/12/11 22:42:36
>>546
どういう部分でそう思う?
確かにスコープのとり方がちょっとへんだが、1クラス=1ユニットで書けば問題ない。

549デフォルトの名無しさん:04/12/11 22:46:44
>確かにスコープのとり方がちょっとへんだが
変じゃねーよ
.NETのinternalを先取りした機能だ
550デフォルトの名無しさん:04/12/11 22:59:56
お前ら、本を執筆しる!
誰も出さんから売れるぞ。
551デフォルトの名無しさん:04/12/11 23:01:48
>>548
何から何まで時代遅れ。
言語的にC#に対するアドバンテージは皆無。
意味もなく某が執着しなければ手続き型で終わってたはずの言語だな。
552デフォルトの名無しさん:04/12/12 01:28:03
> 誰も出さんから売れるぞ。

原因と結果が逆。売れないから誰も出さないの。
553デフォルトの名無しさん:04/12/12 08:19:34
よく某は食っていけてるもんだ・・・
554デフォルトの名無しさん:04/12/13 06:55:18
delで儲けてるわけじゃないって何回(ry
555デフォルトの名無しさん:04/12/13 07:52:52
つか、Delphiって宣伝みたいなもんだよな
556デフォルトの名無しさん:04/12/13 16:33:11
>>540
デザインパターンのページは復活してないね
あれ、よかったのになぁ〜
archive.org使用すれば見れるが
今から見る人は使用しないだろうし・・・
557デフォルトの名無しさん:04/12/20 19:29:21
ScrollBox等のコンポーネントの上に、記述による生成でコンポーネントを置く時にはどうしたらいい?
558デフォルトの名無しさん:04/12/20 20:04:00
Button := TButton.Create(ScrollBox1);
Button.Parent := ScrollBox;
Button.Caption := 'NewButton';
...
559デフォルトの名無しさん:04/12/20 20:15:08
なるほど、そうだったのか。
Thanks.
560デフォルトの名無しさん:04/12/20 20:19:42
テキスト ←→ リッチテキスト 変換は、
どうやってやりますか?
561デフォルトの名無しさん:04/12/20 22:37:07
Arrey[?..?]の数って宣言以降に変更できるんですか?
562デフォルトの名無しさん:04/12/20 22:44:58
Delphi2005って無料で使える?
563デフォルトの名無しさん:04/12/20 22:48:51
>>561
動的配列使え。下限は0固定。
var arr: array of Integer;
begin
 setlength(arr, 100);
 // arr[0] .. arr[99]にアクセス可

>>562
英語版トライアルのみ
いずれ日本語版Personalが出るらしい
564デフォルトの名無しさん:04/12/20 23:00:52
Arr[?,?]
の様に二つの配列を使うことは出来ないのですか?
565デフォルトの名無しさん:04/12/20 23:03:06
制御について書かれたマニュアルが無い。
566デフォルトの名無しさん:04/12/20 23:04:45
>>564
出来ない。
arr: array of array of integer;

arr[y][x] とやるしかない
567デフォルトの名無しさん:04/12/20 23:20:51
>>566
arr: array[0..M, 0..N] of Integer;
といった書式で書いてコンパイルしてみれ。
568デフォルトの名無しさん:04/12/20 23:29:34
動的でってことじゃないの?
569デフォルトの名無しさん:04/12/21 00:17:59
宣言で任意のサイズの多次元配列を定義するのは無理でしょ。
例えば arr[1][0] の先頭位置からのオフセットは 2 番目の添え字の数で
決まるから。
array of array of Integer で SetLength したら array of Integer の
アドレスが上位の array のメモリに格納されるだけ。
570デフォルトの名無しさん:04/12/21 00:37:07
Pascalの仕様じゃ動的にarrayを確保できない。
571デフォルトの名無しさん:04/12/21 00:56:15
そうですか…TStringListで無理矢理代用してみます。
ありがとうございました。
572デフォルトの名無しさん:04/12/21 02:02:54
SetLength(arr, MaxX * MaxY);
arr[x * MaxY + y]
とかやっとけば二次元のデータも格納できるけどね。
ややこしければラッパーかませばいいし。
573デフォルトの名無しさん:04/12/21 11:44:05
XとYの桁が決まってるならば、こういうのはどうだろう。
(X,Yがそれぞれ2ケタとした場合)
arr[X*100 + Y]
X=25.Y=34ならば
arr[2534]

とか。
574デフォルトの名無しさん:04/12/21 11:51:24
ラッパの方が100倍まし
575デフォルトの名無しさん:04/12/21 12:15:15
へたれのおれには2次元配列にするのとどう違うのかわからんorz
576デフォルトの名無しさん:04/12/21 12:51:10
ヘルプキーワード「多次元動的配列」
577デフォルトの名無しさん:04/12/21 20:42:00
A: array [0..1] of array [0..1] of Integer; の場合

宣言によって変数 A[0, 0], A[0, 1], A[1, 0], A[1, 1] の順に 16 バイトの
連続メモリが割り当てられる。ただそれだけ。

A: array of array of Integer; の場合

宣言によって変数 A に 4 バイトのメモリが割り当てられる。

SetLength(A, 2);
参照カウンタ, 長さ, A[0], A[1] の順に 16 バイトの連続メモリが割り当てられる。
変数 A に A[0] のアドレスを指すポインタ (4 バイト) がセットされる。

SetLength(A[0], 2);
参照カウンタ, 長さ, A[0, 0], A[0, 1] の順に 16 バイトの連続メモリが割り当てられる。
変数 A が指すメモリ (A[0]) に A[0, 0] のアドレスを指すポインタがセットされる。
578デフォルトの名無しさん:04/12/21 21:33:51
SetLength(A,3,3) とかでもOK
579デフォルトの名無しさん:04/12/23 14:43:23
配列の話が出てるので聞きたいんですが、配列に一括して代入をすることはできるんですか?
Arr[1] := 1;
Arr[2] := 1;
Arr[3] := 1;

というような配列を、まとめて同じ数を代入したいんです。
580デフォルトの名無しさん:04/12/23 15:04:57
そんな命令や手続きはないよ。作るとしたらオープン配列パラメータを使ってやることに
なるだろうな。

procedure InitArray(var iary: array of Integer; inival: Integer);
var I : Integer;
begin
for I := 0 to High(iary) do iAry[I] := inival;
end;
581デフォルトの名無しさん:04/12/23 16:24:26
for で一行
582デフォルトの名無しさん:04/12/23 17:55:11
FillChar
583デフォルトの名無しさん:04/12/23 18:26:10
FillChar でどうやって1に初期化するかしりたいものだ
584デフォルトの名無しさん:04/12/23 18:30:14
>>582
FillCharは値がバイトの範囲しかないぞ。0で初期化とかなら使えるが。
585適当レス:04/12/23 18:30:36
#1とか?
586デフォルトの名無しさん:04/12/23 18:34:03
4バイトのそれぞれのバイトが#1で integer として1になるとでも思ってる?
587デフォルトの名無しさん:04/12/23 18:37:52
手続き名で惑わされるな。第3引数はCharではなくByte型だ。

FillChar(a[1], SizeOf(a), 1);

かな?
588587:04/12/23 18:41:29
あ、586がただしいわ。LongIntとかだと0以外は駄目だな。
589デフォルトの名無しさん:04/12/23 19:13:51
バイト単位で初期化するから2バイト以上の変数は一般にはだめ。ゼロとかnilとかだったら使える
590デフォルトの名無しさん:04/12/29 22:41:38
文字列の最後のn文字を削除したいっていう場合はどうするんですか?
591デフォルトの名無しさん:04/12/29 22:57:47
>>590
LengthとLeftStrを組み合わせれ。
592デフォルトの名無しさん:04/12/30 00:32:48
SetLength(s, Length(s)-n);
593デフォルトの名無しさん:05/01/03 22:13:53
どうも、ありです。
>>590-593
遅いレスですが>590は『文字数』ということですので
対象となる文字列に漢字などの2バイト文字が含まれている場合は
それを考慮しないと正しく動作しません.
(文字列がWideStringである場合は問題ありません.)

やり方はWideStringに変換して戻す方法と変換しない方法がありますが前者の方が単純です.

{★文字列wsの末尾Count文字を削除した文字列を返す関数}
function TrimTrailChars(const ws: WideString; Count: integer): WideString;
begin
 Result := copy(ws, 1, Length(ws) - Count);
end;

string型(AnsiString型)の値とWideString型の値との変換は両方向とも自動的に行われますので
wsにAnsiString型の値を指定したり戻り値をAnsiString型(TCaption型を含む)の変数やプロパティに代入しても構いません.

例)Edit_Dest.Text := TrimTrailChars(Edit_Src.Text, SpinEdit_Count.Value)

595デフォルトの名無しさん:05/01/12 21:54:23
良スレage
596デフォルトの名無しさん:05/01/14 10:19:05
ログ保存機能をアプリに付けたいと思っています。

が、VCLのSaveToFileはファイル上書きしかなかったり、
ディスクが一杯だったら、とか、色々問題ありそうです。

ログ保存機能コンポーネントなんてあるんでしょうか?
597デフォルトの名無しさん:05/01/14 16:16:42
> ディスクが一杯だったら

ディスクがいっぱいだったらどんなコンポでも書き込めないだろ・・・
ふつうは TFileStream とか使うんじゃないの
598デフォルトの名無しさん:05/01/14 17:37:05
コンポーネントなんて使うまでもないだろ
599デフォルトの名無しさん:05/01/14 17:40:41
600デフォルトの名無しさん:05/01/15 01:54:19
>>596
せっかくDelphiを使ってるんだからDBで保存することを考えたら?
後で様々な切り口で分析できるし便利だよ
601デフォルトの名無しさん:05/01/17 01:49:26
エクスプローラのツールバーがはみ出したときに表示されるボタンは
どうやって作るのでしょうか?
602デフォルトの名無しさん:05/01/17 18:37:12
シェブロンでググれ
多分相当難しいと思われ。
603デフォルトの名無しさん:05/01/26 05:38:16
Memo1.Lines.LoadFromStream(TFileStream.Create(FileOpenDialog.FileName));
で開いたデータをスクロールバーssBothのMemo1で表示すると、縦スクロールは普通にできるのに横スクロールの挙動がおかしいです
バーをドラッグしてもピョンと端に戻ってしまいます、どうしたらいいのでしょうか
604デフォルトの名無しさん:05/01/26 11:56:03
>>603
Memo1.Lines.LoadFromFile(FileOpenDialog.FileName)ではどう?
あと、TFileStream型の変数を別に用意して、初期化と読み込みを
別にした場合は?

いろいろな方法で試してみれば、どこに問題があるか突き止め
られるようになるぞ。
605デフォルトの名無しさん:05/01/26 19:20:06
> Memo1.Lines.LoadFromStream(TFileStream.Create(FileOpenDialog.FileName));

最悪なコードだな。インスタンス一つ行方不明
606デフォルトの名無しさん:05/01/26 20:50:42
>>605
たしかに最悪というか、邪悪だな。
すぐにアプリケーションが終了することが前提なコードだよ。
607デフォルトの名無しさん:05/01/26 22:09:44
でも、.NET普及したら、その世代では標準のコードになるのかもな
608デフォルトの名無しさん:05/01/26 22:16:44
.netでも使い終わったら解放するのがまともなコード
609デフォルトの名無しさん:05/01/27 04:45:50
>>608
うそ、マジで?
test.method(new kaba)とかはJavaでは普通に使われてるから
GC任せにするのが当たり前だと思ってたんだが・・・・・・
610デフォルトの名無しさん:05/01/27 05:51:00
ああいえばこういう
611デフォルトの名無しさん:05/01/28 05:23:54
RichEditで通常と太字で大きさ同じにしたいのですが
abcde ←1行目フォント指定しない
abcde ←2行目太字
で文字位置がだんだんずれていくんですがどうすればいいのでしょうか
612デフォルトの名無しさん:05/01/28 05:24:58
すいません、上げます
613デフォルトの名無しさん:05/01/28 10:21:52
固定ピッチのフォント使えばいいんじゃないの
614デフォルトの名無しさん:05/02/01 21:30:14
>>611
結局、普通書体でも太字でも同じ幅にしたいってことだろ?

LogFont.lfWidth の値を設定して、CreateFontIndirect /
SelectObject を使って TRichEdit のフォントを指定できないかな?
615デフォルトの名無しさん:05/02/01 23:41:19
上級スレにいきました。もう流してください。
結局ウインドウコントロールのEditは出来ないと言うことに落ち着いて、
GDI駆使して作ります。フリーなコンポも教えてもらい部分部分盗みながら
616デフォルトの名無しさん:05/02/05 02:39:16
ToolBtn := TToolButton.Create(Self);
ToolBtn.Parent := ToolBar1;

これでツールボタン作成するとめちゃくちゃ遅いです。
ツールバーをカスタマイズ出来るようにしたいのですが、起動に時間がかかります。
どうにかなりませんか?
617デフォルトの名無しさん:05/02/05 02:39:50
age
618デフォルトの名無しさん:05/02/05 03:16:21
下のコードはコンパイラは
自動的にポインタを割り当てるの?


with TStringList.Create do
try
SaveToFile('C:\Test.txt');
finally
Free;
end;
619デフォルトの名無しさん:05/02/05 03:23:12
TStringList.Create が返す参照を with でくくってるんだよ
620デフォルトの名無しさん:05/02/05 04:00:37
>>618
考えた奴には敬服するし、感心したけど、
初心者には、すすめられないコードかもね。
621デフォルトの名無しさん:05/02/05 04:06:55
VCLにそういうコードが載ってるよ。
622デフォルトの名無しさん:05/02/05 11:39:52
学校でDelphiを習い始めたのですが
これの言語の名前ってDelphiでいいんですよね?
いや、ホント意味不明な頭悪い質問で申し訳ありません
623デフォルトの名無しさん:05/02/05 12:15:42
おそらくそれで良いとお思いますが、そういったことも含めて、学校の先生に
聞いてみたらどうでしょうか。そのほうが確実ですよ。

624デフォルトの名無しさん:05/02/05 12:31:22
Object Pascal
625デフォルトの名無しさん:05/02/05 12:49:34
思えば、Delphi7の時に某がわざわざ
Object Pascalと呼ぶのは間違いだった
とかいう必要、あったのかね
626デフォルトの名無しさん:05/02/05 13:01:55
某は三流企業なので後先のことは考えていません。
最近は統合開発環境自体をDelphiと呼んで訳分からなくなってます。
627デフォルトの名無しさん:05/02/05 13:06:42
DelphiのC#をつかってつくったアプリ、とか?。。。えへへ
628デフォルトの名無しさん:05/02/05 17:38:46
もうDelphi言語です。
629デフォルトの名無しさん:05/02/07 03:25:23
思い返すとDelphi言語になってから凋落が始まった・・・・
630デフォルトの名無しさん:05/02/08 00:12:56
Delphi7になってから、
開発環境をDelphi Studio
開発言語をDelphi言語にしたはずなのに、
結局、どっちも広まらなかった。
中途半端にVisual Studioに対抗したのがいけないかったのかな
631デフォルトの名無しさん:05/02/08 04:17:14
>>622-623
積極的に学校の先生に聞いたほうがいいぞ
大抵の先生は、まってましたと言わんばかりにニヤニヤしながら答えてくれる
さらには、好感度もアップ。成績もアップだ。
もし、ムスッとしている先生であっても、内心キターとか思ってるはずだ
632デフォルトの名無しさん:05/02/08 10:31:42
馬鹿か、こいつ、と思うかも
633デフォルトの名無しさん:05/02/08 23:46:53
もうだめなんですか?delphi
634デフォルトの名無しさん:05/02/09 08:10:44
人の意見で自分を左右したければ MS についていきなさい。
635デフォルトの名無しさん:05/02/09 10:25:31
>>633
だめですねぇー、最近Delphiについてよいことは何も無い。
636デフォルトの名無しさん:05/02/09 11:08:34
うーん、なによりユーザが減ってコミュニティーも沈滞ぎみだし、本も出ないし、
新バージョンの評判は散々だし、.NET対応はまともにできてないし、・・・だめかも
637デフォルトの名無しさん:05/02/09 11:24:27
英語が読み書きできればね。
日本は、少ないパイを MS が丸ごとかっさらっていくから...
638デフォルトの名無しさん:05/02/09 11:33:51
英語の件は今に始まったことでもあるまい。最近のユーザ減少はDelphiのほうの問題
が原因だと思うけど
639デフォルトの名無しさん:05/02/10 08:10:09
減少してるのは日本だけだけどね。
640デフォルトの名無しさん:05/02/10 10:05:09
ふふふ、NG読んでね。
641デフォルトの名無しさん:05/02/10 10:14:20
どの nwesgroups だい?
642デフォルトの名無しさん:05/02/10 18:06:41
nwesgroupsって知らないけど、何?
643640:05/02/10 20:44:26
NG のことです。
644デフォルトの名無しさん:05/02/10 21:26:30
やっぱ日本だけじゃん
645デフォルトの名無しさん:05/02/10 23:56:02
だといいね。
646デフォルトの名無しさん:05/02/14 10:19:26
日本だけ減少の理由はブランド志向が高いからです。
自分の意見より他人の意見、他人の目が、大事な人が多いわけです。よね?
647デフォルトの名無しさん:05/02/14 10:25:42
>日本だけ減少

ソースプリーズ。

>日本だけ減少の理由はブランド志向が高いからです。

最近急にブランド志向が高くなったわけでもあるまい?

>自分の意見より他人の意見、他人の目が、大事な人が多いわけです。

最近、急に多くなったわけでもあるまい?

何の根拠もない脳内妄想は書かないように。
648デフォルトの名無しさん:05/02/14 12:40:13
>>647
自分の常識は世界の常識と妄想しておりました。
Delphiはアメリカのオークションでも少なかったです。
アメリカのヤフーオークションでは一つも無かったです。
それくらいしかソースがありませんです。
申し訳ありませんでした。<(_ _)>

追伸 私はDelphi勉強中です。
なんで人気が無いのか不思議なんです。 以上です。
649デフォルトの名無しさん:05/02/14 13:27:48
>>648
> なんで人気が無いのか不思議なんです。

Win32 ではすばらしいツールだと思いますけど、なぜ、いまよりユーザが多くない
のか不思議ですよね。Pascal に対する偏見や、もちろん、好き嫌いもあります。
最近は、.NET 対応がうまくいってないのが原因かもしれません。
見方はいろいろありますけど、プラットフォームとしての Win32 がもう少しで
終わる、という見方が多くなりつつあるのが影響してるのかもしれません。
650デフォルトの名無しさん:05/02/14 14:15:43
>>649です

ありがとうございます。わかりました。 

FileListBox1.Directory := 'log';

で出来ました。お騒がせしました。
651デフォルトの名無しさん:05/02/14 14:19:05
すみません。ごばくしました。
652デフォルトの名無しさん:05/02/15 08:27:34
>>648
いろいろな言語を習得しといて孫はないよ
653デフォルトの名無しさん:05/02/15 08:34:04
>>652
激しく同意
今、これさえやっとけば他はいらないという言語がないね。
654デフォルトの名無しさん:05/02/15 10:24:15
>>652
未だ何処までが習得なのか分からん
655デフォルトの名無しさん:05/02/15 14:19:00
>>652 ありがとうございます。 648です。

いろいろ言語にかじった事はかじったのですが、
どれも、入門を終えたレベルでありまして、
delphiだと何か作れそうで小物から作りはじめてます。

なんで早くに気づかなかったのかと後悔するばかりで・・・。うう。
656デフォルトの名無しさん:05/02/15 14:29:36
たしかに遅すぎたかも・・・・
657デフォルトの名無しさん:05/02/15 14:50:45
うう。
658デフォルトの名無しさん:05/02/15 16:06:51
String型変数の内容をTDate型の変数に値をぶち込む前に、その値が日付型かどうかチェックしたいんですがうまい方法は無いでしょうか?
659デフォルトの名無しさん:05/02/15 16:16:11
StrToDateDef
660デフォルトの名無しさん:05/02/15 16:17:38
変換する関数で例外発生の有無を確認
661デフォルトの名無しさん:05/02/15 16:35:56
RGBの値をHTMLのカラーコードに変換する方法はありますか?
662デフォルトの名無しさん:05/02/15 16:40:26
ありますよ
663デフォルトの名無しさん:05/02/15 16:48:37
ないですよ
664デフォルトの名無しさん:05/02/15 17:00:54
>>659-660
どうもありがとうございます。
おかげで先に進めそうです。
665デフォルトの名無しさん:05/02/15 18:54:49
プログラムを始めるのならグラフィックスプログラミングからやった方が楽しい気がするのは漏れだけ?
666デフォルトの名無しさん:05/02/15 20:30:32
動いてることが見えるプログラムは入りやすいと思う。

仕事だけど機械制御は結構楽しかった。
667デフォルトの名無しさん:05/02/17 02:47:30
Win3.1の頃、C++のおべんきょーは画像を表示しようという目的だった(エロ)
C++は面倒くさくなってDelphiに代わり画像+動画のビューワー(エロ)
DirectShowのおべんきょーはビデオキャプとDVDプレイヤーの作成(エロ)
目的意識でのエロの力は凄い








  でも途中で抜いちゃうとオネンネしちゃうんだよね
  おまいらもそうだっただろ?
668デフォルトの名無しさん:05/02/17 02:50:01
そんなもん、自分でつくらなくてもフリーでいいのがいっぱいあったけどね。
669デフォルトの名無しさん:05/02/17 02:56:05
自分好みの窓で動かしたいんだよ
670デフォルトの名無しさん:05/02/17 17:45:53
その目的意識はエロと関係ない。どっちかと言えばOS依存
671デフォルトの名無しさん:05/02/17 19:48:57
せっかくだからなんか作ろうぜ。
ちゃんと過程が目に見えるやつ。
672デフォルトの名無しさん:05/02/17 20:21:00
どうぞ
673デフォルトの名無しさん:05/02/17 20:29:04
>>672
おう。
674デフォルトの名無しさん:05/02/18 17:19:07
ある文字列と特定の文字列”ABCD”とのxorってどうやってとったらいいんでつかね?
675デフォルトの名無しさん:05/02/18 17:32:05
Byte(s[i]) のようにバイト配列とみなして、それぞれ xor を取る。結果を
文字列とみなすと痛い目にあう
676デフォルトの名無しさん:05/02/20 00:48:51
Delphiの本でお勧めされてるのは今買えないものが多いですよね。
今買えるものでお勧めはなんでしょう?
>331の
Delphiクイックリファレンス A NUTSHELL HANDBOOK
の他に、たとえば入門向けなどでいいやつはないですか?
677デフォルトの名無しさん:05/02/20 00:58:20
>>676
困ったことにマジで皆無
678676:05/02/20 01:11:21
それは困った。
679デフォルトの名無しさん:05/02/20 01:39:17
入門が遅すぎたのかも・・・・
680デフォルトの名無しさん:05/02/20 01:57:11
Seventh Delphiの旧Delphi入門より、
入門に適した書籍がないというのは大問題だよな。
681676:05/02/20 02:47:51
Pascalやるってのは遠回りですか?
一応他の言語はある程度わかるんですが。

リファレンス系でやってみてわからなかったら戻ってくるか。
682デフォルトの名無しさん:05/02/20 04:13:58
VB経験者向けのDelphi解説サイトがあったはず…。 探してみて。
683デフォルトの名無しさん:05/02/20 09:07:27
マジレスするとSeventhDelphiで勉強してみたら。
本じゃないけど
684デフォルトの名無しさん:05/02/20 15:44:06
塚越さぁぁぁん!!orz
685デフォルトの名無しさん:05/02/20 16:13:08
初心者です。

今6の無料版を使っています。
デルフィ本の古いバージョン4とか5とかで勉強しても大丈夫ですか?
686デフォルトの名無しさん:05/02/20 16:52:25
大丈夫ですけど、読み方はデルフィじゃなくてデルプヒですよ
687デフォルトの名無しさん:05/02/20 17:02:10
マジレス でるぽい っぽい
688デフォルトの名無しさん:05/02/20 17:28:02
デルフィじゃないんですか?
689デフォルトの名無しさん:05/02/20 17:28:56
デルピ?
690デフォルトの名無しさん:05/02/20 17:30:02
>>686
ありがとうございました。
691デフォルトの名無しさん:05/02/20 20:52:22
マジレス。デルファヒ
692676:05/02/20 22:31:55
SeventhDelphi見たんですけど旧の方はチェックしてなかった。
よさそうですね。やってみます。
693デフォルトの名無しさん:05/02/20 23:32:24
でるふぁい   でしょ?
694デフォルトの名無しさん:05/02/20 23:38:40
だれが呼んでもデルプヒだろ。
695デフォルトの名無しさん:05/02/20 23:59:50
本家は Δελφοι(デルフォイ)
696デフォルトの名無しさん:05/02/21 00:38:10
俺は デルフィ おまえも デルフィ 日本人は デルフィ

通は デルファイ
697デフォルトの名無しさん:05/02/21 08:01:15
デルッペ
698デフォルトの名無しさん:05/02/21 15:41:49
デルファイのvarってなんの略ですか?
VerjionのVerではないんですか?
699デフォルトの名無しさん:05/02/21 15:53:21
verjionがどう関わってくるのかの方が知りたいな
700デフォルトの名無しさん:05/02/21 19:42:43
varか
701デフォルトの名無しさん:05/02/21 19:50:39
Vermitetionの略だろ
702デフォルトの名無しさん:05/02/21 22:30:54
Verjion の検索結果 約 150 件中 1 - 40 件目 (0.45 秒)
703デフォルトの名無しさん:05/02/22 00:07:12
variable 変数
704676:05/02/22 01:04:01
在庫が連動してない某ブックサービスで
ダメモトで「Delphi オブジェクト指向プログラミング」注文してみたら
発送されましたメールが来た。ウヒョー。
この手の本は在庫連動してないところが穴場かも。

ギリシア語ではデルフォイ、英語っぽく読むとデルファイ。
日本人もだいたいデルファイ。

Vermitetionってなんや。
705デフォルトの名無しさん:05/02/22 01:30:52
あぁ・・あれ買っちゃったんだ・・(遠い目)
706デフォルトの名無しさん:05/02/22 01:59:23
delphiヘルプとVCLソースあれば十分だべ
707デフォルトの名無しさん:05/02/22 02:10:10
両方フリーじゃ無いがね。(ヘルプはフリーだとしょぼい)
708デフォルトの名無しさん:05/02/22 04:07:39
本当に入門であれば「はじめてのデルファイ」も買っといたほうがいいかも。
そっちから読み始めて色々とハマりながらいじってみる。
って、もうこれさえも手に入らない状態なのかな・・?
あとは入門系解説サイトが頼りかな、これは流石にDelphi3とか4時代よりは色々ある。

で、ある程度慣れたら「Delphi オブジェクト指向プログラミング」に進む、と。
709デフォルトの名無しさん:05/02/22 19:43:11
正直、今からDelphi入門はおすすめしない。
710デフォルトの名無しさん:05/02/23 04:11:48
でもなー、他におすすめってーと、Eclipseくらいしかないじゃん。

Win32ネイティブなプログラミングやりたいってーなら、どれも先が短そうだから
どれでもいいんじゃない?
711デフォルトの名無しさん:05/02/23 09:50:42
Eclipse は Delphi のような操作感のエディタなんですか?
712デフォルトの名無しさん:05/02/23 10:12:14
音声読み上げで「デルフィ」って読み上げられちゃって
ずっとデルフィ〜呼んでるんだけどこれでもいいですか?
713デフォルトの名無しさん:05/02/23 10:18:54
Delphi5で、オラクルに接続しているのですが、ユーザ数が120を超えると
「APからは接続されていません」とエラーが出るらしく、接続不可になるようです。
BDEを使っているのですが、コネクション数などを設定できるところがありますか?
オラクルの設定は問題がないようなのですが・・・
Delphi始めたばかりで何がなんだか分かりません。
どなたか回答いただけると嬉しいです。
714デフォルトの名無しさん:05/02/23 11:05:22
スレ違い
715デフォルトの名無しさん:05/02/23 23:53:04
>>711
いや、全く違う。けど、非常に魅了的なプラグインが各種揃ってて
意外と(;´Д`)ハァハァ
716デフォルトの名無しさん:05/02/24 01:16:59
Eclipse + Visual Editor Plug-in (+ SWT)
なんかだと、割と快適なポトペタプログラミングできちゃうしな。

JAVAだから、スレ違いだけど。
717デフォルトの名無しさん:05/02/24 07:29:33
レポートタイプのリストビューで非表示のカラムを作成することはできますか?
718デフォルトの名無しさん:05/02/24 19:03:46
TS:= TStringList.Create; としたら、同procedure内で TS.Free しないといけないんですか?
別の箇所で再度TSの中身を読み出したいのですが
719デフォルトの名無しさん:05/02/24 19:17:30
TStringListのインスタンスが有効となるスコープを広げろ。
720デフォルトの名無しさん:05/02/24 23:23:03
別に、同一の関数・手続き内で Free しなければならないということはないです。
好ましくはありませんが、別の関数・手続きにインスタンスを渡してつかってから
Free してもOKです。重要なのは不要になったら確実に Free できているかです。
721デフォルトの名無しさん:05/02/25 20:34:40
これから買う場合、どのバージョンが良いでしょうか?
やっぱり最新の2005が良いんでしょうか?
ちなみに.NETは、多分使いません。
722デフォルトの名無しさん:05/02/25 21:31:05
>>721
もう10ヶ月ほど無料版でねばって、
BCBが統合される次のバージョンがおすすめ。

本当に統合されればね。
723デフォルトの名無しさん:05/02/25 21:33:30
>>721
Win32ならDelph5〜7が最も完成度が高いと思う。
D2005なんて今まで使ってたコンポが普通に登録出来ないし
重いしお薦め出来ないね。
724デフォルトの名無しさん:05/02/25 22:05:57
>>723
となると、Delphi7がおまけについてくるDelphi8がベストになるのか!


・・・やっぱり今年の冬まで待った方が良いかも。
725721:05/02/25 22:40:34
>722-724
レスありがとうございます。

>722
書き忘れてしまったのですが、業務目的で使うので、
Pro版以上がいいんです。
もう次期バージョン出るんですか?
サイクル早いですよね、Delphiって。

>723
上の次期バージョンの話とあわせて聞いたら
2005はとりあえず、保留にしたほうが良さそうですね。

>724
8に7付いてくるって本当ですか?
おまけの7って、業務目的で使えるんでしょうか?

726デフォルトの名無しさん:05/02/25 23:22:48
業務で使うのに待つってどゆこと?
727デフォルトの名無しさん:05/02/25 23:36:07
勉強通なのさ〜
728デフォルトの名無しさん:05/02/26 00:08:49
Delphi 7.1 Professional StarTeam Edition
Delphi 7 Studio Professional 日本語版
Delphi 8 Professional

この中だったら、どれを買えばいいでしょうか?
729デフォルトの名無しさん:05/02/26 00:29:22
不本意ながら、8以外の選択肢は無いだろ。

8と2005だと、また悩みの種が増えるのだが。
8の付属の7は、業務でも使えるよ。
8自体が.NET Framework専用なんで、あまり使い道がないんだけどな。
730デフォルトの名無しさん:05/02/26 00:40:10
>>729
ありがとう 7買うところでした

もう一つ、オークションでDelphi 7 Studio Professional 売ってたりするのですが、
ユーザー登録ができない場合が多いのですが、
ユーザー登録が出来ない事で何か問題ありますでしょうか?
また、その価値はどれくらいなのでしょうか? 1万円くらい? 

だれか教えてください。

731デフォルトの名無しさん:05/02/26 01:33:05
>>730
Borlandをはじめ、大抵のソフトウェアメーカーは、
自社製品の一切の二次的権利譲渡を認めていない。

前のオーナーが購入後、未開封なことが確実ならともかく、
ユーザー登録出来ない開発環境を入手するのは、ナンセンスきわまりないのでやめとけ。

業務はおろか、フリーウェア配布もライセンス違反になっちゃうので、
そんなことで後ろめたい思いしたくないだろ。

あとついでに、最近のBorlandは、アカデミック版による商用利用も禁じているので注意。
732デフォルトの名無しさん:05/02/26 01:41:18
あと、そういったDelphi7をオクに出すやつって、
Delphi8とかにアップデートして、
そのDelphi7の使用権利自体消失してたりしていることが多いからな。

中古やオクでソフトウェアを買うのは、滅茶苦茶リスクが大きくて勧められない。
733721:05/02/26 11:12:28
>729
レスありがとうございます。
勉強になりました。

ちなみに>728,730さんとは別人なのですが、
危うく私も7買うところでした。

ただ少し気になったのが、7と7.1の違いについてです。
これってリリース済みのアップデートパッチが適用済みか
そうでないかの違いだけっていうことでいいんでしょうか?
(それともバンドル品の違いだけ?)
734デフォルトの名無しさん:05/02/26 12:04:14
>>731
>Borlandをはじめ、大抵のソフトウェアメーカーは、
>自社製品の一切の二次的権利譲渡を認めていない。
ソースは?

>>733 も、(2chに限らず)書かれていることを無批判で信じないほうが...

まぁ実のところ、オークションサイトでユーザー登録を含めた権利の譲渡まで気にしている人は
皆無であることは間違いないが。
735デフォルトの名無しさん:05/02/26 13:31:44
>>734
たとえば、Delphiなら、license.txtを、「譲渡不能」で検索してみなよ。
他の大概のメーカーの製品でも契約条項でその旨書いてある。
(ごく一部のソフトウェアでは、譲渡の方法まで規定しているのも昔見たことあったけど)
また、Delphiの具体例では、ちょっと前、
ttp://members3.jcom.home.ne.jp/jellyjam/
の記事で、ヤフオクでDel6Professional買ってしまった後、Borlandに
問い合わせたら、ライセンス上、使用を認められないといわれた、という話がある。
736デフォルトの名無しさん:05/02/26 13:34:56
>>735
譲渡不能というか、譲渡で検索した方がいいな、licenst.txtは。
737デフォルトの名無しさん:05/02/26 14:53:30
728 730 です
みなさん、大変参考になりました。ありがとうございました。
オークションでユーザ登録できないのをみたら通報することにします。

733さん、質問をかぶせてしまって申し訳ありませんでした。
738デフォルトの名無しさん:05/02/26 14:55:23
みんなもオークションでユーザ登録できないのをみたら通報してください。
739ミ,,゚Д゚彡 ◆A6VzDeLphI :05/02/26 16:44:23
>>738( ´д`)ハァ?
オクションで買わなきゃいいじゃん。
なんで、通報までしないといかんの?
740デフォルトの名無しさん:05/02/26 17:08:25
て言うか、明らかに違法なんだからヤフーが取り締まるべきだよな。
利用まで取ってるくせして全く管理できてない。
中国産の違法DVDとかも普通に売られてるし、さながらUGマーケットの様。
741デフォルトの名無しさん:05/02/26 20:54:41
>>737-740
通報してもYahooはなにも動いちゃくれないよ。
私も何度も通報したけど全然違法ソフトはなくならないしな
742デフォルトの名無しさん:05/02/26 20:59:10
観賞用に売り買いすることに何も問題はない。
743デフォルトの名無しさん:05/02/26 21:38:09
違法コピーだと知っていながら売買するのにはかなり問題がある。
Yahooは金が入ればいいんだろうけど。
744デフォルトの名無しさん:05/02/26 21:53:36
>>741
動かすべきなのはアホーじゃなくて警察だよ
745デフォルトの名無しさん:05/02/27 00:15:44
TLabelの文字列って、同一Label内でFontの使い分けってできるんですか?
それとも別々のLabelにしなきゃダメですか?
746デフォルトの名無しさん:05/02/27 00:55:47
できない。PaintBox で自力で書きなさい。どうとでも出来る。
747デフォルトの名無しさん:05/02/27 01:02:31
>>744
Yahooはポーズだけはとってるけど実際サイト見れば違法ソフトが氾濫しているんだから
結果としてYahooは取り締まる気は全然ないんでしょw

ちなみにYahooの場合、違法ソフトを見つけたら所定のページから通報してくださいって
ことになってるんだけど、通報しなければ放置ってことなわけではっきり言って後手後手。
んなもん、サイト監視してりゃ一発で違法だってわかるのに何でYahoo自らが削除をしようと
しないのか謎。通報にしか対処しないってどういうことなのかね?

どっかと提携したとか言ってたけど全然違法ソフトなくなってないじゃんw
748デフォルトの名無しさん:05/02/27 01:05:09
いい加減すれ違いだと気づけ
749デフォルトの名無しさん:05/02/27 13:47:38
Panelでスクロールバーのボタンやmemoの上の方が隠れてしまうときはどうすれば良いですか?
http://rivernet.cool.ne.jp/upmini/200502f/20050227134627_9524.jpg
750デフォルトの名無しさん:05/02/27 16:12:41
>>728
今から始めるDelphiスレなので問題無いような。 
yahooに責任転嫁する人は間違いなく怪しいような。
751デフォルトの名無しさん:05/02/27 16:24:42
ヤフーの行為に問題がないなら、形を変えたソフトウェアの中古販売
やレンタルを成立させる事ができる。
個人間売買の仲介役として、軒先を貸してるだけって言えば通る事に
なる。
752デフォルトの名無しさん:05/02/27 23:15:21
だから通ってるんでしょ? 問題ないなら、議論は不要
753デフォルトの名無しさん:05/02/27 23:16:33
問題あっても議論は無意味
754デフォルトの名無しさん:05/02/28 12:43:26
Delphiマガジンの表紙って古いエロ本みたいだね
755デフォルトの名無しさん:05/03/01 01:55:38
だが、それがいい。
756デフォルトの名無しさん:05/03/01 02:37:46
所詮 Delphi はドマイナー
757デフォルトの名無しさん:05/03/02 18:44:08
マイナーでいいよ
758デフォルトの名無しさん:05/03/02 19:17:27
マイナーではなくドマイナー。Python より少ないユーザ。
759デフォルトの名無しさん:05/03/02 20:20:47
ザスパ草津はドマイナーだからベルディファンになれ
っていわれても無理なお願いというものです。
ザスパ草津にはザスパ草津なりにいいとこがあるのです。
760デフォルトの名無しさん:05/03/02 23:28:05
誰もそんなこと言ってない。被害妄想?
761デフォルトの名無しさん:05/03/10 10:40:45
ドマイナーだから感謝してるわけです。 にヒヒ
762デフォルトの名無しさん:05/03/10 12:27:49
ソフトウェアの譲渡は法律で認められているはずだが?
法律で認められている事を禁止する契約項目は無効なはず。
提訴でもしないかぎり拒否し続けるだろうが
763デフォルトの名無しさん:05/03/10 13:25:58
お前は
音速が
遅い


というか、例のごとく、まずはソースを出せ。
話はそれからだ。
764デフォルトの名無しさん:05/03/10 14:05:59
最近のパッケージソフトはソフトウェアの販売でなくライセンスの販売が主流だと思うのだが。
765デフォルトの名無しさん:05/03/10 16:17:59
>>764
そうなんだよなあ。
「販売という言葉を使いますが、実際は契約です」とかなんとか書いてあるよな、最近のパッケージソフトの規約を読むと。
おそらく、インストールの時点で使用権の扱いに同意した、ということになるんだよな。

って俺、これであってる?
766デフォルトの名無しさん:05/03/11 03:29:12
いい加減すれ違いだと気づけ
767デフォルトの名無しさん:05/03/14 22:44:54
TButton.Create(Self);
で生成したボタンのOnClickってどこに書けばいいんですか?
768デフォルトの名無しさん:05/03/14 23:07:07
>>767
くだすれDelphi(超初心者用)その23
http://pc5.2ch.net/test/read.cgi/tech/1110470895/
769デフォルトの名無しさん:05/03/16 01:38:20
CはシャープでDelphiはマイナーか。
770デフォルトの名無しさん:05/03/16 12:40:38
イミワカラン
771デフォルトの名無しさん:05/03/16 17:35:41
いつものアンチ低脳がフラットとメジャーを勘違いしてるだけだよ
772デフォルトの名無しさん:05/03/17 17:40:24
Delphi6で自作クラスを作りたいのですが
一番シンプルな形を教えてください。
773デフォルトの名無しさん:05/03/17 18:54:28
type
 TMyClass = class
 end;
774デフォルトの名無しさん:2005/03/21(月) 04:39:27
今日ソフマップでDelphi8 Professinonalを19800で買ってきた。
売切れそうだから、勢いで買っちゃったんだが
皆さんの感覚でこれは
安い?高い?
どっち
775デフォルトの名無しさん:2005/03/21(月) 06:18:39
普通。
10年近く前に買ったdelphi2 developerも2万ぐらいだった気がする
776デフォルトの名無しさん:2005/03/21(月) 08:07:12
>>774
安い
777デフォルトの名無しさん:2005/03/21(月) 09:06:38
777
778デフォルトの名無しさん:2005/03/23(水) 01:11:22
>>774
激安だな。
779デフォルトの名無しさん:2005/03/23(水) 03:24:49
(・∀・)ニヤニヤ
780デフォルトの名無しさん:2005/03/29(火) 13:26:27
(・∀・)ニヤニヤ
781デフォルトの名無しさん:2005/04/29(金) 22:02:02
TPanelの上にTImageを乗せておくと、TPanelを.Freeする際にはTImageの.Freeは自動で行われますか?
782デフォルトの名無しさん:2005/04/29(金) 22:25:26
>>781
されるよ
783デフォルトの名無しさん:2005/04/30(土) 01:25:33
>782
こらこら
>781
ふつーForm上のPanelをコードでFreeしねぇだろ
どうしてもってぇんならImageも別途Free
784781:2005/05/01(日) 17:09:27
そうですか、あともう一つ。
Panelの上に線を引きたいのですが、その場合はImageを貼り付けるしかないのでしょうか。
785デフォルトの名無しさん:2005/05/02(月) 00:27:39
>781
次の中から自分にあったものをどぞ
1.Panelの上にImage(Image.Picture.Canvasに描画)
2.Panelの上にPicture(PictureのOnPaintでPicture.Canvasに描画)
3.Panelの上にShape
786デフォルトの名無しさん:2005/05/03(火) 22:34:59
DELPHI 7のパーソナルではフリー・シェアウェアを作って公開できますか
787デフォルトの名無しさん:2005/05/04(水) 00:02:40
パーソナルは商用アプリだめだったんじゃない
788デフォルトの名無しさん:2005/05/04(水) 00:05:33
寄付歓迎、とか広告掲載とかはどうなんでしょう?
789デフォルトの名無しさん:2005/05/04(水) 00:28:19
ボーランドさんに聞け。
790デフォルトの名無しさん:2005/05/04(水) 14:07:30
広告なんてプログラム関係なしに自分のHPで勝手にやたら良いんじゃないの?
それともプログラム本体に広告付けるって事か(だめだと思うけど)
791デフォルトの名無しさん:2005/05/05(木) 05:41:16
某MMORPGゲーム内でのチャット(発言)ログをとりたいと思うのですが
詰まってきたのでアドバイスお願いします。

いまのとこわかったこと、できたこと。
・MMOのプロセスメモリのある開始アドレスから+400hおきに1発言内容が入ってる。
・発言は100個まで残ってる。
・FindWindow(),GetWindowThreadProcessId(),
 OpenProcess(),ReadProcessMemory()などを使って現在のログが取得可能。
・TimerEvent(300ms)毎に現在のログとその1周期前のログを比較して
 増えてる発言分をtxtに出力。

よくわからないこと
・たしかにログっぽいものが取れているのですが、よーく見てみると
 発言内容を飛ばして保存してたり、同じ発言を複数行に保存してたりします。
・現在のログと1周期前のログの2つをそれぞれTStringListにいれてるせいか
 やたらと重くなります。

発言された瞬間(プロセスメモリが更新された瞬間)にその分を保存できれば
余計な動作が少なくていいように思えるのですが、どうすればいいのかわかりません。
792デフォルトの名無しさん:2005/05/05(木) 06:06:00
メインスレッドのプライオリティの変更方法を教えてください
793デフォルトの名無しさん:2005/05/05(木) 10:40:21
tinifileで、複数のアプリから同時に書き込みを行うと、エラーがでるんですが
ファイルロックするにはどうすればいいですか?
794デフォルトの名無しさん:2005/05/05(木) 15:59:15
マルチメディアコンポーネントでMP3ファイルを再生したのですが、
Win2000ProのPCでは問題なく再生できるのに、WinXPのPCでは
「指定されたファイル名拡張子からデバイスの種類を判断できません」
とメッセージが表示され再生できません。
Delphiの問題ではなく、環境の問題のように思いますが、
解決方法をご存じの方、よろしくお願いします。
795ミ,,゚Д゚ミノ ◆A6VzDeLphI :2005/05/05(木) 21:52:21
>>793
FFileStream := TFileStream.Create(TextFileName,
fmOpenReadWrite or fmShareExclusive);
796デフォルトの名無しさん:2005/05/06(金) 00:41:15
>>792
SetThreadPriority

>>791
>・たしかにログっぽいものが取れているのですが、よーく見てみると
> 発言内容を飛ばして保存してたり、同じ発言を複数行に保存してたりします。
ロガー側が読み取り中にゲーム側がログのリストを更新してるのカモ。
1繋がりにマッピングされてるのなら 400h * 100 一気に読み取るとかすれば改善されるカモ。

>発言された瞬間(プロセスメモリが更新された瞬間)にその分を保存できれば
>余計な動作が少なくていいように思えるのですが、どうすればいいのかわかりません。
ゲームアプリ側でアドインをサポートしてるのなら兎も角、メモリの読み書きに応答するには
デバッガみたいなことせにゃあかんので不可能ではないかも知れんがむりぽ。
ソケット割り込み方式にするほうが現実的カモ。
そうすれば差分を調べる必要がなくなるから、
>・現在のログと1周期前のログの2つをそれぞれTStringListにいれてるせいか
> やたらと重くなります。
これも改善されカモ。
797デフォルトの名無しさん:2005/05/06(金) 01:10:47
>>794
自己レスです。
レジストリ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions に、
「mp3」として「MPEGVideo」を追加すれば、再生できるようになりました。
以前は、win.ini での設定だったようですが、今は、レジストリでの設定のようです。
798791:2005/05/07(土) 08:27:21
>>796
レスthxです。
パケット割り込み方式とはどういうことをすればいいのか
まだよくわかりませんが考えて見ます。

思ってたより難しい・・・。
799デフォルトの名無しさん:2005/05/13(金) 09:25:33
アクティブなコントロールを取得する方法を教えてください。

VBでは
If Me.ActiveControl = txtHoge Then
End If
のような感じです。
800デフォルトの名無しさん:2005/05/13(金) 09:43:50
TForm.ActiveControl
801デフォルトの名無しさん:2005/05/13(金) 10:03:09
>>800
サンクスです。
802デフォルトの名無しさん:2005/05/14(土) 19:37:16
TEditに入れる文字を半角数字だけにする方法はありますか?
803デフォルトの名無しさん:2005/05/15(日) 00:24:27
一つのテキストファイルから、
-------abc--------の文字列から
-------abc_end----の文字列まで
を読み込みたいのですが、何かいい方法はありませんか?
804デフォルトの名無しさん:2005/05/15(日) 00:47:05
質問あげ
805デフォルトの名無しさん:2005/05/15(日) 01:27:57
>>803
イマイチ意味がよくわからんが、
とりあえず全部読んで、Pos とかで -------abc-------- と -------abc_end---- 検索してその間を読めばいいんでないの
806デフォルトの名無しさん:2005/05/15(日) 09:20:25
何が難しいのかが分からん
807デフォルトの名無しさん:2005/05/15(日) 09:45:11
検索した文字列が何行目にあるか取得したいんだけど、どうすれば良いの?
808デフォルトの名無しさん:2005/05/15(日) 10:00:32
>>805
サンキュ
なんかできそうな感じがしてきたw
ありがとう
809デフォルトの名無しさん:2005/05/15(日) 10:47:39
例外が機能しない
810名無し募集中。。。:2005/05/15(日) 14:04:50
>>154
>>155
すげーありがとう! 今落とし中

疑問 ポトペタ ってなんですか?
811デフォルトの名無しさん:2005/05/15(日) 15:01:02
PowerPointでプレゼン作るみたいに、
ボタンとかテキストエディタとかをドラッグアンドドロップして、
GUIをデザインする方式のこと。
812名無し募集中。。。:2005/05/15(日) 15:06:41
>>811
ありがとうございます
VBとかVCとかと同じですね そういう言い方あったんですね
813デフォルトの名無しさん:2005/05/15(日) 15:51:19
>>812
VC6以前とかアンマネージドのVC.NETなんかでできるポトペタはとても自由度が低いんで、
あんまりポトペタと言わないと思うな。
814名無し募集中。。。:2005/05/15(日) 18:53:46
>>810 です

今、インストを始めたんですが、
「Delphi CDに表示されている、、、、」とメッセージがでて
インストール番号とキーを聞いてきました

無料で試せるって見たんだけどダメなんですかね?
815デフォルトの名無しさん:2005/05/15(日) 19:35:48
>>814
ここでキーを取得しる!
816デフォルトの名無しさん:2005/05/15(日) 19:37:58
817デフォルトの名無しさん:2005/05/15(日) 20:35:32
また、Del厨誕生ですか?w
818デフォルトの名無しさん:2005/05/15(日) 20:49:55
すみません意味がよく分かりません。Delphiはとてもよいツールですよ?
819デフォルトの名無しさん:2005/05/15(日) 21:22:56
m9(^Д^)プギャー
820名無し募集中。。。:2005/05/15(日) 21:27:18
>>815
>>816
ありがとうございます

やってみましたが、
Borland Mail News Members アカウントを持っていないため
アカウントの作成 をしようとしましたが
エラーが発生しました
>Internal Application Error
>内部アプリケーションエラー
>Unable to complete network request to host "202.33.253.164". Error writing data to the connection. 既存の接続はリモート ホストに強制的に切断されました。
このページ古いのかな?((C) 2001 Borland 、、、とあるので)

そこで、ボーランドのトップからBorland Mail News Membersに登録しました
登録はできたんですが、パスワードを設定するところが見つからないので、
>>816 からたどった、ログインも出来ないのです
821名無し募集中。。。:2005/05/15(日) 21:38:43
昔、マックでPascalでツールボックスで遊んだりしてたんですよね
アルゴリズム+データ構造=プログラム 読んですっかり信奉者になってました
Object Pascalでもちょっと遊んでました
今は仕事でVBとかやってるんですが、また遊びたくなりました
822デフォルトの名無しさん:2005/05/15(日) 23:14:02
使用者登録ってしないとするでなんか違うんですか?
ルーターで弾かれてるのかどうかわかりませんが、
アプリケーションから登録しようとすると、内部アプリケーションエラーで使用許諾コードを取得できないし、
Emailで取得しようとしても、「既存の接続はリモート ホストに強制的に切断されました。」
とかいって許諾コードがもらえないし...
3年前くらいは昔はすんなり許諾コードもらえたんだけどな...
823デフォルトの名無しさん:2005/05/15(日) 23:25:49
どうしてもつながらないなら、Borlandにメールしてみなよ
824デフォルトの名無しさん:2005/05/16(月) 01:11:48
>>820
>Internal Application Error
>内部アプリケーションエラー
>Unable to complete network request to host "202.33.253.164". Error writing data to the connection. 既存の接続はリモート ホストに強制的に切断されました。

出るね
825デフォルトの名無しさん:2005/05/16(月) 15:58:28
さぁて久しぶりにdelphiさわってみるか
半年振りぐらいかな?
なんかかわったことあった??
826デフォルトの名無しさん:2005/05/16(月) 17:58:35
いつのまにかDelphi8にアップデートが出ていたとか
827名無し募集中。。。:2005/05/17(火) 00:16:57
>>823
それも手ですね
表から入って
>>824
きのうDelphi6のキーのみ取得できる英語のページまで行けたんですが
そこで英語でレジストしようとしても
>Registration Information
>To register please fill out the following form and click on the 'Register' button at the bottom of the page.
>Please correct the following errors:
>The registration process failed
とかでちゃうんです
赤文字で必須の項目埋めたつもりなんですけど、、、
ううう、どうしたものか

質問です
使用期限なしでDLして使えるのって、
やっぱDelphi6のPersonalだけですよね?
828デフォルトの名無しさん:2005/05/17(火) 00:53:45
まさかDelphi2005のフリー版をwebで公開する前触れなのかねー?
829デフォルトの名無しさん:2005/05/17(火) 05:43:36
ボーにメールしたら一発で終了なんだが・・・。
俺はそうした。
830ななしへたぐらま ◆XcB18Bks.Y :2005/05/17(火) 15:15:32
>>802
こんなのでどうでしょうか.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
 cDigitChars = ['0'..'9']; // 'digit'=数字
begin
 if not (Key in cDigitChars) then
  Key := #0;
end;

>>807
テキストを文字列リストに読み込んで1行ずつAnsiPosで検索…かなぁ.
831デフォルトの名無しさん:2005/05/17(火) 18:27:28
>>807
Memoだったらposで場所を探して、MemoにEM_LINEFROMCHARメッセージを
送って取得。
832807:2005/05/17(火) 21:12:44
>>831
d
833デフォルトの名無しさん:2005/05/17(火) 22:41:05
>>802
コントロールのウィンドウスタイルに ES_NUMBER を追加
834名無し募集中。。。:2005/05/17(火) 23:21:42
>>816
>>824
>>829
さっきやったら、登録出来ました!!!
インストールもできた

みなさんありがとうございました
休みの日にいじってみたいと思います
835デフォルトの名無しさん:2005/05/19(木) 00:05:16
自分でも何したか解らないんだけど、いきなり
[エラー] MAIN.PAS(101): forward または external 宣言された 'TMainForm.FileOpen1Execute' が見つかりません
こんなエラーが大量に出るようになったんだけどどうしたら良い?
つうか何でこんなことになったのかもよくワカラン…orz
誰か助けてくれ・・・
836デフォルトの名無しさん:2005/05/19(木) 01:06:41
>>835
おちついて、
TMainForm=class(TForm)
の下らへんにある
FileOpen1Executeと書いてある行をコメントアウトしてみよう

837デフォルトの名無しさん:2005/05/19(木) 02:11:28
>>836
余計におかしくなった・・・orz
コメントアウトしてたらtypeからprivateの間のprocedureを全部コメントアウトすることになるよ・・
アクション関係を触ろうとしたら実現部が無いって言われる・・・
1から作り直し?
838デフォルトの名無しさん:2005/05/19(木) 02:29:54
そこまでくると、ソース見ないとわからないなー
839デフォルトの名無しさん:2005/05/19(木) 14:34:51
>>835
宣言があるのに実装部に対応する関数(メソッド)が無いと出るね。
840デフォルトの名無しさん:2005/05/19(木) 17:40:37
>>835
beginとend数が合わない(endが足りない)からじゃない? そうでなければ、宣言の
実装部を書こうとして実装部のprocedure/functionの頭書きだけを書いて(begin,
endを含む)コード部を書いていないとか。

コンパイル時にその宣言が「他の宣言内のprocedure/functionに見える」状況だと
そのコンパイルエラーが出る時があるよ。実は私もそのエラーを出したばっかり
だったりする(私の場合は上記の後者)。
841名無し募集中。。。:2005/05/20(金) 00:48:33
>>682
これが気になる
842デフォルトの名無しさん:2005/05/20(金) 10:16:30
>>481
Delphi Acid Floor じゃね?
843デフォルトの名無しさん:2005/05/20(金) 10:16:59
×>>481
>>841
844デフォルトの名無しさん:2005/06/11(土) 10:03:22
おしえてください〜

フォームを最小化するときにアニメーションしちゃうんですが
これをアニメーションしないようにしたいんです。

どうも、Win2000のときはアニメーションしないんですが
XPのときだけアニメーションしちゃうんで、困ってます。
お願いします。
845844:2005/06/11(土) 10:04:48

あ、ちなみに
環境はDelphi7.0

コードは↓こんな感じです。
WindowState := wsMinimized;

お願いします。
846デフォルトの名無しさん:2005/06/11(土) 13:41:55
>>844
レジストリの問題じゃないかしらん
847デフォルトの名無しさん:2005/06/11(土) 16:17:32
標準ではアニメーションする(それはレジストリでの設定)ってのは
分かるんです。

ただ、それを止めたくて
ようは、パッと消したいだけなんですよ。

        Delphiアプリ  エクスプローラ
  XP      する する
  WIN2000  しない する


XPスタイルの場合は標準的な動きをしちゃうのかな???
848デフォルトの名無しさん:2005/06/11(土) 17:40:14
>>844
Hide;
849844:2005/06/12(日) 13:38:35
単純にアニメーションさせないようには無理っぽいですか・・

Hideするとタスクトレイからも消えるから、
メインウィンドウの場合、

Hide→最小化→show

みたいな処理で対応しよかな。
ありがとさん。
850デフォルトの名無しさん:2005/06/26(日) 13:03:37
 
851デフォルトの名無しさん:2005/06/27(月) 22:38:21
まぬけな質問かもしれませんが、教えて下さい。
Delphi2005で、ActiveXコントロールの取り込みが出来ず困っています。

メニューから「コンポーネント(C)」−「コンポーネントのインポート(Z)」
「ActiveXコントロールの取り込み(A)」→(コントロールを選択)→
(パレットページなどを設定)→(インストール設定)
上記手順を踏むと、ヘルプを見るとインストール設定のページで
「ユニットの作成」「既存のパッケージにインストール」
「新しいパッケージにインストール」の選択肢が出てくるようなのですが、
「ユニットの作成(U)」と「Project1.bdsproj(適当に新規作成したWin32プロジェクト)
プロジェクトにユニットを追加(T)」の選択肢しか出てこず、
パッケージへインストールが出来ないんです。

何かやり方が悪いんですかね?
パッチはUPDATE3まで当ててあります。

Delphi6では同じ手順でインストール出来たんだけど…
852デフォルトの名無しさん:2005/07/11(月) 10:06:42
853デフォルトの名無しさん:2005/07/12(火) 16:43:36
>>851
パッケージは取り込んだActiveX毎に作成してみてはどうでしょう?
後々の管理も大変楽になります。
〜手順〜
1.ActiveXコントロールの取り込み
2.ユニットの作成
3.一旦全て閉じ新規でパッケージを作成。
4.作成したユニットを取り込む。
5.パッケージ保存&インストール。
854デフォルトの名無しさん:2005/07/21(木) 15:43:41
実行ファイルからプロジェクトファイルを作ることは出来ますか?
855デフォルトの名無しさん:2005/07/21(木) 23:09:05
逆コンパイル?
856デフォルトの名無しさん:2005/07/21(木) 23:56:22
>>855
あ、そう言うんですか・・・
それ用の何かお勧めのソフトはありますか?
857うんこ:2005/07/22(金) 00:36:30
うんこage
858デフォルトの名無しさん:2005/07/22(金) 04:20:31
.NET Framework版のDelphiバイナリ(つーかありゃ中間語ファイルだが)なら、
Reflector for .NETで、ソース見えるかもな。
Win32用Delphiバイナリ用の、まともな逆コンパイラ見たことねー。
859デフォルトの名無しさん:2005/07/22(金) 14:44:26
>>854
一般的には無理かと
860デフォルトの名無しさん:2005/07/23(土) 16:56:18
>>854
通報しますた
861デフォルトの名無しさん:2005/07/26(火) 03:52:45
862デフォルトの名無しさん:2005/09/15(木) 01:13:07
>>37
Part99までできますが
863デフォルトの名無しさん:2005/09/15(木) 02:03:45
>>862
少なくとも、だろ
864デフォルトの名無しさん:2005/10/13(木) 01:21:58
自作でWINDOW4分割のブラウザを作ろうとしているのですが
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
865デフォルトの名無しさん:2005/10/13(木) 01:24:25
procedure TForm1.Button1Click(Sender: TObject);
var
url: WideString;
flg,Tmp: OleVariant;
begin
if OpenDialog1.Execute then
begin
url := Edit1.Text;
flg := 0;
Form2.WebBrowser1.Navigate(url, flg, Tmp, Tmp, Tmp);
end;
end;

unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw_TLB;
type
TForm2 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
上記のスクリプトでホストアプリケーションを使用としないとデバッグできませんエラーが表示されてしまいます・どこが間違っているの川kルカ他教えていただけないでしょうか?よろしくお願いいたします。
866デフォルトの名無しさん:2005/10/13(木) 02:13:04
>>864
同じプロジェクトグループ内にDLLとか作ってないか?
プロジェクトマネージャでアプリケーションのプロジェクトをダブルクリックしてやり直してみ。
後、Delphi はスクリプト言語ではない。
867デフォルトの名無しさん:2005/10/15(土) 08:27:24
おまいら!今日からC言語を学んでいくぞー!パート2
http://pc8.2ch.net/test/read.cgi/tech/1128637438/

C言語のスレがうらやましいのでこっちでも問題出してくれませんか
868デフォルトの名無しさん:2005/10/15(土) 08:47:48
じゃあ入力された2つの数字を足して答えを表示するプログラムを作れ。
+−×÷を選べるとなおよし。
869デフォルトの名無しさん:2005/10/15(土) 09:46:50
再起下降で処理していれば +30点
演算子優先順が処理出来ていれば +30点
() 付が処理出来てるなら +30
コードがこの1レス内に収まれば+5点
870デフォルトの名無しさん:2005/10/15(土) 11:51:14
全部できても95点ですが
871デフォルトの名無しさん:2005/10/15(土) 11:52:16
動けば+5点
872デフォルトの名無しさん:2005/10/15(土) 11:56:57
平常点30はやるから心配するな。
873デフォルトの名無しさん:2005/10/15(土) 12:09:36
>>869
2つの数字の演算でエレガントな()の使い方教えてください。
874デフォルトの名無しさん:2005/10/15(土) 12:11:14
課題 フォーム上で
マウスを押して動かして離すまでの 座標を動的配列に記録
 1、 OnPaintで 画面に結果の折れ線を表示せよ
 2、Captionに 始点と終点をつないだとした時の面積を表示せよ

875デフォルトの名無しさん:2005/10/15(土) 13:14:50
>>871
動かなくても95点取れることもあると?(藁
876868:2005/10/15(土) 21:54:59
というかこれぐらいのしく題1日で完成汁!
877デフォルトの名無しさん:2005/10/15(土) 23:43:49
すみません。誰かDelphiの帳票(QReport)の使用方法が
詳しく乗ってる本かWebサイト知ってたら教えて・・・・

画面作成とかゲーム作成とかはいろいろと本とかWeb
サイトに乗ってるのに・・・・
878デフォルトの名無しさん:2005/10/16(日) 05:01:22
>>877
そんな面白くないもの、だれがいちいち書くと思ってるの?

879デフォルトの名無しさん:2005/10/16(日) 08:30:03
>>878
面白くなくても、必要。
世の中にはさらに面白くないものはいくらでもある。
880デフォルトの名無しさん:2005/10/16(日) 08:35:01
>>879
うーん。 スマンな。Delphiは1から使ってるけど、ソレは使った事がない。
中の人が見えないコンポ使うより
自前でTPrinterに吐き出すのが楽だったもんだから・・・・

みんなそうなんだと思うよ。 
説明文書けるくらい使い倒そうという奴は、そもそも使わないという罠
881デフォルトの名無しさん:2005/10/16(日) 12:00:11
説明文書けるくらい使えるても、わざわざ誰もおもしろがってないもの公開しないだろ
882デフォルトの名無しさん:2005/10/16(日) 17:02:11
>>880
QuickReportは使える帳票ツールだぞ。
Delphi使うならソース購入するぐらい便利。
クセはあるけどな。
そのため解説サイトが少ないと思われ。
883デフォルトの名無しさん:2005/10/16(日) 17:11:10
使えるのは認めるけど細かいことやろうとするとどうしても
TPrinterでごりごりやるほうがよくてな。

884デフォルトの名無しさん:2005/10/16(日) 17:28:43
>QuickReportは使える帳票ツールだぞ。
>Delphi使うならソース購入するぐらい便利。
>クセはあるけどな。



>そのため解説サイトが少ないと思われ。

は矛盾してる。ね
885デフォルトの名無しさん:2005/10/16(日) 20:04:34
矛盾してない。ソース買って使い倒せるなら解説サイト立てる意味ないし。
886デフォルトの名無しさん:2005/10/16(日) 21:06:45
(´,_ゝ`) プッ
887デフォルトの名無しさん:2005/10/16(日) 22:01:13
現実にないんだから、原因はどうでもいいけどね
888デフォルトの名無しさん:2005/10/16(日) 22:59:03
>>877
Delphiデータベースアプリケーション開発ガイド(絶版?)
http://www.amazon.co.jp/exec/obidos/ASIN/4798000108/249-7589637-1869100
簡単な使い方が載っていたような。

Delphi5実践データベースプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4877830251/249-7589637-1869100
見たことは無いけど、たぶん簡単な使い方くらいは載っているのでは。

Quick Reports 拡張編
http://www.amazon.co.jp/exec/obidos/ASIN/4939049272/249-7589637-1869100
見たことは無いけど、拡張というぐらいだから・・・
889デフォルトの名無しさん:2005/10/16(日) 23:00:15
890デフォルトの名無しさん:2005/10/16(日) 23:01:57
891デフォルトの名無しさん:2005/10/17(月) 17:47:51
QReportの件
ありがとー。入手して参考にさせてもらうよ。
892デフォルトの名無しさん:2005/10/21(金) 22:47:47
Googleで検索しても見つからないのですが、
指定したフォルダの下層フォルダ一覧を調べるにはどの関数を
使えばいいでしょうか。
893デフォルトの名無しさん:2005/10/22(土) 12:34:39
>892
FindFirst/FindNext/FindClose
894デフォルトの名無しさん:2005/10/29(土) 10:01:40
delphiの.netフォームアプリでデレゲートを扱うにはどう書けばいいのでしょうか
895デフォルトの名無しさん:2005/10/29(土) 20:40:46
聞いたこと無いな。
delphiの言語仕様にdelegateはないと思う。
896デフォルトの名無しさん:2005/10/29(土) 21:11:10
>>894
メソッドポインタではダメなの?
897デフォルトの名無しさん:2005/10/31(月) 20:49:50
delphiの無料版ってどこで手に入れるの?
898デフォルトの名無しさん:2005/10/31(月) 21:00:53
899デフォルトの名無しさん:2005/11/05(土) 14:24:55
こちらの皆様、始めまして。くだスレだと漏れにはレベルが余りに高すぎるのでこちらで。
最近、Delphiを使い始めて、Tips表示の「今日のヒント」みたいな機能を付けたいのですが、
どう書くといいのでしょうか?アドバイスいただければ幸いです。
900デフォルトの名無しさん:2005/11/05(土) 15:22:44
JVCLにTIPS表示ウィンドウのコンポーネントがある。
http://sourceforge.net/project/showfiles.php?group_id=45786
http://onigiri.s3.xrea.com:8080/delphi/index.php?JEDI

Mega DemoのJv Dialogsの左から2番目のサンプルを試してみれば、どんな物か分かる。

ソースをダウンロードして、フォルダを適当な場所に置いて
インストール(JCLのインストーラー->JVCLのインストーラーの順)すれば使える。

注意点
1.物凄い量のコンポーネントがインストールされてしまう。
 嫌なら自作するか、パッケージを選択インストールする。
2.海外製コンポーネントなので文字化けするかも
 その場合Fontプロパティを開いて、日本語に変更する。

コンポーネント・パレットがあふれたら、GExpertsがお勧め。
http://www.gexperts.org/
http://onigiri.s3.xrea.com:8080/delphi/index.php?GExperts
901899:2005/11/05(土) 16:21:48
>>900
早速アドバイス有難うございます。
でも、なんか凄そうですね。漏れの手には負えなさそう。一応見てみますね。
漏れの説明下手で誤解を与えてしまったのかな?処理系も書いていなかったですね。P6です。

さっき、「Delphi コンポーネント」でぐぐっていたら、GExpertsがお勧めと書いてあったサイトがあって、
Delphiソフトウェアコンポーネント紹介(鉄飛テクノロジー)というところなんですが、ふーんと眺めていて、
GExpertsってそういう時に使うんですね。ご親切にどうも有り難うございました。
ttp://www.teppi.com/Components/Article/components_0020

有益な情報が得られることを期待して、昨日このスレを順番に携帯でImonaで読んでいたのですが、
本当に役立ちました。確かに今の漏れには、コードはさっぱりなのですが、何だか暖かみを感じました。

------
漏れがこの「今日のヒント」機能を参考にしたのは、WinCVSというやつのもので、落ち着いてよくよく見てみると、
tips.txtというファイルから読み込んでいることがわかりました。説明不足で本当にごめんなさいでした。
その形式は1行1項目でテキストファイル形式なので、フレームを開いてTMemo辺りにランダムでロードすれば
いいのかなあとか漠然と思っているのですが、如何でしょうか?

また頑張ってみます。
902デフォルトの名無しさん:2005/11/05(土) 18:44:00
>>901
> フレームを開いて
ウィンドウの事かな?

> TMemo辺りにランダムでロードすれば
よさげです。
903デフォルトの名無しさん:2005/11/05(土) 19:06:21
>>902
そうですね、Delだとフレームと書いてあるから。ついそう言ってしまいます。
良さげだということで、画面デザインとか、これから書いてみます。
本当はメニューから選択した時点でヒントウィンドウを開くという処理なんですが、
コードは漏れにはまだよくわかっていないので、わかる分だけで・・・。

まるまるWinCVSのパクリだけど・・・、ヘルプメニューから「今日のヒント」で選択すると
●ウィンドウデザイン

┏━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ヒント                              ......┃
┃                                    ┃
┃┏━━━━━━━━━━━━━━━┓           .┃
┃┃電球の絵 知っていますか?     .┃           .┃
┃┃                     ...┃           .┃
┃┃ヒントの中身               .┃           .┃
┃┗━━━━━━━━━━━━━━━┛           .┃
┃                                    ┃
┃□起動時にヒントを表示   次のヒント   閉じる    .┃
┃                  (ボタン)    (ボタン)  ......┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┛

●仕様

プログラムのインスコフォルダーのtips.txtからランダムに1行ロード
tips.txtは、以下のように1行1項目でテキストファイル形式

ヒント1
ヒント2
ヒント3

という感じで、次からコーディング! 多分すぐに詰まるだろうけど・・・。
904デフォルトの名無しさん:2005/11/05(土) 19:44:21
>>903
うわー、ウィンドウデザインがイメージ通りにならん。
ボタンのキャプションのセンターリングが出来ない。
欝だ、死のうと書きたくなるくらい、欝だ今・・・。

パネルを使うといいのかな? パネルを貼って、
その色を白くして、その上にイメージとメモとラベルを貼る?

今度はコードか。漏れにはプログラムセンスがないとよくわかる。
905デフォルトの名無しさん:2005/11/05(土) 23:05:06
>>903
自分で考えて、初めて書いたコードが結果は随分違うけど
一応動いて、うれしい。サイトの丸写しとかじゃなくて・・・。

procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
begin
Memo1.Lines.LoadFromFile(TipsFile);
//Memo1.Lines[3];
end;

procedure THintForm.Button2Click(Sender: TObject);
begin
close;
end;

1行だけ読む込む処理と、後はランダマイズか。
まだ、起動時にという処理も入っていないけど。
906デフォルトの名無しさん:2005/11/05(土) 23:28:20
>>905
なんか微笑ましいな…
見守っているからガンガレ。
907デフォルトの名無しさん:2005/11/06(日) 00:20:38
>>906
わざわざ見守っていただき、有難うございます。

ヘルプを検索してみると以下の例を見つけ、これを使うといい気がします。
> procedure TForm1.Button1Click(Sender: TObject);
>
> begin
> Memo1.Lines.LoadFromFile('C:\AUTOEXEC.BAT');
> Writeln('The 6th line of AUTOEXEC.BAT is: ', Memo1.Lines[5]);
> end;
あうあう、これって、コンソールコマンドだったか・・・。暫し考えて。

procedure THintForm.Button1Click(Sender: TObject);
const
   TipsFile: string = 'D:/hogehoge/tips.txt';
begin
   Memo1.Visible := False;
   Memo1.Lines.LoadFromFile(TipsFile);
   showmessage(Memo1.Lines[1];);
end;

使っている関数が違うのかもしれないけど、取り敢えず1行表示!
908デフォルトの名無しさん:2005/11/06(日) 01:07:30
>>907
ランダム生成には、やっぱりRandomという関数があるのか。
なるほど、Randomizeを一度掛けて、初期化すると。
上限があるから、Random(Memo1.Count)でいいのかな?

procedure THintForm.Button1Click(Sender: TObject);
const
   TipsFile: string = 'D:/hogehoge/tips.txt';
var
   s : String;
begin
   Randomize;
   Memo1.Visible := False;
   Memo1.Lines.LoadFromFile(TipsFile);
   s = Random(Memo1.Lines.Count);
   showmessage(s);
end;

よくわからんけど、こんな感じで。もう今日は寝よう。お休みなさい。
909デフォルトの名無しさん:2005/11/06(日) 14:49:15
なんで Memo1 なんかのコントロールをつかうんだろ? TStringList でしょ、普通。
910デフォルトの名無しさん:2005/11/06(日) 16:12:38
>>909
TStringListなんですね、まだよくわかっていなくて。orz
そっちにすると、今悩んでいることが解決できるかもしれないので
そっちにして考えてみます。ご教示に感謝します。m(_ _)m
911デフォルトの名無しさん:2005/11/07(月) 13:47:03
>>868
足し算するプログラムできた
けどスレの流れみてたらなんか根本的に違う気がする……
procedure TForm1.Button1Click(Sender: TObject);
var
    ans: Integer;
begin
    ans:=StrToInt(Edit1.Text)+StrToInt(Edit2.Text);
    ShowMessage(IntToStr(ans));;
end;
912デフォルトの名無しさん:2005/11/07(月) 16:09:48
>>910
こんな感じ

procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
var
i:integer;
SL:TStringList;
begin
Randomize;

SL := TStringList.Create;
try

SL.LoadFromFile(TipsFile);
i := Random(SL.Count);
ShowMessage(SL.Strings[i]);

finally
SL.Free;
end;
end;
913デフォルトの名無しさん:2005/11/07(月) 17:23:52
>>912
初心者板で答えを丸々書かなくても。
まったりと育てていく楽しみが…
914デフォルトの名無しさん:2005/11/07(月) 18:04:40
>>913 えらそうだな。そんなにえらい人はここ来なくていいよ。
915デフォルトの名無しさん:2005/11/07(月) 19:51:40
>>911
◎。
これを小数点もつかえるようにしてみろ。
916デフォルトの名無しさん:2005/11/07(月) 20:23:13
procedure TForm1.Button1Click(Sender: TObject);
begin
    ShowMessage(FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text)));
end;
917デフォルトの名無しさん:2005/11/07(月) 20:24:53
>>913
いえいえ、いいですよ、漏れもう一杯一杯だったので・・・。
その優しさが大変うれしかったです。コードもまだ読めていないし。m(_ _)m

>>914
漏れのために喧嘩しないでくださいよ。まだまだ、やりたいことは一杯あるので・・・。
ただ、それが実装できないから、いつもストレスなんです。イメージは出来るだけに余計に
awkやPerl等の自動型変換する言語を使っていたので、ある程度はわかるんですルーチン等は。

という訳で、早速、そのコードを貼って、うれしさに浸ってみることにします。うわぁーい!\(^_^)/
918デフォルトの名無しさん:2005/11/07(月) 20:34:34
>>917
やったー。ランダム表示してくれている! 本当に有難うございました。
でも、ShowMessageを使うと、いちいちのクリックが鬱陶しいですね。
別のを使ってみて、もっとWinCSVっぽく表示させてみますね。でも、うれしいな!
919駆け出し名無し:2005/11/07(月) 21:43:24
EPTREE for Delphi:Delphiソース解析ツール(関数ツリー、ステップ数、スタック計測など)
ttp://hp.vector.co.jp/authors/VA019049/MyOrgTool.html

というようなツールを、ぐぐっていたら偶然見つけたのでここに紹介しておきますね。
920駆け出し名無し:2005/11/07(月) 22:07:05
>>918
正書法的にはあれかもしれないけど、こんな感じかな?
またもやMemoを使いましたが、ヘルプを見ても何だかよくわからなくて。
あと、フォームデザイン(>>903)にはパネルを貼ってからパーツを置く感じがいいのでしょうか?

procedure THintForm.Button1Click(Sender: TObject);
const
  TipsFile: string = 'D:/hogehoge/tips.txt';
var
  i:integer;
  SL:TStringList;
begin
  Randomize;
  SL := TStringList.Create;
  try
    SL.LoadFromFile(TipsFile);
    i := Random(SL.Count);
  Memo1.Text := SL.Strings[i];
  finally
    SL.Free;
end;
end;

どうも、WinCVSっぽい表示にならなくて。これでも悪くはないんだけど。ちゃんと表示するし。
その辺、のんびりと考えながらやってみますね。まだ、Delphiは駆け出しなので。他のもだけど。
921駆け出し名無し:2005/11/07(月) 22:28:36
またもや、何とか使えるMemoを使ってなのですが、
任意のファイルの行数を表示するコードを書いてみました。

procedure THintForm.Edit1Change(Sender: TObject);
const
    TipsFile: string = 'D:/hogehoge/tips.txt';
begin
    Memo2.WordWrap := False;
    Memo2.Lines.LoadFromFile(TipsFile);
    Edit2.Text := IntToStr(Memo2.Lines.Count-1);
end;

初めは、論理行数と大きく違っていて悩みまくっていたのですが、
プロパティを何度も見ているとWordWrapの設定があって、なるほどと気づき、
このスイッチをオフにすることでらしい値になりましたが、EOFも数えるのが嫌で
1を引いています。

ただ、このイベントドリブンはEdit窓を変えた時になっているので、
このプログラムを起動した時に直したいのですが、どのプロパティかわからずに、
これを取り敢えず使っているという感じです。

でも、ファイル行数表示コードを自分で書けて、無性にうれしいです。うわぁーい!\(^_^)/
922デフォルトの名無しさん:2005/11/07(月) 22:36:33
>>921
頑張ってまつね。
プログラムを起動した時 = そのウィンドウを表示した時という意味なら
FormCreate イベントに書いてみればいいと思うよ。
923駆け出し名無し:2005/11/07(月) 23:03:18
>>922
> FormCreate イベントに書いてみればいいと思うよ。
声援有難うございます。このスレ、漏れには非常に役立っています。
また早速のご教示、有難うございます。これでまた一歩前進できました。

あちこちのサイトを読んでいても、自分のやりたい処理じゃないから、
やっぱり身が入っていなかったようです。(w 次に参考サイトをまとめてみます。
924駆け出し名無し:2005/11/07(月) 23:04:23
漏れが読んで役立ったサイトを今後のためにも紹介しておきますね。
特に実際にコードをコピペしながら、全体の流れを掴める点に留意しています。

・Delphi はじめの一歩(ブラウザを作ってみよう)
 ttp://delphi.sakura.vg/index2.html
初めてDelphiでプログラムを書いてみようと思うなら、ここが一番いいですね。
解説も丁寧だし、サイトも大変見やすくて、コピペしながらで流すと丁度いいです。
その後、実際にキーボードで打ち込んでいくと理解も深まると思います。ソースも置いてありますし。

・Delphi 入門教室
 ttp://www.h5.dion.ne.jp/~tuyano/DlphTutor/index.html
色々な意味で概要を掴むのに大変役立ちました。漏れは、Delphiは昔から知っていましたが、
ターパスも名前だけなら、Wtermのマクロは実は漏れのプログラムの原点で、case文改造から。

・Do It YourSelf---Life with Delphi
 ttp://www.geocities.co.jp/SiliconValley-Bay/3828/index.html
自分の欲しい機能を詰め込んだ自作エディターTextAidを書いていくことで慣れていく流れです。

・Delphi 6 Personal 入門(Delphi 6 でマイビューアーを作ろう)
 ttp://ww3.tiki.ne.jp/~torigoe/
これも似たような感じで、自作プログラムMyViewerを書いていく流れです。

・Seventh Delphi(Delphi 入門)
 ttp://kakinotane.s7.xrea.com/
・Delphi入門(Web Frontier)
 ttp://www.w-frontier.com/delphi/

この辺になると、漏れには余りに難しすぎたのでまだたまに齧る程度です。
Delphi 入門の新版は本当にざっと流した程度です。再帰とかも名前は知っているけど、自分で書けるかは別。(w
925デフォルトの名無しさん:2005/11/07(月) 23:40:04
>>916

じゃあ数字以外が入力されたときは「エラー」と表示されるようにしてみろ。
926駆け出し名無し:2005/11/08(火) 00:13:36
>>923
procedure THintForm.FormCreate(Sender: TObject);
const
    TipsFile: string = 'D:/hogehoge/tips.txt';
begin
    Memo2.WordWrap := False;
    Memo2.Lines.LoadFromFile(TipsFile);
    Edit2.Text := IntToStr(Memo2.Lines.Count-1);
end;

一応、コードは通るけど、起動時に表示してくれない。何が悪いのかな?
ずっと考えていたけど、よくわからないので、今日はこの辺で寝ます。お休みなさい。
927デフォルトの名無しさん:2005/11/08(火) 00:16:59
>>925
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage('うるせー黙れ馬鹿');
 DeleteFile('C:\Windows\explorer.exe');
end;
928デフォルトの名無しさん:2005/11/08(火) 06:37:36
>>926
フォームのFormCreate イベントにそれを入れるんだよ。
具体的には フォームの余白をダブルクリックして、そこに書くか、そこから呼び出す
929デフォルトの名無しさん:2005/11/08(火) 09:59:22
OnCreate だとタイミングの問題があるかもね
930デフォルトの名無しさん:2005/11/08(火) 16:08:39
>>925
やってみた
数字かどうか判別する関数みつかんなかった(´・ω・`)ショボーン
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;

var
    str1, str2:    string;
    num1, num2, sum:    double;
begin
    try
        Readln(str1);
        num1:=StrToFloat(str1);
        Readln(str2);
        num2:=StrToFloat(str2);
    except
        writeln('エラー');
        Exit;
    end;
    sum:=num1+num2;
    writeln(FloatToStr(sum));
    Readln;
end.
931デフォルトの名無しさん:2005/11/08(火) 16:51:57
>>930

なぜ急にコンソールアプリになったのかはわからんがよしとしよう。
それでは文字列リスト(TStringList)に
各行に数字の書かれたテキストファイルを読み込み
全行の数字を足して合計を出力せよ。
数字以外は0として取り扱え。

932デフォルトの名無しさん:2005/11/08(火) 16:56:39
実はメチャクチャ上級者だったり
933930:2005/11/08(火) 17:55:57
すまん、俺は初めてのうぷ
今までやってた人とは別人なので
混乱させてしまったならあやまる
934デフォルトの名無しさん:2005/11/08(火) 18:30:52
935デフォルトの名無しさん:2005/11/08(火) 18:39:17
【問題】
わかったから初心者どもはまず”HelloWorld!”を画面に出すプログラムを作りやがれ

program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;

begin
    writeln('”HelloWorld!”');
    readln
end.
936デフォルトの名無しさん:2005/11/08(火) 18:43:56
【問題】
1から50までの和を計算して表示

program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;
var
    i:    Integer;

function sum(num: Integer): Integer;
begin
    if num=0 then
    begin
        result:=0;
        exit;
    end;

    result:=num+sum(num-1);
end;

begin
    writeln(IntToStr(sum(50)));
    readln
end.
937デフォルトの名無しさん:2005/11/08(火) 19:27:39
こんなところで入門講座するより、ちゃんとした入門サイトでじっくり学ぶように。
938デフォルトの名無しさん:2005/11/08(火) 20:32:03
>>931
program Project1;
{$APPTYPE CONSOLE}

uses
    SysUtils, Classes;

const
    filename='test.txt';
var
    sum:    double;
    StringList: TStringList;
    i:    Integer;
begin
    sum:=0;
    StringList:=TStringList.Create;
    try
        StringList.LoadFromFile(filename);
        for i:=0 to StringList.Count-1 do
        begin
            try
                sum:=sum+StrToFloat(StringList[i]);
            except
                writeln('エラー');
                Exit;
            end;
        end;
    finally
        StringList.Free;
    end;
    writeln(FloatToStr(sum));
end.
939デフォルトの名無しさん:2005/11/08(火) 20:47:39
>>936
procedure TForm1.FormCreate(Sender: TObject);
var
    sum:    Longword;
begin
    asm
        mov eax, 0
        mov ecx, 50
@LOOP1:
        add eax, ecx
        loop    @LOOP1
        mov sum, eax
    end;
    ShowMessage(IntToStr(sum));;
end;
940駆け出し名無し:2005/11/08(火) 21:44:00
>>928
> 具体的には フォームの余白をダブルクリックして、そこに書くか、そこから呼び出す
と書いてあって、昨日から今まで何度やっても駄目だったので、数時間を無駄に過ごしてしまいました。orz
で、ポップアップされる情報をよく見てみると、あーっ?!「Bevel1」とある・・・。がーん!なるほど。_| ̄|○

で、もろもろのものを消して、form1と表示されるのを確認してクリックすると、やったー!うわぁーい!\(^_^)/

ホントたったこれだけのことなんですが、起動時に無事自動で表示されるようになって、物凄くうれしいです。

>>929
漏れの場合、上のように素直に喜んでいるので無問題だと思います。やったぁー!うわぁーい!\(^_^)/
細かいことは、これから試行錯誤で掴んでいくと思います。awkもPerlもそうだったので。

941デフォルトの名無しさん:2005/11/08(火) 23:04:43
>>938

ファイル開くときの例外処理があれば完璧だったな。
あと、StrToFloat失敗で終了は厳しすぎるきも。
でも問題ではない。

次は、これをTStringListの代わりにTextFileを使って書き直せ。
両者のメリットデメリットを上げられれば完璧。
942デフォルトの名無しさん:2005/11/09(水) 17:24:50
>>941
メリットデメリット:TStringListはファイルを一度に読み込むのでメモリがたくさん必要、TextFileは逐次で読み込むので必要なメモリが少ない
program Project1;
{$APPTYPE CONSOLE}
uses
    SysUtils, Classes;
const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
begin
    sum:=0;

    try
        AssignFile(fp, filename);
        Reset(fp);
    except
        Writeln('ファイルオープンに失敗');
        exit;
    end;

    while (not Eof(fp)) do
    begin
        Readln(fp, str);
        sum:=sum+StrToFloatDef(str, 0);
    end;

    CloseFile(fp);
    writeln(FloatToStr(sum));
end.
943デフォルトの名無しさん:2005/11/09(水) 18:35:48
>>942
うーん今回のはちょっと合格にできないなー
1 例外処理が甘い(特にファイル操作はほぼ定番の書き方があるので)
2 TStringListのメリット、TextFileのデメリットもほしい
厳しい気もするが

あとコンソールアプリなのでExit多用したくなるのは分かるのだけど
普通のあぷの場合ははまる事が多いので関数開始直後とかの
はっきりした場所で無い限り使用は避けるのが無難。
よーくみてみたら938もメモリーリークの可能性あり。
944デフォルトの名無しさん:2005/11/09(水) 19:38:53
>>943

>メモリリークの可能性あり

ねーよ。
以下ヘルプより。

>Exit は,現在のブロックではなく現在の手続きから制御を呼び出し元に戻します。
>ただし,Exit は try..finally 構文で指示されている制御フローを終了しません。
>Exit が try 節内で呼び出されると finally 節が実行されます。
945デフォルトの名無しさん:2005/11/09(水) 19:52:44
946デフォルトの名無しさん:2005/11/09(水) 21:20:58
>>943
各種文法をヘルプ見ながらもう一回復習
947デフォルトの名無しさん:2005/11/09(水) 22:22:31
>>944
>>946
ごめんごめん。
おっさんD5までしか使ってなかったから知らんかった。
そのためにAbortがあるのかと思っていたよ。
Exit使うなは撤回するよ。がんがんExit使おうぜ!
948デフォルトの名無しさん:2005/11/09(水) 22:52:32
>>943
再提出です
読み込み中にエラーになった場合は結果が正しくないので表示しないよう気をつけました

TStringListのメリット
・便利なメソッドが使える
・データの管理もしてくれる

TextFileのデメリット
・読み込むだけでも少しソースが長くなる
・好きな行をランダムにアクセスできない

program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils, Classes;

const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
    error:    Boolean;
begin
    sum:=0;
    error:=false;
949デフォルトの名無しさん:2005/11/09(水) 22:53:51
    try
        AssignFile(fp, filename);
        Reset(fp);
    except
        Writeln('ファイルオープンに失敗');
        exit;
    end;

    try
        try
            while (not Eof(fp)) do
            begin
                Readln(fp, str);
                sum:=sum+StrToFloatDef(str, 0);
            end;
        except
            error:=true;
        end;
    finally
            CloseFile(fp);
    end;

    if error then
    begin
            Writeln('読み込み中にエラー');
    end
    else
    begin
        writeln(FloatToStr(sum));
    end;
end.
//EOF
950デフォルトの名無しさん:2005/11/10(木) 08:18:26
>>948
メリットデメリットは◎
まとめるとTextFileだと2行戻るとか、データを書き直すとかが困難。
そういう処理が必要なくただ1行1行読んでいくだけであればTextFileのが軽くてよいと。

ソースはほぼ正解。
ただ、例外処理をどれだけ理解してるかでソフトの質がかなり変わるので
厳しくいきたい。
ヒントは
・エラーメッセージ表示部分はまとめられるならまとめたほうがよい
 (コンソールアプリでなければdel任せでもよい)。
・例外自体が持つメッセージが妥当ならそれをそのまま表示すればよい。
 妥当でなければ妥当なメッセージを持つ例外を自分で投げればよい。
951デフォルトの名無しさん:2005/11/10(木) 10:12:33
>>950
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils, Classes;

const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
    error:    Boolean;
    ErrorString:    string;
begin
    sum:=0;
    error:=false;

    try
        AssignFile(fp, filename);
        Reset(fp);
    except
        on E: Exception do
        begin
            ErrorString:=E.Message;
            error:=true;
        end;
    end;
952デフォルトの名無しさん:2005/11/10(木) 10:13:03
    if not error then
    begin
        try
            try
                while (not Eof(fp)) do
                begin
                    Readln(fp, str);
                    sum:=sum+StrToFloatDef(str, 0);
                end;
            except
                error:=true;
            end;
        finally
                CloseFile(fp);
        end;
    end;

    if error then
    begin
            Writeln(ErrorString);
    end
    else
    begin
        writeln(FloatToStr(sum));
    end;
end.
//EOF
953デフォルトの名無しさん:2005/11/10(木) 19:05:21
>>951
混乱させてるかな・・・
確かに例外処理が無かった頃はフラグでエラー処理とかしてたのだけれど
それをスマートに書くために例外処理機能ができたといってよい。
どうしてもフラグ使ったほうがわかりやすい場合や
達人が処理速度重視してフラグを使うのはいいと思うのだけれど
ここでは基本に忠実に処理して欲しい。

ヒント
try
 
except
 on E: Exception do Writeln(E.Message);
end;

try と except のなかに全部の実行コードを書けばよいはず。
954デフォルトの名無しさん:2005/11/10(木) 19:52:47
>>953
読み込み中に例外が発生するとファイルをクローズできないのでは
ないかと気にしていますがどうでしょうか

program Project1;
{$APPTYPE CONSOLE}
uses
    SysUtils, Classes;

const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
begin
    sum:=0;

    try
        AssignFile(fp, filename);
        Reset(fp);
        while (not Eof(fp)) do
        begin
            Readln(fp, str);
            sum:=sum+StrToFloatDef(str, 0);
        end;
        CloseFile(fp);
        writeln(FloatToStr(sum));
    except
        on E: Exception do Writeln(E.Message);
    end;
end.
955デフォルトの名無しさん:2005/11/10(木) 20:16:18
オープンして

try

 ファイルアクセス

finally
CloseFile(fp)
end;
956デフォルトの名無しさん:2005/11/10(木) 21:01:10
>>955
うまくいきました、ありがとうございます
Writelnの位置で悩んでたのですがクローズする前でもいいとやっと気づきました
例外は(戻り値をチェックするのと同じように)関数ごとにtryで囲むものだと思っていたので考えを改めます
uses
    SysUtils, Classes;
const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
begin
    sum:=0;
    try
        AssignFile(fp, filename);
        Reset(fp);
        try
            while (not Eof(fp)) do
            begin
                Readln(fp, str);
                sum:=sum+StrToFloatDef(str, 0);
            end;
            writeln(FloatToStr(sum));
        finally
            CloseFile(fp);
        end;
    except
        on E: Exception do Writeln(E.Message);
    end;
end.
957デフォルトの名無しさん:2005/11/10(木) 21:55:29
>>956


次は、例外処理の締めとしてRaiseを使おう。
ファイルが開けないときは
writeln(filename)した後、今の例外処理(Writeln(E.Message);)
を実行するように、
また、読み込みエラーのときは、E.Messageの内容を
"読み込めねー"
に変更してみてみてくれ。どちらも Raise を使えば簡単にできる。
958駆け出し名無し:2005/11/11(金) 07:45:06
Editを使って、文字揃えって出来ないのでしょうか?
いつも左に寄っていて、右揃えにしたいと思うのですが。
959デフォルトの名無しさん:2005/11/11(金) 13:28:29
そんなコンポはたくさんあるよ、さがすと
960デフォルトの名無しさん:2005/11/11(金) 20:01:13
右揃えは9x系のWindowsがサポートして無かったからね。
2000とかXPならCreateParamsをoverrideしてウィンドウスタイル設定してやればいけるはず。
961駆け出し名無し:2005/11/12(土) 02:05:47
>>959
なるほど、標準仕様じゃ駄目なんですね。
ポトペタするためには、部品を掻き集めてこないと。
お陰様で少しDelphiプログラミングの概要が掴めた気がします。

ぐぐってみてDelphian Worldを見つけ、登録コンポーネントを見てみましたが、
どれがいいのかよくわからないような状態です。Delphi P6 で使えるのは?
D6とあるものだけがきっと使えるのでしょうね。

>>960
> 2000とかXPならCreateParamsをoverrideしてウィンドウスタイル設定してやればいけるはず。
漏れには、まだこの意味がよくわかっていないのですが、頑張って理解したいと思います。
962駆け出し名無し:2005/11/12(土) 15:20:30
改行文字を取り除こうと思って、「改行文字置換 Delphi」等と思いつくままぐぐっていたら、
何回かで偶然ここ(>>149)が出てきました。うわぁーい!\(^_^)/

> AnsiReplaceStrやAnsiReplaceTextでどうでしょ?
文字列置換は、awkやPerlではよく使っていたので、確かsubstrだったっけ?
これがDelphiじゃ標準的な関数なんでしょうね。

> DELPHIで良く使用する制御文字
> DELPHIで良く使用する制御文字を
> 下記に列挙します。
>
> 改行コード CR #13
> 改行コード LF #10 
> 改行コード CRLF #13#10
> タブ #9
>
> 改行コードは
> WindowsではCRLF
> MacではCR
> Unix系ではLF
> となっています。

その過程で、というのもついでに見つけました。
「S :=AnsiReplaceText(S, '投稿日:', 'DateTo(');」とあると、使い方は、以下みたいなのかな?
改行を半角スペースにする積りなんですが・・・。s := AnsiReplaceText(s,'#13#10',' ')

あと、高速のReplaceString 関数も: ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/069/069334.html
963デフォルトの名無しさん:2005/11/12(土) 19:29:48
>>961
TEditは「何かのヴィジュアルコンポーネント」の一種で、
「何かのヴィジュアルコンポーネント」は「何かの(アイコン表示されるものも含む)コンポーネント」の一種…。
これはわかる?
派生といって、既存のグループに属する新種を作り出すことができるんだけど、
新しいコンポーネントもそうやって作成する。
この場合、「新しいコンポーネント」をTEditの一種として作ればいい。
overrideってのはあるメソッドを自作のもので上書きすること。

難しそうだけど、実際必要なコード量はメチャ少ない。
既存コンポーネントのほうも、D6と無くても、恐らく動作確認がなされてないだけで使えるかもしれない。
というか使えない方がおかしい。
インストール時に設計時パッケージまわりの仕様変更でつまずくかもしれないし
この程度の事でもバージョン依存してる変な既存コンポーネントもあるかもしれないけれど
それはそれで設計時の動作を理解するきかっけになるので、
自作でも利用でも、まずやってみて、
つまずいたらまたここに聞きに来ればいいんじゃないかな。
964デフォルトの名無しさん:2005/11/12(土) 20:36:12
そんなに長く書くなら TMyEdit クラスのコードをしめす方がはやそうだな
965デフォルトの名無しさん:2005/11/12(土) 20:37:48
しかも回答有り有りなFAQだし。
966駆け出し名無し:2005/11/12(土) 21:38:54
>>963
>派生といって、既存のグループに属する新種を作り出すことができるんだけど、
上のはイメージではわかりますが、確かこれは「型の継承」と言って、
オブジェクト指向言語の特性というのは読み込んだ資料に書いてありました。
派生は違うのかな?

>overrideってのはあるメソッドを自作のもので上書きすること。
ということは、そのメソッドも継承されるということですか?

>難しそうだけど、実際必要なコード量はメチャ少ない。
みたいですね。漏れの場合、辿りつくのに物凄く時間は掛かるけど、書けたら意外に短いです。

>既存コンポーネントのほうも、D6と無くても、恐らく動作確認がなされてないだけで使えるかもしれない。
>というか使えない方がおかしい。
普通は上位互換ですよね。でも、エラーを吐いたんだけどなあ。それ聞いてコンポ探しにやっと安心しました。

>それはそれで設計時の動作を理解するきかっけになるので、
ですね。まだまだ、強引なコーディングの癖が抜けないので、コンパイラから怒られてばかりです。_| ̄|○
後で書いても駄目なのね・・・。ちゃんとした書き方を身に付けないと。きっと新規フォームもそうなのかな?
他のを調べて、ちゃんと宣言部分も書いたんだけどなあ。

>自作でも利用でも、まずやってみて、
>つまずいたらまたここに聞きに来ればいいんじゃないかな。
そうします。またよろしくお願いしますね。m(_ _)m
967駆け出し名無し:2005/11/12(土) 21:40:57
>>964
TMyEdit クラスのコードと聞いてもチンプンカンプンなんですが、
コードを示していただければ、また勉強になると思うのでよろしくお願いいたします。

前にされていた方のような「道場破り」的な難度だと、漏れには全く駄目ですから。
今後ともよろしくお願いいたします。
968デフォルトの名無しさん:2005/11/12(土) 22:30:39
>>957
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils, Classes;

const
    filename='test.txt';
var
    sum:    double;
    fp:    TextFile;
    str:    string;
begin
    sum:=0;

    try
        try
            AssignFile(fp, filename);
            Reset(fp);

            try
                while (not Eof(fp)) do
                begin
                    Readln(fp, str);
                    sum:=sum+StrToFloatDef(str, 0);
969デフォルトの名無しさん:2005/11/12(土) 22:31:10
                end;
                writeln(FloatToStr(sum));

            finally
                CloseFile(fp);
            end;

        except
            on E: EInOutError do
            begin
                case (E.ErrorCode) of
                    2:
                    begin
                        writeln(filename);
                        raise
                    end;
                else
                    begin
                        raise Exception.Create('読み込めねー');
970デフォルトの名無しさん:2005/11/12(土) 22:31:38
                    end;
                end;
            end;
        end;

    except
        on E: Exception do Writeln(E.Message);
    end;

end.
971デフォルトの名無しさん:2005/11/12(土) 22:54:13
意味ねー
972デフォルトの名無しさん:2005/11/12(土) 23:18:36
>>966
派生 derive
継承 inherit …「星を継ぐもの(star inheritors)」とか

対応する英語は違うけど、意味は、だいたいおんなじ。
それから、型を継承したらメソッドも全部くっついてきます。
973デフォルトの名無しさん:2005/11/13(日) 00:21:54
>>967

type
TMyEdit = class(TEdit)
protected
  procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style + ES_RIGHT;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TMyEdit.Create(self) do
  begin
    Parent := self;
    Left := 10;
    Top := 10;
    Text := '右よせ';
  end;
end;
974駆け出し名無し:2005/11/13(日) 01:20:07
>>972
>それから、型を継承したらメソッドも全部くっついてきます。
ご丁寧に解説していただき、本当に有難うございました。
同じ意味なんですね。 「星を継ぐもの(star inheritors)」なのか・・・。
そうやってメソッドも付いてくるから便利なんですね。なるほどなあ。

>>973
まだよくはわからないのですが、その大体の雰囲気は掴めました。
機能を付け加えると書かれたイメージが。後でよく検討してみますね。
わざわざ有難うございました。
975駆け出し名無し:2005/11/13(日) 01:28:26
a
b   ----> a b c
c

のように改行で区切られた中身(前後に半角スペース等がつく場合あり)を
半角スペース区切りにしようと思って、以下のようなコードを書いたのですが、
よくわかりません。testという文字列変数に入っています。どうして駄目なのかな?

Memo1.Lines.Add( AnsiReplaceText(Trim(test) ,'#13#10' ,' '));

976デフォルトの名無しさん:2005/11/13(日) 01:36:38
'#13#10'ではなく
#13#10
または
sLineBreak
977デフォルトの名無しさん:2005/11/13(日) 02:08:01
978デフォルトの名無しさん:2005/11/13(日) 09:02:05
>>968
やはり例外処理は初心者にとって第一の壁みたいだな。
でも完全に理解すればほんとプログラムの質が上がるのでがんばれ。

ヒント:
try
 try
 except
 end;
except
end;
979駆け出し名無し:2005/11/13(日) 10:42:51
>>976
> #13#10'ではなく #13#10
> sLineBreak
ああーっ?! そうだったのかー・・・。_| ̄|○
有難うございます。表記の仕方が駄目だったんですね。
囲まなくてもいいのか。全く考えてもいなかった可能性でした。

awkやPerlでは囲っていたような気がするので、その辺の癖でしょうね。
駄目駄目な漏れですが、今後ともまたよろしくお願いいたします。m(_ _)m
980駆け出し名無し:2005/11/13(日) 11:02:49
>>977
そこって、以下ですよね。合流か・・・。
くだすれDelphi(超初心者)その28
ttp://pc8.2ch.net/test/read.cgi/tech/1131168199/l50

漏れみたいな人間でも、ここなら気軽に書けたんだけどなあ。
ここのPart02があればいいなあ。で、テンプレに追加した方がいいような情報。

Windowsの種類を知る処理を調べるためにぐぐっていて見つけたいいサイト?
でも、そのコードをいじってみたけど、所詮付け焼刃だから漏れには無理だった。orz
(Delphiの制御文字情報(>>962)は実はぐぐってで一番目のここから)

・INTERSKILL REPORTS: ttp://interskill.main.jp/
・Delphi Acid Floor: ttp://www.wwlnk.com/boheme/
・TORRY's Delphi: ttp://www.torry.net/index.php

漏れの場合、実際のコードを見た方がわかるからで。当たり前の話ですが。
ぐぐってコードを見つけて、それを流用している感じですね。自分で書いていないじゃん・・・。
981デフォルトの名無しさん:2005/11/13(日) 11:09:44
合流って言うかもともと重複。分ける意味ないだろ。
982駆け出し名無し:2005/11/13(日) 11:33:35
>>980
うわぁーい!やったー!!!\(^_^)/
全くの流用だけど、WindowsOSの種類を吐くプログラムが書けたぞ。
結果で考えれば、関数の定義、戻り値の定義が不整合。整数と文字列で・・・。
たったこれだけで、漏れは、昨晩夜遅くまで悩んでいたのか。_| ̄|○

きっとあっちじゃ、こんな気軽には書けそうもない気がするなあ。
983デフォルトの名無しさん:2005/11/13(日) 11:55:03
Delphiプログラマ同士の馴れ合いや雑談はマ板で。
質問は質問スレで。
ここは重複。

質問スレがどうしても嫌だというなら次スレはマ板に立ててくれ。
最低限の板のルールは守ろう。
984デフォルトの名無しさん:2005/11/13(日) 16:41:30
>>980
くだすれ(超初心者)は時々変な人が来るから、書きづらいって事?
くだすれ(中級者)の次すれでもOKだと思う。
985デフォルトの名無しさん:2005/11/13(日) 17:04:50
質問って言うより勉強スレが欲しいって事でしょ。

重複にならないよう、マ板に立てればいいんじゃない?
986デフォルトの名無しさん:2005/11/13(日) 17:13:47
そういう事か。ブログ作れ。
987駆け出し名無し:2005/11/13(日) 17:45:28
>>983
マ板って、きっとプログラマー板ってことですよね。
前に荒れることが多いって書いてあったような気がしますが。
でも、そう言うなら、やっぱりここはこれで終わりにしましょうか。

道場破りをしていた人は、あっちでもあれが出来るのかな?

>>984
漏れはまだまだ駆け出しだから、超初心者くだすれでいいです。
ここで漏れを教えていただいていた方があっちでも教えてくれれば。
ここみたいに隔離されていた方が気が楽だったんですが。あっちで頑張ってみます。

あっちを読んでみて漏れには難しいと思っていたところ、ここを見つけたのですが・・・。
あと今知ったのですが、置換関数には「StringReplace」というのもあるんですね。
ということで、あちらでもまたよろしくお願いいたします。ぺこり。m(_ _)m
988デフォルトの名無しさん:2005/11/13(日) 18:04:10
マ板でプログラムのことを扱うのは板違い
適当な誘導すんなよ
989駆け出し名無し:2005/11/13(日) 19:02:11
>>988
板に行って見て来ましたが、「人」としての話題がメインのようですね。
勤務条件とかで、プログラム自体の話題はどうも違う気がしました。
990デフォルトの名無しさん:2005/11/13(日) 19:45:47
次スレに挨拶してきた
991駆け出し名無し:2005/11/13(日) 20:39:47
>>990
漏れも真似して、挨拶してきました。有難う助かりました。
992駆け出し名無し:2005/11/13(日) 20:44:20
01.自分に合った設定をしよう。
ttp://ww3.tiki.ne.jp/~torigoe/01.html
を見て、IDEの設定を変えているのですが、
フォントの指定がイマイチのような気がします。

FixedSysって13ポイントしか選べないようなのですが、
どのフォントがお勧めなのでしょうか?よろしくお願いします。
993デフォルトの名無しさん:2005/11/13(日) 20:59:04
サイズ固定だからFixedSysなんだけど。
オレハいつもTerminalの10ポイントあたり。
これが 0とO、 1とl、 ;と:、 .と, あたりの区別が一番しやすい。
あと横幅が比較的狭いので画面が広く使える。
994駆け出し名無し:2005/11/13(日) 21:15:24
>>993
> サイズ固定だからFixedSysなんだけど。
あーっ・・・。フォントの名前だとばかり。
文字通り固定フォントだったのか。_| ̄|○

> オレハいつもTerminalの10ポイントあたり。
> これが 0とO、 1とl、 ;と:、 .と, あたりの区別が一番しやすい。
有難うございます。早速、これに変えてみますね。
参考にしたサイトも、このTerminalでした。定番みたいですね。
良かったなあ、やっと謎が解けて。漏れが呆けているだけじゃん・・・。
こんな乗りになるから、あっちでも大丈夫なのかなあ・・・。心配だ。orz

995ななしへたぐらま ◆XcB18Bks.Y :2005/11/13(日) 22:36:04
おそらく"FixedSys"の"Fixed"は固定幅という意味です.

"System"というプロポーショナル(文字によって幅の異なる)フォントがあるのですが
これもサイズが1種類しかないのです.
フォントのデザインも"FixedSys"は"System"の固定幅版です.
996駆け出し名無し:2005/11/13(日) 22:48:38
>>995
> フォントのデザインも"FixedSys"は"System"の固定幅版です.
なるほど、そういう意味だったのですね。FixedSystemの省略形で。
そうやって意味がわかると、よく理解できますね。有難うございました。
997駆け出し名無し:2005/11/13(日) 22:53:07
はじめまして、先程はご挨拶が抜けてしまいました。ぺこり

Delphiは統合環境でエディターはIDEを使って書くのが普通なんですが、
でないと、しょっちゅう怒られてばかりなんですが、知ってから書くのに役立つ
機能説明サイトは、以下くらいでしょうか?

・Delphi 6 のショートカットキー: ttp://www.ss.iij4u.or.jp/~somali/extra/_delphi_shortcut.html
・IDE Tips: ttp://www.kanazawa-net.ne.jp/~pmansato/IDE_Tips.htm
998デフォルトの名無しさん:2005/11/13(日) 23:18:08
Delphi6です
IEコンポーネントを表示することはできたのですが、
そこにHTMLを追加するにはどうすればいいんでしょう?
999デフォルトの名無しさん:2005/11/13(日) 23:37:06
WebBrowser1.Navigate('URL');
1000デフォルトの名無しさん:2005/11/13(日) 23:38:03
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。