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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
http://delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
2デフォルトの名無しさん:2010/07/19(月) 11:31:54
<関連スレ>
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc11.2ch.net/test/read.cgi/tech/1093654251/
Delphi初心者のための寺子屋
http://pc11.2ch.net/test/read.cgi/tech/1132756268/
delphiで作った有名ソフトって何があるの?
http://pc11.2ch.net/test/read.cgi/tech/1135654787/
Delphi持ってるならGLSceneを使え
http://pc11.2ch.net/test/read.cgi/tech/1163269079/
【Delphi互換!?】FreePascal【GPL】
http://pc11.2ch.net/test/read.cgi/tech/1137051510/

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc11.2ch.net/test/read.cgi/gamedev/1097836469/
Delphiでアクションゲームが作りたい!! Part2
http://pc11.2ch.net/test/read.cgi/gamedev/1027482533/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc11.2ch.net/test/read.cgi/gamedev/1028278884/
delphiでMMO
http://pc11.2ch.net/test/read.cgi/gamedev/1072515100/

【CodeGear】Embarcaderoオッチャ その22【Delphi】
http://pc12.2ch.net/test/read.cgi/tech/1269010332/

では質問どうぞ。
3デフォルトの名無しさん:2010/07/19(月) 20:05:22
4デフォルトの名無しさん:2010/07/22(木) 01:36:41
前スレ落ちたな
5長くてごめんなさい:2010/07/22(木) 14:28:20
BSMTP.dllを使っている人がいたら教えてください。
いくつかのサイトを参考に、以下のコードで、メールを受信と中身取り出しには成功しました。
var
Ret: integer;
ST1, ST2: TPBSMTPStatus;
WKSTR: array[0..80]of Char;
i, j: integer;
strML: string;
begin
New(ST1);
Ret:=BPOP3(PChar(Edit3.Text), PChar(Edit0.Text), PChar(Edit2.Text), PChar('SAVEALLD'), PChar('Files1'), ST1, WKSTR);
if Ret<1 then begin
BFreeArray(ST1);
Showmessage(WKSTR);
exit;
end;
New(ST2);
for i:=0 to ST1.Counter - 1 do begin
Ret:=BMIME('GET', PChar(ST1.Status[i]), PChar('Files2'), ST2, WKSTR);
if Ret>=1 then begin
strML:='';
for j:=0 to ST2.Counter-1 do begin
strML:=strML + ST2.Status[j] + Chr(13) + Chr(10);
end; {ここでstrML文字列から、「送った人」、「件名」をどうにか}
end;
end;
BFreeArray(ST1);
BFreeArray(ST2);
end;
取り出したメールの中身から、まずは「送った人」と「件名」だけStringGridのようなものに表示させたいと考えているのですが、
そのためには'From: 'とか'Subject: 'あたりを取っ掛かりに、文字列を操作する苦しいコードを書かなきゃならないのでしょうか。
それとも何か一発で出来るようなうまい方法があるのでしょうか。
6長くてごめんなさい:2010/07/22(木) 19:03:28
何か質問の仕方がよくなかったですね。
もしかしたらこれはBMSTP.dllのことは関係なかったのかもしれません。
取り出されたメールの中身ってのはたぶん、あれです。
OutlookExpressなんかで(というかこれしかつかったことないんですが)、メール右クリックで
出てくるプロパティのうち「ソース」ってやつ。

あの記号の羅列の中から、'件名'と'送り主'だけを引っ張り出す手っ取り早い方法があったら
知りたいです(ダメならあきらめて文字列相手にカッコ悪いコードいっぱい書きます)。
7デフォルトの名無しさん:2010/07/23(金) 02:26:27
正規表現使えば素敵やん
8デフォルトの名無しさん:2010/07/23(金) 02:52:50
「苦しいコード」とか「カッコ悪いコード」とかがどういうモノを指してるのか
よく分からないけど、要するに「面倒くさい」ってことなら
いますぐプログラミングなんてやめた方がいい
プログラミングとは総じて面倒くさいモノだから(キリッ)
9デフォルトの名無しさん:2010/07/23(金) 13:29:19
面倒くさがるのはプログラマに向いた性格とされてますけど
10デフォルトの名無しさん:2010/07/23(金) 13:40:19
>>5
TIdMessageを使うのはどう?
TIdMessage.LoadFromStream()で読み込んで、
SubjectプロパティやSenderプロパティを参照してみる。
115です:2010/07/23(金) 17:41:35
いろいろありがとうございます。
とりあえずは七転八倒状態で長々と文字列操作のコードを書き、
望む動作は得られましたけど、完成を急がなきゃならないわけでもないので
「正規表現」と「TIdMessage」について調べてみます。

(vbsをちょっとだけかじったことがあり、正規表現って言葉には見覚えが
あるような気が)
12デフォルトの名無しさん:2010/07/26(月) 15:49:51
長らく D6 で時が止まっていたものですが、文字コードが厳しくなってきているようなので、久々にアップデート考えています。
お布施を怠ったせいで、Del2010 のアップデート対象から外されてしまいましたが、通常版なんざとても購入できません。
対象外になったといわれてるだけで、実は購入すれば問題なく使用できたりするんでしょうか。
ダメなら Del2009 の購入を考えています。
13デフォルトの名無しさん:2010/07/26(月) 18:27:16
たぶん登録できない
とりあえずまだ買えるDelphi 2007オヌヌメ
14デフォルトの名無しさん:2010/07/26(月) 19:53:56
>>13
2009ではなく2007をオヌヌメする理由を教えてくだされ
ひょっとして2009はバギー?
1513:2010/07/26(月) 20:08:51
D7以下からの移行を考えるならまずD2007(最後のANSI版)に移行してUnicode以外の問題を
全て解決し、それから必要に応じて2010(あるいは2011)に、という2段階で進むのが現実的、という話。
Delphi 2009/2010はEmbarcaderoも認めてる通り、今までのバージョンアップと違ってbreaking changeなので。
16デフォルトの名無しさん:2010/07/26(月) 20:11:05
あ、あと2007から2010は優待が効くので。2007は最後のチャンスかもしれん。
個人的にはあと5年とはいわないけど2-3年は2007を併売して欲しいが。
17デフォルトの名無しさん:2010/07/26(月) 20:14:46
>>15
Unicode以外の問題って何?
D7から直接2010に移行したけど文字コード以外の問題って特になかったけど…
(DB周りの)コンポのバージョンや種類のこと言ってるなら、
2007挟むと逆に余計な手間が増えるだけで意味ないだろ
18デフォルトの名無しさん:2010/07/26(月) 20:47:02
問題があるかどうかは人やプロジェクトによって違うでしょ。そこは自分の判断で。
19デフォルトの名無しさん:2010/07/26(月) 21:38:28
ん〜、じゃあ2010買っても良いわけか

まぁもっとも、2007は最後のANSI版というポイントもあるよね?
20デフォルトの名無しさん:2010/07/26(月) 22:16:05
Unicode化を急ぐのか?(それもどの程度か)で変わってくる部分もあるので。たとえば後2月待てるなら
2011も視野に入ってくるし、待てないなら2010だし、年単位で考えればいいなら2007だし。
ANSIに全く未練がないなら2007は考えなくてもいいけど…。
21デフォルトの名無しさん:2010/07/26(月) 23:41:03
結局、よ〜わからんっ!!!!orz w
22デフォルトの名無しさん:2010/07/27(火) 00:54:07
2011はどう考えてもバギーだから考えなくていいよ
Unicode化した2009もバグだらけで2010でやっと使い物になったし、
2011が出てもパッチが出るまではヘタしたら既存コードのコンパイルすら通らない可能性がある
2011ではコンパイラを一から書き直してるらしいから
2312:2010/07/27(火) 11:04:04
いろんな意見ありがとうございます。
とりあえず個人的な用途がほとんどなんで、買うなら 2009 にしたいと思ったんですが、
バグだらけですか。困りましたねえ。

とりあえず次のアップデート権を買うぐらいの気持ちの方がいいのかな。
どうせ日本語しか使わないだろうから、入出力で変換カマして D6 使い続けるのも手かと
思ったんですが、そんな時代に沿わない手間かけるのもいやだし。
24デフォルトの名無しさん:2010/07/27(火) 13:38:11
個人用途なら全然D6でいいと思う
25デフォルトの名無しさん:2010/07/28(水) 06:50:24
2009でUnicode化したが別に困ってないな
信用する前に具体例を聞いてみることだ
26デフォルトの名無しさん:2010/07/28(水) 12:48:15
2009で未修正のバグが2010では100件単位で直っておりますが
2009ではもう修正する予定はないそうですが
27デフォルトの名無しさん:2010/07/28(水) 15:51:17
よく考えたら、アップデート版二つで10万近く行くわけだから、
わざわざ不具合の多い 2009 を経由するぐらいなら
その分を次にまわした方がいいのか。
もうしばらく D6 でがんばるか。
28デフォルトの名無しさん:2010/07/28(水) 18:08:14
旧版のサポートが切れる前に出荷した分については
まだアップデート対象じゃなかったっけ>D6
在庫あればの話だが
29デフォルトの名無しさん:2010/07/28(水) 21:51:23
D6ってことは2009まではアップグレード可能だから、新規に2010/2011を買うのと、D6→2007→2010/2011と
アップグレードするのと、D6→2009→2010/2011とアップグレードするのは金額的に大差ない、ってことだな。
この中から選べっていわれたらD6→2007→2010/2011だよな、普通。
30デフォルトの名無しさん:2010/07/29(木) 10:53:04
ちょっと誰か教えてください。

D2010でコンポーネントを作っています。
例えばTStaticTextを継承してTMyStaticTextを作ります。
Captionに何も入れない状態で作成したいのでCreateにCapition=''を入れていますが、
ポトリするとCaptionにTMyStaticText1が入ってしまいます。
実行するとCaptionは''になるのですけどね。

何処に書けば、最初からCaptionが''のままポトリできるのでしょうか?

31デフォルトの名無しさん:2010/07/29(木) 13:11:08
ソースも晒さずに質問とな?
32デフォルトの名無しさん:2010/07/29(木) 18:23:18
>30
SetNameをoverrideする。詳しい動作はTControl.SetNameを見るべし。
33デフォルトの名無しさん:2010/07/29(木) 18:40:24
>>32さん

ありがとうございました。無事所望の動きが出来ました。
TWinControlまでは遡って見てたんですが、
TControlまで行ってませんでした。

ありがとうです。

34デフォルトの名無しさん:2010/07/29(木) 19:49:13
TreeViewとPageControlを連動させたいのですがどのようにすればいいでしょうか?

例としては
[TreeView]
親1━子1
┃ ┗子2
親2━子3
.  ┗子4

[PageControl]
TabSheet1 TabSheet2 TabSheet3 TabSheet4

このようなTreeViewとPageControlがあった場合に
子1をクリック→TabSheet1表示
子2をクリック→TabSheet2表示
子3をクリック→TabSheet3表示
子4をクリック→TabSheet4表示
このように連動させたいのです。
35デフォルトの名無しさん:2010/07/29(木) 20:41:53
クリックしたら TabSheet を操作すればいいんじゃないの?
36デフォルトの名無しさん:2010/07/29(木) 21:00:02
TreeViewの子に0〜3まで順にindexが振られてたらと思って
TreeView.Selected.Indexを試したのですが
子1→0
子2→1
子3→0
子4→1
となっていて選択された子を知る手段がわかりませんでした。
37デフォルトの名無しさん:2010/07/29(木) 21:02:21
JVCLにそんなコンポーネントがあったような希ガス
それぞれのノードのDataプロパティに対応するTabSheetを覚えさせておくといいのでは?
38デフォルトの名無しさん:2010/07/29(木) 21:17:56
>>37
TreeViewの「選択時のインデックス」のところにTabSheetのindexに対応するもの入れて
TreeView.Selected.SelectedIndexとすることで目的が達成されました!


皆さんありがとうございました。
39デフォルトの名無しさん:2010/07/30(金) 11:18:05
>>31
涙目
40デフォルトの名無しさん:2010/07/30(金) 13:28:57
>>39
無駄な改行入ってると必死に見えるからやめた方がいいよ
41デフォルトの名無しさん:2010/07/30(金) 16:47:12
ちょっと助けてくれ。
大学の講義でプログラミングしているのだが、まったくわからん。

ガンマ線計測によって得られたスペクトルデータを読もとり、データをテキストファイルに書き込んだり、グラフに表示することを各自プログラミングしてみよう。
以下、ヒント
Var
Chn:array of LongWord;
Real_Time,Live_Time:LongWord;
Second,Channels:Word;
DateTime:array[1..12] of Char;
FileName:String;

procedure ReadFile;
Var
InFile:File;
Dummy:array[1..6] of Char;
Result:Integer;
i:Word;
lw:LongWord;

次に続く。
42デフォルトの名無しさん:2010/07/30(金) 16:48:19
begin
AssignFile(InFile,FileName);
FileMode:=fmOpenRead;
Reset(InFile,1);
BlockRead(InFile,Dummy,6,Result);
BlockRead(Infile,Second,2,Result);
BlockRead(Infile,Real_Time,4,Result);
BlockRead(Infile,Live_Time,4,Result);
BlockRead(Infile,DateTime,12,Result);
BlockRead(InFile,Dummy,2,Result);
BlockRead(InFile,Channels,2,Result);
Setlength(Chn,Channels);
For i:=0 to Channels-1 do begin
BlockRead(InFile,lw,4,Result);
Chn[i]:=lw;
end;
CloseFile(InFile);
end;
 ファイルを読み込むときによくやる方法は、"TOpenDialog" コンポーネントを使い、Button コンポーネントをクリックしたときのイベントハンドラなどで、OpenDialog1.Executeを呼び出す。

グラフを書く前に、データをテキストファイルに書き出す練習をしてみよう。テキストファイルの型は、Fileではなく、TextFileを使いう。
データを書き込むファイルを指定する場合には、"TSaveDialog"コンポーネントを使う。SaveDialog1.Executeを呼び出す。書き込む前に、Rewriteを使ってファイルを開く。書き込むときには、Writeln(OutFile,Ch[i]);などのようにする。

プログラムの動きを点検するときは、次の通り
 F4キーを押すと、押されたプログラムの部分まで実行されたら、実行がストップする。F8キーで、次の行、F7キーを押すと、行内でよびだされている手続き・関数内に行って、ストップする(手続き、関数が無い場合には、F8キーと同じ)。

誰か無知な我にご加護を。
43デフォルトの名無しさん:2010/07/30(金) 17:01:45
Delphiインストールしてないや
具体的に何がわからないの?
4443:2010/07/30(金) 17:04:06
ごめん、別のスレと間違えてたw
45デフォルトの名無しさん:2010/07/30(金) 17:07:22
うぬb
46デフォルトの名無しさん:2010/07/30(金) 18:08:59
>>41-42
宿題はこっちのスレの方がいいかな
Pascalの宿題は俺にやらせろ!!Part3
http://pc12.2ch.net/test/read.cgi/tech/1260922392/
47デフォルトの名無しさん:2010/07/30(金) 18:32:33
>>41-42
自分で書いたのが3行だけで、あとはコピペのみってのがスゴイな。
何をしてほしいのかも書いてないし。
どんな環境で前提条件等詳しく書かないと誰も手をつけられないんじゃね?
とりあえず、
>誰か無知な我にご加護を。
神よ、このさまよえる子羊にお導きあれ。
48デフォルトの名無しさん:2010/07/30(金) 23:38:10
未だにDelphiを教材として使ってる大学があるというのが驚き
変な意味じゃなくてな
49デフォルトの名無しさん:2010/07/31(土) 00:48:09
Pascalは教育用だったんだっけか
50デフォルトの名無しさん:2010/07/31(土) 23:14:38
変数や関数の名づけ方が気持ち悪い・・・
51デフォルトの名無しさん:2010/07/31(土) 23:40:28
Delphiもせっかく無償版のおかげで盛り上がってたのに
どうして旧に舵をかえたの?
52デフォルトの名無しさん:2010/08/01(日) 04:44:33
リアルタイムとライブタイムの違いが分からんなw
53デフォルトの名無しさん:2010/08/02(月) 16:22:37
みな、迷惑かけてスマン。
>>46 ありがとう助かる。
>>47 それすらわからんのだ。教員に聞こうも、理解ができない・・・。それは、自分の理解のなさのせいだが・・・
>>48 少人数の講義でやっているから・・・。もはや、これが講義なのかもちょっとわからん。
>>50 自分に言われても出題がそうなっていたので、どうにもできない。すまない。
>>49 >>51-52 自分には理解できない言葉だ、すまない。返答ができない。

>>46の紹介してくれたスレにそのままコピペするが、許してくれ。
54デフォルトの名無しさん:2010/08/04(水) 07:58:53
CIDの文字コードをUTF16に変換する方法を教えてください。ペコリ
55デフォルトの名無しさん:2010/08/04(水) 12:32:53
その日本語はおかしい。CIDがすなわち文字コード。
56デフォルトの名無しさん:2010/08/05(木) 08:16:06
あざっす。もう少し教えてください。ペコリ
57デフォルトの名無しさん:2010/08/05(木) 11:21:25
Delphi2010での質問です。

TCustomLabelを継承してTHogeLabelを作ります。

constructor THogeLabel.Create(AOwner: TObject);
begin
inherited;
AutoSize := false; 
end;

としてデフォルトでは AutoSize が利かないように設定します。

で、それをポトリとFormに落として、HogeLabel1を作ります。
オブジェクトインスペクタにて AutoSize を true に設定します。
Captionを変えると、当然ながら自動でサイズが変わります。

ここまではOKです。

そのまま実行させて、そのHogeLabel1のCaptionを動的に変更させると
それに合わせてサイズが変わってくれません???

THogeLabel.Createに入れた、AutoSize := false; の文をコメントアウトすると
ちゃんと動作して、サイズは動的に変わります。

なぜ、こういう動作になるのでしょうか?


58デフォルトの名無しさん:2010/08/05(木) 12:02:35
property AutoSizeがdefault Trueだから値をTrueにするとdfmに情報が保存されない。
THogeLabel = class(TCustomLabel)
published
property AutoSize default False;
end;
としてTrueにしたときにdfmに保存されるようにするか、
property AutoSize nodefault;
で値を必ず保存するようにする。
59デフォルトの名無しさん:2010/08/05(木) 13:20:57
58さん、ありがとうございます。

なるほど、default指令でしたか。

dfmにAutoSizeの値が保存されないから、
CreateでAutoSizeにFalseを設定した後、dfmをLoadしても
Falseのままになってしまうと言うことですね。

希望通りの動きになりました。

どもでした。
60デフォルトの名無しさん:2010/08/05(木) 15:46:02
どなたか経験がおありなら教えてください。

ToolBar上にTLabelを複数個おきます。
プログラムを実行して、タイマーなどで、そのラベルのキャプションを変更します。
すると、ラベルの位置が変わってしまいます。
Label1,Label2,Label3 と並んでいたのに
Label1,Label3,Label2 と並びが変わってしまうのです。

(実際にはTLabelから派生したTMyLabelですがポジションがらみの部分はいじっていません)

何か見るところありますか?
61デフォルトの名無しさん:2010/08/05(木) 15:54:11
>>60です。

今まで
Label1.Alignment = taLeftJustify
Label2.Alignment = taRightJustify
Label3.Alignment = taLeftJustify
になっていて、
全てのLabelはAutoSize = true
でした。
(AutoSizeがTrueなのでALignmentの設定は意味が無いんですが・・・)

で、全てのLabelのAlignmentをtaLeftJustifyにした所、
順番が入れ替わる現象はなくなりました。

とりあえずOKなんですが、なんで入れ替わってしまうのかの特定は出来ませんでした。

お騒がせしました。
62デフォルトの名無しさん:2010/08/05(木) 20:20:07
>61
意味がないと言うけど、Alignmentを右や中央にしていると
AutoSizeでサイズが変わった時に、ラベルのLeftも変更される。
ToolBarは内部のコントロールを自動的に並べ直すけど
その前にLeftが変わっちゃっているせいで順番が狂うってことだ。
63デフォルトの名無しさん:2010/08/06(金) 08:13:40
>>62さん ありがとう。

なるほど、そういう事でしたか。納得しました。

64デフォルトの名無しさん:2010/08/09(月) 20:33:12
TCustomControlのPaintメソッドでCanvasのマッピングモードを変更し終わったら元に戻しているのですが、
DoubleBufferがonの時、表示がおかしくなります。ソースを追ったのですが、最新の環境では
MemBitmap := CreateCompatibleBitmap(DC, PS.rcPaint.Right - PS.rcPaint.Left,
PS.rcPaint.Bottom - PS.rcPaint.Top);
と、クリッピング領域の部分のサイズしか取ってないのが原因っぽいです。
古い環境ではクライアント領域分確保されているので問題はなかったのですが。
助けて下さい。
65デフォルトの名無しさん:2010/08/09(月) 20:39:44
古い環境のTWinContorolのWMPaintメソッド見ると
MemBitmap := CreateCompatibleBitmap(DC, ClientRect.Right, ClientRect.Bottom);
となってますね。嫌になってきました。
66デフォルトの名無しさん:2010/08/09(月) 20:56:52
逆に今までは問題が表面しなかっただけだと思え
67デフォルトの名無しさん:2010/08/09(月) 20:59:08
もしかして表面化って言いたかったんですか?
つまらないんで帰って下さい。
分かる人いませんか?なるべく早めに回答お願いします。
68デフォルトの名無しさん:2010/08/09(月) 21:24:56
古い環境では問題なくて最新の環境の方がバグ?ってるんで、delphi窓から投げ捨ててきます。
69デフォルトの名無しさん:2010/08/09(月) 21:29:21
犯罪予告キター!
70デフォルトの名無しさん:2010/08/09(月) 22:36:06
通報しました
71デフォルトの名無しさん:2010/08/10(火) 00:55:58
Paintメソッドで描画ってところがいかにもJava厨っぽい
72デフォルトの名無しさん:2010/08/10(火) 02:33:02
【法律】「ウイルス作成罪」創設へ 刑法改正を検討(10/08/09)
http://hibari.2ch.net/test/read.cgi/pcnews/1281355124/
73デフォルトの名無しさん:2010/08/10(火) 07:44:03
表面しな
74デフォルトの名無しさん:2010/08/10(火) 12:42:13
もしかして表面化って言いたかったんですか?
つまらないんで帰って下さい。
75デフォルトの名無しさん:2010/08/10(火) 17:19:32
Delphiでウイルスって作れるんですか?
76デフォルトの名無しさん:2010/08/10(火) 20:19:07
>>75
作れる
77デフォルトの名無しさん:2010/08/11(水) 01:35:40
嘘です
78デフォルトの名無しさん:2010/08/11(水) 14:19:41
すみません、教えてください。

Delphi2010で、Genericを使いたいのですが、

例えば
THoge = class(TComponent)
public
procedure Proc;
end;
があるとして、

hoges: TList<THoge>;
を宣言

hoge = TList<THoge>.Create;
とすると
i := hoge.Add( THoge.Create );
として、コンパイルすると、
'TList<THoge>'は'Proc'という名前のメンバを含んでいません
というエラーが出ます。

が、ちゃんと実行も出来、hoge[i] にもアクセスできます。

何がいけないのでしょうか?
ポインターでも結構ですのでご教示ください。





79デフォルトの名無しさん:2010/08/11(水) 21:36:15
IDEのエラーインサイトがうまく動いてないだけじゃないの?
80デフォルトの名無しさん:2010/08/12(木) 12:51:30
エラーインサイト切れ
あれはバグだらけのゴミ
81デフォルトの名無しさん:2010/08/13(金) 01:09:03
XEにRegExp含まれてるってほんと?
82デフォルトの名無しさん:2010/08/13(金) 04:31:47
IDEになら遙か昔から含まれてるよ^^
83デフォルトの名無しさん:2010/08/13(金) 08:04:41
いまだに6 Personalなんだけど
正規表現使うならどのライブラリがいいんだろう
TRegExpr使ってるんだけど
本家アクセスできなくなってるし・・
84デフォルトの名無しさん:2010/08/13(金) 08:40:41
一番使うの楽なのがVBScriptのRegExpじゃね?ヘッダーとかDLLいらねぇし。
配布するときいちいちMPLだのライセンス条項つけなくてもいいし。
やっぱ、Microsoftのライブラリはバグすくねぇから安心して使えるぜ。
85デフォルトの名無しさん:2010/08/13(金) 10:13:35
翔泳社のサイトみてもロクな新機能ねぇな。ぶっちゃけフォーマッターとかモデラーの
改良とかどうでもいい。もうちょっとプログラマよりの機能を追加してほしいぜ。
.NETに比べて貧弱すぎるクラスライブラリをどうにかしてくれ。2010の時もタッチだの
ジェスチャだのビジュアル面の機能ばっかフォーカスしてるしなぁ。
86デフォルトの名無しさん:2010/08/13(金) 10:18:51
# VCL, RTL, STLのアップデート  漠然としすぎてわからん。
# Delphi RTLの一般式 なんだよ。これ。
# TStrings、Date/Time 機能のエンハンス Nickが前にブログでDate/Timeのテストケース
がどうのこうの言ってたが、これだったのか?つか、そもそも浮動小数使う日付型やめろよ。
いつまでひきずらなきゃいけんだよ。つか、下記のBig Integerもしくは64ビット整数使った、
.NETみたいな日付型導入されたとか??
# 複雑な科学計算のためのBig Integer のサポート これはうれしい。でも、.NET 4は更にBig Numberが追加されてるし・・
87デフォルトの名無しさん:2010/08/13(金) 10:33:33
くだすれでやるのはやめてください。
暴れないでください
88デフォルトの名無しさん:2010/08/13(金) 11:09:42
バカボンのDelphi不買・販促・その他談話室その29
http://hibari.2ch.net/test/read.cgi/tech/1153227982/
89デフォルトの名無しさん:2010/08/13(金) 14:38:14
>>86
VCLやRTLの拡張はこういう細かいのじゃない?
こんなのはさすがにいちいち列挙してたらキリがないし
ttp://d.hatena.ne.jp/tales/20100129/1264694315
ttp://d.hatena.ne.jp/tales/20100209/1265643004
STLは何言ってんだって話だが
しかしこの辺はただのオマケって感じだな
ところでBig Numberって何の話?.NET4で追加されたのは同じくBigIntegerだと思ったけど
90デフォルトの名無しさん:2010/08/14(土) 08:38:43
>>89
ごめん、間違ってた。BigIntegerだけだね。BigIntegerの後の次のリリースで小数サポートした
BigNumberかBigDecimalが追加されたと夢見ていた。Big Integerが4.0でその後なかったね。
気持ちだけつっぱしりすぎてた。
91デフォルトの名無しさん:2010/08/14(土) 15:10:40
BigDecimalは要望多いし実装してくれると嬉しいんだけどね。.NETもDelphiも。
でも最近のVCLは.NETの後追いだから、非互換恐れて先に実装してくれることはなさそうだけど
92デフォルトの名無しさん:2010/08/16(月) 19:51:53
質問です。

TMemo で左右方向にスクロールさせたいのですが、次のどちらかの方法を教えてください。

1. 左端、つまり行頭が見える位置までスクロール。
2. その行の行末を TMemo の右端に揃えるようにスクロール。

Width の狭い TMemo にファイルのパスを各行一つずつ表示させています。
任意の行をクリックするとその行全体を選択するようにしています。
そのときにファイル名がうまく見えるように左右にスクロールさせ位置を調節したいのです。
1. の方法ができれば、スクロールさせたあとで SelStart と SelLength を指定すれば良いと思います。
2. ができれば任意の時点で望み通りの動作ができると思います。
よろしくお願いします。

