トップページ⇒tech
969コメント276KB

くだすれDelphi(超初心者向け) Part4

■ このスレッドは過去ログ倉庫に格納されています
0001毛の生えたフサギコNGNG
このスレッドは、

他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが
分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の
救済をお願いします。
0002毛の生えたフサギコNGNG
くだすれDelphi(超初心者向け) (Part1)
http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
くだすれDelphi(超初心者向け) Part2
http://pc2.2ch.net/test/read.cgi/tech/1053757982/
くだすれDelphi(超初心者向け) Part3
http://pc2.2ch.net/test/read.cgi/tech/1055986736/
0003毛の生えたフサギコNGNG
リンク集
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0004デフォルトの名無しさんNGNG
>>1 乙

  ∧_∧
  ( ´∀`)<ぬるぽ
0005デフォルトの名無しさんNGNG
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   |   Borland
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |
                        |
0006デフォルトの名無しさんNGNG
糞スレ立てんな死ね>>1
0007デフォルトの名無しさんNGNG
Dialogってなに
0008デフォルトの名無しさんNGNG
>>7
http://www.wdic.org/?word=%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0+:TECH
0009デフォルトの名無しさんNGNG
>>7
それだけじゃ
何を知りたいのかわからんですよ

もうちょっと詳しく
0010デフォルトの名無しさんNGNG
FileListBoxで
拡張子がexeのものしか表示しないようにするには何のプロパティを設定すればええの?
0011デフォルトの名無しさんNGNG
>>10
Mask

*.exe
0012デフォルトの名無しさんNGNG
クラスとレコードってどうちがうの
0013デフォルトの名無しさんNGNG
type
 TData = record
  x: Integer;
 end;

 TClass = class
 private
  FData: TData;
 public
  property Data: TData read FData;
 end;

という風にしたとき、TClass.Data.xまでも読み取り専用にすることは出来ますか?
0014デフォルトの名無しさんNGNG
クラスにするっきゃない
0015デフォルトの名無しさんNGNG
プライベート宣言
0016デフォルトの名無しさんNGNG
ヘルプを眺めていて不思議に思ったので質問させてください
TRect = packed record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
となっています
型宣言でcaseを使っているので驚きました
どういう意味なんでしょうか
TRectの値に2通りの方法(TPointを使うかどうか)でアクセスできるのと関連があるんだろうと
推理しましたがそれ以上わかりませんでした
0017デフォルトの名無しさんNGNG
>>16
C の union(共用体) に相当
0018デフォルトの名無しさんNGNG
>>16
その推理で大体あってる
同じメモリ空間を異なる型として見ることができる
その例だと
|A|B|C|D|
というメモリ空間が確保されて
TRect.TopにアクセスするとBが返って来る
TRect.BottomRightにアクセスすると
TPoint.x:=C;TPoint.y:=D;と同じものが返って来る
0019デフォルトの名無しさんNGNG
ShellComboBoxの初期値はPathで設定すればいいみたいなのですが、
ShellComboBoxにくっつけたShellListViewにはそのPathが反映されません。
仕方が無いので、ShellListViewにも初期値を設定しようとしたのですが、
設定の仕方が分かりません。

どなたかご存知の方いらっしゃいませんか?
0020デフォルトの名無しさんNGNG
>>17
>>18
なんとか理解できました
ありがとうございます
0021デフォルトの名無しさんNGNG
ProgressBarのバーの色って変える方法ありませんか?
0022デフォルトの名無しさんNGNG
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, color);
002319NGNG
ぐあー!
ShellListViewってZIPファイルをフォルダ扱いしやがる!
(;´Д`)
0024デフォルトの名無しさんNGNG
(;´Д`) ぐあー!
0025デフォルトの名無しさんNGNG
>>19
ShellComboBoxとShellListViewをリンクさせるには
ShellComboBoxのShellListViewプロパティか
ShellListViewのShellComboBoxプロパティで
対象を指定します

初期値はそれぞれのRootプロパティで指定できます
002619NGNG
>25
Rootに設定したら、初期値というより、
ルートフォルダになってしまったっぽい。
ShellComboBoxにその上のフォルダが出てこない…。

他のコンポに差し替えた方がいいかなぁ…。
0027デフォルトの名無しさんNGNG
自分でDelphiで作ったアプリ(A)に、他のアプリからFindWindow()->PostMessage()で
ユーザー定義メッセージを送ってます。
(A)を単体で立ち上げたときはメッセージをうまく受け取れるのですが、
Delphiの開発環境経由で、コンパイル→実行したときは、うまく受け取れません。
何か理由があるのでしょうか?デバッガがメッセージを横取りしてるとか。


0028デフォルトの名無しさんNGNG
>>16
説明を追加しとこう。

Integerとか0とか1とかの一見無意味な記述があるから驚いたのだろうけど、

TRec = record
case Tag: TEnum of enumA : (A: Integer); enumB : (B: Word; C: Word) end;

という記述も可能。
TagはTEnum型のフィールドとなり、Tag = enumAの時だけAの値が保証される、という感じに使う。
Pascal処理系によってはA,B,CにアクセスするとTagを見てエラーを出してくれるものもあったが
Delphiの場合はTagは単なるフィールド。
0029デフォルトの名無しさんNGNG
>>27
設計時のフォームに送られてるから。
0030デフォルトの名無しさんNGNG
MS社員も見てる2ちゃんねる

http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=735

> 「超初心者向け」コミュニティに関しては、運営方法を検討中です。
> コンセプトとしては、2ちゃんねるプログラマ板のかつての「モナーの *やさしい* Delphi質問スレ」やくだすれです。現在は参加者がレベルアップしたのか雰囲気が変わりましたが。
0031デフォルトの名無しさんNGNG
wara
0032デフォルトの名無しさんNGNG
メソッドとプロパティの違いは?
0033デフォルトの名無しさんNGNG

クリップボードではまってます。

var
i,n: integer;
hDrop: THandle;
szFile: array[0..MAX_PATH-1] of Char;
begin
if Clipboard.HasFormat(CF_HDROP) then begin
hDrop := Clipboard.GetAsHandle(CF_HDROP);
n := DragQueryFile(hDrop, $FFFFFFFF, szFile, SizeOf(szFile));
for i := 0 to n - 1 do begin
DragQueryFile(hDrop, i, szFile, MAX_PATH);
ListBox1.Items.Add(szFile);
end;
end;
end;

というようなコードを引用して、エクスプローラーでコピーしたファイル名の一覧を取得するところまでは、うまくいったんだけど、

ListBox1.Items.Add(szFile); を ShowMessage(szFile); にしたら、ループふた周り目でエラー。

ShowMessage(string(szFile));
これも駄目。

StringList.Add(string(szFile));
これも駄目。

何故!!!!!!!!!!!!!!!!

0034デフォルトの名無しさんNGNG
DelphiでBMSプレイヤーってつくれるん?
Quadruple DってコンポーネントみつけたんだけどDelphiは初めて2週間程度で
しかも持ってるのはPersonalだからどうしようもない。(´・ω・`)
Delphiの本もプログラミングテクニックとリファレンスブックしかもってないから
ぜんぜん分からん。

