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

Delphi相談室その4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Delphi関連の Tips Q&A はこちら。

■前スレ
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/

■気楽な雰囲気がよければこちら
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412/

つづく >>2-3 あたり
0002デフォルトの名無しさんNGNG
■Delphi関連スレ
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1013298748/
★クライアントサイド最強の Delphi に物申す★
http://pc.2ch.net/test/read.cgi/tech/1001442200/
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

■過去スレ
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/
Delphi相談室その2
http://pc.2ch.net/tech/kako/995/995950803.html
Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0003デフォルトの名無しさんNGNG
前スレの979が気になる・・・
0004デフォルトの名無しさんNGNG
オブジェクトインターフェースの事は過去ログを見るべし。
Delphi-MLも。
00054NGNG
って、そういう事じゃない?
0006デフォルトの名無しさんNGNG
>>1
おつかれー。
0007デフォルトの名無しさんNGNG
ぼくの肛門もDelphiで作られています。
0008デフォルトの名無しさんNGNG
>5
そういう事だと思われ
0009デフォルトの名無しさんNGNG
   @@@@   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (゜д゜@ < あらやだ。新スレおつかれさま。
   ┳⊂ )   \__________
  [[[[|凵ノ⊃
   ◎U□◎ =3 キコキコキコ
0010Delフサギコ ◆zE1iiRdQ NGNG
�I番げっとー!!!!
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \ ∧,,∧
        ミ゚Д゚,,∩
       ⊂;゙   ,ミ ←
 ̄  ̄   ミ゙゙_  ミ〜 ト  ̄  ̄  ̄
       ∪゙ヽ ミ   オ
       /  ∪  \
  /       :    オ
     /    || .   ォ  \
     /     | :   ォ  \
    /       .
           | .   ォ
0011デフォルトの名無しさんNGNG
       ,,- ,,
   ∧∧ミ,, ,;;
   ( ゚ー゚)ノ)"  アゲ
   / ,,- ,,|    
   `ミ   ;
    `''''"
0012デフォルトの名無しさんNGNG
Delphiスレをひとつにまとめろボケ!!
0013上品にNGNG
Delphiスレをひとつにまとめなさって!!よくって!?
0014デフォルトの名無しさんNGNG
Ð ë ĺ þ ĥ ïスレをひとつにまつめるざぁマス。
0015デフォルトの名無しさんNGNG
まつめる て・・・
Ð ë á t h ってきます。
0016デフォルトの名無しさんNGNG
       ,,- ,,
      ミ,, ,;;
    ( ゚ー゚)ノ)"  ハゲ
   / ,,- ,,| 
   `ミ   ;
    `''''"
0017デフォルトの名無しさんNGNG
これが正しい「Delphi」の発音だ!
http://dictionary2.goo.ne.jp/ej/voice/D/02030167.wav
0018デフォルトの名無しさんNGNG
でぅふぉぁいぃ
0019デフォルトの名無しさんNGNG
フォームが表示された直後に発生するイベントって何でしょう?OnActivete?
表示された直後にフォームのボタンを押したいけどOnshowやOnCreateじゃ駄目だった。
0020デフォルトの名無しさんNGNG
>>19フォームが表示されるのが OnPaintなんだから、そこでフラグをたてて
 次に呼ばれたイベントで処理したらいいんじゃない?
0021デフォルトの名無しさんNGNG
ageで質問させていただきます。

DelphiPersonal6.0にて、Winアプリに取り組んでいます。
他のコマンドライン対応アプリを動かしたい場合、どうすればよいのでしょう?
0022デフォルトの名無しさんNGNG
ShellExecute
0023デフォルトの名無しさんNGNG
>>22
感謝します。
0024デフォルトの名無しさんNGNG
俺は CreateProcessが好きだな 手間はかかるけど

With STARTUPINFO Do
Begin
cb := SizeOf(STARTUPINFO); {構造体のサイス゛をセット}
lpReserved := nil; {以外は初期化}
lpDesktop := nil;
lpTitle := nil;
dwFlags := 0;
cbReserved2 := 0;
lpReserved2 := nil;
dwysize := 0;
end;

 CreateProcess(Nil, {実行するフ゜ロク゛ラム名(通常は次のハ゜ラメータを使用)}
        PCHAR(exename+' '+comstr), {実行フ゜ロク゛ラムのコマント゛ライン}
        Nil, {プロセスのセキュリティ属性}
        Nil, {スレッドのセキュリティ属性}
        False, {呼び出し側プロセスからのハンドルの継承}
        0, {プロセスの作成を制御する追加フラグ}
        Nil, {環境ブロックを指すポインタ}
        PChar(GetCurrentDir) , {新しいプロセスのカレントパス}
        STARTUPINFO, {ウィンドウの登録内容}
        PROCESSINFO); {プロセスとその第1スレッドに関する情報}

0025>>24NGNG
CloseHandleを忘れずに
0026Delphi初心者NGNG
今日初めてDelphi落としたんだけど、
誰が1から学べるサイト教えてくらさい。
他の言語はVBとかは多少いじれますが、
全然大したことないので、
本当に1から学べるサイトがいいです。
ヤフで検索したけど、あんまりわかりやすいところがなくて…
ヨロシコです。
0027素数2NGNG
http://home.onestop.net/mineko/index2.html
VBいじれるならここでイイ。
0028回し者じゃないのヨ 本当アルヨNGNG
>>26
「デルファイの魔法」ってとこが、オレは一番分かりやすかったな。
つーか、標準コンポーネント周りだけど。
後は…。みんな似たりよったりかなぁ?検索で「初心者」って入れてみれば?
オレ的には標準コンポーネントいじりから入って覚えていったけど。
つーか、「魔法」って何だ?
0029デフォルトの名無しさんNGNG
>>28
まほう【魔法】
人間わざとは思えない,不思議なことを行う術。魔術。妖術。
0030デフォルトの名無しさんNGNG
(´-`)。o ○ (正直、>>29のレスはどうだろう?)
0031デフォルトの名無しさんNGNG
>>26
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
ここから自分に会うトコを探しなさい。
0032Delphi初心者NGNG
 >>27
そこは既にヤフ経由で見ましたけど、よくわかりませんでした。

>>28
今度ぐぐる検索でもして、わかりやすかったら参考にさせてもらいます。

 >>31
おっ!これは(・∀・)イイ!

またわからないことあったら、来るので、初心者ですがよろしくね。
0033デフォルトの名無しさんNGNG
(´-`)。o ○ (あそこでも分からないって…(絶句)。それと「初心者」て
言葉は恥だし、質問する時も免罪符にすると叩かれるの分かってるのかなぁ…)
0034Delphi初心者NGNG
 >>33
恥かなぁ?
知ったかよりマシだろぉ…
0035デフォルトの名無しさんNGNG
>>34
33じゃないけど、
俺も「初心者」って言葉は好きになれない。
いちいち強調する必要は無いよ。
質問の内容見ればわかるし、表記したことで無礼講が許されるわけでもないし。

そういう俺もつい最近ゆっくり始め出したんだけど、似たような境遇だと余計気になるもんです。
オールドスタイルのBASICから約10年ぶりなもので、浦島太郎状態。
GOSUB〜RETURNがねぇ。行番号もねぇ。使いづらいなぁ
お互いがんばりましょう。
0036デフォルトの名無しさんNGNG
>>Delphi初心者
俺がついさっき作ったサイト
超初心者でもわかるように解説していくつもり。
まだつくりかけだけど。
http://www.geocities.co.jp/SiliconValley-Oakland/6548/index2.html

ちなみにブラウザしか作ってないから、それ以外の話は当分しないけど。

初心者って言葉は嫌いな人もいるのか…
俺は別に気にならないから自分も使ってしまっている…
気を付けよう…
0037486NGNG
>36
おう、何か分かりやすいかも。
更新、よろしくおながいします。
0038Delphi初心者NGNG
 >>35
そういうものなんだ…
ここは詳しい人ばかりだから、謙譲の意を込めての「初心者」だったんだけどね。
それでは、次からこのハンドルやめます。

 >>36
ブラウザは結構作りたかったものの一つなので、試しにやってみようかな。
どうもありがとう。
0039デフォルトの名無しさんNGNG
 >>36
ブラウザできたー!
感動します。
ありがとうございました。m(_ _)m
004036NGNG
反響あって嬉しいです。
更新頑張るです。
0041デフォルトの名無しさんNGNG
これはPersonal版なんですか?
ActiveXコントロール使えばPersonar版でもブラウザつくれるんか〜
なんかブラウザの仕組みがチョト見えたようでウレシヨ。
004236NGNG
>>41
Personal版です。
そう言ってもらえるとうれしいです。
次は例外処理をして、もう少し機能を追加します。
0043デフォルトの名無しさんNGNG
if IntA mod IntB = 0 then
begin
処理;
end;

というプログラムをすると、一行目に「この型には指定した演算子は使えません」
と出るのですが、どこが問題なのでしょうか?(泣)
0044デフォルトの名無しさんNGNG
演算子の優先順位 は 比較が低いからそれでいいと思うけど カッコがあった方が見やすいな

エラーな原因は判らないけど IntA IntB の型が違うんじゃないの?
宣言を見せて
0045デフォルトの名無しさんNGNG
本日発見!
DelphiのIDEって 拡張子が .C なら ちゃんとCの色分けしてくれるんだ
0046デフォルトの名無しさんNGNG
>>36
(*゚ー゚)b グッ!よいね!
0047デフォルトの名無しさんNGNG
要するに>>33の言いたいことは「初心者」と書けば何でも許されると言う
考え方が良くないと言うだけであって

自分も匿名掲示板なのにわざわざ誰だか解るように名前入れるのは
(その必要があるわけでないのならば)なんだかなぁと思いますね。
0048ベテランSENGNG
あのぉ〜・・・フォームにボタン置いた後どうすればいいんですか?
0049デフォルトの名無しさんNGNG
ベテランSEなら自分で何とかできないとリストラ対象ですね
0050 NGNG
>>36
早速、ブラウザ作ってみました。
こんな簡単にできちゃうんだと、ちょっとびっくり。
実際に動作する物ができると楽しい〜。
0051デフォルトの名無しさんNGNG
あーゆー「delphiで作ってる時の画面キャプ」ってのは、
ボーランドさんに文句言われないのかな?
0052素数2NGNG
>>51 まさか言われないでしょ。宣伝してくれてるわけだし。
文句つけられたら2chでスレ立てれば良いわけだし。
被害額が算定できないと訴えられないし。

と無責任に発言。
0053誰に言うワケでもないがNGNG
次は「javascriptを無視出来る方法」とかその他いろいろof/offする方法とか
安易に聞いたりしないだろうな?
005453NGNG
on/offだ。
0055デフォルトの名無しさんNGNG
of/offはないだろうな。
005655NGNG
しまったー!
0057デフォルトの名無しさんNGNG
あーゆー「はじめの一歩」ってのは、
講談社さんに文句言われないのかな?
0058素数2NGNG
だるまさんがころんだ を作った人が出てくれば訴えられるかも。
0059デフォルトの名無しさんNGNG
 >>44
どこが違うかわからなかったので、最初から作り直したらちょっとの修正でできたよぉ
すいません。

 >>47
 >要するに>>33の言いたいことは「初心者」と書けば何でも許されると言う
 >考え方が良くないと言うだけであって
それはわかったって。

 >自分も匿名掲示板なのにわざわざ誰だか解るように名前入れるのは
 >(その必要があるわけでないのならば)なんだかなぁと思いますね。
漏れはきっちり話がしたいスレには時々捨てハンドル使うけど。
あとで検索でその周辺のレス見たりできるし、そのために必要と言えば必要。
0060デフォルトの名無しさんNGNG
ブラクラ等を事前に検出して無効化したいのですが、
表示前にテキストをいじれますか?
0061デフォルトの名無しさんNGNG
(´-`)。o ○ (だから「○○出来ますか」ってのやめれって。某スレ逝って
頭冷やしる!)
0062デフォルトの名無しさんNGNG
自分でレンダリングするの?
0063デフォルトの名無しさんNGNG
じゃ、表示前にテキストをいじる方法を教えて下さい。
でいいの?
0064デフォルトの名無しさんNGNG
(´-`)。o ○ (別に叩くワケじゃないけど、「アレコレやってみて
これで合ってる?」って方向すら行かないワケ?検索してみたけどとか)
0065素数2NGNG
Indy の get で出来そうだなー と思う。
0066デフォルトの名無しさんNGNG
出来るんならやり方を調べようと思った場合はどうするの?
0067デフォルトの名無しさんNGNG
VBやれ。
0068デフォルトの名無しさんNGNG
>>63
ブラウズする前にダウンロードして
自分の思い通りになるよう編集後
ローカルに保存してその保存した
ファイルをブラウズするとか・・・

個人的なガイドラインとしては、教えてに対して
それなりのやり方までは書いて良いと思う。
その後は自分でなんとかする、ということで・・・
教えてに対していきなりソース貼るやつは嫌い
(あくまで個人的にね)
0069デフォルトの名無しさんNGNG
IndyとIEコンポーネントを組み合わせて使えるの?
Indyのみで表示するのは大変じゃない?
0070デフォルトの名無しさんNGNG
つーか「どうすんの?」=「ソースキボンヌ」だと思う。
0071デフォルトの名無しさんNGNG
>68
キャッシュをとっているから、そういうやり方でも問題ないと思うけど、
思うけど!
007236NGNG
>36,50
ありがとう!
>51
>あーゆー「delphiで作ってる時の画面キャプ」ってのは、
>ボーランドさんに文句言われないのかな?
なんだか、ちょっと不安になってきた…
開設三日目にして、早くも閉鎖の予感…
0073デフォルトの名無しさんNGNG
別に著作権が絡むような「絵」じゃないでしょ。
たとえ、そうだとしても 著作権で認められている 引用の範囲
TVゲームじゃないんだからさ
007436NGNG
>>73
そうだよね!大丈夫だよね!
そう言ってもらって、ちょっと安心です。
0075デフォルトの名無しさんNGNG
Delphiは芸術であり、映画なので起動画面のコピーは違法なのです。

Delphiは美しい、美しいんですよ。
0076デフォルトの名無しさんNGNG
関数内関数の事で教えて下さい

帰り値が動的配列な関数で 要素に追加する AddDataという関数内手続きを書きました

function func : TIntArray;

procedure AddData(dt:Integer);
var n:Integer;
begin
n:=Length(Result);
SetLength(Result,n+1);
Result[n]:=dt;
end;
・・・ 略 ・・・

これはエラーにならず期待した動作をします。
さらに、AddData内部で使用していた追加データの位置 n を返すように
function AddData(dt:Integer):Integer;
 と変更しようとして困ってしまいました。
Resultは 今度は自分の帰り値を指してしまいます。
といって pascal形式の関数名を使うと関数呼び出しになってしまいます。

これはどう解決すればいい?
0077デフォルトの名無しさんNGNG
>>76
function AddData(var func_result: TIntArray; dt:Integer): Integer;
とでもして受け渡したら?
スマートじゃないといっても、親のresultを直接触るほうが気持ち悪いよ。
007876NGNG
>>77 さん レスありがとうございます

そうですね。他に方法ないなら関数内関数やめて そういう仕様で
外に出した方がスッキリしますね
0079名無しヘタぐらま ◆B18Bks.Y NGNG
>>76
いっそのことクラスにしちゃうとかはどうでしょう.
type
TIntList = class(TPersistent)
private
FInnerArray: array of integer;
function GetCount: integer;
procedure SetCount(Value: integer);
function GetNumber(index: integer): integer;
procedure SetNumber(index: integer; Value: integer);
public
procedure Assign(Source: TPersistent); override;
procedure Clear;
function Add(Value: integer): integer;
property Number[index: integer]: integer read GetNumber write SetNumber; default;
property Count: integer read GetCount write SetCount;
end;
(中略)
function TIntList.Add(Value: integer): integer;
begin
Count := Count + 1;
result := High(FInnerArray);
Number[result] := Value;
end;
procedure TIntList.Assign(Source: TPersistent);
begin
if Source is TIntList then
FInnerArray := (Source as TIntList).FInnerArray
else
inherited;
end;
procedure TIntList.Clear;
begin
Count := 0;
end;
function TIntList.GetCount: integer;
begin
result := Length(FInnerArray);
end;
function TIntList.GetNumber(index: integer): integer;
begin
result := FInnerArray[index];
end;
procedure TIntList.SetCount(Value: integer);
begin
SetLength(FInnerArray, Value);
end;
procedure TIntList.SetNumber(index, Value: integer);
begin
FInnerArray[index] := Value;
end;
上の例では動的配列を隠してますけど
配列の形で使いたい場合は
FInnerArray を IntArray とでも改名して public に移すといいと思います.
0080名無しヘタぐらま ◆B18Bks.Y NGNG
>>35
慣れるまで大変だと思いますが大丈夫です.
少なくとも私の知る範囲では
行番号のない言語への移行で
行番号が無いという理由で挫折した方というのは
聞いたことがありません.
008176NGNG
>>79 名無しヘタぐらま さんレスありがとうございます

そうですね。クラスにするのも方法だと思います。
一度作ってインクルードファイルにしてやればIntegerだけでなく汎用に使える
テンプレートもどきクラスになるかもとか思ったりもしました。

でも >>75の関数内関数のコードだとResultの型を書かなくてもいいので
コピペで使う時は便利なんですよね。
0082デフォルトの名無しさんNGNG
楽しいなあ クラス使うとこんなふうに書けるんだ

 with TSaveDialog.Create(self) do try
     InitialDir:=GetCurrentDir;
     Filter :='BIN|*.bin';
     DefaultExt:='BIN';
     if execute then
      with TFileStream.Create(FileName,fmCreate) do try
      Write(bin[0],Sizeof(bin[0])*Length(bin));
      finally Free;End;
 finally free;end;
0083デフォルトの名無しさんNGNG
どの辺が楽しいのだろう・・・・・。
0084デフォルトの名無しさんNGNG
これ コピペして ちょっと修正するだけでいい所 >>83
0085名古屋在住・中日ファンNGNG
>>82
変数を宣言せずにインスタンスを作成してすぐに破棄するってやつでしょ

Pascalの流儀ではないね・・・あんまりいい習慣じゃないかも
0086デフォルトの名無しさんNGNG
>>82
毎回毎回設定がウインドウの設定が保存されないダイアログの出来上がりですか。
0087Delフサギコ ◆zE1iiRdQ NGNG
     ∧,,∧   / ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚彡< 名古屋出張で味噌煮込みウドソ食った
     ./つ=||||  \_____
   〜ミ \_/

WithのCreateは逆に使いにくいと思うんだけどな。
0088デフォルトの名無しさんNGNG
>>86
 保存したければそのプロパティへの代入を追加すればいいだけでは?

>>87 
 デバックとかは不便だけど、パターン化してコピペする時は便利
0089デフォルトの名無しさんNGNG
>保存したければそのプロパティへの代入を追加すればいいだけでは?
なら関数使えば?
0090デフォルトの名無しさんNGNG
>>89
 確かにローカル関数にして そこでローカル変数確保してもいいけど
 コピペを前方にしなくちゃいけないでしょ?

 入れたい場所にペーストして修正するだけでいいから気に入ってるんだけど?
0091デフォルトの名無しさんNGNG
あっそ。
0092デフォルトの名無しさんNGNG
Google Web APIサービスをDelphiで使ってみた人っていない?
XMLベースの技術ならなんとかなるんじゃないかと思うんだけど。
0093デフォルトの名無しさんNGNG
アプリケーションの多重起動を防止するにはどうしたらいいのですか?
0094チビNGNG
>>93
検索してみれや。
0095デフォルトの名無しさんNGNG
>>93
http://www.google.co.jp/search?hl=ja&q=delphi+CreateMutex&lr=lang_ja
009693NGNG
>>95
ありがとうございます。

>>94
ごめんなさい。
0097デフォルトの名無しさんNGNG
>>92 でも、JAVA か C#でサンプルがあるから、ちょっと触る程度なら そっちでやるんじゃない?
0098デフォルトの名無しさんNGNG
>>97
そこを敢えてやるのがDel厨の使命ではないか。
0099デフォルトの名無しさんNGNG
>>98
じゃあ、お前におながいします。
0100デフォルトの名無しさんNGNG
Google Web APIサービス、オレもナニゲに気になってた。
0101デフォルトの名無しさんNGNG
>>98
お前にウォンチュ!ことり。
■ このスレッドは過去ログ倉庫に格納されています