当方 Delpohi 5 Pro, Windows 7 Home Premium です。
93デフォルトの名無しさん:2010/08/17(火) 02:31:12
>>92
EM_POSFROMCHAR
94デフォルトの名無しさん:2010/08/17(火) 09:37:58
ありがとうございます。
試してみます。
95デフォルトの名無しさん:2010/08/19(木) 00:38:54
Delphi開発はFreeでのバイオレーションとオブジェクトメモリリークとの戦いですね C#のガベージコレクションは天国なんでしょうか?
最近はinterfaceで開放の省略をしていますが それでも原因探索作業が大変です www
96デフォルトの名無しさん:2010/08/19(木) 02:04:23
全角アルファベットを使う人は総じてバカだと聞きました。
97デフォルトの名無しさん:2010/08/19(木) 08:20:52
>>95
C#は楽ですよ w
でもDelphiはそういう苦労があるからスキルが上がると思って... w
98デフォルトの名無しさん:2010/08/19(木) 13:35:19
>>97
コピペにマジレスする男の人って…
9995:2010/08/19(木) 13:42:08
>>96-98
つれたつれた ww
100デフォルトの名無しさん:2010/08/19(木) 21:53:29
Delphiはメモリリーク知らせてくれるから好き
101デフォルトの名無しさん:2010/08/20(金) 02:04:05
>>95>>97
最近はこういうあからさまな自演が流行ってるの?
C#使いまで頭悪く見えるからやめた方がいいと思うよ
102デフォルトの名無しさん:2010/08/20(金) 06:24:30
実際頭は悪い
103デフォルトの名無しさん:2010/08/20(金) 13:24:04
Comboboxをドロップダウンしたまま、スレッドでitems.addし続けると、
DropDownCountを超えても追加されてドロップダウンリストが長くなって
しまい画面外に出てしまいます。
ドロップダウンしたままitems.addした後に何をすればこれを制御することが
できますか?
AdjustDropDownそれっぽかったんですが、呼び出すとうまくいきませんでした。
104デフォルトの名無しさん:2010/08/20(金) 16:43:26
少なくとも別スレッドからitems.addで追加してるコードはメインスレッドと同期してるんだよね?
105デフォルトの名無しさん:2010/08/20(金) 17:27:21
>>104
同期しています。
106デフォルトの名無しさん:2010/08/20(金) 18:22:09
そんな使い方は想定されていないので無理
107デフォルトの名無しさん:2010/08/24(火) 00:33:49
今Delphi2010買っても2011があと一ヶ月ちょいで出ちゃうよね?
svn対応に期待してるんだが待った方がいい?
108デフォルトの名無しさん:2010/08/24(火) 01:23:48
>>107
2011(XE)って、マルチプラットフォームや今後の拡張(64bit化)を見据えて、コンパイラ周りを見直してたかと。

なので、フィールドテストを抜けたとはいえ、リリース直後は安定性が気になるので、個人的には2010を買って、さらにその次のリリースに期待してみてはいかがかと。
109デフォルトの名無しさん:2010/08/24(火) 01:34:57
XE買えば、7,2007,2009,010とか旧製品も使えるんじゃなかったけ?
>2011(XE)って、マルチプラットフォームや今後の拡張(64bit化)を見据えて、コンパイラ周りを見直してたかと
結局間に合わなかったんだから、コンパイラとか旧製品の延長のものじゃね?
まぁ、実際は知らんけど。
110デフォルトの名無しさん:2010/08/24(火) 04:17:47
ここは
>Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
>もしくは質問者自身何が何だか分からない質問を
>勇気を持って書き込むスレッドです。

もしできましたら、雑談は
バカボンのDelphi不買・販促・その他談話室その29
ttp://hibari.2ch.net/test/read.cgi/tech/1153227982/
で書き込んでいただけませんか?
または新たに雑談スレを起こしていただけないでしょうか
111デフォルトの名無しさん:2010/08/24(火) 12:59:31
質問じゃん
もしかして雑談と質問の区別も付かないほどバカなの?
112デフォルトの名無しさん:2010/09/02(木) 13:03:03
D3+IB4.2と言う環境です
TTableのFindkeyについて質問です
CODE:integer
ID:integer
Data:integer
というテーブルT1があってBDEのTTableでアクセスしています
CODE+IDでインデックスIDX1を貼ってあり
T1.Indexname=IDX1となっています
CODE及びIDはNOT NULLでIDには1以上の値が入ります、からなず1からとは限りません。

このテーブルでインデックス順で特定のCODEの先頭レコードに移動したいときに
T1.Findkey([CODE])
で良いのでしょうか
現状では一見動いているようですが
Helpを見るとキーフィールドを省略したときには省略されたところはヌルが入るとなっており
CODE+NULLで検索されてNot Foundになりそうなのですが。
113デフォルトの名無しさん:2010/09/02(木) 20:06:22
>>112
D3の頃も、今と違いはないと思うけど、部分キーによる検索になるから、多分問題ないと思う。

ttp://docwiki.embarcadero.com/RADStudio/XE/ja/部分キーでの検索
114デフォルトの名無しさん:2010/09/05(日) 17:36:47
質問です。
QuickReportのGroupHeaderのExpressionで改ページの制御をするのは分かるのですが
「Detailを○件出力したら改ページする」というやり方がわかりません。

ブレーク条件は「番号」、それに加えて「○件出力したら改ページ」させたいのです。
グループヘッダを複数作ってみたり、変数を用意して○件目で値を変えてそれを条件にできないか……と
試行錯誤してみたりしましたがうまく動きませんでした。
どなたか良い方法を御存じでしたら教えてください。お願いします。
115デフォルトの名無しさん:2010/09/08(水) 02:09:52
今いちばん手っ取り早いVCLのソースの入手法を教えてください
116デフォルトの名無しさん:2010/09/08(水) 02:39:37
購入
117デフォルトの名無しさん:2010/09/08(水) 02:45:48
確かにそれは手っ取り早いなw
もっと手っ取り早くするならパッケージ版じゃなくてダウンロード版ってところか
118デフォルトの名無しさん:2010/09/08(水) 14:07:16
TEditかLabelの文字を点滅表示させたいのですが
どうすれば良いでしょうか
ぐぐったらタイマーで制御する方法は見つかったのですがもっと簡単な方法は無いでしょうか
119デフォルトの名無しさん:2010/09/08(水) 14:17:57
TFlushLabel = class(TLabel)
private
 FTimer: TTimer;
 procedure TimerOn(Sender: TObject);
public
 property Active: Boolean read GetActive write SetActive;
end;

とかクラス作れば?
だめ?あ、そうでしたか・・・

120デフォルトの名無しさん:2010/09/08(水) 14:44:12
自分がまばたきすれば点滅するお
121デフォルトの名無しさん:2010/09/08(水) 15:01:15
タイマーが難しいと感じてる時点で結構ヤバイ
122デフォルトの名無しさん:2010/09/08(水) 16:21:26
どっかにそんなコンポありそうだな。
123デフォルトの名無しさん:2010/09/08(水) 16:49:13
だれか教えてください。

Canvasの一部に図形を描く。
図形をずらして行きたいので、その図形を上書きして元に戻して
ずらして描画するって事をやってるんだけど、

もとの位置だけ覚えておいて
CanvasのPropertyか何かを設定すると、簡単に行かないですかね?

例えば
図形を描く時に元のCanvasの色とマージした色で描いて、
消すときは同じ所に描くとまたマージされて元の色に戻るみたいな・・・

なんか、そんなpropertyなかったでしたっけ?

124デフォルトの名無しさん:2010/09/08(水) 17:15:19
>>123
CopyMode
125デフォルトの名無しさん:2010/09/08(水) 17:54:53
ありがとうございます。

CopyModeってCavnasに直接PieとかRectangleで描画する際も生きるのでしょうか?

CopyModeにいろいろ値を設定しても、変化なしで・・・

Drawとかだと変化あるのですけど。
126デフォルトの名無しさん:2010/09/08(水) 21:08:27
>123
xorで描画とか
でもいまどきは普通に描画するほうがいいと思う。DWMもあるし。
127デフォルトの名無しさん:2010/09/08(水) 21:25:03
>>118
「簡単」と言うなら間違いなくタイマーが一番簡単だと思う
128デフォルトの名無しさん:2010/09/09(木) 09:05:30
>>126さん、ありがと。

Desktop Window Managerっすか。
なんか、浦島太郎な人なので、追いついていかないっす。

とりあえず、今はバックグランドから再描画しちゃってますが、
重くなりすぎて弊害が出るようなら、描画部分を考えようかと思ってます。

129デフォルトの名無しさん:2010/09/09(木) 11:49:23
えっと。
Delphi2010ですが、

TGroupBoxのCaptionの文字色の変更って出来ないですかね?

130デフォルトの名無しさん:2010/09/09(木) 12:05:46
自己解決?

マニフェストがらみなんですね。
TGroupBoxから派生させて、Paintをoverrideして解決しました。

ほんとに解決?っテ感じだけど。
131デフォルトの名無しさん:2010/09/11(土) 17:12:40
IndyのCookieManagerで保存されてるクッキーを見るにはどのようにしたらよいのでしょうか?

Indyのバージョンは10.5.8.0です。
よろしくお願いします。
132デフォルトの名無しさん:2010/09/11(土) 21:23:01
http://pc12.2ch.net/test/read.cgi/tech/1093654251/

indyスレ落ちてたか

キャッシュ

http://logsoku.com/thread/pc8.2ch.net/tech/1093654251/

答えが出てるかは未確認
133デフォルトの名無しさん:2010/09/12(日) 12:53:08
そんなのググればいくらでもあるんじゃね
134デフォルトの名無しさん:2010/09/15(水) 17:35:47
Dephi6です
重なりあったPanelやボタンを「コントロール > 全面に移動」
をプログラムで書く方法があれば教えてもらえませんか?
今は
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Visible:=True;
Panel2.Visible:=False;
Panel3.Visible:=False;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Panel1.Visible:=False;
Panel2.Visible:=True;
Panel3.Visible:=False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Panel1.Visible:=False;
Panel2.Visible:=False;
Panel3.Visible:=True;
end;
と非常に無駄なことをやって増えすぎで収拾がつきにくくなってきました
必要な物だけ最全面にできれば簡素化できるのでお願いします。
135134:2010/09/15(水) 17:39:09
誤字です
X:> 全面に移動」  / 必要な物だけ最全面にできれば
○:> 前面に移動」  / 必要な物だけ最前面にできれば
136デフォルトの名無しさん:2010/09/15(水) 18:47:23
BringToFront/SendToBack
137デフォルトの名無しさん:2010/09/15(水) 19:58:08
Tabキーで背面のボタンに移動してクリックできるプログラムのできあがりですね

それぞれのボタンにTag振っておいて、イベント共有させて
procedure TForm1.ButtonClick(Sender: TObject);
var n;
begin
n := (Sender as TControl).Tag;
Panel1.Visible := n = 1;
Panel2.Visible := n = 2;
Panel3.Visible := n = 3;
end;
とかすればすっきりするよ。
というか、PageControl使って切り替える方が楽じゃね
(Style=tsButtonにしとけば、タブ見えないように隠すこともできるし)
138134:2010/09/16(木) 01:40:36
>>136-137
すばやい返答でおそれいります。
BringToFront が TApplication.BringToFront のところだけリファレンスを見ていて
「う〜んアプリそのものじゃないんだけどなぁ」
TControl.BringToFron を見落としていました。

>>137 タブページも使用している中にも存在していて、というかすっきりしすぎて
書式 Panel1.Visible := n = 1; の n = 1 の部分が理解できなかったりw

あれこれ試し書きして

procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.BringToFront;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Panel2.BringToFront;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Panel3.BringToFront;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Panel4.BringToFront;
end;
以下略
で落ち着けそうです。 ありがとうございました。
139デフォルトの名無しさん:2010/09/16(木) 08:50:00
大して変わんねーw
140デフォルトの名無しさん:2010/09/16(木) 09:56:50
136と137を合わせればスッキリするんじゃね
141デフォルトの名無しさん:2010/09/16(木) 10:24:21
久しぶりにdelphiのコードみたがなんつーか汚いコードだな
10年以上前のフレームワークだからこんなものかもしれないがそれにしても酷い
142デフォルトの名無しさん:2010/09/16(木) 12:32:26
>>141
Delphiのコードはどちらかと言えば綺麗だと思うけど?
C++、C#、javaなんかに比べればなw
143デフォルトの名無しさん:2010/09/16(木) 12:49:24
主観の問題だから何が綺麗で何が汚いかは人それぞれ。
だけど門外漢が見て美しいと思えるコードがあるとすれば、それは LISP なのかも知れない。
144デフォルトの名無しさん:2010/09/16(木) 12:55:39
俺はフレームワークの話をしてるのになんで言語の話が出るのやら
会話の土俵にもあがれんとはほんと馬鹿なんだな
145デフォルトの名無しさん:2010/09/16(木) 13:18:18

>久しぶりにdelphiのコードみたがなんつーか汚いコードだな

146デフォルトの名無しさん:2010/09/16(木) 13:20:51
>>144
Delphiはフレームワークこそ美しい
147デフォルトの名無しさん:2010/09/16(木) 13:40:52
老害の戯言に一々耳を傾けるなよ
148デフォルトの名無しさん:2010/09/16(木) 18:38:13
初心者スレで何場違いなことを・・・
149デフォルトの名無しさん:2010/09/16(木) 20:36:28
>>144
誰もお前とは会話してないよw
150デフォルトの名無しさん:2010/09/17(金) 09:14:48
Dephi2010をWin7上にて使用しています。
F9でプロジェクトを実行した際には、ウィンドウはWin7のいわゆる「カッコイイウィンドウスタイル」で表示されるのですが、なぜかIDE上のデザイン時には、Win9x時代のような田舎臭いデザインでフォームが表示されます。

IDE開発の際にも統一してウィンドウをカッコ良く表示したいのですが、どうしたら良いでしょうか?
151デフォルトの名無しさん:2010/09/17(金) 11:15:08
if (i>0) and (i<10) then
なんて記述はもっとスマートにならない?(0<i<10)とか
152デフォルトの名無しさん:2010/09/17(金) 11:28:44
if not ((i<=0) or (i>=10)) then
153デフォルトの名無しさん:2010/09/17(金) 11:35:36
if InRange(i, 1, 9) then
154デフォルトの名無しさん:2010/09/17(金) 14:00:01
if i in [1..9] then
155デフォルトの名無しさん:2010/09/17(金) 14:05:08
>>153>>154は処理的に遅いので、>>152が理想的だと思う
156デフォルトの名無しさん:2010/09/17(金) 15:16:43
スマートに書きたいのであって速度を求めるとは言ってませんが
勝手に勘違いしないでくれますか?
157デフォルトの名無しさん:2010/09/17(金) 15:28:11
>>155は完全に勘違いした知ったかだね
コンパイル後、>>152は条件分岐が2つ入るのに対して、>>154は最適化されて1回の分岐で済む
命令数はどちらも同じだから、つまり分岐が少ない>>154が速度的にも上
嘘だと思ったら自分でCPU窓覗いて確かめてみればいい
158デフォルトの名無しさん:2010/09/17(金) 15:36:01
>>156
かっちょえー関数作ればいいよ。
159デフォルトの名無しさん:2010/09/17(金) 15:41:51
// if not ((i<=0) or (i>=10)) then
test esi,esi
jle +$1b
cmp esi,$0a
jnl +$16

// if i in [1..9] then
mov eax,esi
dec eax
sub eax,$09
jnb +$16

ほんとだ。これは意外だな・・・。
160デフォルトの名無しさん:2010/09/17(金) 17:19:59
151 が最適じゃないのかw
161デフォルトの名無しさん:2010/09/17(金) 17:23:16
>>150
>なぜかIDE上のデザイン時には、Win9x時代のような田舎臭いデザインでフォームが表示されます。
田舎に住んでいるか、田舎者が起動すると田舎臭いデザインになるのかもね
162デフォルトの名無しさん:2010/09/17(金) 20:36:58
>>161はそう入力すると、得意げに田舎くさい書き込むボタンを押した。
163デフォルトの名無しさん:2010/09/17(金) 20:38:14
悔しかったのか?
164デフォルトの名無しさん:2010/09/17(金) 21:53:07
スレッドオブジェクト内のfor文で

TStringListでA.txtをLoadFromFileして、処理してファイルA-1.txtとしてSaveToFile
TStringListでB.txtをLoadFromFileして、処理してファイルB-1.txtとしてSaveToFile
TStringListでC.txtをLoadFromFileして、処理してファイルC-1.txtとしてSaveToFile
TStringListでD.txtを・・・

といった具合のことをしたいんだけど、2つ目のファイルのSaveToFileで例外が起こる
その例外の内容が「ファイルを他のプロセスが使用してるから保存できない」といった内容
もちろんファイルの名前は違うし、そもそもTStringListを使いまわしてるからこういう例外は起きないと思うんだけど何かありますかね?
165デフォルトの名無しさん:2010/09/17(金) 21:56:00
書き忘れた
例外は発生するけど一応処理されたファイルが生成される
けど例外が出るから次のファイルの読み込みまでいけない
166デフォルトの名無しさん:2010/09/17(金) 22:08:09
まずコードを出せ
話はそれからだ
167デフォルトの名無しさん:2010/09/17(金) 22:45:04
ごめんなさい解決しました

というのもちょっとコードいじったらデバッグ中だと例外が起きるんですが、生成されたファイルを実行するとエラー無く(スルーされてる?)実行され、ちゃんと複数のファイルも処理して吐き出されました
しかしデバッグモードで実行するとその箇所で例外っぽいのが発生してフリーズするのはなぜなんでしょうかね・・・

とりあえず目的の動きはしたので失礼しました
168デフォルトの名無しさん:2010/09/18(土) 03:18:50
タイミングによって起きるバグだろ
たぶん解決じゃない
169デフォルトの名無しさん:2010/09/18(土) 03:35:00
>その箇所で例外っぽいのが発生して
その「っぽい」のを教えてくれないと話が進まん。
スクリーンショットくらいはとれるでしょ?
170デフォルトの名無しさん:2010/09/18(土) 23:17:38
Delphi6 Personal + Indy10でネットワークアプリを作成しています
Indy10のTIdTCPClientとTIdTCPServerで
テキストやバイナリを相互にやりとりするプログラムを作成しているのですが・・

Clientのほうからバイナリデータを送信するとき、TThreadでスレッドを作成し、
そのスレッド内でTIdIOHandlerSocket.WriteをつかってTMemoryStreamのデータを送信しているんですが、
送信すると、どうも10回中2,3回は何も送信できずに切断されます
ですが、TIdIOHandlerSocket.Writeの直後にSynchronizeで何らかの処理をいれると
一度も失敗しなくなります

これってなんなんでしょう・・
171170:2010/09/19(日) 02:29:17
大変お騒がせしました
おそらくですが解決しました

どうやらTIdIOHandlerSocket.Writeのあとで
TIdIOHandlerSocket.Closeしていたのが原因のようです
これは送信処理をしたあと相手が受信しきる前に
無理矢理中断してたことになっちゃうんでしょうか・・?

ともかく170で書いていたような症状はでなくなったので
よかったです・・
172デフォルトの名無しさん:2010/09/19(日) 05:21:35
ImageList の画像の一部分を取り出して Draw って出来ませんか?
例えば ImageList1 に入ってるビットマップのサイズが 100*100 の大きさで
左上 (10,10) から右下 (80,80) だけを Image とかに転送したいんですが・・・

自分で切り取って作らんといかんのかなぁ・・・
173デフォルトの名無しさん:2010/09/19(日) 06:37:54
>>172
TImageList.GetBitmapでTBitmapとして取り出せるみたいなので、
そこからTBitmap.Canvas.CopyRectとかでどうでしょう
174デフォルトの名無しさん:2010/09/19(日) 06:53:47
TImageList * 1
TImage * 1
TButton * 1
をTForm1に配置
TImageListには既に1つイメージを読み込んでる状態で

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
R: TRect;
begin
Bmp := TBitmap.Create;
ImageList1.GetBitmap(0, Bmp);
R.TopLeft := Point(10, 10);
R.BottomRight := Point(80, 80);
Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height), Bmp.Canvas, R);
end;
175デフォルトの名無しさん:2010/09/19(日) 06:54:52
Bmp.Free忘れてました・・
まあこんな感じでOKですかね?
176デフォルトの名無しさん:2010/09/19(日) 11:21:16
忘れないためにもCreateしたらtryするという癖をつけたまえ
177デフォルトの名無しさん:2010/09/19(日) 12:54:41
タロットカードの表示について
for i := Low(tarotdata) to High(tarotdata) do begin
j := i +Random(Length(tarotdata) -i +Low(tarotdata));

tmp0 := tarotdata[j][0];
tarotdata[j][0] := tarotdata[i][0];
tarotdata[i][0] := tmp1;
tmp1 := tarotdata[j][1];
tarotdata[j][1] := tarotdata[i][1];
tarotdata[i][1] := tmp1;
end;

で、22枚のカードをランダムにtarotdataに格納
(tarotdata[i][0]は、正位置、tarotdata[i][1]は、逆位置)

その後、以下のようにkにランダムに0か1を代入することによって、
カードを表示させたかったのですが、

tarotdata
for a := 0 to 21 do
begin
k := random(1);
shuffle_data_name[a]:= tarotdata[a][k].name;
shuffle_data_image[a]:= tarotdata[a][k].image;
end;

これを実行すると全部逆位置になります。
たぶん、k := random(1);のところでで、最初kが1となったまま
ずっとループしているせいだと思うのですが、
22枚それぞれを正位置、逆位置ランダムに表示させるには、どうすればいいでしょうか。
178デフォルトの名無しさん:2010/09/19(日) 13:17:38
tmp0はいつ使うの?
179デフォルトの名無しさん:2010/09/19(日) 13:19:17
>>177
たとえば、

k := Ord(Odd(Random(1023)));

としてみるってのはどう?

180177:2010/09/19(日) 13:59:33
>>178-179
できました。
前半の間違い
tmp0 := tarotdata[j][0];
tarotdata[j][0] := tarotdata[i][0];
誤tarotdata[i][0] := tmp1;


tmp0 := tarotdata[j][0];
tarotdata[j][0] := tarotdata[i][0];
正tarotdata[i][0] := tmp0;

に修正して、
k := Ord(Odd(Random(1023)));
をつかったら、うまくいきました。

ありがとうございました。
181デフォルトの名無しさん:2010/09/19(日) 15:25:20
そもそもRandomが返す範囲を理解してないのが問題だと思うが
ヘルプ嫁
182デフォルトの名無しさん:2010/09/19(日) 15:29:54
田舎臭いC言語を捨ててDELPHI信者になったら都会者になれますた
183デフォルトの名無しさん:2010/09/19(日) 15:41:39
>>177 どうせタロットカードを真似るなら、もっと真似ればいいんだよ
最初に順番に並べてデータを作っておき、シャッフルする
そのふたつを一挙にやろうとするからバグる

カードが22枚で向きが2つあるなら、1〜22、−1〜−22とすればtarotdataは一次元配列で
済むんじゃないか 二次元配列を使うことが相当無駄に思える
184デフォルトの名無しさん:2010/09/19(日) 16:37:53
二次元配列を無駄というところがおっさん臭いですね
185デフォルトの名無しさん:2010/09/19(日) 18:52:31
28のおっさんでつ
186デフォルトの名無しさん:2010/09/19(日) 20:42:42
ほんとにおっさんだったのかw
187デフォルトの名無しさん:2010/09/19(日) 20:45:03
おっさんじゃないのにDelphi使ってる方がどうかしてる
188デフォルトの名無しさん:2010/09/19(日) 20:57:32
は?おっさんは黙ってろよ
189デフォルトの名無しさん:2010/09/19(日) 22:06:09
おっさん同士仲良くしようぜ
190デフォルトの名無しさん:2010/09/20(月) 13:31:13
二十歳以下でDELPHI使ってるやつはきもい
191デフォルトの名無しさん:2010/09/20(月) 14:58:05
おっさんの妬みきめえwww
192デフォルトの名無しさん:2010/09/20(月) 16:19:49
【CodeGear】Embarcaderoオッチャ その23【Delphi】
http://hibari.2ch.net/test/read.cgi/tech/1284383807/l50
193デフォルトの名無しさん:2010/09/20(月) 16:36:54
>>190
さーせん
194デフォルトの名無しさん:2010/09/20(月) 18:34:05
>>190
きもくてさーせんw
195デフォルトの名無しさん:2010/09/21(火) 11:19:47
今ひとつよくわからない部分があるので、質問させて下さい。

protectedというキーワードがありますが、これを使うと超便利!!というケースってどんなものがあるんでしょうか?
継承先しか見えない、という説明こそ覚えましたが、具体的にそれができると何が便利なのか、利用の活路が見い出せません。
外に見せたくないならprivateでいいし、見せたいならpublicで良いような気がしましたもので。
196デフォルトの名無しさん:2010/09/21(火) 11:40:11
publicだと他のクラスからも見えてしまうぞ
197デフォルトの名無しさん:2010/09/21(火) 14:57:53
クラス継承というものを理解汁
198デフォルトの名無しさん:2010/09/21(火) 22:04:40
>>195
デザインパターンのTemplate Methodが理解出来ると、protectedの効用が分かるかもよ
199デフォルトの名無しさん:2010/09/21(火) 22:42:54
手許にある塚越先生の御本によりますと、
別ユニットで宣言した下位型から、上位型のフィールドを参照するときに…
200デフォルトの名無しさん:2010/09/22(水) 08:27:57
親類の間の秘密があってもいいじゃないか。
201デフォルトの名無しさん:2010/09/22(水) 12:29:54
プロテクトがかかってウイルスに強くなります。
202195:2010/09/22(水) 22:16:30
何か機能があって、Ver1, Ver2とクラスを作るとき、Ver2はVer1と機能自体はおなじで、
基本処理はVer1を使い回すような場合なんかに有効ってことなんですかね。

なんとなくわかりました。ありがとうでした。
203デフォルトの名無しさん:2010/09/22(水) 22:41:04
Delphiの機能を学ぶにはVCLのソースを眺めるのが手っ取り早いよ
204デフォルトの名無しさん:2010/09/24(金) 22:01:35
var
a: Pointer;
begin
a := AllocMem( 1024 );
( PByte( a ) + 1 )^ := 1; // ← こういう演算はできるくせに
( PCardinal( a ) + 1 )^ := 1; // ← これができないのはなぜでしょう?
ShowMessage( IntToStr( PUInt64( a )^ ) );

言語上の制約なんでしょうか?
205デフォルトの名無しさん:2010/09/24(金) 22:28:00
>204
言語上の制約です。
ttp://docwiki.embarcadero.com/RADStudio/ja/Pointer_Math_%EF%BC%88Delphi%EF%BC%89
でどうでしょう?
206デフォルトの名無しさん:2010/09/25(土) 21:51:22
バージョンアップだけはしてたんですが、仕事ではDel7ずっと使ってました。
2010インストールしてみてあれこれさわってる最中なんですが、
そろそろユニコードに移行しないとマズいんでしょうか?
207デフォルトの名無しさん:2010/09/25(土) 23:20:35
次々世代OSでANSI系APIが消えるのでそれまでに移行してないと死にます
208206:2010/09/25(土) 23:35:33
そうですか、
幸い自分は産業機械屋なので、組み込み用XPでまだしばらくの間は凌げるので
ちょっとは時間的猶予があるのかな。
まぁ開発機はいつまでもXPというわけにもいきませんが…
>ANSI系APIが消える
パソコン以外の機器とのシリアル通信がメインなんですが、アスキーコードに
関する処理がばっさり消えてしまうとかなり困ったことになりそうな気配がします。
209デフォルトの名無しさん:2010/09/25(土) 23:36:43
207の妄想だから気にするな
210206:2010/09/25(土) 23:48:18
>>209
あら、そうなのか、
自分の開発内容だとASCII/SJIS以外の文字コード扱いたくないから
ユニコード非対応の方が良さそうだな。
新しい奴でもコンパイルオプションとかでANSI/ユニコード切替できたら良いのに…