だれかレクチャーしてくれ。
0035デフォルトの名無しさんNGNG
PageControlで作ったtabsheetで
どれがアクティブか調べる方法を教えてください
よろしくお願いします
0036デフォルトの名無しさんNGNG
>>35
ShowMessage(PageControl1.ActivePage.Caption);
0037デフォルトの名無しさんNGNG
>>36
できました。
ありがとうございます
0038デフォルトの名無しさんNGNG
>>32
その質問の真意は?
0039デフォルトの名無しさんNGNG
>>38
その質問の真意は?

お前らは黙って答えてりゃ良い。
004038NGNG
>>39
ごめん。意味がわかんないもんで。
じゃあオマエさん答えて
0041デフォルトの名無しさんNGNG
メソッドはプルセジャー
0042デフォルトの名無しさんNGNG
自分のPCに入っているダイレクトXのバージョンって
どうやればわかりますか?
0043デフォルトの名無しさんNGNG
>42
OSは?
0044デフォルトの名無しさんNGNG
>43
XPです。
0045デフォルトの名無しさんNGNG
WINのスタートメニュー⇒アクセサリ⇒システムツール⇒システム情報
ってやってからツール⇒DirectX診断てやればできないか?
0046デフォルトの名無しさんNGNG
>45
出来ました。ありがとうございます。
0047デフォルトの名無しさんNGNG
Delphiが地球と神殿柱のアイコンになった理由は何ですか
0048デフォルトの名無しさんNGNG
>>46
Delphiを何の関係があるんだよ(;´д`)
0049デフォルトの名無しさんNGNG
>48
日本語変ですよ
0050デフォルトの名無しさんNGNG
delphiのプロジェクトを2個開きたいんですが、
1個目が閉じちゃいます。
どうすれば2個開けますか?
0051デフォルトの名無しさんNGNG
プロジェクトグループ作って、その2つのプロジェクトを追加しれ。
0052デフォルトの名無しさんNGNG
>>50
Delphi を 2 つ起動する手もある
0053デフォルトの名無しさんNGNG
>>33
各パスが、ぬる文字で区切られているんじゃなかったっけ?んで最後にぬる2つ。
変数の中身チェックしてみ。
0054デフォルトの名無しさんNGNG
クラスってなんなのさ
オブジェクトとかインスタンスとか親子とかレコードとか
わけわかんねーよ
0055デフォルトの名無しさんNGNG
そんな君にはHSPがお勧め。
0056デフォルトの名無しさんNGNG
親子って何?
0057デフォルトの名無しさんNGNG
TComponentの事じゃない?
0058デフォルトの名無しさんNGNG
>>54
ハートの形をしたクッキーを作りたいとき、
1.ハートの抜き型を用意します。(クラス)
2.生地をその抜き型でくりぬくとクッキーそのものができます。(オブジェクト、インスタンス)

基本はこんな感じですよ。
実際はリニアなものじゃなくて階層構造(=親子)になるんだけど、
人に説明するのってとっても難しいね。
0059デフォルトの名無しさんNGNG
>>54
3ヶ月くらい使ってたら何となく分かってくるよ
0060デフォルトの名無しさんNGNG
>>58
プログラミングでは極端な比喩表現は誤解を招きやすいのでいかがなものかと・・・
そもそも3行で説明できるはずがない(詳しい説明へのポインタを示すべき)

>>54
ttp://age.ne.jp/x/kazuhito/Delphi/delphi2.htm
ttp://www.artlex.net/gonta/jpn/objprog/
ttp://www.s34.co.jp/cpptechdoc/article/oo/
これでわからんかったら何がわからなかったのか質問しよう
006133NGNG
>>53
あ、ありがとございます。
寝て、働いて、帰ってきたら、ちぇっくしてみまず。
0062デフォルトの名無しさんNGNG
DelphiではC言語みたいに
A++=1みたいな書き方はないの?
絶対A:=A+1ってかかなきゃいかんの?
0063デフォルトの名無しさんNGNG
そうだよ。
馬鹿でも見たら分かるくらい分かりやすい書き方しかないよ
0064デフォルトの名無しさんNGNG
>63
C言語に比べりゃすごく不便だな。糞ツールDelphi逝ってよし
0065デフォルトの名無しさんNGNG
>>62
A++=1って何?
A+=1→A++ならInc(A)
A+=5ならInc(A, 5);
-=はDecやね
0066デフォルトの名無しさんNGNG
Inc使えよ
0067デフォルトの名無しさんNGNG
あ、かぶった
0068デフォルトの名無しさんNGNG
オブジェクト指向ってプログラミングを簡単にできるようにするために考えたの?
0069デフォルトの名無しさんNGNG
あれだけで、どこが不便なのか小一時間語ってもらいたいな
0070デフォルトの名無しさんNGNG
自作自演はフサギコスレの方だけでやってくれんか。
0071デフォルトの名無しさんNGNG
VBAでいうところの

On Error Resume Next

Delphiでは何と書けば良いのか、教えていただきたく
0072デフォルトの名無しさんNGNG
>>71
例外を無視して突っ切るって事?
一文毎に、次のように囲む。(ただし実際にこんなことやってるとこ見つけたら怒るけどな…)

try
 文
except
 ;
end;
007371NGNG
ありがとうございます
一文毎に、ですか。。。ツレーサギョウダス
とりあえずやってみます
0074デフォルトの名無しさんNGNG
別に一文ずつやる必要ないだろ。
0075デフォルトの名無しさんNGNG
MDIアプリケーションで、タブブラウザのように
子ウィンドウを常に最大化して表示し、タブでウィンドウを切り替えます。

子ウィンドウを作るときと別のウィンドウに切り替えるときに
一瞬もとのサイズのウィンドウが見えてしまうのですが、
そうならないようにするにはどうすればよいでしょうか。
0076デフォルトの名無しさんNGNG
>>75
どしてPageControlじゃダメなの?
Hide状態で最大化してから表示すればいいと思うけど
0077デフォルトの名無しさんNGNG
他のアプリケーションをALT+TABとか使ってアクティブにすると
強制終了するにはどうやったらいいんですか?
0078デフォルトの名無しさんNGNG
>74
try
 処理1
 処理2
 処理3
except
 :
end;

で、処理1でエラーがあったら処理2以降が実行されないから、
ってのが >71 の頭にあると思う。
0079デフォルトの名無しさんNGNG
auto_ptrみたいな参照カウントのためだけに
TInterfacedObject継承するのは違反ですか?
なんかうまくいってるんだけど・・・
0080デフォルトの名無しさんNGNG
elseの前にセミコロンがあってはいけませんとかでてきてうぜぇ
0081デフォルトの名無しさんNGNG
implementation

{$R *.dfm}

end.

この部分の
{$R *.dfm}←これって
何でコメントなのに消しちゃいけないの?
0082デフォルトの名無しさんNGNG
>>81
コメントじゃなくてコンパイラ指令(ディレクティブ)だよ
0083デフォルトの名無しさんNGNG
>82
{ }でくくってあるのにコメントじゃないんだー
デルハイの不思議
0084デフォルトの名無しさんNGNG
フォームを
Windowsのタスクバーよりも前に表示させたいんだけど、
どうすればできますか?
0085デフォルトの名無しさんNGNG
Pchar型→string型に変換する方法を教えて下さい
0086デフォルトの名無しさんNGNG
>>83
$があるから
0087デフォルトの名無しさんNGNG
>>85
string(PChar変数); のようにキャストすればいいじゃん
0088デフォルトの名無しさんNGNG
>>84
FormStyle:=fsStayOnTop;
でTTimerで定期的にSetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);をする。
0089デフォルトの名無しさんNGNG
>>79
OK。
009071NGNG
>>78
おっしゃるとおりです
DelPhiパーソナル版買って3日目のトーシロってことで、
コードのみっともなさについてはひとまず見逃してください。

これまではAccessVBAしか使ったことがありません。
職場のDB、伝票発行から名刺作成まで、何もかもAccessで強引に
やっつけてきましたけど、そろそろ限界かな、と。

この先もたまにお世話になるかもしれません
0091デフォルトの名無しさんNGNG
>パーソナル版買って

…感動した。
しかしDB機能はPro以上にしか無いですぞ。
0092デフォルトの名無しさんNGNG
継承元がパブリックで公開してる静的メソッドを
継承先でプライベートに隠しちゃう事ってできないんですか?

TList継承して独自のクラスのみ格納できるListを作りたいのだけど
どうがんばってもfunction Add(Item: Pointer): Integer;が公開されてしまって
なんだかみっともないです
0093デフォルトの名無しさんNGNG
hasでやればいいのだろうけど、どう考えてもis関係ですよね・・・?
DL版パーソナルなのでVCLソースを参考にすることもできず
0094デフォルトの名無しさんNGNG
無理
TList継承スンナ
0095デフォルトの名無しさんNGNG
>>92
Delphi-MLで昔見たような気がしたんだが・・・鯖トラブルで過去ログが見れない
もしかしたらDDJだったかなあ
かなり汚い方法だけど一応できた記憶はある。
009695NGNG
>>92
オジサンはねぇ、TList継承しておいてAddを消したいっていうのはどうかと思うよ。
0097デフォルトの名無しさんNGNG
DB機能って何?
0098デフォルトの名無しさんNGNG
七つ集めると(ry
0099デフォルトの名無しさんNGNG
>>97
幻のD Builder
0100デフォルトの名無しさんNGNG
ボディー ビルダー
0101デフォルトの名無しさんNGNG
>>87
あっさり変換出来たよ....鬱だ。
■ このスレッドは過去ログ倉庫に格納されています