Windowsのみで完結するアプリの場合、ユニコードに移行するメリットとか
移行しなきゃいけない要因ってどんな感じなんでしょうか?
211デフォルトの名無しさん:2010/09/26(日) 00:08:31
>>210
日本語と英語以外を扱う場合。
212デフォルトの名無しさん:2010/09/26(日) 00:12:47
>>210
Vista以降ではUTF-16前提のAPIがいくつかあります
213デフォルトの名無しさん:2010/09/26(日) 00:28:51
>>210
> Unicode では マルチバイト ANSI に比べて利用できる文字の数が増えており、
> Shift-JIS では表現できなかった’©’ や ‘®’ 、外字にするしかなかった
> 文字等も表示する事ができます。このように、旧来の Delphi でマルチバイト ANSI を
> 扱ってきた方にも、アプリケーションをUnicode 化するメリットはちゃんとあります。
http://edn.embarcadero.com/jp/print/38783

お前が言ってることは10年以上前から散々議論されてきたこと
組み込み屋とはいえ今更そんな質問をすること自体理解できない
メリットもデメリットもググればいくらでも出てくる
214206:2010/09/26(日) 00:38:05
>>213
私含め、産業機械屋が時代遅れなのは重々承知なんですが
>ASCII/SJIS以外の文字コード扱いたくないから
って書いてあるの読めませんか?

215デフォルトの名無しさん:2010/09/26(日) 00:39:51
>>213
バーカ
216206:2010/09/26(日) 00:42:21
>>213
ああゴメンなさい、自分で
>Windowsのみで完結するアプリの場合
って書いてたわ
217デフォルトの名無しさん:2010/09/26(日) 00:44:50
>>213
文字数増やしたいが為にわざわざ大掛かりなリプレースするの?
218デフォルトの名無しさん:2010/09/26(日) 03:51:15
>ユニコードに移行するメリットとか 
>移行しなきゃいけない要因ってどんな感じなんでしょうか? 
聞いてて答えたら逆切れwwwwww
219デフォルトの名無しさん:2010/09/26(日) 11:06:07
質問です

Delphi6 PersonalにSpTBXLibを導入しているのですが、
SpTBXLibにTListViewのようなコントロールがないようなのですが..
なにか代替であったりするんでしょうか?
220デフォルトの名無しさん:2010/09/26(日) 13:24:59
6で作っていたソフトを2007に移行しているんですが、
EditのMaxLengthの扱いが違うようなので、
「全角文字の文字数=半角文字の文字数の半分」で動作させたいのですが、
これは可能でしょうか?
221220:2010/09/26(日) 14:05:07
自己解決しました、
テーマを外したらOKでした。
222デフォルトの名無しさん:2010/09/26(日) 23:55:27
>>214-216
この自演コンボ酷すぎる
組み込みは時代遅れどころか自分で言ったことも忘れて煽る馬鹿なんだなw
223デフォルトの名無しさん:2010/09/27(月) 05:36:08
「自演」ではないだろw
どうでもいいけど
224デフォルトの名無しさん:2010/09/27(月) 12:22:29
はいはいそうだね^^
225219:2010/09/27(月) 13:55:51
>>219で質問した者ですが、
結局カラムヘッダーにグラデーションを描写して
それっぽく見えるようにはなったので
他に方法が見つかるまではこれで凌ぐことにします

ありがとうございました
226デフォルトの名無しさん:2010/09/27(月) 21:56:21
フォームにListBox1、ListBox2を置いて、それぞれにファイル(複数)がドロップされたらそれぞれのリストボックスにファイル名を登録する、というのをしたいのですが、どうにもわかりません。
特定のコンポーネントがドラッグ&ドロップを受けるようにするサンプルはあったのですが、複数になるとハンドルなどの設定の仕方がわからないのです。
227デフォルトの名無しさん:2010/09/27(月) 22:30:42
>>226
procedure TForm1.WMDropFiles(var msg: TWMDropFiles);
var
  pos: TPoint;
  ctrl: TControl;
begin
  DragQueryPoint(Msg.Drop, pos);
  ctrl := FindDragTarget(ClientToScreen(pos), False);
  DragFinish(msg.Drop);
  if ctrl = ListBox1 then
  begin
    //lb1
  end
  else if ctrl = ListBox2 then
  begin
    //bl2
  end;
end;
228デフォルトの名無しさん:2010/09/28(火) 09:30:15
const
MAX_A = 10;

Symbol_ABC : array[0..MAX_A -1] of Byte = (
1, 2, 3, ...
);

はできますよね。一方で、

const
MAX_B : array[0..10] of Byte = (
10, 20, 30, ...
);

Symbol_ABC : array[0..MAX_B[2]] of Byte = (
1, 2, 3, ...
);

こういうことがしたいのですが、このままだとコンパイルが通りません。何か手段はあるでしょうか?
229デフォルトの名無しさん:2010/09/28(火) 14:15:28
型付き定数は内部的には変数と同様の扱いをされますのでそのコードではできません
230デフォルトの名無しさん:2010/09/28(火) 20:45:14
>228
const
MAX_B_2 = 30;

MAX_B : array[0..10] of Byte = (
10, 20, MAX_B_2, ...
);

Symbol_ABC : array[0..MAX_B_2] of Byte = (
1, 2, 3, ...
);
でどうよ。
231デフォルトの名無しさん:2010/09/28(火) 23:52:29
>>227
ありがとうございます!
特定のコンポーネントが受けるコードは結構な行数があったのに、こっちの方が全然スマートなコードですねw
232デフォルトの名無しさん:2010/09/29(水) 00:01:39
>>231
これだとフォーム全体でドロップを受け付けてしまって受けたくない部分でもマウスカーソルがドロップできるものになってしまうのが欠点ですが作る方としては楽できますよ^^
233デフォルトの名無しさん:2010/09/29(水) 11:48:24
UACの実行レベルの設定に関する質問です。

UACを規定レベル設定して、DELPHI6で作成したEXEをアドミニストレータ権限を
必要とする設定にして、実行する際に権限昇格ウィンドウを表示するように
しようとしています。

省略しますがリソースに
<requestedExecutionLevel level="requireAdministrator" uiAccess="false">
</requestedExecutionLevel>
としても、requireAdministrator、asInvokerと切り替えたりしても、正常に
動作しません。

Visualstudio 2010では、マニフェストファイルのUAC実行レベルの設定で
簡単に変更できて、リビリドすれば、問題なく動作します。

同様のことをDELPHI 6で設定したいのですが、どうもうまくいきません。
試しにVisutal Studio 2010で作成したリソースをリンクしたら一度は
うまくいったのですが、二度目からまったくうまくいきません。
また、XN Resource Editorで、Visual Studio 2010で作成したEXEのリソースの
requestedExecutionLevel levelを直接書き換えても同様に、レベルを
うまく変更できるわけではないので、何かやらなければならないことが
あるのだと思うのですが、どうしたらよいのでしょうか?
234デフォルトの名無しさん:2010/09/29(水) 12:36:04
msdn見て下さい
235sage:2010/09/30(木) 13:51:07
>>233
自己解決しました。
やらなければならないことは単純でした。
microsoft windows sdkにある、mt.exe(マニフェストツール)を使用して、
app.exe.manifestファイルに対して、hashupdateするだけです。

mt -manifest app.exe.manifest -hashupdate:app.exe.manifest
これだけでした。
236sage:2010/09/30(木) 16:35:33
>>235
ごめんなさい、これだけだと・・一度はうまくいったのですが・・
もう一度asInvokerに戻すことができませんでした。
最終的にはdelphiでリンクするのをやめて、
mt -manifest app.exe.manifest -outputresource:app.exe
でリンクするようにしなければ駄目でした。
訂正しておきます。
237デフォルトの名無しさん:2010/09/30(木) 17:25:25
sage
238デフォルトの名無しさん:2010/10/01(金) 15:30:56
Delphi2005ぐらいから、ランタイムテーマが有効な場合、
TListView のスクロールバーを操作するたびに、リストビューの項目全部が
無意味に再描画されてしまいます。

VCLソースをみたところ、WM_SCROLL が発行された場合に
わざわざ再描画されているようなのですが、なぜこんなことをしているのか
ご存知の方いますか?

VCLソースをいじったり、カスタムコンポーネントを作ったりして
WM_SCROLL のときの再描画処理をつぶしてみましたが、XP でも Win7 でも
特に問題なさそうに見えます。
239デフォルトの名無しさん:2010/10/01(金) 20:07:57
問題があるからそうなってんの。
240デフォルトの名無しさん:2010/10/01(金) 21:44:56 BE:157133-PLT(12000)
delphi6 personal を現在ダウンロードできる場所ありますか?
241デフォルトの名無しさん:2010/10/01(金) 22:03:11
ない
242デフォルトの名無しさん:2010/10/02(土) 00:52:41
今まで動作していたコードがうまく動かなくなったのです
スレッドのsynchronizeでフォームのラベルを書き換えようとしても変わらない
ちゃんとForm1.CreateでTStringList.CreateしてるのにForm1.DestroyでFreeすると「無効なポインタ操作」と例外が出る
デバッガじゃなくて生成されたexeでも同じ現象

そこで調べるためにForm1.Createにshowmessageを1つ表示するようにしました
するとメッセージが2回表示されたのです

これってForm1.Createイベントが2回起こってるということになるじゃないですか
何かのバグなんですかね?
243デフォルトの名無しさん:2010/10/02(土) 00:57:15
>>239
問題なさそうに見えるけど、どう問題があるの? って聞いてるんです。
でも後からここが超初心者スレであることに気づいたので
ここで聞くのはやめることにしました。本当にありがとうございました。
244デフォルトの名無しさん:2010/10/02(土) 00:59:46
>>242
Form1を何かの拍子で二つ作ってるとしか思えない
そのShowMessageにブレークポイントかけてみたらどう?
245デフォルトの名無しさん:2010/10/02(土) 10:29:53
>>244
ありがとうございます
Project1を見たらApplication.CreateForm(TForm1, Form1);がなぜか2つありました
片方消したら無事解決しました
246デフォルトの名無しさん:2010/10/02(土) 10:57:42
>>240
もしindyが目的ならTurbo Delphiでもできないことは無いみたい
違ったらスマソ
http://tomomori.cocolog-nifty.com/blog/2006/09/turbo_delphi__cad1.html
あと俺はどこだか忘れたけどDelphi6 Personalをダウンロードしてライセンスキーはボーランドにメールしたらもらえた
247デフォルトの名無しさん:2010/10/02(土) 12:07:16
DELPHIが変な動きをしたときは、コンパイラの最適化設定をオフにすることだ
最適化のせいでバグったなんてよくあること
248番組の途中ですが名無しです:2010/10/02(土) 12:23:04
>>246
ライセンスキーは昔取得したのがあります。
今度、PCを変えて開発環境も新しいPCにする予定なんです
昔DLしたdelphi6のセットアップファイルが無くなってしまってて、、、
249デフォルトの名無しさん:2010/10/02(土) 14:06:46
問題ないのならアップデータとかも含めてうpしてもいいんだが
九州大学でも再配布してたしいいんかな
250番組の途中ですが名無しです:2010/10/02(土) 14:27:21
>>249
うpして頂けると、とても助かります!が、
どうなんでしょう・・・
251デフォルトの名無しさん:2010/10/02(土) 16:05:31
フォームのdestroy時にもしスレッドが残っている、処理している、などの状況だったらスレッドを破棄する
という処理をしようとしているのですが変数が必要とのエラーが出てコンパイルできません

procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(TMyThread) then TMyThread.Free;
end;

このコードじゃ駄目なんでしょうか
252デフォルトの名無しさん:2010/10/02(土) 16:23:25
TMyThreadとはなんぞや?
クラス名ならダメに決まってる。
253デフォルトの名無しさん:2010/10/02(土) 18:24:15
>>251
もしそのコードでTMyThreadのインスタンスがあれば全部解放することを期待してるなら、
クラスの入門本から勉強をやり直すべき
254251:2010/10/02(土) 21:28:53
ごめんなさい
MyThreadにTMyThreadクラス入れてたのにTMyThreadで操作しようとしてました
初歩的なミスでした
すいません
255250:2010/10/02(土) 21:41:26 BE:278944-PLT(12000)
自己解決させました。
先ほどdelphi6入りCD-ROM付きの本をamazonで注文しました。
どうもお騒がせしました。
256デフォルトの名無しさん:2010/10/09(土) 11:57:37
TEditのHeightはAutoSize=Falseで変えられるのですが
TComboBoxはHeightを変更できません。
変える方法はありますか?
257デフォルトの名無しさん:2010/10/09(土) 16:10:07
StyleをcsOwnerDrawFixed等にしてItemHeightを変える
258デフォルトの名無しさん:2010/10/12(火) 14:31:43
コンポーネントを作ってみようと思ってがんばってます
例えば、グリッドのclassの中にセルのclassがあるような感じで
グリッドに相当する部分のプロパティをセルに相当するclassから参照したいのですが
classなんでownerも使えそうにないですし
こういった時はどうすりゃいいのでしょうか?
259デフォルトの名無しさん:2010/10/12(火) 15:01:01
セルクラスのインスタンスは特定のグリッドクラスのインスタンスに含まれるので、
その関係を双方に持たせればいいと思う。セルクラスのコンストラクタでOwnerを
渡して、それをセルのプライベートに保持させる。グリッドはセルを所有するので
それをTObjectListか何かで管理する。
260デフォルトの名無しさん:2010/10/12(火) 15:17:23
良くわからんが
双方で同じプロパティを作って渡せばいいって事ですかね

がんばつてみる
261デフォルトの名無しさん:2010/10/12(火) 15:25:46
いあいあ、セルクラスの生成はグリッドクラス内でするでしょ?だからその時に
Self(=グリッドのインスタンス)を渡して、セルのプライベートメンバに覚えさせとくわけ。
で生成したセルは何らかの方法(例えばTObjectList)で覚えておくんだから、
グリッドからセルを参照するのに問題はない。グリッドからセルを参照するときには
コンストラクタで渡されて覚えておいたグリッドの参照を使えばいい。
262デフォルトの名無しさん:2010/10/12(火) 15:27:06
× グリッドからセルを参照するときにはコンストラクタで...
○ セルからグリッドを参照するときにはコンストラクタで...
263258:2010/10/12(火) 19:19:40
なんか失敗したんで戻って来たら追加情報が書かれてた
なるほど
生成される時に、つまりコンストラクタで
インスタンスを所得して覚えとけば
元まで辿り着けるよってことですか

もうすこしがんばつてみる
264258:2010/10/12(火) 19:20:26
×所得
○取得
265デフォルトの名無しさん:2010/10/13(水) 23:33:56
csvファイルのデータを読み込んで配列に格納するには
どうすればいいでしょうか。
たとえば

csvファイルは
山田太郎,北海道
鈴木次郎,青森県
佐藤花子,岩手県

のデータそれぞれを
data[3][2]に入れたいのです。


266デフォルトの名無しさん:2010/10/13(水) 23:53:08
TStringList に読み込んで一行ずつコンマでバラして配列に代入。
コンマでバラす関数は自作かな。
267デフォルトの名無しさん:2010/10/14(木) 00:10:24
TStringListを2つ用意するだけだと思うが。2段目はDelimiterを','にすればいい。
268デフォルトの名無しさん:2010/10/14(木) 00:18:47
for i:= 0 to SL.Count -1 do
begin
CL.CommaText:= SL[i];
data[i][0]:= CL[0];
data[i][1]:= CL[1];
end;
269デフォルトの名無しさん:2010/10/14(木) 00:56:32
そもそもバージョンいくつだよ
270デフォルトの名無しさん:2010/10/14(木) 12:20:25
バージョンを聞く根拠を教えれ
271デフォルトの名無しさん:2010/10/14(木) 12:37:33
途中でDelimiterとかDelimitedTextとか追加されているからだろ?D6とかにはない。
272デフォルトの名無しさん:2010/10/14(木) 12:43:23
>>271
D6にもあるよ
273デフォルトの名無しさん:2010/10/14(木) 13:56:19
>>270
XEならSplitString関数が使える
2010以降なら http://d.hatena.ne.jp/tales/20100728/1280252213 を応用して直接配列に代入できる
2006以降ならStrictDelimiterプロパティが使える

逆にバージョンを明記するのにデメリットがあるとでも?
バージョンによって使える機能が違うから書いた方が的確な答えをもらえる
最低限の環境すら書かずに質問をするのは単なる馬鹿でしかないと思うが
274デフォルトの名無しさん:2010/10/14(木) 14:52:05
馬鹿は言いすぎだ。ただ見当はずれの回答が返ってきてもしょうがないわな。
275デフォルトの名無しさん:2010/10/14(木) 15:12:20
SplitStringなんてのが出来たのかよ
面倒なことに自作してた関数と同じだわ…
俺の自作は
文字列:=SplitString(文字列,区切り文字);
こんな感じなんだけど
中身はCOPY使って切り出してるだけなんで純正の方が効率いいのかな
276デフォルトの名無しさん:2010/10/14(木) 15:22:01
>>274
そりゃすまんかった
だが答える方としてもまずバージョンは?と聞くか、あるいはバージョン別の回答をわざわざ書くしかない
そんな手間をかけるお人好しはこのスレにそう多くはいないだろうから、結果的に自分の首を締めているのには変わらないだろ?

>>275
DEKO氏が言うにはXMLDoc.pasに以前から入ってるものと同等らしいから、
それの内容見てどっちが効率いいか判断すればいいんじゃね
277268:2010/10/14(木) 20:50:31
レスありがとうございます。
バージョンはフリーの
Turbo delphi2006を使っています。
よろしくお願いします。
278265,277:2010/10/14(木) 20:52:08
とりあえず、
266-268
を試してみます。
279デフォルトの名無しさん:2010/10/15(金) 06:41:51
CSVばらすのは自分で書くかコード拾ってくる
単純にデリミタでばらしても駄目
280デフォルトの名無しさん:2010/10/15(金) 10:38:56
CommaText最強伝説
281デフォルトの名無しさん:2010/10/15(金) 13:42:09
>>279
どこが駄目なの?
282デフォルトの名無しさん:2010/10/15(金) 13:59:29
>>281
各要素をクォートしてなくて、スペース文字がくると、そこで分割される。
そして、Excelのcsv保存はクォートしてくれない。
その結果はご想像におまかせ。
283デフォルトの名無しさん:2010/10/15(金) 14:03:38
>>282はTStrings.DelimitedTextのことね
284デフォルトの名無しさん:2010/10/15(金) 16:24:03
表示しているフォームのすべてのコントロールに対して
OnShowを再呼出させるにはどうしたらいい?
285デフォルトの名無しさん:2010/10/15(金) 16:36:44
Sender.Components[]を再帰的に列挙して行って
OnShowを持ってそうなクラス(ってFormだけだったような…)ならそのクラスにキャストして呼ぶ。

RTTI使う奴はよく知らん。
286 ◆XcB18Bks.Y :2010/10/15(金) 17:19:14
Turbo Delphiのソースコードを検索してみましたが
フォーム以外のコントロールでOnShowイベントがあるのは
TTabSheet(ページコントロールのそれぞれのページ)だけですね。
287デフォルトの名無しさん:2010/10/15(金) 17:40:57
ありがとう。じゃあこんな感じか。野暮ったいけど。

procedure Traverse(c: TComponent);
var i: Integer;
begin
   if c is TForm then TForm(c).OnShow(nil)
   else if c is TTabSheet then TTabSheet(c).OnShow(nil);
   for i := 0 to c.ComponentCount-1 do Traverse(c.Components[i]);
end;
288デフォルトの名無しさん:2010/10/15(金) 18:22:39
>>282
そのための>>273
> 2006以降ならStrictDelimiterプロパティが使える
じゃないの?
289デフォルトの名無しさん:2010/10/15(金) 23:09:52
>>288
D6辺りで進化の止まった猿なんだろ
290デフォルトの名無しさん:2010/10/17(日) 06:39:56
Delphi習得の仕方

すみません教えてください。
昔からPascalに憧れていてこのたびDelphi2010購入しました。
習得の仕方なんですが、入門書の通り入力してその過程で覚えていくしかないのでしょうか?
もっと効率のいい方法があったら教えていただけないでしょうか。

入門書は、
Turbo Delphiで始めるWindowsプログラミング
Delphi2005プログラミングテクニック

があります。すみませんよろしくお願いいたします。
291デフォルトの名無しさん:2010/10/17(日) 12:49:05
オブジェクト指向に慣れていれば問題ない
292デフォルトの名無しさん:2010/10/17(日) 12:50:37
Delphi以外は何ができんの?
293デフォルトの名無しさん:2010/10/17(日) 15:30:40
>>292
何もできないです。初めてのコンパイラです。
294デフォルトの名無しさん:2010/10/17(日) 17:08:34
まずはボタンをクリックしたらメッセージが出るのを作ろう。
次はファイルの読み書きだ。
テキスト編集と画像表示を。
ここから先は必要に応じて。
クリップボードを操作したり文字列を操作したり。
D&Dに対応したり ScanLine で画像を編集したり。
295デフォルトの名無しさん:2010/10/17(日) 19:13:40
一から説明して下さい
296デフォルトの名無しさん:2010/10/18(月) 00:38:59
入門書2冊があるならとりあえずそれを理解しながら進めていくのがいいんだろうね。
コードは必ずしも全部入力して試す必要はないと思うけど、手を慣らす、コーディングスタイルに
慣れる、コンパイルエラーの対処に慣れる、という意味からはなるべく手を動かしたほうがいい。
あぁでも"Turbo Delphiで始めるWindowsプログラミング"だけでいいような。もう一冊はあんまり
いい印象がない。

あとは古いしDelphi 7の本になるけど
ttp://www.amazon.co.jp/dp/4756142281
ttp://www.amazon.co.jp/dp/475614229X
このあたり。本当はヘルプがもっと充実していればいいんだが。

ちょっとナニな芸風に耐えられるなら
ttp://edn.embarcadero.com/jp/article/33915
も。デブキャンの
ttp://edn.embarcadero.com/jp/article/40483
の1Cの細川さんのセッションもあとで見ておいたほうがいいか。
297デフォルトの名無しさん:2010/10/18(月) 03:49:45
>>294,296
ありがとうございます。
レスを参考に勉強を進めたいと思います。

あとageてすみませんでした。
298デフォルトの名無しさん:2010/10/20(水) 11:29:44
>>297
DelphiもC#も似た様なものなので... w

http://www.codeproject.com/KB/books/0764549146_8.aspx

程度の本を読まないと プログラムと呼べるものは作れないよ
299デフォルトの名無しさん:2010/10/20(水) 13:34:18
そんな本を読まないと何も作れないほど頭の出来が悪かったんだね
大変だったね
300デフォルトの名無しさん:2010/10/22(金) 20:37:20
くだらね
301デフォルトの名無しさん:2010/10/22(金) 21:01:03
くだらね(キリッ
302デフォルトの名無しさん:2010/10/22(金) 21:05:29
だっておばんばん
303デフォルトの名無しさん:2010/10/22(金) 21:13:44
ぱんぱん
304デフォルトの名無しさん:2010/10/23(土) 19:04:51
290さん
pascalに憧れてってすごいよね。
僕なんかアホだからpascalなんどけど
305デフォルトの名無しさん:2010/10/23(土) 20:56:34
>>304
本当は98のTurboPascalほしかったけど、
5万くらいしたから買えなくて
今に至っています。

Turbo Delphiの本見てますが結構難しいです。
ぽんと新しい関数出されて、
それをリファレンスマニュアル見ている状況です。
先は長いです。
306デフォルトの名無しさん:2010/10/23(土) 23:18:32
僕は「Delphi 2005プログラミングテクニック」を参考書にしてる
僕ぐらいにはちょうど良い
307デフォルトの名無しさん:2010/10/28(木) 10:07:44
DeHLってよさそうじゃね?
308デフォルトの名無しさん:2010/10/29(金) 21:50:19
D7です
文字列を印刷したときの長さをmm単位で知るにはどうすればいいですか?
フォントはMS ゴシックでサイズは9ですが変わる可能性もあります
文字列の長さによって印刷位置を微調節したいのです
印刷はPrinter.canvas
309デフォルトの名無しさん:2010/10/29(金) 21:52:39
すみません途中で送ってしまいました
印刷はTPrinter.Canvasに書いています
310デフォルトの名無しさん:2010/10/29(金) 23:33:51
1ポイント=1/72インチと定義されてて1インチ=25.4mmだから、そこから計算すれば出る。
Sizeが9なら9/72*25.4=3.175mmだ。
(1ポイントが何ピクセルかは解像度によって変わるけど
同じサイズのフォントなら物理的にも同じサイズになるよう変換して出力される)

位置をピクセル単位で指定したいとかだったら
GetDeviceCaps(Printer.Handle, LOGPIXELSX)で
変換係数を取得して自分で計算する必要があるけどな。
311デフォルトの名無しさん:2010/10/29(金) 23:40:19
ってよく考えたら知りたいのは高さじゃなくて長さだな
1. Printer.Canvas.Font にフォントを割り当てる
2. Printer.Canvas.TextWidth("文字列") でピクセル単位の幅を調べる
3. それをGetDeviceCaps(LOGPIXELSX)の値で割ればインチ単位になるから、あとはmmに直すだけ
312デフォルトの名無しさん:2010/11/01(月) 18:26:09
WS_EX_TOOLWINDOWを指定してもタスクバーにボタンが表示されてしまうのはなぜ?
313デフォルトの名無しさん:2010/11/01(月) 18:28:40
おばかさんだから。
314 ◆XcB18Bks.Y :2010/11/01(月) 23:38:24
>>312
こういうことかしら?

Delphi タスクバーにタイトル非表示のウィンドウ:
http://www.geocities.jp/asumaroyuumaro/program/tips/ws_ex_toolwindow.html


Delphiの「メインフォーム」は
実はWindowsのウィンドウアプリでいうところの親ウィンドウではありません。

真の親ウィンドウは画面中央に幅0高さ0の可視ウィンドウ
(サイズが0なので実際には見えない)として作られています。
Application.Handleプロパティはこのウィンドウのハンドルです
315デフォルトの名無しさん:2010/11/02(火) 03:35:06
違います。
316デフォルトの名無しさん:2010/11/02(火) 12:49:07
偉いです。
317デフォルトの名無しさん:2010/11/02(火) 15:45:56
>>314
お引き取りください
318デフォルトの名無しさん:2010/11/04(木) 10:41:45
で結局誰もわからんってこと?
319デフォルトの名無しさん:2010/11/04(木) 12:53:46
320デフォルトの名無しさん:2010/11/08(月) 17:33:26
今delphiでSTGゲーム作ってるんだが
自機の作成、キーボード操作まではできたんだ。
だが、弾の発射が、Timerで座標の変化をしているせいか
画面上にひとつしか存在できない。
弾を連続して出すにはどんな方法が必要なんでしょうか?
初心者なので、馬鹿らしい質問かもしれませんが、回答お願いします
321デフォルトの名無しさん:2010/11/08(月) 17:35:15
マルチ死ね
322デフォルトの名無しさん:2010/11/08(月) 18:20:16
球の配列を20個ぐらい作ればええやん
323デフォルトの名無しさん:2010/11/08(月) 19:18:45
素敵やん
324デフォルトの名無しさん:2010/11/11(木) 18:17:44
左右に往復するプログレスバーって簡単にできますかね?
できればソースきぼんぬ
325デフォルトの名無しさん:2010/11/11(木) 19:22:15
インクリメント値をMaxまでいったら-1
Minまでいったら+1にすれば良いのではないかしら
326デフォルトの名無しさん:2010/11/11(木) 19:28:32
PBS_MARQUEEじゃないの
327デフォルトの名無しさん:2010/11/11(木) 20:18:37
>>324
貴方面白いね。素敵やん
328デフォルトの名無しさん:2010/11/12(金) 02:14:15
Mozillaとかのインストーラーでそういうのあったよね。
329デフォルトの名無しさん:2010/11/12(金) 09:22:35
>>326
それです。ありがとう。
330デフォルトの名無しさん:2010/11/12(金) 22:18:24
jpegを90°、180°、270°
それぞれ
回転させて表示させる方法を教えてください。
331デフォルトの名無しさん:2010/11/12(金) 22:24:12
332デフォルトの名無しさん:2010/11/12(金) 22:26:27
>>330
ScanLine を使う。
x, y 両方の座標を逆にすれば 180°回転。
x と y を入れ換えれば 90°や270°になる。
333デフォルトの名無しさん:2010/11/12(金) 22:39:51
bitmapにすれば楽勝だろと思ったけどやっぱ劣化してるんだな
334デフォルトの名無しさん:2010/11/12(金) 23:10:22
ググれば即効で出てくるのに
335330:2010/11/13(土) 16:13:49
ありがとうございました。
できました。
336デフォルトの名無しさん:2010/11/14(日) 13:22:03
MobileMeterみたいにACPI温度を取得するにはどうしたらいいんだろう
なんかドライバでACPIにアクセスしないといけないらしいけど
Microsoft WMI Scripting を使ってWMI経由でやってみたけどうまくいかない
ACPI用のドライバってどうすればいいの
337デフォルトの名無しさん:2010/11/14(日) 19:17:43
CallNtPowerInformation
338デフォルトの名無しさん:2010/11/14(日) 19:21:40
339デフォルトの名無しさん:2010/11/14(日) 21:38:27
WinRing0は公開終了してるが
340デフォルトの名無しさん:2010/11/18(木) 18:31:54
delphi2007のランタイムテーマを有効にしたときに、
チェックボックスの文字色や背景色が無効になるのですが、
これを可能にするカスタムコンポーネント知りませんか?
341デフォルトの名無しさん:2010/11/19(金) 02:28:01
無償で使えた turbo delphi をインストールしたけど、あくてぃべーしょんができなくて起動できません。
・serial key
・authorization key
・認証ファイル (reg636.txt)
が必要らしいのですが、だれかupしていただけませんか。
342デフォルトの名無しさん:2010/11/19(金) 12:35:40
質問があります
日本語環境delphiにて英語ソフトを作りたいんですが、例外だけがどうしても
英語OSで日本語で出ようとして文字化けします(日本語環境入ってたら日本語で出る)
ResourceString絡み調べてもwebで情報漁っても一向に解決策が見つからない
方法知ってる人いますか?

[プロジェクト|オプション...|リソース コンパイラ]でデフォルト言語 = -l409
としても意味ありませんでした。
343デフォルトの名無しさん:2010/11/19(金) 12:40:12
日本語で作ってPASSOLOで翻訳して出荷したら。
俺そうやってるぜ
344デフォルトの名無しさん:2010/11/19(金) 15:34:32
>>342
どうしたいのか全然伝わらないんだけど。
日本語を文字化けせずに表示したいの?それとも英語で表示したいの?
最終的にどうしたいのかも分からないのに方法をどうやって示せと。
345デフォルトの名無しさん:2010/11/19(金) 15:50:09
例外でないものを作る。
346デフォルトの名無しさん:2010/11/19(金) 17:04:36
>342
Delphiのバージョンは?2010以前ならDelphiを英語版でインストールすべし。
混在環境を作りたいなら英語版からimports/lib/sourceを持ってきて
日本語環境のものと切り替えて使うようにする。
347デフォルトの名無しさん:2010/11/19(金) 20:56:46
>>344
英語ソフト作りたいって書いてあるけど
348デフォルトの名無しさん:2010/11/20(土) 15:03:38
それなら文字化けしたのは問題じゃない
何故文字化けの件を書いた?
349デフォルトの名無しさん:2010/11/20(土) 15:16:12
ANSIのせいで文字化するのか
Unicodeだけど相手のPCでフォントが対応していないのか
350デフォルトの名無しさん:2010/11/20(土) 22:35:50
>>341
reg736.txtじゃなかったかい?
それでぐぐれば支那とかのサイトにウpされている。
そのテキストファイルはメール文で、beginとendに
囲まれたところがアクチに該当していたはず。
それをどこかのdirに入れよ。
ツール→ライセンスマネージャ→仕様許諾コード
→インポートでそのtxtファイルを山椒せよ。
351デフォルトの名無しさん:2010/11/21(日) 11:01:10
変数とかの上にマウスカーソルあててもポップアップが超速点滅したりして
まともに見れないことが多いのは仕様ですか?
352265:2010/11/21(日) 15:27:15
268を使って、data[3][2]の配列で読み込ませることができました。
で今度は、
配列の大きさを、最初は指定しないで、
たとえば、CSVのデータが
山田太郎
鈴木次郎
佐藤花子

でも

山田太郎,北海道,札幌市
鈴木次郎,青森県,青森市
佐藤花子,岩手県,盛岡市

でも、
読み込み時に、自動的に配列が作成され読み込めるように
するには、どうすればいいでしょうか。

や、

for i:= 0 to SL.Count -1 do
begin
CL.CommaText:= SL[i];
data[i][0]:= CL[0];
data[i][1]:= CL[1];
end;
353デフォルトの名無しさん:2010/11/21(日) 15:37:05
たとえば、
CSVファイルの最初の一行を項目名と認識する。
最初の行の項目数に合わせて以後の処理を行う。
途中で変化すると出来ない、 仕様を決めるのはあなた。

CSVファイルは 方言があるから注意、 
カンマを含むときはどうするか?CRを含むときは?
厳密に処理するときは 考えないといけない。
354デフォルトの名無しさん:2010/11/21(日) 22:54:43
動的な多次元配列は二次元目以降の長さをバラバラにできるので(いわゆるジャグ配列)、
最初に行数を読み取って一次元目の配列長を設定し、
あとは1行を分解する毎にそれぞれの二次元目の配列長を設定すればいい
最初の行に合わせる必要はない
355デフォルトの名無しさん:2010/11/25(木) 09:22:13
delphiのプロジェクトファイルに関連付いている
bdsLauncher.exeって何をしてくれているんですか?
複数バージョンのdelphiを使い分けるときとかに役に立つのでしょうか。
356デフォルトの名無しさん:2010/11/26(金) 07:19:02
つい先日xeのトライアル版をインストールしました
writelnとshowmessageの違いが分かりません
プログラミング初心者です
助けて下さい
357デフォルトの名無しさん:2010/11/26(金) 10:04:51
ここは超初心者スレだ。
初心者のお前さんはもうこのスレなんかに頼らなくてもやっていけるはずだ。
自分を信じて頑張れ!

と、冗談はさておき、前者はファイルに書き出し後者はダイアログを出すという違いがあるよ。
実際に試してみればすぐ解決することも多々あるよ。
358デフォルトの名無しさん:2010/11/26(金) 14:16:23
>前者はファイルに書き出し

60点かな。
359デフォルトの名無しさん:2010/11/26(金) 14:47:45
前者は標準出力または指定したテキストファイルに書き出し行末に改行コードを挿入する。
でいいかい?
360デフォルトの名無しさん:2010/11/27(土) 01:10:54
>テキストファイルに書き出し

惜しいね。
361デフォルトの名無しさん:2010/11/27(土) 01:41:32
xeって何だ?
362デフォルトの名無しさん:2010/11/27(土) 02:04:43
クロスプラットフォームってことだよ
言わせんな恥ずかしい//
363デフォルトの名無しさん:2010/11/27(土) 08:25:39
Delphi2011 = DelphiXE
ただの名称変更
364デフォルトの名無しさん:2010/11/27(土) 10:51:00
bds.exeがDDEをサポートしているか調べる方法無いですか?
bdslauncherじゃなくて。
365デフォルトの名無しさん:2010/11/29(月) 08:14:23
Delphiくせぇだとできるかも
366デフォルトの名無しさん:2010/12/01(水) 00:27:11
お知恵を拝借 バイナリで見えるファイルを
00 01 02 03 04 05 06 07〜
x1 x2 y1 y2 x3 x4 y3 y4〜

y1 y2 x1 x2 y3 y4 x3 x4〜 という2個づつ連続して入れ替えたいです
どう書けばいいでしょうか

Delphi 5 が自分の行く研究室に入ってて書いてコンパイルの方法はわかります。
友人のグループ課題で実験のとき計測器を逆につないでデータとっていたそうで
いま必死になってバイナリエディタでちまちま殺気だってやってるようです

データ名は 1.dat 2.dat と数字で連続しています百数個あるとか
レポート提出間に合わない〜手伝ってと泣かれてるのでおねがいします
367デフォルトの名無しさん:2010/12/01(水) 02:20:57
相談に乗ってたら間に合わなそうだから作ったぞ。

■コンパイル
1. フォームを適当な大きさにして、ボタンも何も配置しない。
2. これをすべてコピー、エディタに上書きで貼り付け。
http://pastebin.com/cu8jviaN
3. イベントの設定が1つだけ必要。オブジェクトインスペクタの「イベント」タブを開き、OnCreateのところにFormCreateを入力する。

■使い方
書き換えたいファイル(複数可)をドラッグしフォームにドロップする。
ファイルのあったフォルダに新しく「NewFiles」というサブフォルダが作られ、その中に書き換えたファイルが格納される。

元ファイルは壊さないようにしてあるけど、念のため必ずバックアップしとけよ。
368デフォルトの名無しさん:2010/12/01(水) 14:11:25
>>367
フォームダブルクリックでいいんじゃ・・・
369デフォルトの名無しさん:2010/12/01(水) 16:23:52
>>367
我慢できなくなって書きなおしてしまった
http://pastebin.com/FERePZWu
370デフォルトの名無しさん:2010/12/01(水) 18:56:40
おい、改悪になってんぞw
2バイト毎に書き込みとかファイルIO多すぎて遅いだろww
1ファイルのサイズが分からないから全部メモリに置くのも確かに得策ではないけど、
せめて0x1000バイト単位でバッファリングするとか色々あるだろ…
371デフォルトの名無しさん:2010/12/01(水) 19:02:00
そういうのってOSが勝手にやってくれるんじゃねーの?
372デフォルトの名無しさん:2010/12/01(水) 19:22:19
俺も書いてみた
http://pastebin.com/DhwJmVD3

>>371
富豪的な考え方だな
とりあえずFILE_FLAG_WRITE_THROUGHやFILE_FLAG_SEQUENTIAL_SCANの意味でも調べてみたら?
それが理解できたらFileOpen関数の実装を見比べてみるとか
373366です:2010/12/02(木) 00:44:01
うおぉすごい 返事が遅れましてすみませんありがとうございます。
2ちゃんにはファイアーウォールで帰宅まで書き込めませんでした
友人とそのグループどうやら徹夜してたみたい。
昼前に>>367さんのレスみて
この話をメールしたら即答で飛びついてきました。

Delphi 5 入りのパソコンはウィルス対策で外からのメディア付け禁止、インターネット回線ダメ
つくったプログラムは研究室備えのメディア買ったら持ち出しOK
な条件だったようで、
インターネット繋がるところさがして携帯にソースコピーして
小さい画面見ながらちまちまw入力しましたよ
帰宅して預かったデータの1つで確認できました!

>>369さんも>>372さんもありがとうございます。
ソースプリントアウトして置かしてもらえるように頼めと言っておきます。
電話の向こうで泣いてました
ほんとうにありがとう
374367:2010/12/02(木) 02:19:09
>>373
そりゃ良かった。
「並び替えの順番が違いました」とか言い出す可能性を考え単純な構成にしたけど、
そんな事情ならソースをもっと短くなるよう工夫したほうが良かったかな。
…しまった。誤ってフォルダをドロップした場合の対策を入れ忘れてた。反省。
ちゃんとするなら42行目のbeginの次行に、if not FileExists(FileName) then Exit; を挿入せよ。

>>368-369
だいぶスッキリしたねー。
でもやはり小刻みにReadやWriteを連続させるのは気になってね。実際に比べてみたことないけど。
ダブルクリック指示しないのは間違いの発生を減らすためだよ。
>>372
やたら高度に発展してて、思わず吹いたよ。ここでアセンブラが出てくるとは(笑)
美しいけど、目的を知ってないと一見しただけでは理解できないなあ。
375367:2010/12/02(木) 02:29:36
>>373
うへ。すまん、指示間違ってた。if not FileExists(PathFile) then Exit; な。
自分のプログラムも読めない俺が居た。
376デフォルトの名無しさん:2010/12/02(木) 04:03:39
すごい上から目線でふいた
377デフォルトの名無しさん:2010/12/02(木) 04:15:07
ROL EAX,16 ってEAXレジスタの値を16ビット動かしてるわけか
なるほど便利な命令があるんだなぁ

アセンブラでやらないなら、and $FF00 とかでマスクしながら上位・下位を交換すればよさそう
378デフォルトの名無しさん:2010/12/02(木) 04:57:32
>>374
単純な構成というなら>>372が一番単純な構成じゃないか?全然高度でも何でもないし。
お前さん自身が言うように理解させることではなく、ともかく作ってしまうのが目的であれば、
アセンブラ使おうが何だろうが問題ないし、並び替え方法が違う可能性に対しても
その部分だけ関数として括りだしてる>>372の方がよっぽど柔軟にできてると思うな。

>>377
n := n and $FFFF0000 shr 16 or n and $FFFF shl 16;
ってところか。これだと5命令なんだよな。ROLだけで済むのを知るとこれでも長く感じてしまう。
379367:2010/12/02(木) 12:20:17
>>378
高度ってのは学生さんのこと心配してるんじゃなくて、
一見した瞬間には理解できなかった俺自身の感想だよ。
俺も>>372のようなシンプルかつ高速な手法を発想できればいいが、、、ぜんぜん無理だ。
380デフォルトの名無しさん:2010/12/02(木) 13:32:51
こうやって何人かが色んな視点で書くきっかけを作った367が一番偉いよ
381デフォルトの名無しさん:2010/12/05(日) 11:24:17
今更な質問なんだけど、DelphiXE の案内でDlphi7をダウンロードして
使えるみたいな事が書いてあるんだけど、既にD7使ってる場合は、
その環境がそのまま使えるのかな?
382デフォルトの名無しさん:2010/12/05(日) 11:56:39
以前のバージョンは持っていなければライセンスを付与する、という形式。D7を既に持っていれば
そのまま。D7のライセンスが2本にはならない。
383デフォルトの名無しさん:2010/12/05(日) 14:15:03
>>382
ありがと
384デフォルトの名無しさん:2010/12/06(月) 21:36:41
edit1,edit2,edit3,edit4,edit5と
editの後に数字というTeditコンポーネントが
フォームの中にあるのですが、
それぞれに
配列dataに格納されている文字列を表示させるとき

edit1.Text :=data[1];
edit2.Text :=data[2];
edit3.Text :=data[3];
edit4.Text :=data[4];
edit5.Text :=data[5];

としているものを、もっと省略して記述する方法はありますか。
385デフォルトの名無しさん:2010/12/06(月) 21:50:45
なくはないけど五つくらいなら余計な小細工はしない方がいい。
386デフォルトの名無しさん:2010/12/06(月) 21:52:25
Formのprivateに
FEdit: array [1..5] of TEdit;
を追加して、FormのOnCreateイベントで
FEdit[1] := edit1;
FEdit[2] := edit2;
FEdit[3] := edit3;
FEdit[4] := edit4;
FEdit[5] := edit5;
としておいて、
var
 i: Integer;
begin
 for i := 1 to 5 do
 begin
  FEdit[i] := data[i];
 end;
ってな感じ。
387デフォルトの名無しさん:2010/12/06(月) 22:31:39
たった5回の代入をどうやってそれ以上省力化できるの? 無理っしょ
ループでまわすこと自体が無駄になってしまう
388384:2010/12/06(月) 23:05:19
お返事ありがとうございます。
もっと件数が多い場合、教えていただいたループを使ってみようと思います
389デフォルトの名無しさん:2010/12/07(火) 05:05:46
その命名規則なら
フォームかパネルの Controls を全部なめて、
390デフォルトの名無しさん:2010/12/07(火) 08:30:21
エディットコントロールであることと名前を確認して、キャストして処理、でいいかな?

個人的には、10 や 20 程度ならそのままつらつらと書いた方がいいし、
それ以上ならデザインから見直した方がいい(グリッド使うとか)と思う。
391デフォルトの名無しさん:2010/12/07(火) 09:05:25
タグ打っておいてFindComponentで回せばいいとかそう言う話じゃないのか?
392デフォルトの名無しさん:2010/12/07(火) 09:24:16
Delphi2.0の頃、配列コンポーネントにお世話になったの思い出すわ。
393384:2010/12/07(火) 19:56:46
FindComponentを使ってみたら、
自分が意図したとおりにできました。
ありがとうございました。
394デフォルトの名無しさん:2010/12/07(火) 23:32:07
Dle7使いなんだけど、dlphixeにそろそろした方が良い?
C#にしたほうが良いとか、バージョンアップなら新規でC#買うより
安いからDelにしとけとか、好きにしろボケとか

395デフォルトの名無しさん:2010/12/07(火) 23:39:56
好きにしろボケ
396367:2010/12/07(火) 23:58:07
>>394
最近はDelphi使いを騙るギャグが流行してるのか
397デフォルトの名無しさん:2010/12/08(水) 00:09:43
まじめに聞いてるんだ。
こんな事聞いても好きにしろボケって事なんだけど、
win7用のソフトとかに手を出さなければならなくなってきたんで
どうしようかなと。

あんまり予算もないんだけど、かといって、安いバージョン買って
標準で出来ることが少なくて、四苦八苦するのも嫌なんで
Pro版辺りを考えています。
398デフォルトの名無しさん:2010/12/08(水) 00:19:44
XEはProが一番安いのでは?
399デフォルトの名無しさん:2010/12/08(水) 00:39:31
えっ!
そうですか
proって聞いて中間くらいの奴とかってに思い込んでたorz
400デフォルトの名無しさん:2010/12/08(水) 01:55:37
まーもうそろそろD7はないよな。細川さんみたいに頑張ってる人もいるけど。
とりあえずXEいっとけ。ちゃんと登録すれば2007も使えるし。ただしDBX・Datasnapを
ネットワーク上で使うならEntが必要なので気をつけて(ProはDBXをネットワーク上で
使用することをライセンス上禁止している)。
401デフォルトの名無しさん:2010/12/08(水) 02:18:43
でも今更95対応は何の売りにもならねーだろうなとは思った
特にスクリーンセーバーなんて配布する際に95対応なんて書いたら余計なトラブル抱え込みそうだし
402デフォルトの名無しさん:2010/12/08(水) 06:55:04
まだ 5 Pro です。
403デフォルトの名無しさん:2010/12/08(水) 13:22:42
>>397
何に使うのか書いた方が少しでもまともに答えてもらえるんじゃないかね。
まあ理屈の上では、足りないところは自前で補えばアップデートの必要はないだろうけど、
業務とかで使ってるならそろそろアップデートした方がいいだろうね。
一応 D6 Pro で SQL Server 2008 Exp につなぐプログラムも書けたけど。
C# が視野にあるなら、そっちの方が将来性はありそうな気がする。
404デフォルトの名無しさん:2010/12/08(水) 14:27:08
TMemoなどに「envair?nm?nt」という文字をコピペすると
「envair?nm?nt」と使えない文字が?になってしまうのですが
これを文字化けせずに表示させるには、どうしたらいいのでしょうか?
開発環境は、XP、D7です。
405404:2010/12/08(水) 14:31:44
書き込んだら文字化けしてしまった。。
?はaの上に点がある文字とかです。
406デフォルトの名無しさん:2010/12/08(水) 14:42:11
Unicode に対応したバージョンじゃないと無理だろ
407デフォルトの名無しさん:2010/12/08(水) 14:45:33
D7じゃ、Unicodeに対応してないから文字化けしてんじゃ。
それ以外は、システムロケールをその文字化けする文字を含むロケールに
設定して無理やり動かすぐらいしかわからん。
408404:2010/12/08(水) 16:49:55
>>406
>>407
ありがとうございます。
Unicode に対応したバージョンの購入を検討したいと思います。
409デフォルトの名無しさん:2010/12/08(水) 20:56:45
TNTっていう手もあるけど、まぁ普通にXEに行っとけ。
410394:2010/12/08(水) 23:33:54
皆さん、レスありがとう。
背中を押してもらって踏ん切りついた。
XEを買います。
411デフォルトの名無しさん:2010/12/09(木) 10:23:54
2009,10とか持ってるならともかくD7ならXE買っても全然OKだと思う。
412デフォルトの名無しさん:2010/12/09(木) 10:56:41
D5 の私はどうすれば……。
413デフォルトの名無しさん:2010/12/09(木) 11:47:28
>>412
どうすれば・・・って、XE買えばD7も使えるんだから一番お得じゃね。
414デフォルトの名無しさん:2010/12/10(金) 09:18:45
むかしDelphiでデバイスドライバー書いた事例どっかであったと思いますが
いまはデキナイデスカ
415デフォルトの名無しさん:2010/12/10(金) 11:20:05
できないことはないのかもしれないけど、あえてそんな苦労する必要はないと思う。
416デフォルトの名無しさん:2010/12/11(土) 04:24:15
ShiftJISなプログラムは2007?
417デフォルトの名無しさん:2010/12/11(土) 09:10:23
2007までですね。2009以降は原則UTF-16になります。
418デフォルトの名無しさん:2010/12/11(土) 19:48:24
そうでもない
419デフォルトの名無しさん:2010/12/11(土) 21:24:50
Del2007最強
420デフォルトの名無しさん:2010/12/13(月) 11:33:30
2007とかのフォームデザインのときのガイドバーって
CTRL押したときだけ機能させるってことできないかな。
クリックしただけで位置ずれちゃう
421デフォルトの名無しさん:2010/12/17(金) 22:37:22
先生質問です D6使ってます
http://hogehoge.tk/tool/number.html
この10進数、16進数相互変換サイトのように、相互変換をしたいのですが

IntToHex( -30, 2) では4byte(32bit) = StrToInt('$'+'FFFFFFE2')

符号あり2byte(16bit) -30 = FFE2 どういうふうに変換式を書くのでしょうか?
422デフォルトの名無しさん:2010/12/18(土) 00:03:02
IntToHex(Word(-30), 4);
423デフォルトの名無しさん:2010/12/18(土) 00:53:13
>>422
-30 -> FFE2 できました!

FFE2 -> -30 は

str:String;

str := FFE2;
if IntToStr('$'+ str) > 32767 then str := str - 65536;

でいいのカナ
424デフォルトの名無しさん:2010/12/18(土) 13:15:06
IntToStr(Smallint(StrToInt('$FFE2')));
425デフォルトの名無しさん:2010/12/18(土) 13:15:58
ミス
Smallint(StrToInt('$FFE2'));
426デフォルトの名無しさん:2010/12/19(日) 16:51:53
Delphi2010で質問です。

delphi2010のライブラリ言語の切替はBDSSetLang.exeというツールで行います。
これを使うと、作成したアプリケーションがリンクしている
ライブラリが出力するエラーメッセージ(ランタイムエラー等)が
他の言語に切り替わります。

しかし、この設定がコマンドラインコンパイラ(DCC32.EXE)で
コンパイルしたアプリケーションには反映されないようです。

これを何とかする方法はあるのでしょうか?
427デフォルトの名無しさん:2010/12/19(日) 19:03:37
Delphi6で質問です

Memoなどのコンポーネントで作ったアプリに中国語を入力すると一部の文字が?になってしまいます
Delphi6で中国語を使うにはどうすればよいでしょうか?


入力「你好」
出力「?好」
428デフォルトの名無しさん:2010/12/19(日) 19:09:43
TNT Unicode Controlsぐらいしか手がなさそう
429デフォルトの名無しさん:2010/12/19(日) 19:20:42
表示だけなら数字文字参照でブラウザコントロール使えばいいんだけどね。
430デフォルトの名無しさん:2010/12/19(日) 19:38:34
表示だけにTrident使うとか・・・
431デフォルトの名無しさん:2010/12/19(日) 21:27:26
charset変えれば済む話やん・・・
432デフォルトの名無しさん:2010/12/19(日) 21:32:03
433デフォルトの名無しさん:2010/12/21(火) 14:31:43
OSが64bitだと動かないアプリケーションを作れますか?
434デフォルトの名無しさん:2010/12/21(火) 14:42:30
OSが64bitかを判断して終了すればいいんじゃね
435デフォルトの名無しさん:2010/12/21(火) 16:36:17
436デフォルトの名無しさん:2010/12/21(火) 21:30:28
>433
GetNativeSystemInfo
これで判定。
437433:2010/12/22(水) 14:44:03
>>436
無事できました。ありがとうございました。
438デフォルトの名無しさん:2010/12/22(水) 20:37:11
2007に移行中なんですが、条件によりTEditのキャレット位置がおかしくなる現象を見つけました。
対策とった方が居たら方法教えてください、お願いします。
439デフォルトの名無しさん:2010/12/24(金) 12:14:46
その条件とやらを書かないでどうアドバイスできると思う?
出直して来い
440デフォルトの名無しさん:2010/12/24(金) 17:19:03
開発環境を移行する人は初心者じゃないし
441384:2010/12/25(土) 20:00:37

edit1〜edit5に

繰り返しとFindComponentを使って、下記のように
 for i:= 0 to 6 do
TEdit(FindComponent('Edit' + IntToStr(i+1))).Text := data_name[i];

で、値を入力するのはうまくいったのですが、
同じようにTimageにも
image1〜image5に適用させようとしましたがうまくいきません。

元のコード
Jpegs[0]:=TJpegImage.Create;
Bmp:=TBitmap.Create;
Jpegs[0].LoadFromFile(data_image[0]) ;
Bmp.Assign(Jpegs[0]);
Image1.AutoSize := true;
Image1.Picture.Assign(Bmp);
Jpegs[0].Free;
Bmp.Free;
単純に
Image1が出てくる部分を直せばいいだけかと思い、
Timage(FindComponent('Image' + IntToStr(i+1))).AutoSize := true;
Timage(FindComponent('Image' + IntToStr(i+1))).Picture.Assign(Bmp);

としましたが、失敗しました。
どこを直せばいいでしょうか
442デフォルトの名無しさん:2010/12/25(土) 20:19:06
どんな風に失敗したのか教えてくれたっていいじゃない
443384:2010/12/25(土) 20:41:24
 for i:= 0 to 6 do
Jpegs[i]:=TJpegImage.Create;
Bmp:=TBitmap.Create;
Jpegs[i].LoadFromFile(data_image[i]) ;
Bmp.Assign(Jpegs[i]);
Timage(FindComponent('Image' + IntToStr(i+1))).AutoSize := true;
Timage(FindComponent('Image' + IntToStr(i+1))).Picture.Assign(Bmp);
Jpegs[i].Free;
Bmp.Free;

で、
プロジェクトdata.exeは例外クラスEAccessviolation
(メッセージ'モジュール'data.exe'のアドレス0046d599でアドレス00000000に対する読み込み違反が起きました。')
を検出しました。

というメッセージが出ます。
あと、Windows7でTurbo delphiをつかっています。
444デフォルトの名無しさん:2010/12/25(土) 21:05:25
よく分からんけどfor文以下の繰り返したい命令が複数文あるんならbegin〜endで囲まないといけないのでは?
445デフォルトの名無しさん:2010/12/25(土) 21:34:43
>image1〜image5

>for i:= 0 to 6 do

あはは。
446デフォルトの名無しさん:2010/12/25(土) 23:38:32
>384
>386
447384:2010/12/26(日) 06:53:28
直りました。
ありがとうございました。
448デフォルトの名無しさん:2010/12/26(日) 11:31:27
存在しないImage0を処理しようとするからか
エラートラップすればメモリアクセス違反は抑えられるけどね

おれならFindComponentが成功したかどうかのチェックを入れておく
449デフォルトの名無しさん:2010/12/26(日) 11:44:08
違った i+1だから Image1〜Image7になるわけか
450デフォルトの名無しさん:2010/12/31(金) 11:18:22
全ユニットで参照できるグローバル変数って、
どうやって(どこに)定義すればよいでしょうか?

program Project1; ファイル内に

const RAINEN = 2011;// ←グローバルにしたい変数

などと定義してみましたが、
ユニットファイルでは読み取ってくれませんでした。
451デフォルトの名無しさん:2010/12/31(金) 11:31:27
>>450
グローバル変数を定義したユニットを作り、全ユニットで USE する
452デフォルトの名無しさん:2010/12/31(金) 12:00:05
節子、それ変数やない、定数や。
453450:2010/12/31(金) 12:08:06
>>451
ありがとうございます。
デバッグモードかどうかを切り替えたかっただけなのですが、
やはりユニットが必要なのですね。

>>452
失礼しました。定数でした。
454デフォルトの名無しさん:2010/12/31(金) 22:39:40
>>453
そういうのはプロジェクトオプションの条件定義でやる
例えばそこにDEBUGと書いたら、
{$IFDEF DEBUG}
// ここのコードが実行される
{$ENDIF}
455デフォルトの名無しさん:2011/01/01(土) 03:19:15
質問です

TWebBrowserコンポーネントでブラウザを作ろうと思うのですが、パスワードなどのオートコンプリート機能の実装はどのようにすればよいのでしょうか?
よろしくお願いいたします。
456デフォルトの名無しさん:2011/01/01(土) 06:35:45
どの段階で躓いてるの?それとも一から全部教えろってこと?
457デフォルトの名無しさん:2011/01/01(土) 20:24:39
>どの段階で躓いてるの?
オートコンプリートの段階じゃね?w
458デフォルトの名無しさん:2011/01/01(土) 22:17:25
うわ糞つまんね…
459デフォルトの名無しさん:2011/01/02(日) 02:03:25
つまんねとかじゃなくて実際それしかないじゃない
460デフォルトの名無しさん:2011/01/02(日) 05:15:35
ああ、マルチか…
461デフォルトの名無しさん:2011/01/02(日) 18:15:41
TWebBrowserじゃ出来ないはず
462デフォルトの名無しさん:2011/01/02(日) 20:34:03
そうでもない
463デフォルトの名無しさん:2011/01/03(月) 20:57:37
>>462
どのようにすればよいのでしょうか?
464デフォルトの名無しさん:2011/01/04(火) 00:02:47
オートコンプリートされるようにすればよいです
465デフォルトの名無しさん:2011/01/04(火) 00:34:57
教えていただけそうにないので、別の方法を模索しようと思います。
ご迷惑をおかけしました、失礼いたします。
466デフォルトの名無しさん:2011/01/04(火) 04:28:05
訳:マルチしてる別のところで教えてもらったのでどうでもいいです
467デフォルトの名無しさん:2011/01/04(火) 10:35:21
>>466
マルチはしていません。
別のところで回答が出ているのなら、そこを教えてもらえないでしょうか?
468デフォルトの名無しさん:2011/01/04(火) 12:37:55
テキストデータから
<input type="password">とか<input type="text"> のタグを見つけて
value 属性を付けてやればいいんじゃないの?
469デフォルトの名無しさん:2011/01/04(火) 20:44:46
普通にブラウザ使えばいいやん
470デフォルトの名無しさん:2011/01/04(火) 22:32:18
471デフォルトの名無しさん:2011/01/04(火) 23:25:57
答えられないなら書くな、無駄にスレが進むじゃないか







ま、俺も答えられないけどな
472デフォルトの名無しさん:2011/01/05(水) 08:18:51
複数のスレッドからアクセスされるセッター、ゲッターメソッドを持たないプロパティは
つまり、property Foo: Integer read FFoo write FFoo
は、クリティカルセクションで同期とらなくてもいいですよね??
クラスのフィールドは4バイト境界に配置?
473デフォルトの名無しさん:2011/01/05(水) 09:27:58
delphi7pro使用してます
メニューバーを非表示にしたいのですがメニューに設定したショートカットは生かしておきたいです
menuプロパティにnilを入れるとショートカットも使えなくなってしまいます
何かいい方法はありませんでしょうか
474デフォルトの名無しさん:2011/01/05(水) 10:44:36
>>473
ポップアップメニュー。
475デフォルトの名無しさん:2011/01/05(水) 11:03:36
>>473
OnKeyDown
476デフォルトの名無しさん:2011/01/05(水) 11:12:32
>>473
アクションリスト
477デフォルトの名無しさん:2011/01/05(水) 13:17:35
>472
だめでしょ。クリティカルセクションかInterlockで。
アライメントはプロジェクトオプションか$Aで指定(構造体、クラスとも)。
478デフォルトの名無しさん:2011/01/05(水) 13:33:26
全部セッターとゲッターメソッドを定義して、クリティカルセクションか、2010以降なら
Monitorクラスで保護しておいた方がいいのは分かってましたが、VCLの
TThreadクラス自体の実装で、FTerminatedやらFFreeOnTerminateやらFOnTerminateやら
全く保護されてないので、やらなくていいのかなーと思ってました。
479デフォルトの名無しさん:2011/01/05(水) 14:05:01
Del5使ってるんだけど、XE入れたら浦島すぎたw
480デフォルトの名無しさん:2011/01/05(水) 16:25:56
>>479
私も D5 なのだけど、良いのか悪いのかkwsk
481デフォルトの名無しさん:2011/01/05(水) 16:56:29
D6 から XE にしたけど、IDE の見た目以外は大して変わってない印象だけどな。
内部的には文字コードが大きく違うんだけど、見えないトップウィンドウの手法は変わってないのね。
出来上がった EXE を Win2K SP2 で動かしてみたらエラーになったよ。さすがに SP2 は古すぎか。
482デフォルトの名無しさん:2011/01/05(水) 22:00:48
Windows 2000 SP4だったはず
483デフォルトの名無しさん:2011/01/06(木) 03:41:42
>見えないトップウィンドウの手法
Vista以降で不具合出るんでかなり前に廃止されましたが
484デフォルトの名無しさん:2011/01/06(木) 09:34:49
どんな不具合?
485デフォルトの名無しさん:2011/01/06(木) 13:07:50
その程度も自分で調べられないからDelphi使いなのですね
残念です
486デフォルトの名無しさん:2011/01/06(木) 16:13:40
エンバカスレにもやたらDelphi使いって括りが大好きな人が居るんですが何なんでしょうか?
487デフォルトの名無しさん:2011/01/06(木) 17:28:40
それはDelpherだからさ
488デフォルトの名無しさん:2011/01/06(木) 22:18:02
Delphistの俺には関係ないようだな。
489デフォルトの名無しさん:2011/01/06(木) 23:41:49
>>486
エンバカスレのキモイ話題を持ち込まないで下さい
迷惑です
490デフォルトの名無しさん:2011/01/07(金) 11:08:38
だからどんな不具合なのさ。
491デフォルトの名無しさん:2011/01/07(金) 23:05:11
あんたあのこのなんなのさ
492デフォルトの名無しさん:2011/01/08(土) 00:20:25
熊本出身の俺様を馬鹿にしてんのか?
493デフォルトの名無しさん:2011/01/08(土) 01:03:08
>>492
バカになんてしてないよ
熊本で生まれたって同じ人間だもの
494473:2011/01/08(土) 05:23:02
ありがとうございます

>>474
ポップアップメニューは使用しているのでムリでした

>>475
Onkeydownは矢印キーの入力が巧く取れないのでムリでした

>>476
アクションリストにアクションとショートカットを設定しメニューのアクションプロパティでそれを参照するようにしました
495デフォルトの名無しさん:2011/01/08(土) 07:03:01
>>494
>矢印キー
VK_UP VK_LEFT VK_RIGHT VK_DOWN
496デフォルトの名無しさん:2011/01/08(土) 13:43:38
分かってるよばか
497473:2011/01/09(日) 00:29:52
>>495
それはやってみたんですけど、以前やったときどうも巧く動かなかったんです
498デフォルトの名無しさん:2011/01/09(日) 07:22:33
分かってたよばか
499デフォルトの名無しさん:2011/01/09(日) 10:45:44
2ch ヘッドラインニュースBBY(一覧性が秀逸)http://headline.2ch.net/bbynews/

どんな難解ニュースでも掲示板の書き込みでオモシロおかしく簡単理解。
ニュースを勢い順にカテゴリー別で表示する"2NN"(2ちゃんねるニュース速報+ナビゲーター)もどうぞ。
500デフォルトの名無しさん:2011/01/17(月) 08:22:17
デジカメをUSBでPCにつないで、カメラ内の画像ファイルをPCにコピーまたは移動する
ソフトをDelphiで作りたいのですが、どうやってデジカメ内のファイルパスを取得すればいいのでしょうか?
Delphiでは不可能なのでしょうか?
501デフォルトの名無しさん:2011/01/17(月) 08:24:21
できます
502デフォルトの名無しさん:2011/01/17(月) 10:57:44
デバイスドライバだと難しそう
503デフォルトの名無しさん:2011/01/17(月) 11:04:47
スキャナとカメラウィザードで転送できるような機器なら何とかなるんじゃね
504デフォルトの名無しさん:2011/01/17(月) 11:05:53
505デフォルトの名無しさん:2011/01/17(月) 23:27:40
windows7 64bitで開発してる人いませんか?
今度新しくdelphi勉強しようと思ってるんですが、言語はjavascript(笑)とhtml(笑)とCぐらいしか経験ないので・・・
506デフォルトの名無しさん:2011/01/18(火) 00:22:42
趣味でならやってます
507デフォルトの名無しさん:2011/01/18(火) 11:55:30
>>505
なんで先の見えない Delphi を選ぶ?
508デフォルトの名無しさん:2011/01/18(火) 12:49:15
趣味を先が見える見えないで選ぶんですか?
堅実な人生で楽しそうですね
509デフォルトの名無しさん:2011/01/18(火) 13:45:54
私女だけど、10年前ならともかく今の時代でJavaScriptに「(笑)」なんて付けちゃう人はちょっと頭おかしいと思う
510デフォルトの名無しさん:2011/01/18(火) 16:27:15
>>507
色々面白そうだからです
単ならイメージで
511デフォルトの名無しさん:2011/01/18(火) 17:00:20
いや、遊びならかまわないと思うよ。
後々役に立つこととか少しでも考えてるならどうかと思ってね。

ただ、遊びなら遊びで、人に聞く前にまず自分でやってみろよと言いたい。
512デフォルトの名無しさん:2011/01/18(火) 17:32:18
言語なんてどれも大差ない、何か一つ覚えてしまえばあとの言語は直感で使える
513デフォルトの名無しさん:2011/01/18(火) 18:47:47
ゴミが上から目線でDelphiの行く末を語るスレ
514デフォルトの名無しさん:2011/01/18(火) 21:55:44
まぁ、Delphiもニッチに生きていくでしょ。

土木現場に入ってるソフトとか見ると、何気にDelphi使ってる所も散見される。

まぁ、そこの中で完結してて、その会社が全て面倒見るからなんだろうけどね。

515デフォルトの名無しさん:2011/01/19(水) 06:47:46
ゴミがゴミらしく他人の目線を気にしながらDelphiの行く末を語るスレ
516デフォルトの名無しさん:2011/01/19(水) 18:52:53
そして行く末がない>>515を見守るスレ
517デフォルトの名無しさん:2011/01/21(金) 01:34:08
>>509 ネカマ乙w
518デフォルトの名無しさん:2011/01/21(金) 02:35:44
>>517
お前2ch初めてか?力抜けよ
519デフォルトの名無しさん:2011/01/21(金) 09:47:01
>お前2ch初めてか?力抜けよ

wwwww
ネタが通じない予想外な反応だからってムキになるなよ>>509=518
520デフォルトの名無しさん:2011/01/21(金) 16:19:52
517=519
521デフォルトの名無しさん:2011/01/21(金) 17:28:33
522デフォルトの名無しさん:2011/01/21(金) 18:06:36
釣りのつもりだったのに必死な>>518を笑うスレになりました
523デフォルトの名無しさん:2011/01/21(金) 18:36:49
>>509>>518も有名なコピペ(の改変)だと思ったけど違ったようだな
それに気付かなかった人が必死に言い訳してるのが笑えるけど
524デフォルトの名無しさん:2011/01/21(金) 18:46:27
そして次に来るのは「有名と言われてもお前みたいに2chにずっと張り付いてるわけじゃないんでwww」という言い訳だな
そこまでがコピペに気付かなかった系の定番のやり取り
>>517>>519のような反応もよくあるパターンだし、そんなに顔真っ赤にするほど気にしなくていいと思うよ
仮にも超初心者用スレなんだし、知らなくても恥ずかしくない
525デフォルトの名無しさん:2011/01/21(金) 18:48:01
procedure TForm1.ButtonClick(Sender: TObject);
begin
showmessage('本当馬鹿しかいねーな');
end;
end.
526デフォルトの名無しさん:2011/01/21(金) 18:53:00
私男だけど、「私女だけど」にマジレスしてる人は電車男以降で初めて見た
527デフォルトの名無しさん:2011/01/21(金) 19:04:44
>>517
それマジで言ったん?ソースあんならすぐ出せ

マジなら2ちゃんねら総力を上げて潰すが
528デフォルトの名無しさん:2011/01/21(金) 19:20:03
TByteArray = array[0..32767] of Byte;
PByteArray = ^TByteArray;
となっているものは
TByteArray = array[0..0] of Byte;
PByteArray = ^TByteArray;
としても使えるとどこかで見たのですが、どういうことですか?
1つしかない配列を使う意味って何でしょうか?
529デフォルトの名無しさん:2011/01/21(金) 21:39:05
文法的には動的配列がなかったころの名残というか盲腸なんだろうけど、TByteArrayは
範囲チェックが働かない限りどちらもTByteの配列を表すという意味で違いがなく、
その配列を示すポインタであるPByteArrayがいずれにせよ指し示すのはByteデータの配列
(の先頭アドレス)、ということ。
昔は動的配列がなかったんで確保したメモリ領域の先頭アドレスをPByteArray型の変数に
入れて、PA^[index]とかいう形でアクセスしてたんだけど、いまなら動的配列一発でOKだな。
530デフォルトの名無しさん:2011/01/22(土) 16:38:39
画面の文字を認識するのって難しいですか?
531デフォルトの名無しさん:2011/01/22(土) 17:53:29
画面に正確に描画された文字でフォントが分かってるならいける。

手書き文字とか曲がってるとかだと難しい。
532デフォルトの名無しさん:2011/01/22(土) 20:20:52
そうでもない
533デフォルトの名無しさん:2011/01/23(日) 00:18:00
問題は周波数フィルタで取り除けないノイズ
言い換えれば人間が見ても紛らわしいもの
534デフォルトの名無しさん:2011/01/23(日) 00:35:04
そんなもの判別する意味がないな
CAPTCHA読み取ろうとしてるんなら別だが
535デフォルトの名無しさん:2011/01/25(火) 06:23:31
┐(´〜`;)┌ヤレヤレ
536デフォルトの名無しさん:2011/01/25(火) 13:11:49
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
┐(´〜`;)┌ヤレヤレ
537デフォルトの名無しさん:2011/01/30(日) 11:13:30
DelphiEXだかXEにしたら、秀丸みたいな折りたためるアウトラインエディタって簡単に作れる?
538デフォルトの名無しさん:2011/01/30(日) 20:09:09
作れない
539デフォルトの名無しさん:2011/01/30(日) 23:20:09
ありがと
コンポーネントであるのかと期待した
アレって、ごりごりソースを書いてるんですかね。
それとも、.netとかC#とかで実現しやすくなってるとかでしょうか?
どちらにしても自分には出来そうにないのは分かりました。
540デフォルトの名無しさん:2011/01/31(月) 04:25:08
すごく馬鹿っぽい書き込みですね^^
541デフォルトの名無しさん:2011/01/31(月) 10:20:21
くだすれだから気にすんな
542デフォルトの名無しさん:2011/02/01(火) 14:18:57
>>1
他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです
他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです
他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです
543デフォルトの名無しさん:2011/02/01(火) 16:31:25
DelphiとC++ Builderの廉価版が登場、1万4700円から - ニュース:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20110201/356694/?ST=NSW
544デフォルトの名無しさん:2011/02/01(火) 21:55:02
Starter安いがけち臭い事いいすぎだなぁこれならPro買うわ
本気でユーザー層拡大狙いたいなら業務使用制限ははずしてくれないと
それでなくてもIDEの機能まで削ってるんだし
一昔前ならこれでおkだったろうけど今時じゃないな
545デフォルトの名無しさん:2011/02/01(火) 22:12:17
ああ、俺レベルならこれでもいいわ。
ずっとTurbo(2005)使ってたけど、この値段なら最新の機能とやら試してみてもいいと思った。
ただ、リファクタリングまで削ってるのはどうかと。
546デフォルトの名無しさん:2011/02/01(火) 22:16:05
del6personalでがんばってますがこれは買いですか?
547デフォルトの名無しさん:2011/02/01(火) 22:24:04
>544
これで稼ぐならその利益で上位エディションを買ってね、ってことだからな。Pro買えるならStarterは
およびじゃないよね。でもアカデミックライセンスよりはましだと思うなぁ。

>546
人それぞれだけど、Windows 7のこと考えればいまさら6じゃないんじゃない?という意味で買い。
548デフォルトの名無しさん:2011/02/01(火) 22:37:22
アカデミックライセンスって機能制限あるのかな?
549デフォルトの名無しさん:2011/02/01(火) 22:39:11
>>546
値段と機能を考慮したら?
削除された機能等は某所に一覧されてるし
550デフォルトの名無しさん:2011/02/01(火) 22:40:02
基本的にあそこのアカデミックライセンスって
意味がよく分からんからな
正直な話
551デフォルトの名無しさん:2011/02/01(火) 22:45:01
Win7 の D5Pro で頑張っている私が颯爽と登場!(・∀・)
552デフォルトの名無しさん:2011/02/01(火) 23:53:56
アカデミックは教育目的のみ、作ったプログラムは商用、非商用を問わず配布できない、なので。
553デフォルトの名無しさん:2011/02/02(水) 08:58:06
>>544
> Starter安いがけち臭い事いいすぎだなぁこれならPro買うわ
C# Express がいいんじゃない?

>>551
俺も機能面だけなら Del6 pro で十分だと思ってたけど、
Unicode 関連を考えて、キャンペーンに便乗して XE 買ったよ。
でも本職ハード&ファーム屋……。
>>553
うん、Unicode だけが残念。
VS2005 も持っているのでイザというときはそっちで対処するつもり。
でも Delphi の爆速コンパイルは手放せない。
555デフォルトの名無しさん:2011/02/02(水) 10:16:57
FormのOnCreateで
WindowsState:=wsMinimized;
ってやると、タスクバーにも表示されないんですけど?
556 ◆XcB18Bks.Y :2011/02/02(水) 16:37:52
>>555
手元の環境で新規プロジェクトを作って
何も載せていないフォームで同じ事を試してみましたが
タスクバーに表示されました。

Turbo Delphi ExplorerおよびDelphi 5 Proで
OSはWindows XP SP3 です。
557デフォルトの名無しさん:2011/02/02(水) 16:51:51
>>556
ほんまや、Delphi7+XPならちゃんと表示されるな。
Delphi2009+XPだと何も表示されない。
558デフォルトの名無しさん:2011/02/02(水) 19:50:59
Application.MainFormOnTaskBarの影響だろ
Delphi 2006とそれ以前か、Delphi 2007とそれ以降かで結果が異なる
559デフォルトの名無しさん:2011/02/03(木) 11:15:33
見えないトップウインドウ絡みかね
560デフォルトの名無しさん:2011/02/05(土) 17:26:12
Vistaへの対応で
561デフォルトの名無しさん:2011/02/06(日) 15:02:56
2010+7では表示された
MainFormOnTaskBarはTrueやFalseといった固定値を入れずに、
Vista以降かどうか判定して入れる値変えた方がよさそうやね
562デフォルトの名無しさん:2011/02/08(火) 13:37:26
Delphi Starter Edition + TeeChart Pro v2010 VCL without source code
で動作しますでしょうか。

Starter Editionって1年間の期間限定のライセンスになるのですか?
563デフォルトの名無しさん:2011/02/08(火) 16:11:34
ソースコードなしならバイナリが入っていると思うので問題ないと思う。
ライセンスには期限はない(はず)。
564562:2011/02/09(水) 07:59:14
>>563
ありがとうございます。

ライセンスだけがまだ気になりますが、お金の算段がついたら電話で聞いてみようと思います。
565デフォルトの名無しさん:2011/02/15(火) 19:34:35
OSのテーマが有効な状態でグループボックスを配置したら、OSのテーマに従ったデザインで描画されると思いますが、その色を取得することはできるでしょうか?
具体的には、グループボックスのフチ枠線の色を2つ取得したいのです。

TGroupBoxのPaint部を見たところ、テーマが有効な所では
clBtnHighlightと、clBtnShadowの2色を使って描いていることは確認しました。
テーマが有効な状態でのこの2色に相当する色を取得したいのです。

よろしくお願いします。
566565:2011/02/15(火) 19:37:58
連投すみません。

>テーマが有効な所ではclBtnHighlightと、clBtnShadowの2色を使って描いていることは確認しました

ここは、テーマが無効な場合には、の間違いです(_ _)
567デフォルトの名無しさん:2011/02/15(火) 20:28:38
テーマを使ってると場所によって色が違うことがある(ボタンやスクロールバーが分かりやすい)から、決まった色は取得できない
色を取得して何をしたいの?
568565:2011/02/15(火) 20:50:07
>>567さん、レスありがとうございます。
具体的には、グループボックスの枠のスタイルで、ホームページで言うところのHRタグ的な水平線を描画したいのです。
2色を取得し、描画しようと思っていたのですが、何か別のアプローチなどありますかね。
569デフォルトの名無しさん:2011/02/15(火) 21:29:52
Delphiのテーマ関係は日本語の資料がほとんどないんだよね(中村御大のCマガジン
2004/07の特集がほぼ唯一)。
で、たぶんThemesユニットのTThemeServices.ColorToRGBを使うんだと思う。

ttp://docwiki.embarcadero.com/VCL/ja/Themes.TThemeServices.ColorToRGB

DetailsにはTThemeServices.GetElementDetailsで取得したTThemedElementDetails構造体を
渡すのかな。ぜんぶ未検証なので全然違ってたらごめん。
570569:2011/02/15(火) 21:35:30
あぁ、色を取得しなくてもThemeServiceに描画させる、という手もある。ただしテーマが無効の場合は
普通にGDIで描画しなければならないので微妙か。Themes.pasを見たらなんか思いつくかも。
ちなみに前述のCマガジンは
ttp://www.amazon.co.jp/dp/B000G5R8AE
ttp://www.amazon.co.jp/dp/B000ANE90O
か、あとは図書館で入手可能(少なくとも国立国会図書館には収蔵があり実費でコピーしてもらえる)。
571デフォルトの名無しさん:2011/02/15(火) 21:36:51
グループボックスの枠を横長に描写するとか
572565:2011/02/16(水) 08:41:38
>>569さん
レスありがとうございます。
おっしゃる通り、確かに資料が少ないですよね。しかし貴重な情報ありがとうございます。調査してみようと思います。

>>571さん
レスありがとうございます。わたしも、それは考えまして、何もなければ最終兵器にしようと考えていました(笑)。
573デフォルトの名無しさん:2011/02/16(水) 11:22:08
GetThemeColorとかGetThemeSysColorでググれ
574デフォルトの名無しさん:2011/02/16(水) 19:34:19
Windows7のx64と2010の組み合わせで、TThreadを使うときだけデバッガが固まって
IDEごと応答不能になるのですけど、何か対策ありますか?
ビルドした実行ファイルは正常に動作します。
575デフォルトの名無しさん:2011/02/16(水) 20:46:55
2007/2009ではそういう問題が報告されていたけど、2010で直ったはずだけどな。
アップデートとかhotfixは全部あてた?
576デフォルトの名無しさん:2011/02/16(水) 22:09:51
>>574
俺が過去スレで質問した時
(XP+Turbo=2005環境、かならず固まるわけでないが、ブレークポイントで割り込む時とかは結構な確率で固まる)、
「コンパネの地域と言語-言語-テキストサービスと入力言語-詳細設定-システムの構成」にある
詳細なテキストサービスをオフにするにチェックを入れる、という方法を教えてもらった。
この問題の場合は、IMEとデバッガの干渉とのことだった。

その後、デバッグする機会があまりなかったので、実際にその方法で解決するのか確証はないが、
参考までに。

もし、TThreadのコードをデバッグするたび必ず固まるというのなら、
2010で導入されたというデバッガのスレッド制御に関するそちら側の環境依存的な問題かも。
577デフォルトの名無しさん:2011/02/17(木) 01:50:50
>>569
中村氏のテーマの解説はこっちの本にもある。
ttp://www.asahi-net.or.jp/~HA3T-NKMR/DEH/
578デフォルトの名無しさん:2011/02/19(土) 18:57:21
質問です。超初心者というか4年ぶりぐらいにいじってます。

delphi6を使っています。

TLabelのCaptionにunicode文字を表示させたいのですが、方法はありますでしょうか?

ググって「Delphi 6 ローテクTips」というページのTLabelを使ってみたのですが、オブジェクトインスペクタで入力しようとすると「・」になります。
使いたい文字は「1/2」です。

よろしくお願いします。
579デフォルトの名無しさん:2011/02/19(土) 19:25:17
自前でDrawTextWを呼んで書くか、TNT Unicode Controlsを使うかな
http://i.imgur.com/O3kNJ.png
580デフォルトの名無しさん:2011/02/20(日) 08:32:14.81
TLabelはフォームのCanvasに描画してるだけだから直接描画するのが簡単だろう

自前でDrawTextで描画しる場合 フォームかPaintBoxのOnPaintに
procedure TForm1.FormPaint(Sender: TObject);
var s:WideString;
begin
s:=WideChar($00BD);//1/2の文字コード
Canvas.Font.Name:='MS UI Gothic';// 今は'Arial Unicode MS' はダウンロード出来ないかもしれないので
TextOutW(Canvas.Handle,10,10,PWideChar(s),length(s) );//指定した描画位置に文字を描く
end;


入力もしたいなら
ttp://delwiki.info/?%E3%82%B3%E3%83%BC%E3%83%89%E5%80%89%E5%BA%AB/Unicode%20%E5%AF%BE%E5%BF%9C%E5%85%A5%E5%8A%9B%E6%A1%88
581デフォルトの名無しさん:2011/02/20(日) 13:38:50.55
これはひどい
582 ◆XcB18Bks.Y :2011/02/21(月) 14:01:57.91
Turbo Delphiでフレームを数段階継承して使っているのですが
子クラスのフレームで幅と高さやTabStopなどを変更してファイルに保存しても
次に読み込むと親クラスのサイズに戻ってしまいます。
これってうちだけなのでしょうか。
また良い解決法はないものでしょうか。

関係なさそうですがOSはXPSP3です(念のため)
583デフォルトの名無しさん:2011/02/21(月) 14:14:31.74
直接そういう経験は無いけど 中間ファイルが残っていると、妙な動作するときってあるよね。 
だから俺はバッチで毎回中間ファイル消してるよ。 このクセ付いてからあんまり起きない
del /S *.tds
del /S *.dsk
del /S *.dsm
del /S *.dcu
584デフォルトの名無しさん:2011/02/21(月) 14:24:07.97
>582
フレーム表示状態で[ALT]+[F12]としてdfmの内容を確認。
585 ◆XcB18Bks.Y :2011/02/21(月) 15:30:09.97
>>583-584
ありがとうございます。試してみます。
586デフォルトの名無しさん:2011/02/21(月) 19:39:24.20
htmlパーサに何か良いものありませんか?
TXMLDocumentはDTDが禁止とかいわれます
587デフォルトの名無しさん:2011/02/21(月) 20:03:28.67
IEのMSHTMLじゃだめなの?
588デフォルトの名無しさん:2011/02/21(月) 20:50:50.68
>>587
駄目というわけではないのですが、既に保存されているhtmlをいじりたいのですが
変更するとネットにアクセスしにいったりする挙動がどうも。
純粋にパーサとして使えれる方法があればいいのですが・・・。

589デフォルトの名無しさん:2011/02/21(月) 23:50:04.27
確認してないけどWebBrowser経由じゃなく、直接IHTMLDocument生成してもネットにアクセスしにいく?
590デフォルトの名無しさん:2011/02/22(火) 01:58:20.85
確認しようず
591デフォルトの名無しさん:2011/02/23(水) 00:24:49.66
MSDNにやり方かいてあるね。初心者には大変そうだけど。まぁ、
はやい話が画像や動画のダウンロード無効にしろと
592デフォルトの名無しさん:2011/02/23(水) 12:49:31.12
>>588
XHTMLなら、omnixmlが、使いやすかったよ。
593デフォルトの名無しさん:2011/02/23(水) 13:08:43.14
はい馬鹿発生
594デフォルトの名無しさん:2011/02/23(水) 14:22:54.48
Delphi2010のリファクタリングって安定してないんでしょうか。
ずっと使ってると動作が重くなってきて、それでも使い続けると固まったり、あらぬ場所が書き変わったりします。

定期的に再起動しろってことなんでしょうかね?
595デフォルトの名無しさん:2011/02/23(水) 22:09:48.72
使わないでください
596デフォルトの名無しさん:2011/02/23(水) 22:30:02.26
質問です
delphi4で、メールを送るプログラムをつくりたいのですが
TNMSMTPをつかって、どうやって組めますでしょうか(´・ω・`)
597デフォルトの名無しさん:2011/02/23(水) 22:42:55.01
NMはもうやめて…ってDelphi4じゃぁIndyは使えないんだっけ?
598デフォルトの名無しさん:2011/02/24(木) 08:59:44.17
>>596
nMail.dllとかでやれば。
599デフォルトの名無しさん:2011/02/24(木) 15:08:19.19
スパムソフトでも作る気かね・・・
600デフォルトの名無しさん:2011/02/28(月) 17:25:15.09
delphi 2007 か 2009 あたりで、
コードを部分的に別ユニットにしてインクルードする機能ってなかったかな?
601デフォルトの名無しさん:2011/02/28(月) 18:11:00.63
{$I 'filename.inc'}
では?
602デフォルトの名無しさん:2011/03/01(火) 12:42:03.86
$Iか。試してみる。さんきゅ
603デフォルトの名無しさん:2011/03/04(金) 13:47:29.04
デスクトップにddpファイルが知らないうちに5個ぐらいできてました
ddpでググったらDelphiが関係してるっぽいのでこのスレに来ました
Delphiがなんなのかよく知りませんし、その存在も今日初めて知りました
デスクトップのddpファイルは消しても大丈夫でしょうか?
604デフォルトの名無しさん:2011/03/04(金) 14:59:51.92
>>603
Delphiとは全く関係無いので帰れ
605デフォルトの名無しさん:2011/03/04(金) 15:01:10.58
Delphiを使っていたとしても普通デスクトップにはできない。
たぶんDelphiとは無関係なファイルではないかと。
606603:2011/03/04(金) 15:23:44.09
そうですか
なんで急にできたんだろう
ほっときます
607デフォルトの名無しさん:2011/03/04(金) 17:09:49.99
すいません
利用者皆無かもしれませんがvcl for webについての質問です
作成したdllをWebで外部公開したいのですが、検索エンジンのクローラーなどに拾ってもらえるMETAタグとかの指定はできないしょうか?
608デフォルトの名無しさん:2011/03/04(金) 17:50:39.00
<METATAG>クローラーちゃん拾ってね</METATAG>
609デフォルトの名無しさん:2011/03/04(金) 20:30:56.33
素直にmetaタグなんか読んじゃうクローラーなんて今時存在するのっと
610デフォルトの名無しさん:2011/03/04(金) 23:48:50.78
HTMLのタグはどこに書き込むんでしょうか?
servercontrolのどこかのプロパティとかですか?
611デフォルトの名無しさん:2011/03/04(金) 23:57:55.73
>>606
デスクトップに要らんファイルがあるなら、ただちに消して
しまうのが吉だろう?
612デフォルトの名無しさん:2011/03/06(日) 16:03:37.08
Object Pascalの学習を検討してるんで、もしよろしければ、
C++よりも役に立つ利点の紹介をきぼん。
613デフォルトの名無しさん:2011/03/06(日) 17:55:06.36
別にない。
ただC++がCのいろんなダークサイドを延々引きずっている上に標準がこれまた延々と決まらず、
必要な拡張も独自にやらなきゃいけないのに比べれば、Pascalのダークサイドはあまりないし
ベンダ独自言語なのですっきりはしてる。まとめると言語的には大差ない。DelphiとC++Builderの
比較ということならVCLはObjectPascalで書かれてる、ってのはアドバンテージ。DelphiとVC++(MFC)の
比較ならVCLとMFCのRAD度の差が大きい。
614デフォルトの名無しさん:2011/03/06(日) 19:19:55.66
>>612
基本的に>>613に同意

機能的に大差ない
好みの問題と、VCLの問題

敷いて言えば、pascalやjavaは単語を略さない文化が有るっぽいので、英語の勉強にもなる事くらいかな
615デフォルトの名無しさん:2011/03/07(月) 00:59:59.88
そんなのは使い手次第だろ
616デフォルトの名無しさん:2011/03/07(月) 01:42:26.42
標準のC++やVCなら、Delphiの方がオブジェクト指向は強力。
インタフェースやメタクラスとか、まっ逆にC++が汚すぎるのかもしれないけど。

例外も構造化例外で強力で、あとはDelphiの名前の意味のとおりオラクルはじめとしてDBとの相性が良いとこと。

あと地味だけど俺が好きなのはinitializationやfinalizationが書けること。
617デフォルトの名無しさん:2011/03/07(月) 03:11:40.13
D言語でいいんじゃね?
618デフォルトの名無しさん:2011/03/08(火) 01:46:09.69
delphiも色々拡張した結果、きわものになってる部分もあるけどな。
619デフォルトの名無しさん:2011/03/08(火) 16:26:14.14
インラインアセンブラが手軽に書けて試せるのが 勉強には一番いい点だったかも

・・・・勉強だけで結局使わないけどね asm
620デフォルトの名無しさん:2011/03/08(火) 16:55:07.46
SSE使うのには便利だったな。
まあVCとかだとasmに下りなくてもいいみたいだが。
621デフォルトの名無しさん:2011/03/08(火) 17:41:08.00
すみません。今Turbo Explorer使っていて、XE starterを買おうかと思うのですが、
1台のPCに並存できますでしょうか?
622デフォルトの名無しさん:2011/03/09(水) 00:00:36.05
y
623デフォルトの名無しさん:2011/03/11(金) 11:21:42.09
教えてください。

一つのプロジェクトにファイルが増えるが嫌なので、
一つの hoge.pas の中に hoge1form hoge2.form hoge3form を同居させることはできるのでしょうか?

hoge.pas と hoge.dfm の関係が有るから無理なんでしょうか?
624デフォルトの名無しさん:2011/03/11(金) 11:55:50.23
むり
そもそもファイルが増えるのが嫌って時点で間違ってる
625デフォルトの名無しさん:2011/03/11(金) 13:11:52.50
無理ですか。やはりな。

ファイルが増えるのが嫌なのは間違いだろうがなんだろうが関係ないけどね。
626デフォルトの名無しさん:2011/03/11(金) 13:11:53.71
>>623
できます。2つ目以降のフォームはIDEの支援が受けられなくなりますが。
>>624さんはdfmの仕組みがよく分かっていないようですね。
627デフォルトの名無しさん:2011/03/11(金) 15:52:58.98
あら、出来るのですか!

ちなみに、2つ目以降のフォームはどう作成するのでしょうか。
さわりだけでも教えてくだされば・・・

IDEの支援が受けられないと言うことは、一つ一つ宣言して
CreateしてParentを指定して・・・って事ではないですよね。

よろしくお願いします。

ps
すごい揺れでした。@江戸川あたり。

628デフォルトの名無しさん:2011/03/11(金) 16:26:36.39
unit Unit1;

TForm1 = class(TForm)
...
TForm2 = class(TForm)
...

var
 Form1: TForm1;
 Form2: TForm2;

implementation

{$R *.dfm}
{$R Unit2.dfm}

program Program1;

uses
...

Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
629デフォルトの名無しさん:2011/03/11(金) 17:43:33.83
ありがとうございます。
挑戦してみます。

ps
また、揺れ出した。
630デフォルトの名無しさん:2011/03/16(水) 11:23:58.83
Delphi2009+WinXPです。
Jpeg画像を表示するプログラムを作っていますが、
プログラムのショートカットにJPGファイルをD&Dして起動した場合に
プログラムがアクティブにならず、D&Dする前にアクティブだったウィンドウが
そのままアクティブになってしまい困っています。
開いているウィンドウが無い場合、普通に起動する場合などは問題ありません。
OnShowでSetActiveWindowなどを試しましたがうまくいきません。どうすれば良いでしょうか?
631デフォルトの名無しさん:2011/03/16(水) 13:25:01.77
SETWINDOWTOP
632デフォルトの名無しさん:2011/03/19(土) 08:06:36.90
ジェネリックスをちょっと本格的に使ってみたら内部エラーでコンパイルできず、
ちょっとマニアックなWin32APIを使おうとしたらヘッダが定義されておらず、自分で定義するはめになります。
本当にDelphiは生産性がいいんでしょうか?
633デフォルトの名無しさん:2011/03/19(土) 09:26:47.58
開発環境すら整えられない人が何を言うんだか
634デフォルトの名無しさん:2011/03/19(土) 10:13:33.89
ちょっとお聞きしたのですが、下のコードでButton1やButton1Click()が配置されている場所って
何部って言ったらいいのでしょうか。
また、この位置に追記するのとprivate部に追記することには動作に違いがあるのでしょうか。

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Number: Integer;
public
Text: String;
end;
635デフォルトの名無しさん:2011/03/19(土) 10:14:08.04
JEDIのwindowsヘッダとか使うのだるいんだよね。
636デフォルトの名無しさん:2011/03/19(土) 10:25:04.30
Button1とかはpublished部になるね。Buttonとかは設計時に変更したプロパティなどを
実行時に復元するためにpublishedである必要あるけど、自分で追加したフィールドに
関しては外部に公開しないメンバはprivateやprotectedで。

637デフォルトの名無しさん:2011/03/19(土) 10:32:33.02
>>636
なるほど。
published部は設計時に値をセットしておきたいって時に使うという認識でokですか?
638デフォルトの名無しさん:2011/03/19(土) 10:36:58.23
単純にpublished部にpropertyとか追加しても
イブジェクトインスペクタが増えるというわけでもなさそうですね。
奥が深い...
639デフォルトの名無しさん:2011/03/19(土) 10:38:11.29
オブジェクトインスペクタですねorz
640デフォルトの名無しさん:2011/03/19(土) 10:42:40.77
まぁ、初心者ならそんな感じでとりあえずいいけど。published部に自分でフィールド
追加してもオブジェクトインスペクタで設定できんし、通常、自分で追加する
メンバを公開するならpublicでする。
641デフォルトの名無しさん:2011/03/19(土) 10:48:19.73
>>640
どうもです。がんばります。
642デフォルトの名無しさん:2011/03/19(土) 10:48:58.63
主にコンポーネントが使うから当面は気にしなくていいと思う。
published部に宣言したメンバはRTTI(Run Time Type Information)が追加されて、
実行時に型情報問い合わせられる(リフレクション)ようになったりと、まぁ、色々
応用できるけど。
643デフォルトの名無しさん:2011/03/19(土) 10:52:55.11
最後に1つ。後でpublished部に追加しようと思ったとき、
publishedって書いた下に追記するのがいいのか、
Button1: TButton; の下に追記してもいいのか、
どちらがいいでしょうか。
644デフォルトの名無しさん:2011/03/19(土) 13:45:24.51
そこ(published)はIDEが使うとことだから触らないと考えておくべき。
645デフォルトの名無しさん:2011/03/20(日) 04:46:00.47
んなこたーない
646デフォルトの名無しさん:2011/03/20(日) 10:45:54.77
そう思える人はOKなので。触ってもいいの?とか聞いてる間はやめとけ、ってこと。
647デフォルトの名無しさん:2011/03/20(日) 13:17:49.13
そうでもない
648デフォルトの名無しさん:2011/03/20(日) 13:23:10.88
もし使うならどっちに書けばいい?という質問に、
初心者は使うなって返答は頭悪すぎるよなw

>>643
自分で書くならpublishedの下な
649デフォルトの名無しさん:2011/03/20(日) 13:40:29.97
初心者さんはどうぞIDE任せで。中級者以上は自分でごりごり書く
650646:2011/03/20(日) 15:37:20.67
そゆこと
651デフォルトの名無しさん:2011/03/20(日) 22:32:18.06
えっ
652デフォルトの名無しさん:2011/03/20(日) 22:42:01.84
初心者さんはどうぞIDE任せで。中級者以上は自分でごりごり書く(笑)
そゆこと(笑)


IDE使ってるのに自分でごりごり書く(笑)なんて言っちゃう馬鹿はいつまで経っても自称中級者
IDEの機能を使ってできる限りごりごり書く(笑)手間を減らしてこそやっと中級者以上と言える
手になじんだエディタで書いた方が速いからなんて宣うオッサンいるけど、
実はIDEを使いこなせない言い訳でしか無いから、生産性低いんだよな
マジで絶滅して欲しい
653デフォルトの名無しさん:2011/03/21(月) 01:46:41.10
なんでそんなに悔しそうなの?w
654デフォルトの名無しさん:2011/03/21(月) 02:44:16.76
フツウにそこら辺に書けばいい事なのに、
なに熱くなってるの?

publicでもPublishedでも適当に書けばいいじゃん。
で、問題が出たら考えろよ。

いちいち、どっちに書けばいいでしょうか?
って、馬鹿じゃね?

IDEだって、お前より頭いいから、適当に書いてくれるよ。

655デフォルトの名無しさん:2011/03/21(月) 13:57:59.59
関数の中身消したら関数丸ごとなくなったでござる
656デフォルトの名無しさん:2011/03/21(月) 14:44:13.94
     )、._人_人__,.イ.、._人_人_人
   <´ IDEじゃ、IDEの仕業じゃ!  >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+     ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (       ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) )      ;;;|// ///
////|::::    +   U | |||| !! !!||| :U   ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |    ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー----−' |__////
657デフォルトの名無しさん:2011/03/21(月) 14:47:04.94
以上IDEが使いこなせない爺さん達の言い訳でした
658デフォルトの名無しさん:2011/03/22(火) 19:17:15.37
>>655
そう言う親切?設計です
コンパイルしない限りは消えないし、一行でも中身が書いてれば、コンパイルしても消えないお
659デフォルトの名無しさん:2011/03/22(火) 19:20:03.72
>>643
publishedはIDEも使ってるpublicって考えておけば良いので、お好みで良いと思います
660デフォルトの名無しさん:2011/03/22(火) 21:26:34.47
関数もメソッドも勝手には消えない
消えるのはイベントハンドラとして自動生成されたものだけ
その違いが分かってない時点で使いこなせてない
661デフォルトの名無しさん:2011/03/22(火) 23:51:31.96
最近のは知らないけど古いDelphiだとメソッドとメソッドの間に
コメントを書くと消されない。
662デフォルトの名無しさん:2011/03/23(水) 02:44:49.69
//
だけ書いてよく放置してたな
663デフォルトの名無しさん:2011/03/23(水) 05:01:21.40
あるある
664デフォルトの名無しさん:2011/03/23(水) 08:07:29.71
>>662
おれセミコロン置いてる
665デフォルトの名無しさん:2011/03/23(水) 15:49:18.89
あとで実装するのを忘れないようにaとだけ書いてわざとコンパイルエラーになるようにしたり
666デフォルトの名無しさん:2011/03/23(水) 22:01:58.33
あるある
667デフォルトの名無しさん:2011/03/24(木) 00:58:46.95
ないある
668デフォルトの名無しさん:2011/03/24(木) 03:12:47.94
ないない
669デフォルトの名無しさん:2011/03/25(金) 10:55:14.68
XEの通信コンポーネントの仕様変更いい加減にしろ!
670デフォルトの名無しさん:2011/03/25(金) 13:46:21.64
えっ
671デフォルトの名無しさん:2011/03/25(金) 19:03:05.37
あっ
672デフォルトの名無しさん:2011/03/25(金) 19:03:51.86
>>669
なんで?
673デフォルトの名無しさん:2011/03/25(金) 21:59:25.08
XE StarterにはInternetコントロールが含まれないようなのですが、どうにかして利用する方法は
ないでしょうか?TWebBrowserさえ使えれば良いのですが。
674デフォルトの名無しさん:2011/03/26(土) 00:02:07.10
TStringGridで、ファイル一覧を表示させ1カラム目にアイコンをだそうと思ってるんですが、
アイコン自体は『SHGetFileInfo』で取ってくる予定で、
グリッドへのアイコン描画をどうしようか悩んでるんですが。

OnDrawCellで描画タイミングごとにセルにアイコンを表示していくしかないですかね?
675デフォルトの名無しさん:2011/03/26(土) 10:04:33.89
その通り。
だがどうしてもTStringGridを使わざるを得ない理由があるならともかく
無いならTListView使った方が良いと言ってみる
676674:2011/03/26(土) 12:28:40.30
>>675
参考にしているソースコードでもTListViewだったので、
なんでTStringGridを使おうと思ったか思い出しながらTListViewを検討してみます。

ありがとうございました。
677デフォルトの名無しさん:2011/03/26(土) 15:07:00.14
簡単にできることを複雑にやろうとする人っているね・・・
678デフォルトの名無しさん:2011/03/26(土) 20:57:26.32
次の日に良く考えてみるとなんで複雑にやったのかわからないとか割とよくある
679デフォルトの名無しさん:2011/03/26(土) 21:16:26.96
で、こうすれば簡単じゃんと修正したら動かなくなる
680デフォルトの名無しさん:2011/03/26(土) 22:14:27.41
あるあるw
681デフォルトの名無しさん:2011/03/26(土) 23:26:46.71
あるある;;
682デフォルトの名無しさん:2011/03/27(日) 06:43:01.38
>>673
Starterでできるか不明だけど、コンポーネントのインポートでActiveXコントロールから
Microsoft Internet Controlをインポートすればいい。
683673:2011/03/27(日) 23:33:09.32
>>682
できました。ありがとうございました。
684デフォルトの名無しさん:2011/03/28(月) 18:41:06.39
以前Delphi7を使用していて今回Delphi XEを使い始めたのですが、
プロジェクト新規作成にて『SDIアプリケーション』『MDIアプリケーション』『VCLフォームアプリケーション』選べますよね?

VCLフォームアプリケーションというのは初めて見るんですが、

”一般的”には『SDI&MDI』と『VCL』どっちを選んで作っていくのがオススメといいますか、いいと思いますか?

Delphiの良さを生かせるのはどれなんでしょうか、
作るソフトウェア内容によって選択していくものなのでしょうか。
685デフォルトの名無しさん:2011/03/28(月) 18:46:40.82
その違いが分からないレベルならVCLフォームアプリケーションでいいと思います。
686684:2011/03/28(月) 18:54:19.13
>>685
すいません、分かりません。。

『VCLアプリケーション』はVCLを使ってるのはそのままの意味で分かるんですが、
『SDIアプリケーション』と『MDIアプリケーション』は何を使ってるのかよく分かりません。
687デフォルトの名無しさん:2011/03/28(月) 19:10:09.00
どれ選んでもVCL使ってんじゃね?
688デフォルトの名無しさん:2011/03/28(月) 20:37:39.92
Delphi2010/Windows7環境です

ファイラーを自作しています。
GetDriveType APIで、ドライブの種類を取得でき、これに対しLANネットワークのパス、例えば、
'\\Temps\MyDir\'
を渡すと、DRIVE_REMOTE(4)が返って来るのですが、
'\\Temps\'を渡すと、DRIVE_NO_ROOT_DIR(1)が返ってきます。

これはなぜなのでしょう、何か使い方を間違えているでしょうか?
よろしければご教授下さい。(_ _)
689646:2011/03/28(月) 20:49:55.72
>686
MDIは昔懐かしいMDIスタイルのアプリケーション。作ってみればわかるけど、アプリケーション全体を
包み込むメインフォームの中にMDI子ウィンドウが表示されるってやつ。非推奨。
SDIはリポジトリにあるSDIアプリケーションの雛形がコピーされる。VCLはバニラ味。

>688
\\TEMPS\MYDIR\
は共有フォルダだけど、
\\TEMP\
はマシン名だから。
690686:2011/03/28(月) 20:59:34.10
>>687
そうであればモヤモヤが取れましたありがとうございます。

>>689
なるほど、ご丁寧にありがとうございます。

Delphiで活発なコミュニティって余り無いので、
このスレの存在が非常に助かっています。
エンバカのコミュニティもあるにはありますが・・・
691デフォルトの名無しさん:2011/03/29(火) 02:07:36.83
他にもあるよ
692デフォルトの名無しさん:2011/03/29(火) 09:32:35.69
TurboからXEに環境を変えて自作プログラムを少しだけ修正してコンパイルし直したら、
バイナリのサイズが1MB弱から2MB弱と倍くらいに大きくなってしまいました。
一概には言えないと思いますが、一般論としてこの程度は大きくなるものでしょうか。
693デフォルトの名無しさん:2011/03/29(火) 09:46:32.74
新しいRTTIの影響です。普通ですね。
694デフォルトの名無しさん:2011/03/29(火) 13:21:39.87
アフォな質問かもしれないけど、関数の集合としてclassを使うことはできないかな?
似たような目的の関数を1つのclassにまとめておいて使う方法みたいな。
しかもcreateしないで使いたい。
695デフォルトの名無しさん:2011/03/29(火) 13:38:08.30
TSukoshiha = class
public
 class procedure Gugure; static;
 class function Kasu: Integer; static;
end;
696688:2011/03/29(火) 16:45:46.60
>>689さん
レスありがとうございます。なるほど、そういうことだったのですね。これに関連しまして、
現在のパスがC:\の状態で、".."が指定された時は、コンピュータ、または"\\test\"の状態では
マイネットワークの階層を表示するなどの処理を考え中なのですが、イマイチ良いアイデアが
浮かびません。

どうもコンピュータとかマイネットワークってのは特殊?なもののようですね。
::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C.} とかなんか、そんなIDを指定すれば希望の階層を開けました。
ということはPathIsRootを呼んで、ルートの時の指定が".."だったら所定のフォルダを開く、みたいなことに
なるんですかね。

どうも基本的に勉強が必要のようです、ありがとうございました。
697デフォルトの名無しさん:2011/03/29(火) 17:25:28.15
>>695
静的なクラスメソッドっていうのか。知らなかった。
698692:2011/03/29(火) 18:00:02.39
>>693
ありがとうございます。しかし、しょぼいプログラムが2MBなんて申し訳ないような気がします。
いまどき、1MBも2MBも大差ないかもしれませんが。
699デフォルトの名無しさん:2011/03/29(火) 18:25:12.64
そんなのコンパイルオプション次第
700デフォルトの名無しさん:2011/03/29(火) 21:07:41.06
>694
C++だとネームスペースってことになるけど、Delphiではunit=namespaceの扱いなので、
かわりにclass procedure/class functionかな。virtual/overrideも効くし、それなりに
面白いことができる。staticは不要。
701デフォルトの名無しさん:2011/03/30(水) 01:43:17.91
継承とかオーバーライドできるんだからひとつにまとめる必要ないよねぇ
702デフォルトの名無しさん:2011/03/30(水) 03:57:56.77
>>700
関数をまとめるだけならstaticを付けないと呼び出しのコストが嵩む
703デフォルトの名無しさん:2011/03/30(水) 09:04:08.13
TGlobalというデータモジュールに雑多なprocedureを置く俺は頭悪い?
704デフォルトの名無しさん:2011/03/30(水) 09:05:48.98
普通にunitでいいじゃん
705デフォルトの名無しさん:2011/03/30(水) 13:06:20.87
>>703
うん
706デフォルトの名無しさん:2011/03/30(水) 13:18:37.03
うん
707デフォルトの名無しさん:2011/03/31(木) 08:33:25.85
>>704
正解
708デフォルトの名無しさん:2011/03/31(木) 15:31:29.59
クラスメソッドにstatic付けたら、振舞い的にはそれはもうメソッドではなくて、どちらかと言うと、そのクラスが所有者する関数って扱いになるんだね。知らなかった。
709デフォルトの名無しさん:2011/03/31(木) 20:23:40.79
うん
710デフォルトの名無しさん:2011/04/01(金) 10:28:07.90
>>708
意味kwsk
711デフォルトの名無しさん:2011/04/01(金) 10:47:12.07
Selfが無いってこと
712デフォルトの名無しさん:2011/04/01(金) 10:58:00.30
ちょっと語弊があるけど、だいたいのイメージ的にはこんな感じ
* どっか型/関数をいっぱい管理してる場所
- class procedure a; // [1]

Thoge = class;
public
class procedure a static;
procedure b;
end;
x := Thoge.Create();
y := Thoge.Create();

x.a; ← [1]を呼び出す
y.a; ← [1]を呼び出す
x.b; ← xのbを呼び出す
y.b; ← yのbを呼び出す
713デフォルトの名無しさん:2011/04/01(金) 13:38:52.04
>>712
次からはもう少し整理してから書こうな
714デフォルトの名無しさん:2011/04/01(金) 13:58:35.06
715デフォルトの名無しさん:2011/04/01(金) 14:07:58.69
716デフォルトの名無しさん:2011/04/04(月) 23:35:27.03
//シリアルコンポーネントの仕様変更すんなks
717デフォルトの名無しさん:2011/04/05(火) 01:33:56.80
はあ?
718デフォルトの名無しさん:2011/04/05(火) 04:05:27.93
ひい!
719デフォルトの名無しさん:2011/04/05(火) 16:30:05.90
Del6Perです
var
ws:WideString;
s:String
として
ws:='Delphi';
s:='a';
ws[1]:=s;
とするとエラーになります、どのようにすればよろしいでしょうか;;
720デフォルトの名無しさん:2011/04/05(火) 17:05:22.32
ws[1]:=WideChar(s[1]);
とか
ws[1] := PWideChar(s)^;

sに二文字以上入る可能性があるなら、文字列処理ルーチンを使用したほうがいい。
721デフォルトの名無しさん:2011/04/05(火) 17:17:04.07
>>720だとマルチバイトで動かない
ws[1] := WideString(s)[1];
722デフォルトの名無しさん:2011/04/05(火) 18:28:41.87
配列が定義されてないのにいきなり[1]て
723デフォルトの名無しさん:2011/04/05(火) 18:30:54.81
>>722
初心者の方ですか?それは配列じゃなくて文字列ですよ。
半年ROMってましょうね^^
724デフォルトの名無しさん:2011/04/05(火) 18:46:04.33
おおおっ、みんなありがとー
>>721さんのやり方で出来ました!
ほんんと感謝!
725デフォルトの名無しさん:2011/04/05(火) 23:17:54.98
標準のVCLじゃないけどVirtualTreeView(VirtualStringView)に登録した全ての
ノードをなめるにはどうすりゃいいんでしょう?
標準のTreeViewだったらItemsをforのループでまわしてました。
Vistaにしたら同じプログラムなのにTreeViewへのノードの登録があまりにも
遅くなってしまったのでVirtualTreeViiewを使った物に作り替えているのですが
上記質問の部分で行き詰まってしまいました。
よろしくお願いします。
726デフォルトの名無しさん:2011/04/06(水) 05:48:59.84
GetFirstとGetNext
あるいはIterateSubtree
727デフォルトの名無しさん:2011/04/06(水) 06:54:52.48
>>726
ありがとうございます。やってみます。
728デフォルトの名無しさん:2011/04/06(水) 08:36:34.73
System.TCustomAttribute
で、具体的に属性を指定してどうこうってありますが、これは具体的に何に役に立つんでしょうか?
理解力がないのかもしれないのですが、ヘルプを見ても抽象的すぎて意味がわかりません。
729デフォルトの名無しさん:2011/04/06(水) 16:34:11.93
>>728
Delphi 2010のRTTIと属性
http://owlsperspective.blogspot.com/2009/09/rtti-and-attributes-on-delphi-2010.html
カスタム属性とRTTIを使ったCSVファイルのロード@Delphi2010
http://d.hatena.ne.jp/tales/20100728/1280252213
カスタム属性でクラス定数っぽいものの振る舞いを継承先で変えたりしてみる
http://d.hatena.ne.jp/tales/20100228/1267371647
730デフォルトの名無しさん:2011/04/06(水) 18:43:40.33
誰か、WebBrowserコンポーネント使って、本格的にタブブラウザ作ってる人いない?
731デフォルトの名無しさん:2011/04/06(水) 18:53:21.19
いるよ
732デフォルトの名無しさん:2011/04/06(水) 20:16:50.68
返事ありがとう。

ところで、TWebBrowserのポップアップブロックのアルゴリズムって、
何か採用してますか?

例えば、JavaScriptのWindow.Openで開くものを開かないようにする、とか、
手動でクリックしたもの以外は開かないようにする、とか。

今、いろいろ検索しているんですが、なかなかうまく見つからないんです。
733デフォルトの名無しさん:2011/04/06(水) 21:03:20.81
メニュー非表示
サイズ指定
734デフォルトの名無しさん:2011/04/07(木) 11:00:08.24
とあるクラスの中でプロパティを宣言。

property ABC: Integer read FABC write SetABC;

このとき、SetABCをprivateに置くわけだけど、同クラスで入力中、Ctrl+Spaceで単語入力支援機能を使った時、ABCだけ表示して欲しいんだけど、SetABCまで表示されてしまう。
これを隠す何かしらの方法って何かあるのかなぁ?
735デフォルトの名無しさん:2011/04/07(木) 12:33:30.96
アホの子出ました
736デフォルトの名無しさん:2011/04/07(木) 12:54:42.27
手を目の前に持ってくるとね、いろいろなものが隠れちゃうよ!
737デフォルトの名無しさん:2011/04/07(木) 14:49:17.54
delphiでパッケージを使うときにjavaでいうところのimportみたいな方法って無いかな
738デフォルトの名無しさん:2011/04/07(木) 15:01:53.47
private メソッドを呼べる場合と呼べない場合が、Ctrl+Space を
押した場所に依存し、定義中のクラスや、LHS のインスタンスの
クラスを特定しておいて、表示か非表示かを切り替えるってことに
なるので、結構面倒な割りに、メリットが少なそうだな。
739デフォルトの名無しさん:2011/04/07(木) 22:40:05.27
>>733
ご回答どうもありがとうございます。
思わぬ条件でしたが、調べてみると、割と定番なアルゴリズムのようですね。実現は「初心者」向け
とはいかず、多少骨が折れそうですが…
もう少し難易度等を調べてみて、ここで相談するのが適当か、他の掲示板等で相談するのが適当か
あたりをつけて、妥当と思われるスレで相談してみたいと思います。
740デフォルトの名無しさん:2011/04/07(木) 23:20:12.92
begin
var a := TMyObject.Create;
end;
みたいに書けないの?
741デフォルトの名無しさん:2011/04/07(木) 23:42:40.28
書けない
いまのところは
742デフォルトの名無しさん:2011/04/07(木) 23:52:18.58
もし>740のように書けたらどういったメリットがあるの?
743デフォルトの名無しさん:2011/04/08(金) 00:30:17.46
Dephi以外の言語に触れたことない?
744デフォルトの名無しさん:2011/04/08(金) 00:48:08.83
Prism使おうぜ!
745デフォルトの名無しさん:2011/04/08(金) 01:52:54.01
>>743
それはコンパイル速度がC並みになるのと引き替えにできるほどのメリットなの?
746デフォルトの名無しさん:2011/04/08(金) 01:59:02.93
変数宣言は上の方に固めてするっていうコーディング規約でも今ではよくあるし、
せっかくそれが言語仕様として存在してるDelphiの仕様をわざわざ変える必要は無い
途中で宣言したい場合もIDEの補助があるから苦にならないし
747デフォルトの名無しさん:2011/04/08(金) 02:32:57.88
>>740
書けない
コンパイラに優しくて、関数で使われてる変数の把握がしやすいと言う長所でもあり

必要になったらその場で宣言。が出来ない。ちょっとしか使わなくても、全ての変数が、関数の終了まで開放されないと言う短所でもある


メモリ豊富な昨今、脅威のコンパイル速度を犠牲にする程、今の変数宣言が手間か?変数の寿命にこだわるか?と言われると疑問だが
748デフォルトの名無しさん:2011/04/08(金) 03:47:52.83
>関数の終了まで開放されない
それは最適化の問題であって宣言位置の問題とは基本的に無関係
749デフォルトの名無しさん:2011/04/08(金) 08:58:34.36
>>740 aをグローバルにしときゃいいじゃん
750デフォルトの名無しさん:2011/04/08(金) 10:20:49.57
Delphi 64-bit コンパイラ・スニークプレビュー
http://www.embarcadero.com/jp/products/delphi/64-bit
751 忍法帖【Lv=4,xxxP】 :2011/04/09(土) 01:54:30.40
64bit超楽しみだわ
752デフォルトの名無しさん:2011/04/09(土) 06:25:24.37
StarterにCtrl+Shift+C相当の機能を持たせるプラグイン等はないのかな。
他の制限は十分許容範囲だけどこれだけはあまりにも辛すぎる…
753デフォルトの名無しさん:2011/04/09(土) 06:50:18.53
StarterにCtrl+Shift+C相当の機能を持たせるプラグインを自分で作る
Starterで
754デフォルトの名無しさん:2011/04/09(土) 16:15:14.36
Open Tools API というIDEを弄る機能を使えば不可能ではなさそうだが、
一般的なレベルのユーザーには敷居が高そう。
755デフォルトの名無しさん:2011/04/09(土) 16:16:26.19
と思ったら、StarterじゃOpen Tools APIがそもそも使えないらしい、スマソ。
756デフォルトの名無しさん:2011/04/09(土) 16:18:37.79
やっぱ使えるらしい、大混乱。
757デフォルトの名無しさん:2011/04/09(土) 17:40:23.75
Delphi XEの購入を検討してるものなんですが、Delphi XEにはDirectXコンポーネントが標準でついていると聞きます。

これを使えば、ウィンドウ/フルスクリーン切り替えアプリなんかも簡単に作れるものなんでしょうか?
758デフォルトの名無しさん:2011/04/09(土) 17:47:28.63
そんな情報聞いたことないんだけどソースは?
759デフォルトの名無しさん:2011/04/09(土) 17:52:11.16
DirectX9までのユニットはあるけど
ほんとにあるだけって感じだな…
標準のものだけではお手軽開発は期待できないっぽい

lib\win32\release
> dir direct* /b
Direct2D.dcu
Direct3D.dcu
Direct3D8.dcu
Direct3D9.dcu
DirectDraw.dcu
DirectInput.dcu
DirectMusic.dcu
DirectPlay8.dcu
DirectShow9.dcu
DirectSound.dcu
760757:2011/04/09(土) 17:55:36.90
簡単ではないんですね?

ありがとうございます。
761デフォルトの名無しさん:2011/04/09(土) 18:51:39.45
DirectXなんて今までのDelphiだって使えてたじゃないか
762デフォルトの名無しさん:2011/04/09(土) 19:09:38.35
>>760
OpenGLでよければポトペタで出来るやつがあるけどね
http://glscene.sourceforge.net/wikka/HomePage
763デフォルトの名無しさん:2011/04/19(火) 18:32:34.84
XE買おうと思ってるんだけどPro版買えば多層型のCSデータベース組めます?
764デフォルトの名無しさん:2011/04/19(火) 19:01:33.02
Entが必要。
765デフォルトの名無しさん:2011/04/19(火) 22:32:18.19
サーバーはOracle、クライアントはSQLite&DOAで組んだよ。Proだけど。
766デフォルトの名無しさん:2011/04/19(火) 22:51:27.50
ADOで十分なのでProでOK
767デフォルトの名無しさん:2011/04/19(火) 23:20:19.94
2層ならそれでOKだけどね。
768デフォルトの名無しさん:2011/04/21(木) 00:37:52.88
XE Pro を購入しようと思っています。
学生なので アカデミック版を考えているのですが、あと1年で卒業です。
卒業後も、使用できるのでしょうか?
又、その他制限事項が有るのでしょうか?
エンバカデロのサイトで調べましたが 詳しい記述を見つけられませんでした。
私にとってはとっても高価なモノなので、しっかり調べて決めたいと思います。
ご存じの方、アドバイスを頂けたら、幸いです。
769デフォルトの名無しさん:2011/04/21(木) 05:48:27.79
アカデミック版にはどのような制限がありますか?
http://www.embarcadero.com/jp/products/delphi/frequently-asked-questions#13-2

あとフリー・商用問わずソフトウェアの配布が禁止になってたと思うから、
実質的に自分用のソフトを開発する以外の目的では使えないよ。

というかXEのStarter Editionではだめなの?
Proのアカデミック版よりよっぽど安いと思うけど。
770デフォルトの名無しさん:2011/04/21(木) 07:24:17.67
>>769
色々疑問が解けました。
CS系をマスターしたいので、XE Pro 購入を検討します。

ありがとうございました。
771デフォルトの名無しさん:2011/04/21(木) 09:27:40.34
Starterは糞
あんなストレスフルな環境にしがみつくくらいなら
C# Express使うのを強く推奨する
772デフォルトの名無しさん:2011/04/21(木) 16:50:40.04
C#は設計思想がちょっと合いませんでした
773デフォルトの名無しさん:2011/04/21(木) 17:23:04.98
作った人は同じなのに?
774デフォルトの名無しさん:2011/04/21(木) 17:57:37.79
作った人が同じなら同じものができるとでも?
それならDelphiやってもC#やっても何も変わらないはずですが。
775デフォルトの名無しさん:2011/04/21(木) 20:37:45.71
>>772
同意せざるを得ない
776デフォルトの名無しさん:2011/04/30(土) 09:26:32.35
昨日、delphi7からdelphiXE(starter)にバージョンアップしたんだけど、IDEの違いにビックリ。

まだチョコッと触った程度だけど、Formを表示して、それを見ながらコード書けないの?
777デフォルトの名無しさん:2011/04/30(土) 14:20:06.77
ある方法を使えば可能(高解像度モニタが無いと実用的ではない)
だが、見ながら書く必要性がよく分からない
778デフォルトの名無しさん:2011/04/30(土) 15:23:10.04
779デフォルトの名無しさん:2011/04/30(土) 20:44:10.01
>>777
言われてみればそうだね。

eclipseでjavaやってるときは当然formなんてないし平気だし…
単に漠然とした違和感かな。

>>778
ありがとうございます。
さっそく試してみます。

780デフォルトの名無しさん:2011/05/01(日) 06:01:49.39
初心者です。すみません。

「フォームが移動した」っていうのは、どのイベントで感知すればいいんですか?
781デフォルトの名無しさん:2011/05/01(日) 06:32:07.65
782デフォルトの名無しさん:2011/05/01(日) 10:48:38.58
>>781
ありがとうございます。
783デフォルトの名無しさん:2011/05/02(月) 02:35:02.97
最近delphiに興味を持った人間です。
2009からUnicodeがデフォルトになったようですが、2009以前(6とか7)で開発されたものを2010で使えるように修正するのはどうすればいいよでしょうか?
HPなどあればぜひ教えていただけると嬉しいです。
また、今現在6をダウンロードできないようなのですが、(ベクターで出来ると聞いたのですが…)今はどこでDLすればいいのでしょうか?
質問ばかりになってしまいましたがよろしくお願いします。
784デフォルトの名無しさん:2011/05/02(月) 04:07:48.41
>>783
> 2009以前(6とか7)で開発されたものを2010で使えるように修正するのはどうすればいいよでしょうか?

とりあえず、デベロッパーキャンプの資料を読んでみようか。
http://ht-deko.minim.ne.jp/tech044.html#tech088
で、ユニコード関係のセッションを読んでみると良いと思う

> また、今現在6をダウンロードできないようなのですが、

Personalのこと?
http://delwiki.info/?Delphi%2FDelphi%206%2FDelphi%206%20Personal%20%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
かねー。でも割れ物かもしれないよ。
785デフォルトの名無しさん:2011/05/02(月) 06:15:04.06
>783
すなおにXE Starter買っとけ。
786デフォルトの名無しさん:2011/05/02(月) 15:19:15.19
String型変数でもUnicode?
787デフォルトの名無しさん:2011/05/02(月) 15:57:55.42
2009以降ならString = UnicodeString
788デフォルトの名無しさん:2011/05/08(日) 01:49:45.58
delphi 6 personal と turbo delphi ならキーと一緒に俺の横で寝てるよ
使ってないけどな!
無料版の無い言語なんかもう誰にも使われないだろ
このくらいのクオリティの環境とかもう珍しくない
789デフォルトの名無しさん:2011/05/08(日) 01:55:30.50
そうですね
790デフォルトの名無しさん:2011/05/08(日) 15:45:28.32
スレタイがくたばれDelphiに見えた
791デフォルトの名無しさん:2011/05/09(月) 14:08:46.00
もうくたばってるけどね
792デフォルトの名無しさん:2011/05/10(火) 02:38:31.38
だな
793デフォルトの名無しさん:2011/05/11(水) 10:43:37.67
まだだ、まだ終わらんよ
794デフォルトの名無しさん:2011/05/11(水) 11:27:40.38
そう言って消えていくわけね。
795デフォルトの名無しさん:2011/05/15(日) 13:05:55.15
Delphiのエディタくそすぎ。ジェネリックス使ってると
頻繁にアクセスバイオレーション出まくる。
796デフォルトの名無しさん:2011/05/15(日) 13:13:29.24
ジュネリックスに頼るド素人w
797デフォルトの名無しさん:2011/05/15(日) 17:40:59.07
ジュネリックス(笑)
ジェネリクスという正しい名前すら覚えてない人がド素人(笑)
798デフォルトの名無しさん:2011/05/15(日) 18:06:36.86
>>796
Generics をどう発音したらジュネリックスになるの?ド素人さん^^
799デフォルトの名無しさん:2011/05/15(日) 18:21:46.83
Adobe を「アドベ」って言う人もいるしなぁ
800デフォルトの名無しさん:2011/05/15(日) 22:13:21.95
アドベって2ch語かと思ってた
801デフォルトの名無しさん:2011/05/15(日) 22:48:17.63
ギフとかワーニングとか言ってんだろ?
ガタガタ言うなよ
802デフォルトの名無しさん:2011/05/15(日) 23:28:49.65
ジュネリックスとかどうみてもアホだね。
803デフォルトの名無しさん:2011/05/15(日) 23:52:17.44
おまいらの脳が頻繁にアクセスバイオレーション出てるよ
804デフォルトの名無しさん:2011/05/16(月) 03:46:32.13
ジュネリックスw
805デフォルトの名無しさん:2011/05/16(月) 06:38:16.75
Junerics
806デフォルトの名無しさん:2011/05/16(月) 16:08:56.55
愛読誌の紹介か。
807デフォルトの名無しさん:2011/05/16(月) 21:46:40.23
ぷろせでゅあ
808デフォルトの名無しさん:2011/05/17(火) 11:07:17.20
プリキュアみたい・・・ハァハァ
809デフォルトの名無しさん:2011/05/17(火) 11:21:07.43
幼稚園でお花作ったの
810デフォルトの名無しさん:2011/05/17(火) 13:24:42.11
参考までに聞いてみる
なんと読む?

>Generics
811デフォルトの名無しさん:2011/05/17(火) 13:42:29.96
ジュネリックスに決まってんだろクソハゲ
812デフォルトの名無しさん:2011/05/17(火) 16:08:30.19
げねりしす
813デフォルトの名無しさん:2011/05/17(火) 19:31:01.21
げんえりしーしゃーぷ
814デフォルトの名無しさん:2011/05/17(火) 20:16:07.41
ゲン・エリックス
815デフォルトの名無しさん:2011/05/18(水) 01:37:42.42
ガンダム
816デフォルトの名無しさん:2011/05/18(水) 02:15:26.51
ジェネシス
817デフォルトの名無しさん:2011/05/18(水) 02:15:55.95
ネグリジェ
818デフォルトの名無しさん:2011/05/18(水) 03:00:28.80
ゲルググ
819デフォルトの名無しさん:2011/05/18(水) 07:41:17.81
げりぐそ
820デフォルトの名無しさん:2011/05/18(水) 10:32:33.31
全くの初心者です。
参考書を探しているのですが、XEはおろか2010ですら見つかりません。
初心者向けなものとリファレンスになりそうなものをご紹介ください。
よろしくお願いいたします。
821デフォルトの名無しさん:2011/05/18(水) 10:39:02.18
Marco CantuのDELPHI 2009 HANDBOOKでいいんじゃないの?
822デフォルトの名無しさん:2011/05/18(水) 11:16:51.62
>>821
Amazonで見てきました。
もう中古本しかないんですね・・・
823デフォルトの名無しさん:2011/05/18(水) 11:31:42.61
技術書なんか中古で十分だろwww
824デフォルトの名無しさん:2011/05/18(水) 14:57:16.13
初心者なんだけど、「Delphiコンポーネント設計&開発完全解説」って買った方がいいですか?
PDF版で出ているのを知って買うべきか悩んでます。
825デフォルトの名無しさん:2011/05/18(水) 15:03:07.80
先の無い言語を初心者には勧められねえ
買わない方が良い
826デフォルトの名無しさん:2011/05/18(水) 15:33:24.81
複数開発系知ってるの普通だから、やるだけやってみたら?
それのみってなら奨めない。
827デフォルトの名無しさん:2011/05/18(水) 18:33:28.27
>>820
今日、神保町の書泉グランデを見回りましたが

VBユーザーのためのDelphi6プログラミング
http://www.amazon.co.jp/dp/4274064514
DELPHI2009HANDBOOK
http://www.amazon.co.jp/dp/487783222X

あとはdelphi2005系の本などがあったような気がします。
カットシステムのC++Builderの本もずらっと並んでいました。

>>824
> 初心者なんだけど、「Delphiコンポーネント設計&開発完全解説」って買った方がいいですか?

とっても良書だけど、コンポーネントを作る予定がなければ要らないし
PDF版は販売停止にはならないと思うので
焦って買う必要はないと思う。
828デフォルトの名無しさん:2011/05/18(水) 19:19:52.27
初心者がなぜ今からdelphiなのか
物凄く茨の道だと思うが
829デフォルトの名無しさん:2011/05/18(水) 19:29:07.74
>>828
なんで?
830デフォルトの名無しさん:2011/05/18(水) 19:56:32.64
将来性でなく将来がないから
他の言語の方が資料がある分楽でdelphiと同じような事が出来るから
今からだと有料版しかないから
831デフォルトの名無しさん:2011/05/19(木) 08:16:15.03
初心者の皆さんへ。
2chはしつこいアンチが1匹生息していますので
ご注意ください。
832デフォルトの名無しさん:2011/05/19(木) 08:24:17.27
何でも良いんじゃない?
MSなんて10年前の開発ツール一切使えなくなってたりするし
833デフォルトの名無しさん:2011/05/19(木) 08:35:33.09
一時はどうなることかと思ったけど
ユニコード化したし、64ビット化も今年するのだろうし
将来不安を煽るような時期は終わったよ。
一番安いのなら1万円台で買えるのだし、文句はないです。

カントゥさんのdephi6プログラミングバイブルのPDF版は
あると良いかも。
834デフォルトの名無しさん:2011/05/19(木) 10:07:56.56
del6 personalだけど今からプログラミング始める初心者なんだけどTSonEditとTEditor、買うならどっちがいいの?
unicode対応はいらないです。
835デフォルトの名無しさん:2011/05/19(木) 12:07:37.92
VisualSution 一択。
836デフォルトの名無しさん:2011/05/19(木) 12:31:52.69
>>835
とんくす
837デフォルトの名無しさん:2011/05/19(木) 15:23:21.72
>>835
使ってみたんだけどもっさりしてるんでだめだわ。他にある?
838デフォルトの名無しさん:2011/05/19(木) 16:32:56.58
今からdelphi6per始める初心者って違法ダウンロードでもやってんの?
839デフォルトの名無しさん:2011/05/19(木) 20:54:43.58
ちなみにどの辺りの法律に触れるの?
840デフォルトの名無しさん:2011/05/19(木) 22:42:26.23
適当に言ってすみませんでした
でももう配布してないんでしょ?
841デフォルトの名無しさん:2011/05/19(木) 23:18:20.76
古い雑誌の付録についてたりするかも
842デフォルトの名無しさん:2011/05/19(木) 23:29:44.08
初心者がそんな古い雑誌手に入れると思う?
843デフォルトの名無しさん:2011/05/20(金) 00:04:45.94
僕の場合はSyle作者さんが兄弟の知り合いの他人だったのでCDもらう機会があったんです。
844デフォルトの名無しさん:2011/05/20(金) 09:06:15.59
他人って何だよw
845デフォルトの名無しさん:2011/05/20(金) 10:51:13.07
俺は拾いました
誰かが落としたようです
846デフォルトの名無しさん:2011/05/20(金) 10:53:48.93
無断でうpしたって誰も気にしないよな
布教活動なんだから
847デフォルトの名無しさん:2011/05/20(金) 13:13:23.38
delphi6 perのインストールキーはもう貰えないんでしょ?
848デフォルトの名無しさん:2011/05/20(金) 13:14:58.16
キーもテキストで上げれば良いじゃないか
無くても問題ないし
849デフォルトの名無しさん:2011/05/20(金) 13:51:24.12
>>842
Nowに行けばどっさり100円
850デフォルトの名無しさん:2011/05/20(金) 15:21:41.73
インストール番号、インストールキーはCDに付いているだろ。
使用許諾コードは別に入力しなくても使える訳だし。
851デフォルトの名無しさん:2011/05/20(金) 15:33:18.58
マジレスすると三原さん著の基礎からわかるDelphi6っていう本についてました。
852デフォルトの名無しさん:2011/05/20(金) 15:36:38.45
本買わないといけないの?
853デフォルトの名無しさん:2011/05/20(金) 15:39:45.59
amazonにも中古しかないですしもう入手は難しいのでは・・
del6 personalが手に入るなら本の値段くらいは出す価値あるかと。本が付いてきますし。
ただ、バグフィックスのパッチが入手出来ないのでそれが怖いですね・・。
854デフォルトの名無しさん:2011/05/20(金) 15:44:15.45
新しいのは買わないの?
855デフォルトの名無しさん:2011/05/20(金) 15:50:47.46
お金がありません

基礎からわかるDelphi6
http://www.amazon.co.jp/dp/4798002518

なんというボッタ。
856デフォルトの名無しさん:2011/05/20(金) 16:02:07.46
今更delphi6に1万4千円も出すなら
xeの一番安いのが買えるじゃん。
857デフォルトの名無しさん:2011/05/20(金) 16:04:01.29
※ この本の定価は2800円です
858デフォルトの名無しさん:2011/05/20(金) 16:07:17.73
100円でごろごろあるものを14000円で出品してる人がいるのか
859デフォルトの名無しさん:2011/05/20(金) 16:14:27.62
この手の本はさすがにブックオフでも100円では売っていない。
860デフォルトの名無しさん:2011/05/20(金) 17:15:27.73
これどうなんだろう?
やさしいPascal入門 → http://www.bk1.jp/product/3416984
861デフォルトの名無しさん:2011/05/20(金) 17:30:09.08
フォームが出るだけのプログラムで15MByteのlazarusの本か
ストリップコマンドして1.5M
862デフォルトの名無しさん:2011/05/21(土) 07:55:01.50
>>860
売り上げが悲惨な結果に終わりそうな気がする本だね
863デフォルトの名無しさん:2011/05/21(土) 09:20:07.38
>> delphi6 perのインストールキーはもう貰えないんでしょ?

Delphi2ならあるから、upしましようか?
864デフォルトの名無しさん:2011/05/21(土) 12:02:01.65
いただきマウス
865デフォルトの名無しさん:2011/05/21(土) 12:08:53.53
ありがとウサギ
866デフォルトの名無しさん:2011/05/21(土) 12:38:35.65
867デフォルトの名無しさん:2011/05/21(土) 13:24:12.57
DLできました
868デフォルトの名無しさん:2011/05/21(土) 14:09:18.20
bregonig.dll Ver.2.02 with Oniguruma 5.9.2

検索: a
置換: <\cI>
対象: a
結果:<タブ文字>

検索: a
置換: <\ci>
対象: a
結果:<タブ文字>

\ciの「i」は小文字なのに大文字の「I」として解釈されて(?)タブ文字に置換されてしまうんだけどこれってバグ?

\ca => \cA と解釈されて置換される
\cb => \cB と解釈されて置換される
    ・・・
\cz => \cZ と解釈されて置換される

・・みたいな感じで3文字目の小文字が大文字だったことにされちゃうみたい。perlでも同じ挙動なのかな??
置換処理ではこんなの使わないから実用的には問題ないけど気になったから晒してみました。

鬼車 http://www.geocities.co.jp/kosako3/oniguruma/
鬼車解説 http://www.geocities.co.jp/kosako3/oniguruma/doc/RE.ja.txt
bregonig.dll http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
869デフォルトの名無しさん:2011/05/21(土) 15:00:10.00
Delphiと無関係すぎワロタ
870デフォルトの名無しさん:2011/05/21(土) 15:02:34.64
超関係ありまんがな
871デフォルトの名無しさん:2011/05/21(土) 15:28:27.97
DEKO さん、ちまよったね。
872デフォルトの名無しさん:2011/05/21(土) 20:52:21.61
>>860
http://www.erde.co.jp/blog/?p=824
初心者向けの入門書として 良い教材になるだろう。 
大学などでも使われるのだろうか

著者は多くの実績があるから、素人が読みやすい本だと予測する
http://www.bk1.jp/books/authorSearchResult/?authorKana=%E3%83%84%E3%83%81%E3%83%A4+%E3%83%9E%E3%82%B5%E3%83%AB&adultFlg=0&authorId=110000658160000&author=%E5%9C%9F%E5%B1%8B+%E5%8B%9D
873デフォルトの名無しさん:2011/05/21(土) 21:26:40.70
>大学などでも
いまどき Pascal は使わないよ

Delphi 以前だと、例外無い。テンプレート/ジェネリクスがない。RTTI 相当も無い。
数値計算系の定義が甘い。多倍長整数がライブラリに無い。

アルゴリズム研究とかのコンピューターサイエンスに使うには非力すぎ。

実務を考えた場合には C# か Java および C++
874デフォルトの名無しさん:2011/05/21(土) 21:29:13.03
あと、著者のコメント。

>私はシステム開発の会社を20年以上経営していますが、業務でPascalを使うことはまったく無く、やはりC++やJava、PHP、Perl、Rubyの仕事がメインとなっています。
>いつの間にかTurbo Pascalの本も処分してしまいました。
875デフォルトの名無しさん:2011/05/21(土) 22:24:33.03
Delphi言語とPascalは似て異なる
876デフォルトの名無しさん:2011/05/22(日) 01:47:16.59
アマチュア無線用の 30m の鉄塔を別宅に所有できる程度の黄金持ちのシャチョウさんの道楽出版ですな。
カットシステムも良い金づるを見つけて良かったなぁ
877デフォルトの名無しさん:2011/05/28(土) 18:47:55.27
>>875
PascalとDelphiは、紅三四郎とプラレス三四郎ぐらい似ているよ。
878デフォルトの名無しさん:2011/05/28(土) 18:57:59.32
まあ、pascalのコードは全部動くなw
delphi言語で拡張された部分が重要
昔は「はじめてのdelphi」とか、2千円以下の入門書もあったけど、今は入門書自体が入手し辛いからな。。。
互換性は有るから古いのでも入手しとけ

はじめてのdelphiに書かれたコードも現役で動くぞw
879デフォルトの名無しさん:2011/05/28(土) 19:04:26.40
追記
はじめてのdelphiは、delphi1.0だか2.0の時代の本だ

自分がはじめてまともにdelphi触ったのはdelphi6が出はじめた頃だったが、そんな時代でも入門には役立った
880デフォルトの名無しさん:2011/05/28(土) 20:25:58.50
はじめてのDelphi
http://www.osk.3web.ne.jp/~satou/delphi1.htm

これですね!
881デフォルトの名無しさん:2011/05/28(土) 21:38:42.79
違ぇよ!
882デフォルトの名無しさん:2011/05/29(日) 00:05:26.01
むかしの入門書とか何冊かある
中にはDel6時代のやつとかもあるよ
本じたいはだめだがCDとかならあげてもいい
カネかかんなくてめんどくさくなければ
883デフォルトの名無しさん:2011/05/29(日) 00:14:43.09
うp
884デフォルトの名無しさん:2011/05/29(日) 00:19:21.53
はじめてのDelphi
http://or-lab.asahi-u.ac.jp/intro_to_delphi/default.htm#contents

これですね!
885デフォルトの名無しさん:2011/05/29(日) 01:08:40.37
はじDelってWin3.1じゃなかったっけ?
Dekphi3の頃に買ったけどWin3.1見たことなかったからちょっと戸惑った。
886デフォルトの名無しさん:2011/05/29(日) 01:12:28.45
>>885
そうそうw
写真のWinが全部3.1の窓なのよ
コード動くのか?とビビりながら書いてたな
だからこそなのか、動いた時の感動もひとしおだった
887デフォルトの名無しさん:2011/05/29(日) 17:42:54.29
塚越さん、わかりやすいんだけど誤植が多すぎた
888デフォルトの名無しさん:2011/05/29(日) 21:30:11.00
それは著者の問題じゃないだろ…
889 忍法帖【Lv=1,xxxP】 :2011/05/30(月) 07:52:44.64
にんじゃ
890 忍法帖【Lv=1,xxxP】 :2011/05/30(月) 08:34:35.29
もんじゃ
891デフォルトの名無しさん:2011/05/30(月) 13:56:07.98
塚地さんの鼻の穴?
892 忍法帖【Lv=1,xxxP】 :2011/05/30(月) 15:37:55.51
にんじゃ
893 忍法帖【Lv=2,xxxPT】 :2011/05/31(火) 15:57:11.27
にんじゃ
894デフォルトの名無しさん:2011/05/31(火) 21:31:01.23
ここも忍法帳確認スレに成り果てたか
895デフォルトの名無しさん:2011/05/31(火) 21:36:54.11
にんじゃ
896 忍法帖【Lv=1,xxxP】 :2011/06/01(水) 13:09:49.25
伊賀でござる
897ninja!:2011/06/01(水) 14:37:17.53
佐賀でござる
898デフォルトの名無しさん:2011/06/02(木) 02:08:48.16
もんじゃ
899デフォルトの名無しさん:2011/06/04(土) 16:13:50.31
OpenIrvine のソースを見て勉強してるのですが、以下の外部コンポが無くて、
いまいち良くわかりません。

ttp://home1.infonia.ne.jp/~delphian/delphi/compo/SY0040.cgi/dropd101.lzh?df=SY0040
ttp://home1.infonia.ne.jp/~delphian/delphi/compo/SY0104.cgi/traic116.lzh?df=SY0104
ttp://home1.infonia.ne.jp/~delphian/delphi/compo/SY0078.cgi/foldlg10.lzh?df=SY0078
ttp://home1.infonia.ne.jp/~delphian/delphi/compo/NE0008.cgi/rasu100.lzh?df=NE0008

以上のコンポの在り処、もしくは、何をするコンポなのか教えて頂けないでしょうか?
900デフォルトの名無しさん:2011/06/04(土) 17:01:30.51
foldlg10.lzhはフォルダ選択ダイアログ
traic116.lzhはトレイアイコンコンポ
rasu100.lzhはダイヤルアップ関連
たぶんここだがファイルが足りない。Irvine本体のビルドには必要ないと思う
http://www.takenet.or.jp/~ryuuji/delphi/rasapi.html
dropd101.lzhはドラッグ&ドロップ関連
たぶんこれ
https://bitbucket.org/feiz/futamisan/src/dfa0dcebee33/DROPDST.PAS
同じフォルダのCTLHOOK.PASも拾ってくる

足りないコンポは機能を削るしかない
どちらにしてもDel6ぐらいの古いバージョンじゃないと大変だよ
901デフォルトの名無しさん:2011/06/04(土) 20:59:09.54
>>900
ありがとうございます!
足りないコンポは、機能すら分からず難解でした。
これで前進できます〜。

>どちらにしてもDel6ぐらいの古いバージョンじゃないと大変だよ

入手が難しいので、なんとかXE Starterで頑張ってみます。
丸々再構築したいという訳ではなくて、ああいうアプリはどんな実装や構造で
出来てるのか勉強したいので。
(まだ良く読んでませんが、スレッドも関係してますよね)

それにしても、日本のDelphiのコンポサイトって全滅みたいですね。
何故なんでしょう?
902デフォルトの名無しさん:2011/06/05(日) 03:23:09.31
>何故なんでしょう?
理由はいろいろ考えられるけど、商売として成り立たなかった。というのが直接の原因。
個人の趣味の範囲でのライブラリでしか無かったから、継続したメンテナンスを期待することはできない。
金銭だけで無く、余暇時間やモチベーションとかも関係するしね

理由はいろいろあるだろうけど、
Delphi では仕事にならない。

仕事で使っているところは自分の技術を外に出さない
の二点かな。
「自分の技術(カスタムコンポとか)を外に出さない」ってのは、Delphi コンポーネントでは
食っていけない。ということの裏返しなので、最初の理由と大差はないけどね。

Delphi に限らず、コンポーネント単体で稼いでいる企業は C#/VB も含めても、日本には数社くらいしか
いないんじゃ無いかな?
903デフォルトの名無しさん:2011/06/05(日) 15:18:47.25
全滅っていうか元々総合的なのはDelphian1つしかなかったじゃん
個人でやってるところはそれなりに残ってるだろ
904デフォルトの名無しさん:2011/06/05(日) 15:48:29.89
905デフォルトの名無しさん:2011/06/05(日) 19:28:48.57
>>903
それでも、大分減ってますよね。残念です。

>>904
元々のサイトURLを知らないので、有る事さえ分かりませんでした。
ありがとうございます。
以下二つも発見しました。(あてずっぽうで、ですが)
ttp://www.geocities.jp/norg1964/delphianworld/data/sy/dropd101.lzh
ttp://www.geocities.jp/norg1964/delphianworld/data/sy/traic118.lzh
906デフォルトの名無しさん:2011/06/06(月) 01:03:03.83
>>905
具体的にどれだけ減ったの?
907デフォルトの名無しさん:2011/06/06(月) 10:08:24.09
おまいの髪の毛ぐらいに
908デフォルトの名無しさん:2011/06/06(月) 10:21:51.17
減っていない。ってことくらい提示できないかな? > 906

D6/7 の頃書かれた文章で、もう5年くらい更新すらされていない物を持ち出さないようよろしく
909デフォルトの名無しさん:2011/06/07(火) 23:50:43.05
>>908
禿げてるの?がんばれ
910デフォルトの名無しさん:2011/06/08(水) 06:26:12.52
あいにくフサフサでこまってます
911デフォルトの名無しさん:2011/06/08(水) 15:35:55.00
普通の人はフサフサで困るなんていう発想はまず出てこないから、
それだけフサフサに憧れがあるんだろうね
がんばれ
912デフォルトの名無しさん:2011/06/08(水) 21:58:14.45
30代までは髪の毛が多くて困った
今はM状態だが
913デフォルトの名無しさん:2011/06/08(水) 22:36:47.93
多くて困るのはホントに多すぎる人しかわかんないよね。
整わないし伸びると横に広がるしトリートメントしてリンスでコーティングして・・・めんどい。
914デフォルトの名無しさん:2011/06/11(土) 17:55:48.89
多いなら美容院で梳いてもらえばいいだけなのに
自分がそういう方法を知らなくても、普通は美容師さんの方から提案してくるし、
そういう体験をしたことがない本物のハゲだから回りくどい言い訳しか出てこないんだね
がんばれ
915 忍法帖【Lv=6,xxxP】 【東電 75.9 %】 :2011/06/11(土) 19:05:58.60
ホントに多い人のこと知らないな…髪質も有るけどさ
美容師にすくことを勧められるが、長さがそろわず暴れてめちゃくちゃになる
唯一効果あったのはツーブロックだけ
916デフォルトの名無しさん:2011/06/11(土) 20:45:00.49
禿げすぎてがんばれしか言えなくなったのかな?
ご愁傷様
917デフォルトの名無しさん:2011/06/11(土) 20:52:55.03
ttp://toki.2ch.net/hage/
ハゲ・ズラ板でやれ
918デフォルトの名無しさん:2011/06/12(日) 15:31:13.10
winXP,Turbo Delphiです

ttp://mrxray.on.coocan.jp/Delphi/plSamples/250_SystemKeyHook.htm

ここのサンプルをダウンロードしました。
その中のNo.3(dll無しのキーフック)のプロジェクトファイルを開いてちょっといじくろうと思ったのですが、
何もいじっていなくても2つエラーが出てきました。
片方は未宣言の識別子:ULONG_PTRだったので調べてULONGにすることで解決できました。
しかしもう片方の未宣言の識別子:WH_KEYBOARD_LLというエラーが解決できませんでした。
調べてもよくわかりませんでした。
具体的にどうすれば解決できるのでしょうか?
よろしくお願いします

919デフォルトの名無しさん:2011/06/12(日) 16:46:10.25
const
WH_KEYBOARD_LL = 13;
とconst定義を追加する。
920デフォルトの名無しさん:2011/06/12(日) 20:56:40.38
Windows APIについて

実行中のプロセス名をフルパスで取得したいんですが
GetModuleFileNameExだと、
64ビットのプロセスをフルパスで取得できないんです。

QueryFullProcessImageNameだとOKなんですが
Vista以降でないと使えないAPI関数ですよね。

何かいいヒントはないでしょうか?

ちなみに開発環境はWindows 7 64bit、
実行環境はWindows XP〜7(32or64bit)を想定しています。
921デフォルトの名無しさん:2011/06/12(日) 21:22:53.04
>>919
無事動きました!ありがとうございます!
922デフォルトの名無しさん:2011/06/12(日) 21:23:42.39
923918:2011/06/12(日) 23:05:31.42
すいません!
もう一つ問題が出てきました

コンパイラが通るようになったあとLowLevelKeyProc関数をいじって打たれた文字を記録するようにしました。
場所はLowLevelKeyProc関数内のResultに1を代入するところです。
しかし、どういうわけかやってみると1回しか押してないのに複数回記録されてることがあります。
「unko」と打ったのに「unkoko」と記録されていたりします。
原因はわからないのですがもしかしたらと思ってkeyupの時しか記録しないようにしようと考えました
しかし、どうkeyupかどうかを判別すればよいのかわからないのです
どうすればよいのでしょうか?
よろしくお願いします
924918:2011/06/12(日) 23:31:26.87
すいません
if Code = HC_ACTION then begin
のところを
if Code = wm_keyup then begin
にしたら一応keyupで取れたみたいです

しかし、記録の方は依然として「unko」が「uunnkkoo」となってしまいます
なぜなんでしょうか?
925デフォルトの名無しさん:2011/06/13(月) 01:28:52.86
>>917
ハゲでもズラでもないのでそちらには行けません
926デフォルトの名無しさん:2011/06/13(月) 01:51:55.58
どっちでもいいからさっさと消えろハゲ
ていうかここまで必死に否定したら逆効果だと思わないか普通…
ハゲてる人の心情は分かんないわ…
927デフォルトの名無しさん:2011/06/13(月) 12:07:14.20
ハゲ言うやつがハゲじゃ!!!
928デフォルトの名無しさん:2011/06/13(月) 14:29:30.86
929デフォルトの名無しさん:2011/06/13(月) 16:38:39.76
ハゲは喧嘩も子供並み
930デフォルトの名無しさん:2011/06/13(月) 18:42:00.31
チン毛がハゲてきました。
931デフォルトの名無しさん:2011/06/13(月) 20:39:33.95
>>924
> しかし、記録の方は依然として「unko」が「uunnkkoo」となってしまいます
> なぜなんでしょうか?

つコーラック
932デフォルトの名無しさん:2011/06/13(月) 22:01:17.10
>>924
取れたのに記録がうまくいかないってことは取れてないのでは?
http://msdn.microsoft.com/en-us/library/ms644985%28v=vs.85%29.aspx
933デフォルトの名無しさん:2011/06/14(火) 15:34:56.84
おまいのズラも取れたしな
934デフォルトの名無しさん:2011/06/14(火) 20:36:16.30
ズラとか…下品な言葉だな
ファッションなんだからウィッグと言ってくれ
935デフォルトの名無しさん:2011/06/14(火) 20:50:30.48
>>934
分かったズラ
これからはウィッグと言うズラよ
936デフォルトの名無しさん:2011/06/14(火) 20:56:40.43
ヅラだろ
937デフォルトの名無しさん:2011/06/15(水) 01:31:11.30
お前ら山梨県民馬鹿にしてんのか?
938デフォルトの名無しさん:2011/06/15(水) 05:24:50.55
ハゲハゲいうな。みっともない。
毛が無くたって立派な人もいくらでもいる。
939デフォルトの名無しさん:2011/06/15(水) 12:58:44.12
ハゲなのに?
940デフォルトの名無しさん:2011/06/16(木) 18:44:59.15
デビューしました
2005の本と全然違っていて、悩んでます。(T . T)
941デフォルトの名無しさん:2011/06/16(木) 18:46:45.80
あと、XEで作ったプロジェクトが2010でエラーになります。
Exeはあるのに、無いという。。。
942デフォルトの名無しさん:2011/06/16(木) 19:07:39.78
>>940
どう違うの?
と言うか、pascalの文法覚えりゃ、ヘルプで十分理解出来ると思うんだが
943デフォルトの名無しさん:2011/06/17(金) 09:04:21.52
最新版でParadoxテーブル扱えますか?
944デフォルトの名無しさん:2011/06/17(金) 09:50:15.55
扱えるが、お勧めしない。実動作環境のことも考えたほうがいい。
945デフォルトの名無しさん:2011/06/17(金) 11:53:55.46
旧来通りの使い方
ネットワーク環境でRW(といっても書き込むのは特定PCのみで他は参照のみ)
厳密な排他制御が必要なのはRDBMSのテーブルを使う。
Win7の64bitだとBDEインストール出来ないから
946デフォルトの名無しさん:2011/06/17(金) 20:52:24.10
BDEインストールは出来る
947デフォルトの名無しさん:2011/06/17(金) 22:49:31.00
メニコアcpuだと、BDE接続が異常に遅くなるので要注意。アプリ直せるのなら、win api叩いて、シングルコア使用にすれば、大丈夫だって、でこっちが言ってた。

ダメなら、biosでとめるんだったかな。
948デフォルトの名無しさん:2011/06/17(金) 23:24:25.53
サポート切れから何年経つと思ってるんだ…
949デフォルトの名無しさん:2011/06/18(土) 01:59:03.73
Pulsar ですら BDE をインストールするぞ。

>メニコアcpuだと、BDE接続が異常に遅くなるので要注意。、でこっちが言ってた。
それは誤解だ...
950デフォルトの名無しさん:2011/06/18(土) 07:50:26.48
浦島太郎です、教えてください。

今、XP+D3.1を使って自分専用の小物プログラムを使っています、数値や文字列を入力しロードセブ、プリントアウトするだけの単純な物です。
通信とかデータベースは使いません(使えません)。
これで出来たEXEを64Bitの7のなどで使った場合何か不具合が起きるのでしょうか?

金が無いのでCORE I7もW7(64)も2010も買えません、よろしくお願いします。
951デフォルトの名無しさん:2011/06/18(土) 12:34:32.92
Visual Studio Express / C# を無料で入手し、C# で書き換えなさい。
952デフォルトの名無しさん:2011/06/18(土) 13:23:55.10
>>950
D3.1で問題が起きそうだな
D9とかには出来ないのん?

どっちにしろ、自分の環境で動けば良い気がするが

そんな古い環境だと、C#で作り直しても重くて使い物にならないだろうし
953デフォルトの名無しさん:2011/06/18(土) 13:27:09.97
って、delphiスレやん。。。
delphiXE買って作り直しては?
954デフォルトの名無しさん:2011/06/18(土) 14:06:13.92
>金が無いのでCORE I7もW7(64)も2010も買えません
っていってるだろ。ボケが。

955デフォルトの名無しさん:2011/06/18(土) 15:54:06.34
d3なら流石に最近の無料環境をおすすめするよ
956デフォルトの名無しさん:2011/06/18(土) 16:07:01.71
GUIがいらないならC言語でもいいだろ いくらでも無料のあるし
957デフォルトの名無しさん:2011/06/18(土) 16:08:07.71
>>954
安いエディション買う金も無いのか。。。
958デフォルトの名無しさん:2011/06/18(土) 16:16:31.76
>950
Starter SKUは15000円くらいですよっと。

現状きちんと動いているプログラムだとすると、x64上での動作は問題ない。ただしVista/7のUACとの
関係から、Program Filesの下にあるファイルを読み書きしているとそのファイルは別のところにリダイレクト
される。リダイレクト先は一定なのでプログラムからは正常に動作しているように見えるけど、
エクスプローラで見るとそこにはファイルがない、ということに。

ひょっとしたらDEPに引っかかるかもしれんが、その場合は互換モードの指定でいいはず。
959浦島太郎:2011/06/18(土) 18:50:00.47
早速の回答をいただきましてありがとうございます、自分がDelphiが好きな理由は
コンパイルが早い、実行速度も結構早い ・・・一行書いてはF9
EXE単独で動作するので取り扱いが楽
以前は安く売っていたので自分でも買えた、の3点です。

そのうち、core-i7のPC+Win7のマシンを買い、次にstarter SKUを手に入れようと思っています。

しかし、そんな環境は若葉マークがF1マシンに乗るような物でどうにも手に余りそうな予感がしています
960デフォルトの名無しさん:2011/06/18(土) 18:57:55.22
>>959
Delphi XE Starter じゃ使い物にならない?
http://www.embarcadero.com/jp/products/delphi/starter
961デフォルトの名無しさん:2011/06/18(土) 20:17:44.69
Starterは \18,000円だよね
962デフォルトの名無しさん:2011/06/18(土) 21:36:31.58
コンパイルは早いけど最適化が甘く、処理に無駄があるって印象
963デフォルトの名無しさん:2011/06/18(土) 21:41:45.46
そこまで最適化が必要なアプリってなんだ?
シューティングゲームか?w
964デフォルトの名無しさん:2011/06/18(土) 21:48:18.96
Starterは2種類ある。
965デフォルトの名無しさん:2011/06/18(土) 22:15:53.73
>961
建前はそうだけど、無償製品からであってもアップグレードの対象になるわけで。
966デフォルトの名無しさん:2011/06/18(土) 22:22:56.19
無償製品は どこにあるの?
967デフォルトの名無しさん:2011/06/18(土) 23:30:32.86
C#のExpressでもEclipseでもどうぞ
968デフォルトの名無しさん:2011/06/18(土) 23:33:17.73
> Delphi StarterおよびC++Builder Starterのアップグレード価格はだれが利用できるのですか?
> アップグレード価格は、Delphi、C++Builder、Turbo Delphi、Turbo C++、あるいは他の有償または無償の任意のIDEやソフトウェア開発ツールを持っているユーザーが対象です。
>
> アップグレード価格で購入した場合、旧バージョンや他の製品のインストール確認などが必要ですか?
> いいえ。Starterのアップグレード価格をご利用いただいたお客様は、他のツールをすでにご利用いただいていたという前提で、特にチェックは行いません。
969デフォルトの名無しさん:2011/06/18(土) 23:49:24.14
Delphiいいと思うよ
簡単でそこそこの自分用アプリを作るには最適
Javaは大げさ
C#は今後どうなるかわからない
Delphihは20年くらいあんま変わらず。。。だっけ?
970デフォルトの名無しさん:2011/06/19(日) 00:11:10.81
DelphiスレでC#を薦める池沼
971デフォルトの名無しさん:2011/06/19(日) 09:39:14.24
DelphiスレでLazarusを薦める池沼
972デフォルトの名無しさん:2011/06/19(日) 10:04:22.75
池沼って何ですか?
水に関係することなのかなぁ?
973デフォルトの名無しさん:2011/06/19(日) 11:52:46.53
>池沼って何ですか?
キミのこと。
974デフォルトの名無しさん:2011/06/19(日) 15:29:22.20
   \   丶        i.    |       /      ./       /
    \   ヽ      i.    .|      /     /      /
      \   ヽ                        /
                 わ た し で す 
   \            _,,  ---一 ー- ,,,_
      、  _,,,, _,, -.'"           ` 、           -‐
ー     ミ三ミ三ミ三ミミ                ヽ_,
     -==三ミ彡三ミミ     ,,=-==     ==、 iミ=-、_
     _,,ンミミ三ミ三ミミ]  -彡-一 ー-、 r一 ーミ、|ミミ三ミ=-'      --
__   _, -==彡ミ彡ミミミ|  ン| ,=て)> (|ー| ,て)>、 ||三ミ彡==-'
_     ,彡彡三ミ三ミミレ'~ .|. '     |  ヽ   `  |ミ三彡三=-  = 二
     (_彡三ミ彡ミミミ'   ヽ、    ノ   \__ノiミ彡ミ三=ー
     ー-=二三ンーミミミ     `ー /(_r-、r-_)   .|彡ミ三=-、
     )(_ミ彡ミ| i' ヽヽミ       | : : : __ : :__: :i   .|彡ミ三=-、     --
     と彡ミ彡ミヽヽ<ヽミミ      |: ン=-ニ-ヽ、   .|彡ミ三==-
      彡ミ彡ミミヽ  ) `    、 .' <=ェェェェェン |    |彡ン=-=      --
-‐    -==彡三ミ `ーヽ : : : : : :i: :  `ー--一''  : : ノミ三==''
      '' てノこミ彡三ミ`i : : : : : :ヽ: : : .      .:, :/ミ三=-、
        '' 三ミ=三三ミ|ヾ、: : : : :ヽ: : : : : : : : :_ノ:./三=-'
         -=='' ̄ .        : ̄ ̄ ̄    彡 `

               /               ヽ          \
      /                     丶       \
     /   /    /      |    i,       丶      \
   /    /    /       |     i,       丶       \
975デフォルトの名無しさん:2011/06/20(月) 01:05:33.84
池メンのことだよ
976デフォルトの名無しさん:2011/06/21(火) 00:05:19.14
iniファイルには

[data1]
aaa=1
bbb=2

という感じに書きますが、aaaの部分に「=」の文字を使いたいときはどう書けばいいんでしょうか?
また、[aaa]と書きたいときも困ってしまいます。ぐぐったら行頭に;を付けるとコメントになる、くらいしか分かりませんでした。
よろしくお願いします。
977デフォルトの名無しさん:2011/06/21(火) 00:18:45.44
978976:2011/06/21(火) 00:30:09.41
>>977
ここに載ってるのはキーでなく値のほうの書き方ですね。でも知らなかったので参考になりました。d。
979デフォルトの名無しさん:2011/06/21(火) 00:47:17.33
D6 で使うSendMessageで質問です。

TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
フォームにエディタが並んだ受け側ソフトにテキストを送る場合、
 〜〜〜
var
 WHandle,EHandle: HWND;
 i: integer;
 str: string;
begin
 str:='123456';
 WHandle := FindWindow('TForm1', nil);
 EHandle := FindWindowEx(WHandle,0, 'TEdit',nil);
 if EHandle <> 0 then begin
 for i := 1 to Length(str) do begin
  SendMessage(EHandle, WM_CHAR, Word(str[i]), 0);
  end;
 end;
 〜〜〜
'TEdit'だけでは最後のTEditにだけ入ります。
個別に送り込むにはどういう書き方をするのでしょうか?
980デフォルトの名無しさん:2011/06/21(火) 01:19:20.12
Editが自分のものならFindWindowする必要ない
981デフォルトの名無しさん:2011/06/21(火) 09:13:04.97
>>980
今作っている物は送信/受け取りは自分の個別物ですが、
仕様をOPEN して他人(他製作言語)も使う予定です。
982デフォルトの名無しさん:2011/06/21(火) 09:43:43.82
>>979
SendMessageの話でなく、ウインドウハンドルの取得についてでは?
この辺で適当に
☆ウィンドウの関数 - msdn
http://msdn.microsoft.com/ja-jp/library/cc410656.aspx

あとWinspectorとか、XRAYさんのサンプルプログラムとか
http://mrxray.on.coocan.jp/Delphi/plSamples/670_SendTextThreadAttach.htm
983979:2011/06/21(火) 11:45:00.39
>>982
そうですね、Delphiの「ウインドウハンドルの取得」方法になるのですよね。
Winspector は作者のサイトまでたどり着けませんでした.....

「フォーカスのあるコントロールのハンドルを取得」では個別に飛びますが、
Delphi のWinSight を見ていても、受けアプリ側を再起動させると
Child に来る Edit1 〜 Edit4 の値(フォーカスの来る Edit 項目)
をOSが新しく割り当てるので変ってしまうのですよね。

組もうとしているのはグラフ用の値入力の為の送信部分です。
各要素を(他人作も扱えるように)ホストプログラムから秒〜数十ミリ秒単位で送り、
送信完了後トリガーさせてやるという部分でして。
ボタンは Caption を指定すれば複数並べても振り分けられるのです。

TEdit:1項目にまとめて送る>グラフソフト側で各要素に分解>グラフ描画
では、数値要素に FloatToStr が複数来る為、文字数制限と時間ロスが発生しないものか?と

グラフ(受けソフト)側は
シリアル処理(TEdit)より パラレル処理(Edit1 〜 Edit4 ※うまくいけばもっと増える)
で行う方が要素抜けにも即応できるので。
もうすこし足掻いて、解決策が見つからなければ TEdit 1項目に詰め込むようにします。
984979:2011/06/21(火) 12:16:13.30
過去こういう感じの方法をとられた方がおられたので参考にID 固定させてやってみます。

http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200603/06030034.txt
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200503/200503_05030108.html
985979:2011/06/21(火) 14:11:03.32
うまくいきました、結果報告
 --------------------
受信側:

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Edit1.Handle,GWL_ID,$00000001); // コントロールIDの動的割り当て
SetWindowLong(Edit2.Handle,GWL_ID,$00000002);
SetWindowLong(Edit3.Handle,GWL_ID,$00000003);
SetWindowLong(Edit4.Handle,GWL_ID,$00000004);
end;

 --------------------
送信側:

var
 WHandle,EHandle: HWND;
 i: integer;
 str: string;
begin
 str:='123456';
 WHandle := FindWindow('TForm1', nil);
 EHandle := GetDlgItem(WHandle,$00000001); // 'Edit1'
// Windows.SetFocus(EHandle);
 if EHandle <> 0 then begin
 for i := 1 to Length(str) do begin
  SendMessage(EHandle, WM_CHAR, Word(str[i]), 0);
  end;
 end;
 〜〜〜
986デフォルトの名無しさん:2011/06/22(水) 02:46:16.45
フックについて質問させてください。
ファイルを移動した際に、移動元と移動先を記録しておくプログラムを
作りたいと考えております。デモにあったコピーフックを用いて
フォルダの移動に関しては作成できたのですが、ファイルの移動は
検出することができないようです。
ファイルの移動をフックすることはできないのでしょうか。
わかる方いましたら、よろしくお願いいたします。
987デフォルトの名無しさん
できるけど Delphi の話では無いので、どこか適当なところで尋ねるか
MSDN ライブラリで API を探しなさい