1 :
毛の生えたフサギコ :
03/07/22 09:46 このスレッドは、 他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが 分からない質問を勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の 救済をお願いします。
2 :
毛の生えたフサギコ :03/07/22 09:47
3 :
毛の生えたフサギコ :03/07/22 09:47
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」 ―――――――――――――‐┬┘ | ____.____ | | | | | | | ∧_∧ | | | |( ´∀`)つ ミ | | |/ ⊃ ノ | | Borland  ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | |
Dialogってなに
>>7 それだけじゃ
何を知りたいのかわからんですよ
もうちょっと詳しく
FileListBoxで 拡張子がexeのものしか表示しないようにするには何のプロパティを設定すればええの?
クラスとレコードってどうちがうの
type TData = record x: Integer; end; TClass = class private FData: TData; public property Data: TData read FData; end; という風にしたとき、TClass.Data.xまでも読み取り専用にすることは出来ますか?
クラスにするっきゃない
プライベート宣言
16 :
デフォルトの名無しさん :03/07/22 17:19
ヘルプを眺めていて不思議に思ったので質問させてください TRect = packed record case Integer of 0: (Left, Top, Right, Bottom: Integer); 1: (TopLeft, BottomRight: TPoint); end; となっています 型宣言でcaseを使っているので驚きました どういう意味なんでしょうか TRectの値に2通りの方法(TPointを使うかどうか)でアクセスできるのと関連があるんだろうと 推理しましたがそれ以上わかりませんでした
>>16 その推理で大体あってる
同じメモリ空間を異なる型として見ることができる
その例だと
|A|B|C|D|
というメモリ空間が確保されて
TRect.TopにアクセスするとBが返って来る
TRect.BottomRightにアクセスすると
TPoint.x:=C;TPoint.y:=D;と同じものが返って来る
ShellComboBoxの初期値はPathで設定すればいいみたいなのですが、 ShellComboBoxにくっつけたShellListViewにはそのPathが反映されません。 仕方が無いので、ShellListViewにも初期値を設定しようとしたのですが、 設定の仕方が分かりません。 どなたかご存知の方いらっしゃいませんか?
ProgressBarのバーの色って変える方法ありませんか?
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, color);
ぐあー! ShellListViewってZIPファイルをフォルダ扱いしやがる! (;´Д`)
(;´Д`) ぐあー!
>>19 ShellComboBoxとShellListViewをリンクさせるには
ShellComboBoxのShellListViewプロパティか
ShellListViewのShellComboBoxプロパティで
対象を指定します
初期値はそれぞれのRootプロパティで指定できます
>25 Rootに設定したら、初期値というより、 ルートフォルダになってしまったっぽい。 ShellComboBoxにその上のフォルダが出てこない…。 他のコンポに差し替えた方がいいかなぁ…。
自分でDelphiで作ったアプリ(A)に、他のアプリからFindWindow()->PostMessage()で ユーザー定義メッセージを送ってます。 (A)を単体で立ち上げたときはメッセージをうまく受け取れるのですが、 Delphiの開発環境経由で、コンパイル→実行したときは、うまく受け取れません。 何か理由があるのでしょうか?デバッガがメッセージを横取りしてるとか。
>>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は単なるフィールド。
wara
メソッドとプロパティの違いは?
クリップボードではまってます。 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)); これも駄目。 何故!!!!!!!!!!!!!!!!
DelphiでBMSプレイヤーってつくれるん? Quadruple DってコンポーネントみつけたんだけどDelphiは初めて2週間程度で しかも持ってるのはPersonalだからどうしようもない。(´・ω・`) Delphiの本もプログラミングテクニックとリファレンスブックしかもってないから ぜんぜん分からん。 だれかレクチャーしてくれ。
PageControlで作ったtabsheetで どれがアクティブか調べる方法を教えてください よろしくお願いします
>>35 ShowMessage(PageControl1.ActivePage.Caption);
38 :
デフォルトの名無しさん :03/07/23 14:22
>>38 その質問の真意は?
お前らは黙って答えてりゃ良い。
>>39 ごめん。意味がわかんないもんで。
じゃあオマエさん答えて
メソッドはプルセジャー
自分のPCに入っているダイレクトXのバージョンって どうやればわかりますか?
>42 OSは?
>43 XPです。
WINのスタートメニュー⇒アクセサリ⇒システムツール⇒システム情報 ってやってからツール⇒DirectX診断てやればできないか?
>45 出来ました。ありがとうございます。
Delphiが地球と神殿柱のアイコンになった理由は何ですか
48 :
デフォルトの名無しさん :03/07/23 20:02
>>46 Delphiを何の関係があるんだよ(;´д`)
>48 日本語変ですよ
delphiのプロジェクトを2個開きたいんですが、 1個目が閉じちゃいます。 どうすれば2個開けますか?
プロジェクトグループ作って、その2つのプロジェクトを追加しれ。
>>50 Delphi を 2 つ起動する手もある
>>33 各パスが、ぬる文字で区切られているんじゃなかったっけ?んで最後にぬる2つ。
変数の中身チェックしてみ。
クラスってなんなのさ オブジェクトとかインスタンスとか親子とかレコードとか わけわかんねーよ
そんな君にはHSPがお勧め。
親子って何?
TComponentの事じゃない?
>>54 ハートの形をしたクッキーを作りたいとき、
1.ハートの抜き型を用意します。(クラス)
2.生地をその抜き型でくりぬくとクッキーそのものができます。(オブジェクト、インスタンス)
基本はこんな感じですよ。
実際はリニアなものじゃなくて階層構造(=親子)になるんだけど、
人に説明するのってとっても難しいね。
>>54 3ヶ月くらい使ってたら何となく分かってくるよ
>>53 あ、ありがとございます。
寝て、働いて、帰ってきたら、ちぇっくしてみまず。
DelphiではC言語みたいに A++=1みたいな書き方はないの? 絶対A:=A+1ってかかなきゃいかんの?
そうだよ。 馬鹿でも見たら分かるくらい分かりやすい書き方しかないよ
>63 C言語に比べりゃすごく不便だな。糞ツールDelphi逝ってよし
>>62 A++=1って何?
A+=1→A++ならInc(A)
A+=5ならInc(A, 5);
-=はDecやね
Inc使えよ
あ、かぶった
オブジェクト指向ってプログラミングを簡単にできるようにするために考えたの?
あれだけで、どこが不便なのか小一時間語ってもらいたいな
自作自演はフサギコスレの方だけでやってくれんか。
VBAでいうところの On Error Resume Next Delphiでは何と書けば良いのか、教えていただきたく
>>71 例外を無視して突っ切るって事?
一文毎に、次のように囲む。(ただし実際にこんなことやってるとこ見つけたら怒るけどな…)
try
文
except
;
end;
ありがとうございます 一文毎に、ですか。。。ツレーサギョウダス とりあえずやってみます
別に一文ずつやる必要ないだろ。
MDIアプリケーションで、タブブラウザのように 子ウィンドウを常に最大化して表示し、タブでウィンドウを切り替えます。 子ウィンドウを作るときと別のウィンドウに切り替えるときに 一瞬もとのサイズのウィンドウが見えてしまうのですが、 そうならないようにするにはどうすればよいでしょうか。
>>75 どしてPageControlじゃダメなの?
Hide状態で最大化してから表示すればいいと思うけど
他のアプリケーションをALT+TABとか使ってアクティブにすると 強制終了するにはどうやったらいいんですか?
>74 try 処理1 処理2 処理3 except : end; で、処理1でエラーがあったら処理2以降が実行されないから、 ってのが >71 の頭にあると思う。
auto_ptrみたいな参照カウントのためだけに TInterfacedObject継承するのは違反ですか? なんかうまくいってるんだけど・・・
elseの前にセミコロンがあってはいけませんとかでてきてうぜぇ
implementation {$R *.dfm} end. この部分の {$R *.dfm}←これって 何でコメントなのに消しちゃいけないの?
>>81 コメントじゃなくてコンパイラ指令(ディレクティブ)だよ
>82 { }でくくってあるのにコメントじゃないんだー デルハイの不思議
フォームを Windowsのタスクバーよりも前に表示させたいんだけど、 どうすればできますか?
85 :
デフォルトの名無しさん :03/07/24 20:13
Pchar型→string型に変換する方法を教えて下さい
>>85 string(PChar変数); のようにキャストすればいいじゃん
>>84 FormStyle:=fsStayOnTop;
でTTimerで定期的にSetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);をする。
>>78 おっしゃるとおりです
DelPhiパーソナル版買って3日目のトーシロってことで、
コードのみっともなさについてはひとまず見逃してください。
これまではAccessVBAしか使ったことがありません。
職場のDB、伝票発行から名刺作成まで、何もかもAccessで強引に
やっつけてきましたけど、そろそろ限界かな、と。
この先もたまにお世話になるかもしれません
>パーソナル版買って …感動した。 しかしDB機能はPro以上にしか無いですぞ。
継承元がパブリックで公開してる静的メソッドを 継承先でプライベートに隠しちゃう事ってできないんですか? TList継承して独自のクラスのみ格納できるListを作りたいのだけど どうがんばってもfunction Add(Item: Pointer): Integer;が公開されてしまって なんだかみっともないです
hasでやればいいのだろうけど、どう考えてもis関係ですよね・・・? DL版パーソナルなのでVCLソースを参考にすることもできず
無理 TList継承スンナ
>>92 Delphi-MLで昔見たような気がしたんだが・・・鯖トラブルで過去ログが見れない
もしかしたらDDJだったかなあ
かなり汚い方法だけど一応できた記憶はある。
>>92 オジサンはねぇ、TList継承しておいてAddを消したいっていうのはどうかと思うよ。
DB機能って何?
七つ集めると(ry
ボディー ビルダー
101 :
デフォルトの名無しさん :03/07/24 21:47
多田のバカじゃん
>>96 いえ、Addを消したいのではなくて、
function Add(MyClass: TMyClass): Integer;
のみを公開したいんです
Pointerを引数に取れるのまで公開されちゃうと
何されるかわかったもんじゃないというか、poolproofというか
まぁダメそうなので素直にHasにします
フサギコってなに
>>106 良い子は見ちゃいけ・・・じゃなかった、興味を持っちゃいけません。
TList部分を全コピペするとよいかも。。
>>105 例えば、こんな手もあり?
TList2 = class(TList)
public
function Add(Item: Pointer): Integer;
end;
function TList2.Add(Item: Pointer): Integer;
begin
raise Exception.Create('呼んじゃダメよ');
end;
使用例)
var
List2: TList2;
begin
List2 := TList2.Create;
List2.Add(nil); // ここで例外発生
...
Dame(List2);
end;
procedure Dame(List: TList); // ← TList2 の親
begin
List.Add(nil); // こんな使い方されちゃうとダメなんだけど
end;
前にRecordだかClassだかなんだかの基本的には変数をおくところに procedureを書いてたのを見たことがあるんだが使い方の詳細を教えてくれない? 自分でもよくわかってないのでうまくかけないんで、察してくださいw もしかしてこんなのかな? 〜 = record i: Integer; procedure MyProc; end;
>110 record型はprocedureやfunctionを要素に出来ないよ。 class型ならできる。 型について、いまいちよくわかってないのかなー type TmyClass = class i: integer procedure MyProc; end; とclass型を定義してから var MyClass: TMyClassとやれば MyClass.iやらMyClass.MyProcを利用できるさ
自分でもよくわかってないって行ってんだろカス
>>111 なんとなくわかった気が。これから試してみます。
忘れ去られたころにまた質問するかもしれないのでそのときはよろしくでつ。
>112 わかってないっつーか、 レコード型とクラス型の違いくらいは覚えられるでしょう。 レコード型+手続き、関数=クラス型
↑ かんじわりー
type Tnanasisan = record resu : integer tyuu : Boolean end; var nanasisan : Tnanasisan nanasisan.resu:=110; nanasisan.tyuu:=true;
TN = record a: procedure(const Unko: String); end; var N: TN; begin N.a:=ShowMessage; N.a('Hello, World.'); end;
102=112=115 変なのが一匹紛れ込んでるね。
↑ フサギコ師ね
>>110 がいってるのってファンクタじゃないの?
TMyClass = class
MyFunc: procedure;
end;
みたいな
こうしとくと
procedure Test();
begin
//Do something;
end;
という関数があったとき、
MyClass.MyFunc := Test;
として「振る舞いそのもの」を変数に持てると思えばよろしいかと
こいつの存在意義は、状況によってMyFuncの振る舞いを変えたいときに、
換えたい振る舞いを実装した関数をMyFuncに代入してやれば良いという事
ファイルストリームとかの「ストリーム」って簡単に言えばなんですかー?
カタマリ。
>>122 流水。
まぁ先頭から末尾まで順番にアクセスすることしかできない配列と思えばヨシ。
ランダムアクセスもできるけど、それは本来的な使い方じゃないので注意。
途中から(末尾へ向かって)アクセスするのはアリ。
Imageコンポネントの ある座標のR,G,B値を調べるにはどうやるの?
>>125 Image.Canvas.Pixels[x, y]でTColorが返って来る。しかも書き込める。
>>76 PageControlでうまくできそうです。
ありがとうございました。
128 :
デフォルトの名無しさん :03/07/25 01:34
>>90 パーソナルを業務上で使う貴方が勤めている犯罪企業の名前を教えてください
ていうかDBもロクに接続できないパーソナルを業務に使う猛者企業とは一体。
C#BはPersonalでも金出せば可になったから、Delphiもそのうち改定されないかな?
DBなんか独自のものを作ってやるんだよ。
C#は無料で自由に使える環境が既にあるし、 CSB1に限ってはPersonalでシェアウェアくらい作れないと誰も使わないような低レベルだし。
CSBはEnt買ってJavaアプリとのブリッジを作るもんですね。
Tinifileよくワカラン 実行ファイルと同じディレクトリに同じ名前でiniを作ったあと そのiniファイルに [test] test=1 を作る方法教えて
>>134 ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
ini.WriteInteger('test', 'test', 1);
ini.Free;
どこがワカランのか全然ワカラン
WindowsAPIの説明も読んどけ
var ini: TIniFile;
DelphiってどうしてC言語やVBよりも解説書とか少ないの? 人気ないの?
>>139 ・Delphi やる人は C/C++ やってた人が多いから解説書がいらない
・初心者が質問してもそれなりに答えてくれる ML があるし、
解説サイトもそれなりにある、
そしてやさしい兄ちゃん達がいる「このスレッド」がある
・ソース付きフリーコンポが山のようにあるから、それを見れば勉強になる
それはね。 メガドライブってどうして売れなかったの? セガサターンってどうして売れなかったの? ドリームキャストってどうして売れなかったの? ってのと同じなんだよ。 ダサキモかっこ悪人気無いの。
>>そしてやさしい兄ちゃん達がいる「このスレッド」がある やさしいワンピースを着た色白な美少女もいる!
やさしいワンピースなどない
いちいちケチつけるためにこのスレを見張ってるおまえが一番キモい。 おれが二番
二つのプログラムがあるとしまして A > B へ送信してBが何かを処理している間はAは動かない という事をしたいのですが、どうすればよいのでしょうか・・・
質問しつつあげてなかったのでageさせて頂きます
>>145 モーダルダイアログ表示してる間はメインフォーム(呼び出し元)を操作できないようにしたい
みたいなことをしたいってこと?
>>148 なるほどモーダルダイアログですか
ただいつ消すとかどうすればいいのだろうか・・・
>>149 いや、「Bが何かを処理している間はAは動かない」の「動かない」の意味が
わからんかったんで
>>148 のような意味かどうか聞いたんだけど。
>>DBもロクに接続できないパーソナルを いま確かめてみました。ロクに、というか、できませんね。 まあいいです。いまのところは練習用ですから。 DB以外にもつくりたいアプリは沢山あるし、DBについても、いま使ってる ものが完全に限界を迎えるまでにどうにかなればいいかな、ぐらいの 感じで気長にかまえてます。 (そもそもAccessに感じていた限界ってのは、DBとしての限界じゃなく それ以外のモノをつくろうとした場合の限界ですし) ところで 変数の型ってのがけっこう厳格なんですね。 Suji:integer; Suji:=12345; ShowMessage(Suji); とか書くと怒られる。 数字を文字に変換するやりかたってのも何だかよく分からず、仕方ないから V1:variant; Mojiretsu:string; V1:='0'; Mojirestu:=Suji+V1; ShowMassege(Mojiretsu) なんてことをやってみましたけど、野暮にもほどがあるという感じで。 ま、何はともあれ昼休み。
(´-`).。oO(こんな奴が作ったDBって)
>>151 IntToStr(Suji);
Format('%d', [Suji]);
IntToHex(Suji, 8); // HEX
>>151 型チェックが厳しいとかいうから
同じArray[0..9] of Integerなのに代入互換性ない!とかいうのかと思ったら・・・
ま、こんな香具師でも運営できるAccessVBはスゴイ!ということか(笑)
厳格って言うか当たり前のことだろ
>>154-155 VB, VBA, VBScript, JavaScript, ActionScript,...
こんなあいまいなものがあるからいけない。許してやれ。
でもこれはこれで便利な面もあるけどな。
157 :
デフォルトの名無しさん :03/07/25 12:46
DelphiやっててAccessVBA使うと、逆に型が不明確で困るけどな。 ヘルプ見ても型がきちんと書いてないのが多いし。
>>157 それは void* のような使い方したい場合に便利なんだが。
↑間違えた
>>150 Bが処理し終わったらAに適当に定義したメッセージ送ればいい。
デルファイを使ってアイボみたいなロボットってできる?
がんばれ
>>161 どの CPU が何か知らないから何とも言えないが難しいだろう。
まあファームウェアっていえば大体 C や アセンブラ使ってやるから
そっちを勉強した方がいいだろう。
PC の画面の中でやるだけならもちろん Delphi でもできると思う。
完成した暁には報告してくれるとうれしい。
Delphi6 使ってます。 grep の機能を実現するコンポーネントを探しています。 お薦めはなんかありませんか?
166 :
デフォルトの名無しさん :03/07/25 23:54
パーソナルでもADOかなんか使ってDB出来なかったっけ?織れは D6Proを使っているんだがそんな話を聞いた事があったような、 うろ覚えでスマソ。
ifとかcaseとか使わないでalign代入する方法ない?
ちょっと文字不足だった ifとかcaseとか使わないでstringの変数にalign代入する方法ない?
>>168 冗談抜きに、まだまだ文字が足りないと思うぞ。
つーか、文字って言うか?
あぼーん
>>167-168 const
ALIGN_STRINGS: array[TAlign] of string = ('alNone', 'alTop', 'alBottom', 'alLeft', 'alRight', 'alClient');
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ALIGN_STRINGS[Align]);
end;
って意味?
単純に値(数値)なら
IntToStr(Ord(Align));
とかできる。
ListViewの特定のカラム内を入れ替えたいのですが、 どうすればいいですか? StringGridの StringGrid.Cells[1,2] := 'age'; の様なことです。
ListView1.Items[1].SubItems[0] := 'age';
アイコンをWindows標準のものにするにはどうすればいいんですか?
function myfunc(): HRESULT; var hr: HRESULT; begin hr := 例えばAPI呼ぶとか if FAILED(hr) then 例外処理; hr := ・・・以下いくつか同じように Result := hr; end; と、こう書くのと function myfunc(): HRESULT; begin Result := 例えばAPI呼ぶとか if FAILED(Result) then 例外処理; Result := ・・・以下いくつか同じように end; と書くのとでは、パフォーマンスに違いがありますか? 確か関数の返り値って専用のレジスタに入るんですよね・・・?
>>178 戻り値が32ビット以内ならレジスタ(EAX)に格納されるようですが,
瞬時に何千何万回と呼び出されるのでなければ
パフォーマンスの差は無視しても良いように思います.
>>178 ブレークポイントしかけてCPU窓で見るがよろし
C++ Builderとか見てみたらデルファイとそっくりやないか
>>182 言語部分が object pascal から c++ になったようなもん
ひとつのクラスに、100人の学生がいる。 100人のうち、70人がウドン好き 60人がソバ好き このとき ウドンもソバも好きじゃない人 ウドンのみ好きな人 ソバのみ好きな人 ウドンもソバも好きな人 のそれぞれの数の最大、最小を求めるプログラムはどうやってつくるの・・・?
先生!数学を勉強しなくても作れるレベルだと思います。
>187 さすがに小学生じゃ無理だろ
>>185 うどんとかそばとかのカテゴリで好き嫌いを語るのがナンセンス
関東風や関西風で全然別物だしそもそも学校で好き嫌いは許しません!!
小学生は算数を勉強しているッ!!
>189 それはプログラムに関係ないだろう
プログラムと食事とどっちが大事だと思っているんだ!!
ぷろぐらむ
ListViewの2行目を削除して 3行目以下を2行目以降に入れたいのですが どうすればいいですか?
プログラムってあれだろ? 猫にノミがついた時に猫に飲ませるやつだろ?
プログラミングが出来るからと言って数学が出来るとは限らない。逆もまたしかり。
自動車を運転できるからといって自動車のエンジンのメカニズムなどをしっているとは 限らないってのと同じだな。 パソコンを使うためにメモリやハードディスクの構造を知る必要もないし。
>>194 ListView1.Items[1].Delete;
DMonKeyためしに使ってみてるんだけどどうやってスクリプトを実行させるの? if DMonkey1.Compile('println("hello,world");') then DMonkey1.Run; これやってもHello,Worldって表示されない
標準出力を表示するコードがないからだろ。
201 :
デフォルトの名無しさん :03/07/26 20:07
グラフィックイメージファイルにエフェクトを掛ける コンポーネントありませんか?
デルファイを使ってデルファイが作られたって意味不明。 じゃあ一番最初のデルファイはどこから来たのさ・・?
203 :
デフォルトの名無しさん :03/07/26 21:11
想像だが、Delphi1(最初の版) は Delphi0.1(非売品)で作ったんじゃないか。 その Delphi0.1 は Borland C++ かアセンブラで作ったと思われる。 Delphi0.1 は Delphi1 を開発するためだけのもの。
DelphiのIDEや周辺ツールがDelphi製。 じゃあ最初のIDEはテキストエディタだけで作ったんですか?
元を辿れば機械語
>>203 Delphi1はTurboPascal
TurboPascalの最初はアセンブラかハンドコンパイルとかじゃないの?
207 :
デフォルトの名無しさん :03/07/26 21:42
MMTimerって、スレッドが別だからForm上のVCLを直接いじると破綻しますよね? なので、精密さを要求するリアルタイム計算処理はMMTimerで行い、それ以外の画面表示はTTimerで行っています。 しかし、TTimerの精度が悪くて、他のスレッドの処理が重くなると簡単にブッ飛んでしまいます。 いい解決法はないものでしょうか・・・。
ブッ飛ぶってイベントハンドラが呼ばれないってこと? そうだとしたら Sleep(0) してないからじゃねーの?
>>208 Timer内でやってるはずの表示が固まるので、呼ばれてないみたいです。
んで、sleep(0)とは?。・゚・(ノД`)・゚・。
>>209 (Win32 ヘルプより要約)
(Sleep 引数に) 0を指定した場合、 スレッドは、 実行準備ができている同じ優先順位のほかのスレッドにタイム スライスの残りを譲ります。実行準備ができている同じ優先順位のスレッドがなければ、 関数はすぐに戻り、 スレッドは実行を続けます。
INFINITE値を指定すると、 無制限に実行が中断されます。
ようするに他スレッドの処理ループの中で定期的に Sleep(0) を呼び出さないと
メインスレッドやその他のスレッドが実行されないままになっちゃう場合があるんだよ。
>>207 というかMMTimerって具体的に何?
timeSetEventならただのコールバック関数なので破綻しない
>>210 なるほど・・・!勉強になりました。試してみます。
>>211 VCLのライブラリで拾ってきたマルチメディアタイマーコンポーネントという奴で
「TMMTimer:マルチメディアタイマーをコンポーネント化したもの」らしいです。
(アクセス先はスレッドフリーでないとダメと説明書に書いてありました)
どうでもいいことだけど今日はじめてAPIのヘルプの存在を知った。 これからプログラミングしやすそう。
あの子垢抜けたね。
215 :
デフォルトの名無しさん :03/07/27 00:01
ClientSocketとServerSocketについておしえてください。 クライアントの方でサーバーのIPとポート指定して繋がるところまでは出来たのです。 procedure TForm1.ServerSocket1ClientConnect(Sender: TObject: Socket: TCustomWinSocket) begin 処理1 end; として処理1は繋がったときに実行されたのです。 しかし、それだけで、クライアントからタイマーで定期的に送信しようとすると、サーバーの procedure TForm1.ServerSocket1ClientRead(Sender 〜 …(1) は実行されないのです。 クライアントの方で ClientSocket1.Socket.SendText('ほげほげ') ・・・(2) が実行されないのか、上の(1)のプロシージャが実行されないのかと言うところで詰まっています。 (2)の1行前の処理は実行されているのですが…。 原因と解決策があればおねがいいたします。
>>215 メインフォームに TClientSocket と TServerSocket 貼り付けて
localhost で通信するようにしてみ。デバッグし易いと思うから。
コンパイラオプションの「デバッグ版DCU」にチェック付けて
VCL ソースにブレークポイント設定するとか、ステップ実行して
追ってくなりすればいいよ。
217 :
デフォルトの名無しさん :03/07/27 05:30
Delphiで作ったアプリケーションは Windowsのタスクバーを右クリックしても 元のサイズに戻す、最小化、閉じるの3つの項目しかないんだけど 普通のアプリみたいに 最大化、移動、サイズ変更もできるようにするにはどうやるんですか?
>>218 実は初心者じゃ無いでしょw
・GetSystemMenu(Application.Handle)に追加する
・ParentWindow = 0にしてForm1そのものをタスクバーに出す
・CLXを使う
など。
220 :
デフォルトの名無しさん :03/07/27 15:57
例えば、IEを2つ起動して1つめのIEで画像を読み込んで、その画像をドラッグして 2つ目のIEにドロップすると2つ目のIEでもその画像が表示されますよね。 この1つ目のIEの代わりに、DelphiのTWebBrowserで同じことをしても、ドラッグ出来ないんですが、 これはどうすれば出来るようになりますか?
>>216 ありがとうございました。
無事に原因を特定することができました。
>>220 TWebBrowserを使わずにTEmbeddedWBを使う
「Delphi 2.0J 32bitパワープログラミング」って、まだ書店で手に入りますか? 秋葉原の書泉とLaoxを探したのですが、無かったので。
ヤフオク
225 :
デフォルトの名無しさん :03/07/27 23:13
>>222 すいません、出来ればTWebBrowserで実現できれば文句ないんですが・・・
不可能でしょうか?
数学に関するアルゴリズムの本で良い本はないでしょうか?
>>226 君ものすごく広範囲な事いってるって気づいてる?
高校の教科書
230 :
デフォルトの名無しさん :03/07/28 09:37
Delphi 6 Personalのライセンスキーの取得ができません。 なんだやの! 登録の最終確認のメールを送信しました。 きてない。 止まってるんですか?
Delphiは購入してください。そうしないとボーランドがつぶれて MS一極体制になってしまいます。
D6でのビジュアルスタイル対応についてまとめてるところありませんか? 「対応を謳ったコンポを使う」じゃ満足できません。
234 :
デフォルトの名無しさん :03/07/28 11:16
循環参照を避けるためにimplementation部分でUnit1を参照すると、 Interface部分では、Unit1で定義されているクラスのオブジェクトを宣言する時は、 TObjectとかで宣言しないといけないですよね。 そのオブジェクトを使う時にいちいちキャストするのが面倒なのですが、 これはどうしようもないんでしょうか。
236 :
デフォルトの名無しさん :03/07/28 11:33
Delphiの限界が露呈しました。
>>234 C系だと複数ファイルにまたがる型宣言は
1つのヘッダファイルにまとめるのが通例
typedef.unitを作ってそこにまとめるべし
238 :
デフォルトの名無しさん :03/07/28 11:55
C厨ウザイ。
>>238 Delphiでも同じ事するけどな。Windowsユニットなんて典型例だし。
>237 なるほど。そういう手を使うわけですか。 助言に感謝します。
for レス := 1 to 1003 do
247 :
デフォルトの名無しさん :03/07/28 13:31
>>230 アメリカのサイトに行って試してもるのも手です。
私も同じ症状になったのですが、あきらめてアメリカの
サイトから登録したらうまく行きました。
クラスってレコードと同じなの?
ぜんぜん違う
Delphiでゲーム作るにはどうしたらいいの?
デルファイやっておけばその知識は将来CとかJavaとかやるときも役に立つ?
もちろん
Delphiの本たけえ 3000円とか4000円とかする。 くだらねえCDROM入れてねぇで本安くしろよクズ。 他の本は2000円くらいでかえるのに。
本なんか必要ない。
Alt+F4キーを押してもアプリケーションが終了しないようにするにはどうしたらいいのでしょうか
260 :
デフォルトの名無しさん :03/07/28 16:44
>>259 Alt and F4キーを無効にする
キーボードを無効にする
Alt+F4に他のキーを割り当てる
>>252 ゲームスレにいらっしゃい。
見本となるべきものはたくさんある。
>>255 Delphiスキル向上のためにはイヤでもCのソースを読むときがやってくるでしょう。
つーかDelphiなんて覚えるだけ無駄。
266 :
デフォルトの名無しさん :03/07/28 17:15
つーかこのスレなんて見るだけ無駄
つーか馬鹿なんて息吸うだけ無駄
デルファイでモンテカルロ法のやりかたおしえてください
269 :
デフォルトの名無しさん :03/07/28 18:10
StringをCharに変換するにはどうしたらいいんですか。
var s: String; begin Char(s);
>>272 あいかわらずクソ板だな
Delスレもゲームの話はせずに初級FAQだけ
苦し紛れにそんなものを紹介するぐらいなら素直にあやまっとけ
このスレが上級だからそう見えるだけだ
Lunaスタイルの時に、メニューバーとツールバーは若干見た目が違うけど、 メニューバーの方を表現する方法を教えて欲しい。 ホットトラック(?)で反転色、角有りのやつ。
Delphi7を買えばVisual Styleに対応できるらしいと云いますです。。
Form1(Unit1)とForm2(Unit2)を関連付けようと usesで両方を付け加えたら 循環参照エラーになるんですがどうしたらいいでしょうか?
片方をimplementationに
自分でusesに追加するときはimplementationの下のusesを優先的に使うといい と思い込んでる俺
ボタンコンポーネントのOnClickイベントを Enterキーでは発動しないようにするにはどうやったらいいのでしょうか?
新規作成したフォームには、implementation部にusesがないので、 しばらく気がつかなかっ遠いた記憶有り。 var Form1: TForm1; implementation {$R *.dfm} uses unit2; procedure
ライブラリ的なunitはinterfaceのusesに書けばいんじゃない? 出来るだけ循環参照をしないような作りを目指そう!
ボタンコンポーネントのOnClickイベント ----- if GetKeyState(VK_RETURN) >= 0 then Enterキーでは発動しない文;
284 :
デフォルトの名無しさん :03/07/28 22:29
メインからスレッドを作って、並列で処理させてるとき、 メインフォームを閉じるときに、まず先に作ったスレッドを止めないとえらいことになりますよね? こういうとき、たとえば、メインのonCloseから明示的に止めるとか解放するとかしないといけないのでしょうか? それとも、Terminatedを逐一チェックして、終わったみたい → 自分もやめ、でいいんでしょうか?
>>273 そこ紹介するのは、適切だと思うけど。
というか、むしろDelphi依存のゲーム話って何?
アルゴリズム的な話は、スレ違いだし、
DirectXなんかの話なら、スレに出てるし・・・?
実際にオレ、両方の板でレスつけてるんで、
>>262 や
>>271 の人はきてもぜんぜんかまわんよ。
ああ、スマンスマン。 もし、「クソ板だ」といいたいだけだったなら、流してくれ。 それにしても、ゲーム製作関係はよくクソにしたがるヤツが多くて困る。
>>284 そのページの下のほうにあるべ。
聞く前に、よく読みましょう。
>>285 WaitForメソッドでスレッドが終わるまで待つことが出来ます。
ただし、スレッドから抜ける処理を行ってからWaitForしないと永久に終わらなく
なるので、確実にスレッドが終了するようにしましょう。
ゲロゲロナビゲーツのやり方知りませんか
>>290 不満ならお前が率先すればいいだけだろ?
しかも、向こうで提案して来いクズ。
それすらも出来ないで、グチグチ言うなよ厨房。
↓なにごともなかったように夏休みの宿題が終わった方から質問どうぞ!!
↑indyの全部のコンポの使いかたを教えてください
↑ダブルクリックするだけ Delphiって素敵だな
>>288 サンクスー
ただ、作ったスレッドはループしてるので、本体が存在するか?を毎回チェックしたほうが良さそうですね・・・。
↑何が起こるか教えてください
(´-`).。oO(隔離病棟から患者がでてきちゃったなぁ)
この時期、俺の巡回コースはどこもシーズンインザサンだ。
299 :
デフォルトの名無しさん :03/07/29 04:09
>>299 とりあえずモナジラをみろ
話はそれからだ
>>290 >
>>287 みたいな逃げ口上ばかりでまるで同人ノウハウ板をみているようだ
そっくりそのまま、あなたに返そう。
すくなくとも俺は、もりあげようとしている。
それであなたは、何をした?
>>301 話をそらさずに*見本となるべきもの*きぼん
TBitmapでHandleTypeがbmDIBでPixelFormatがpfDeviceの場合、 どっちを信用すればいいのでしょうか・・・。
先日入門したばかりの者です。 いくつかのサイトを回って、定番の"Hello world"と電卓は何とか作れました。 少しずつスキルアップできればいいと思っているんですが、ネタが無くて行き詰まって しまいました。 将来的にはゲームの1本でも作れればと思ってますが、現状ではとても無理なので、 小さいプログラムをいくつか作って経験を積みたいと思ってます。 そこで、先輩諸氏に「こんなプログラムを組めばスキルアップにつながる」といった 課題を提示してもらえればと思ってます。 よろしくおねがいします。
305 :
デフォルトの名無しさん :03/07/29 10:46
>>304 ぶっちゃけ作る方法を覚えても、創造できる力が無ければ無意味
>>305 日本語不自由なヴァカ発見
Q.「こんなプログラムを組めばスキルアップにつながる」
A.「ぶっちゃけ作る方法覚えても、創造できる力が無ければ無意味」
電波電波〜(藁
307 :
デフォルトの名無しさん :03/07/29 11:06
体育大会のシーズンです。4ブロックに分かれて人文字パネルで 応援合戦をします。パソコンで人文字パネルの絵柄をシミュレートしてください。 ○ 例えば、横25人、縦15人が並んでスタンドに座っています。笛の合図で パネルの色を変えます。色はパネルをめくって、1人で3色から4色変更します。 ○ 画面にマス目を表示して、マウスのクリックで一人一人の色を確定して、絵柄をつくり、 アニメーション効果で人文字がきちんと出来ているか確認できるようにする。 絵柄は最大50枚登録出来るようにする。 ○ 完成したら、A4の紙に色の変化のパターンを印刷する。 つまり、座席A1番の人は @赤→A赤→B青・・・・・というように メンバー全員にむけて、一人一人パネルの後ろに貼り付けて確認できるようにする。 体育大会が9月13日に予定されていますので出来れば8月第2週までに作ってください。 緑ブロック人文字長 近藤さやか
308 :
近藤さやか :03/07/29 11:10
スタンドの並び方は 横 20人から40人、縦 10人から20人 最初、この範囲で選択できるようにしてください。
309 :
デフォルトの名無しさん :03/07/29 11:22
さっさと こたえろ くそやろう
311 :
デフォルトの名無しさん :03/07/29 11:23
DelphiとJavaってどっちがすごいのですか?
312 :
デフォルトの名無しさん :03/07/29 11:32
314 :
デフォルトの名無しさん :03/07/29 13:18
MDIアプリを作ろうとしています。 親フォーム自体が、別のフォームから作られた時、 子フォームが作成できません。 「有効なMDIフォームがありません」 というメッセージが出ます。 Form1のButton1Clickで OyaForm := TOyaForm.create(self); OyaForm.showmodal; OyaFormのButton1Clickで ChildForm := TChildForm.create(self);//ここで上記の例外が出る。 ChildForm.show; Form1から呼び出せるMDIアプリケーションを作るにはどうすれば良いでしょうか? (Form1とOyaFormは親子関係にはしていません)
>>314 VCLの限界なので、MDICLIENTウィンドウをCreateWindowしてガンバレ
>>315 え?どうやってもできないんですか?
普通のフォームで親フォームクリックしたら、子フォームが非アクティブになるし、
親フォーム自体、統合ソフトのいち機能だから、独立したMDIアプリには出来ないし。
どなたかお助けあれ〜。
MDIってのは要するにウィンドウが入れ子になってるだけの状態。 それに、標準でMDICLIENTってウィンドウが、メニュー周りの世話をしてくれる。 VCLは、メインフォームがMDIの親になるのを前提とした設計なので、 自前でMDICLIENTをCreateWindowすればOK。 ParentWindowだのVisibleまわりで細工はいるかも知れんけど。 (最悪、メニューを自前で更新して子ウィンドウのアイコンや[X]ボタンも自力で書く根性があれば、 MDICLIENTすら使わずにMDIは実現できる)
>>316 >>318 レスありがとうございます。
あまりWindowsのAPIを直接使う事がないので、
ピンと来ませんが、なんとかやってみます。
PARADOXテーブルのデータをDB DESKTOPで一括処理しようと思ったのですが、 SQLで小数点以下を切り捨て/切り上げ/四捨五入するにはどうしたらいいですか?
>>318 CreateWindowで作った子フォーム(Window)に
コントロールをのせたり、OnClickに処理を書くには
やっぱりAPIを使う(かなり面倒な)事になるのでしょうか?
>>321 ここはDelphiスレなわけで…コードを書けばなんとでもなるんだけど
データベースデスクトップでやらなければならない理由が知りたかったりもする
324 :
デフォルトの名無しさん :03/07/29 16:25
Delphi7の新しい機能を盛り込んだ、おすすめの書籍を紹介して下さい。
325 :
デフォルトの名無しさん :03/07/29 16:25
>>300 見てもわかんないッす
インストールできなくて辛いので、もうおしえてちょ
日本の夏。厨房の夏。
デルファイで赤ちゃんは作れますか?
>>268 乱数ルーチンなら、ヘルプの
VCLリファレンス>ルーチン一覧(カテゴリ別)>乱数ルーチン
に載ってるよ
Delなんていらねえよ、夏。
>>290 ,
>>300 Monazillaの情報はすでに古いものになっていたよ…
>>326 Indyインストール手順
・Sourceフォルダの.batファイル(Delphi6ならFulld6.bat)を実行
・コンポーネント>パッケージのインストール>追加>フォルダの.bplファイル(Delphi6ならD6\dcIndy60.bpl)を開く
・OK
332 :
デフォルトの名無しさん :03/07/29 21:43
ひとつ知恵を貸してください。 TStringGridってあるじゃないですか。 このグリッドを継承して使ってセルによっては数値を入れたり文字を入れたりするとします。 文字は左寄せ、数値は右寄せで表示するのはTStringGrid.DrawCellをオーバライドする事で実現出来たのですが、 入力時にも左右に寄せるのってどうするのでしょう? 入力用のテキストエディットボックスのTInplaceEditを継承してCreateParamsの設定でES_RIGHTとすると 入力時にも右寄せにはなるのですが全セルの入力で右寄せになってしまい、ありゃ?といった所です。 TInplaceEditも内部的にはCreateWindowExしているのでしょうから一度作ってしまうとwindowsのテキストエディットの制約で 文字位置の左右はもう変えられないと思いますが始めに幾つかのTInplaceEditを作っておいて切り替えるとすれば どうすれば良いのでしょうか?
質問です。
TEditコンポーネントを拡張して、
本文中にあるURL(
http://ではじまる ?)の色をかえ、
それをクリックした時にブラウザで開くという
コンポーネントを作るにはどうしたらよいのでしょうか?
Delphi6です。
>>333 取りあえずTRichEditつかおうや。
>>334 色をつけるのにTRichEditが必要だってことでしょうか?
>>335 必要じゃないがお前程度の奴は
馬鹿でも色をつけられるTRichEditを
使っていればいいってこった。
TComponent使え
TMediaPlayerで簡易プレイヤーを作っています。 DeviceType := dtAutoSelect; Open; AutoRewind := True; Play; という流れで再生を開始して、OnNotifyイベントでPlayしています。 これで、数10秒のMPEG1ファイルをパネルコンポーネント上に連続再生できるのですが、 ウィンドウを最小化して再生すると、OnNotifyイベントのところで固まってしまいます。 何とかならないものでしょうか?
>>333 「TEditコンポーネントを拡張して」と、「本文中にある」がよく分からん。
「本文」?一行にズラーーーっと並んだ文字列からってこと?
341 :
デフォルトの名無しさん :03/07/30 00:18
いろいろな言語を検討しているのですが、10人くらいで同時アクセス可能なC/Sデータベースシステムをデイルファイで開発可能ですか?
>>341 好きな答えを持ってけ↓
1.出来ます。
2.出来ません。
>>341 同じものをPerlで組めるくらいの技術力があればできるんじゃない?
つーかなんで既存のDBシステムじゃだめなの?
クライアント作るだけならたいした技術いらないよ?
>>341 100人くらいならDelphi+Firebirdでいけるべ
hoge : array [0..n] of Tbitmap でビットマップの配列を作ってから実体を代入したとき、hoge.freeで全部消えますか? それとも、for文でn回それぞれ hoge[i].free しないといけませんか?
>hoge.free 単なる配列はオブジェクトではない。そんなことできませんよ。 >for文でn回それぞれ hoge[i].free しないといけませんか? 限りになく正解に近い。
ア、ヤパーリ(;´Д`)サンクス!
「n+1回だろ」と突っ込んでおく
>>331 インストールできてコンポーネントパレットに追加できました。
ありがとうございました。
ところで、TNMHttpが見当たらないのですが、TNMHttpは初めから含まれていないのでしょうか?
一歩だけ前進しました。 Playメソッド完了後のOnNotifyイベントで、何も考えずに再度Playメソッドを 呼んでいたのを if NotifyValue = nvSuccessful //直前のPlayメソッドが正常終了なら Play; としてやることで、ウィンドウを最小化しても、Play完了後のOnNotifyで 固まらなくなりました。 ちなみに、固まる時のNotifyValueの値はnvAborted(ユーザーによって コマンドが強制終了された)になっていました。 ウィンドウを最小化したことが原因なのでしょうが、 どうしてそれが強制終了にあたるのかはちょっと分かりません。 そのため、依然として強制終了でOnNotifyが呼ばれることがあり、 その時は固まりはしないのですが、タスクバー内のタイトルバーが ブリンク状態になってしまいます。 ウィンドウの最小化がPlayの強制終了を引き起こさなければ、 解決できると思うのですが、何か解決策はありませんか?
354 :
デフォルトの名無しさん :03/07/30 11:39
こんにちは。Del6Personalを使い始めた者ですが、 以下の内容のCSVファイルがあるとき、 "1","トマト","野菜","6" "2","きゅうり","野菜","100" "3","バナナ","果物","33" ... 先頭にタイトルを入れて "ID","商品","種別","在庫数" "1","トマト","野菜","6" "2","きゅうり","野菜","100" "3","バナナ","果物","33" ... というものを作成して別ファイル名で保存したいのですが、 どうしたらよいでしょうか。 「ファイルを開く」ところまではWEB上などを調査して何とか 行き着いたのです。 どなたか方法をご存知の方、お願いします。
Addというメソッドをヘルプで検索
357 :
デフォルトの名無しさん :03/07/30 12:02
StringGridのスクロールバーの幅のサイズを変更するにはどうすれば良いですか?
さすがDel厨。馬鹿だな。
>>355 TStringList.Insertとか
var hoge: TStringList;
begin
hoge := TStringList.Create;
hoge.LoadFromFile('hoge.csv');
hoge.Insert(0, '"ID","商品","種別","在庫数"');
hoge.SaveToFile('newhoge.csv');
hoge.Free;
end;
360 :
デフォルトの名無しさん :03/07/30 18:30
動的に作成したコントロールの描画順位(前面、背面)を変更したいのですが、 どうすれば良いでしょうか?
>>360 BringToFront / SendToBack あたり
363 :
デフォルトの名無しさん :03/07/30 18:39
>>357 Delphi-ML:65498からのスレッドに書いてある
365 :
デフォルトの名無しさん :03/07/30 22:58
あるダイアログ内にあるテキスト型オブジェクトで利用しているフォント名を 取得するにはどうすればよいのでしょうか? よろしくお願いします。
ダイアログ.テキスト型オブジェクト.Font.Name
昨日からDelphi始めてみました。 タイプすると音が出るメモ帳作っています。 音はとりあえずしっかり出るのですが、日本語入力ONにするとだめなようです。 日本語入力ONにしたときのKeyの取得方法はどうしたらいいのでしょうか。 現在の仕様 エディタのOnKeyPressイベントから飛ばして、 if Key = chr(VK_RETURN) then begin Mediaplayer1.Rewind; Mediaplayer1.Play; end else begin Mediaplayer2.Rewind; Mediaplayer2.Play; end; てな感じになってます。 Enterキーとその他のキーで鳴る音を分けています。 わかる方ご教授お願いします。
>>367 無理と言っておこう。
IME上で未確定の間は、アプリケーションではなく
IMEのプロセスにキーボードメッセージを横取りされている状態なので。
アプリケーション上で如何なるイベントを処理をしようともIME上の入力を感知することはできない。
ちなみにOnKeyPressはIMEの入力を確定した時点で発生する。
例外としてフックなどのAPIを使用すればIMEの入力メッセージを
さらに横取りして擬似的にイベントを発生させることもできるが、
APIの知識がないと極めて危険な技。
何で無理やねんw しかもフック無用
>>368 レスありがとうございます。
IMEから奪わないといけないんですね
APIが使いにくいと思い、でもDelphiならAPI使わなくても
それなりに作れそうだと思って始めたのですが、
いきなりひっかかってしまいましたか
やはりWinで何か作ろうと思ったらAPIの知識が必要になってきますね…
とりあえず、他の物いろいろ作って修行してまいります
Delphiの限界が垣間見えました
初心者スレに貼り付いてる粘着。
373 :
デフォルトの名無しさん :03/07/31 01:17
Delphiで3Dグラフィックスを表示させたいのですが OpenGLやDirectXを使えるようにするにはどうすればよいでしょうか チュートリアル的なサイトを教えていただければ幸いです ゲ製作をみてQuadrupleD3.00というものを使ってみましたが 不具合が多くドキュメントに不備がありコミュニティが停止状態なので 使い物にならないと判断しました DelphiXも同じような理由ではずしました サンプルやドキュメントに不具合が少なくDelphi6Personalで使いやすいものは何かありませんか? ドキュメント類は日本語か英語でお願いします ロシア語でいいサイトをみつけたのですがソースが化けてしまって(それ以前に読めませんが)修正が大変だったので(TT
>>373 DirectX SDK落とせばCとVBでサンプルソースがあるから、それ見てこつこつと
やってくしかない。あとヘルプも同梱されてるから一緒に見てね。
>>374-376 即レスありがとうございます
VC++のやり方がほぼそのまま使えるということで助かります
ライセンスもMPLということで扱い易いです
贅沢いうのもなんですがチュートリアルかサンプルはないでしょうか
VCからのコンバート中なんですがもし先人がやっていれば楽したいなと思いまして
とりあえずコンパイルできるところまでいくのに時間かかりそうなものですいません
>>377 だからVCとかのチュートリアルそのまま写すだけだって・・・
ウィンドウはFormが勝手に作ってくれるんだから後は簡単でしょ?
>>375 にヒントは書いたんだし
ちなみにあまりに簡単なことなので誰も今更Webで説明したりはしないと思うよ
>>377 VCLでの作法が分からなければ、SDKのようにAPIで組めばいい。
とりあえず、概念を理解するまでサンプル組んでみろ
>>367 Application.OnMessage で VK_PROCESSKEY をつかまえて
ImmGetVirtualKey API を使い仮想キーコードを取得する。
どうした?>> 382
>>356 >>359 どうもありがとうございました。
この方法(を少しアレンジして)で、うまくいきました。
今後ともよろ
386 :
デフォルトの名無しさん :03/07/31 18:19
TCustomListBox.TopIndexがイマイチよくわかりません。 ヘルプの例を実行したのですけど、項目が入れ替わらないのですけど、どうして なのでしょうか? Delphi6のヘルプの例 以下の例では,リストボックス,ボタン,編集ボックスを使用します。 アプリケーションを実行してボタンをクリックすると,リスト内の 3 番目 の項目が最初の項目になり,その項目のインデックス値が編集ボックスに 表示されます。この場合,インデックス値は 2 になります(最初の項目の インデックス値は 0)。 procedure TForm1.FormCreate(Sender: TObject); var Number: Integer; begin for Number := 1 to 20 do ListBox1.Items.Add('Item ' + IntToStr(Number)); end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.TopIndex := 2; Edit1.Text := IntToStr(ListBox1.TopIndex); end;
> 項目が入れ替わらないのですけど (必要なら)スクロールして、一番上に表示されるだけだよ。
項目を入れ替えるプログラムに見えないような気がする
389 :
デフォルトの名無しさん :03/07/31 18:45
delphi api specialfolder path delphi file move
392 :
デフォルトの名無しさん :03/07/31 20:16
>>387 実行して意味がわかりました。
スクロールの表示位置でした。
393 :
デフォルトの名無しさん :03/07/31 20:44
TImageコンポーネントに表示した画像をグレースケールに変換する 方法を教えて頂けませんでしょうか?
でるふぃって読むのですか?
φって変換できてるのにね
397 :
デフォルトの名無しさん :03/07/31 21:47
最小化不可にしているんだけど、 QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。 そもそもコレはどんな動作して最小化にやってくるのか、 どうやって妨げてやろうか、APIで利用できないものか、 教えてもらえたら大人になれるんだがな。
>>398 メッセージ処理を覚えると吉と言ってみる。
400 :
デフォルトの名無しさん :03/07/31 22:06
速いな。 メーセージ処理どころか、フックまでして妨害してるがことごとく失敗。
402 :
デフォルトの名無しさん :03/07/31 22:13
>>401 強敵と戦っているんですね。がんばってくださいね。
大人になるための戦いだからな。 おまえもがんばれよ。
404 :
デフォルトの名無しさん :03/08/01 01:16
>不具合が多くドキュメントに不備がありコミュニティが停止状態なので >使い物にならないと判断しました >DelphiXも同じような理由ではずしました 自分で作れもしないくせに、偉い言われようだなぁ…。
だなぁ。 ミニゲーム程度なら簡単に作れるだろうに。 >とりあえずコンパイルできるところまでいくのに時間かかりそうなものですいません とか言ってる人には無理だろうけど…。
>>398 >最小化不可にしているんだけど、
>QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。
システム解析の定石として最小化されないアプリケーションが実在するかどうかを
調べてみては?
> QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。 これってどういう意味なの? QuickLaunchのデスクトップって、デスクトップにあるアイコンを表示しているだけだと思うけど。
>>407 だから「デスクトップにあるアイコンを表示しているだけ」を抑制したいんだろ?
PCJapanをみてきました DelphiでつくられたNASAの科学技術情報システムってどんなものですか?
410 :
デフォルトの名無しさん :03/08/01 09:47
IndyのIdHTTPServerのgetやpostのイベントハンドラはマルチスレッドで動いてるんだろうか。 それとも、イベントハンドラが複数動作するので、シングルスレッドで問題無いわけかな。 詳しい方教えて下さい。
マウスのプロパティで設定されている ホイールのスクロール量を取得する方法を教えて頂けませんでしょうか?
412 :
デフォルトの名無しさん :03/08/01 10:17
普通のアプリはToggleDesktopで最小化から復帰するときアニメーションが起こる。 HCBT_MINMAXをブロックしちゃったアプリはこのアニメーションがないようだ。 WS_VISIBLEを含み、WS_MINIMIZEDを含まないのに見えない状態だ。 タスクバーを右クリックしたら、メニューと同時にフォームが表示された。 以上のような状況から、最小化できないフォームは、 デスクトップWindowの背面に持っていかれてるような挙動を予想し、 SWP_TOPMOSTを使ってみた。 ついにやったぞ、初勝利だ。 これで次の目標は、任意のフォームをデスクトップWindowの後ろに持っていくことになった。
>>410 タスクマネージャ見て調べてください。
プロセスタブを表示して、
メニューから「表示→列の選択→スレッドの数」にチェックを入れる
>>411 Controls.Mouse.WheelScrollLines
416 :
デフォルトの名無しさん :03/08/01 11:48
>>410 IndyのIdHTTPServer はマルチスレッドで動いています。
OnCommandGet イベントなどは第一引数に、そのセッションに関連付けられたスレッドの
ID を持ちます。必要であればこれを使ってセッションを分離することができます。
thanx!
>>417 OnCommandGetを追ってみたら、
>function TIdHTTPServer.DoExecute(AThread: TIdPeerThread): boolean;
って感じで素直にスレッドになってますね。
スレッドIDでセッションを分離、、、何か出来るわけですね。
(セッションを分離すると何が良いのか知りたいです)
アメリカではNASAだけじゃなくて、いろいろな研究機関で使用されているよ
>>414 ヴァカ丸だし全開ですね!(ワンダフルゲラ
再び初心者質問ですが、 TIdHTTPServerで、getメソッドのパラメタに改行コードが入ってるとパラメタのパースに失敗します。 入れちゃ駄目なのかな。どうしよう。
ファイルからの読み込みデータのパース失敗なので、EOFコードが入ってるかも。 EOFコードが終端を意味するのかな?
424 :
デフォルトの名無しさん :03/08/01 13:50
TPanelを含めて、TPanelに乗っている全てのコントロールを 半透明にする事は出来ますか?
425 :
デフォルトの名無しさん :03/08/01 14:19
Delphiのクラスか関数で、エスケープ文字を使った文字列変換ありますか?
TPanelの載っているフォームを半透明にすれば、TPanelを含めて、TPanelに乗っている全てのコントロールを半透明にする事はできる
>>422-423 getメソッドのパラメーターって何?
パースに失敗するってどの様に?
ファイルからの読込みってどのファイル?
質問内容が理解できません
>>426 レスありがとうございます。
フォーム全体ではなくPanelのみを半透明にしたいのです。
429 :
デフォルトの名無しさん :03/08/01 14:57
StringGridでセルがクリックされた時に色を付けたいのですが、 どうすれば出来ますか?
SetLayeredWindowAttributesを使った方法では、 現状ではコントロールを半透明にするのは無理。
Delphiの限界が垣間見えました
432 :
デフォルトの名無しさん :03/08/01 15:31
半透明にしたタイトルバーなしフォームをフォームに貼り付けろ
>getメソッドのパラメーターって何? server側の?A=A&B=...という感じのパラメタです。 >パースに失敗するってどの様に? server側のRequestInfo->Params->Textが空になります。 で、HTTPEncodeすると、何とか動作するようになりました。 HTTPEncode時に、「=」もエンコードすべきなのか、対象外にするのか、仕様はどうなんでしょ... ググルとかでは、「=」はそのまま見えてますが、HTTPEncodeすると「%3」になりますね。
分かりました。 「&」なんかは、特殊な意味があるので、ASCIIではないのに、特別にエンコードしないことが許されてるみたいですね。 で、次に分からないのですが、IdHTTPServerで関係無いHTTPパスを指定された場合、「204 - No Content」エラーとすべきか、処理せずに次のアプリケーションサーバに制御を渡す(出来なさそう)のか...
437 :
デフォルトの名無しさん :03/08/01 18:19
クイックレポートをDelphi7に入れたいのですが、どこかに落ちていませんか?
438 :
デフォルトの名無しさん :03/08/01 18:21
Win32MajorVersionやWin32MinorVersionといった変数があるなら、HELPに載せておいてよ。 Professionalなら載っているかもしれないけどさ。 Personalだと、他にも使えるのにHELPに載っていない変数や関数があるのかな?
作ったゲームを画面全体(タイトルの入ったバー?も無しで)に表示するにはどうすればいいですか?
BorderStyle := bsNone; BoundsRect := Rect(0, 0, Screen.Width, Screen.Height);
>>441 どこに貼り付ければいいんですか?
自分なりに考えてやってみましたが、エラーが起きまくりです。
Drag and Drop について質問 TListBox や TTreeView, TListView 等のコンテナの中にアイテムがあるような コントロールのアイテムをドラッグした時にそのドラッグしているアイテムを 確定する方法で悩んでいます。例えば、TTreeView のアイテムをドラッグすると、 DragOver が発生しますがパラメータに入ってくる Source は常にその コンテナコントロールで、アイテム自体ではないようです じゃぁ、Selected を見ればいいんじゃないか?と、思いましたが複数選択した場合 どうしたものか…う〜ん、みなさんはどうやってますか? あと、DropTarget なるプロパティがありますが、これはドラッグアンドドロップ 操作が終了した時点で設定されるものですか?
複数選択されてたって、ListBoxのSelectedはインデックスで項目ごとの選択状態調べられるし、 ListViewはListItemの、TreeViewはTreeNodeのSelectedを調べればいいだろ。
質問したいことあるんですが、ここで解答している人って乱暴な言葉使いしかできないんですか? それとも、ここは隔離スレですか?
気にする奴は質問すんなハゲ
夏まっさかり
ナイーブなお子ちゃまがいらっしゃるようでつな。
要はドラッグしているアイテムを特定する方法に Selected 以外に ありますか?あるとしたら、どの様な方法でしょう? あと、ドラッグアンドドロップのロジックを組んだことある人は、 やはり Selected を見て、ドラッグアイテムを特定していますか? 上記、2点の方法でそれぞれメリット、デメリットとか「こんな不具合があり得る」 みたいな事教えて頂けるとありがたいです
Selectedを見てる。それ以外は知らない。
451 :
デフォルトの名無しさん :03/08/01 22:27
コンボボックスの質問です。 知ってる人いたら原因教えてください。 TInputComboBox = class(TComboBox) private { Private 宣言 } protected { Protected 宣言 } procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; public { Public 宣言 } published { Published 宣言 } end; procedure TInputComboBox.WMSetFocus(var Message: TWMSetFocus); begin showmessage('setfocus'); end; こんな継承クラスを作ってフォームに貼り付けたとします。 tabでフォーカスを移していった時にはダイアログが出ますがクリックした時に出ないのは 当たり前ですか?フォーカス移ってるんだから出てほし〜なと思うのですけども。
>>451 WM_SETFOCUS のヘルプ読んでみ?
キーボードって書いてあるが
> WM_SETFOCUSメッセージは、 ウィンドウがキーボード フォーカスを受け取った後に送られます。
スタイルによるけど、コンボボックスは中にエディット持ってるから、 クリックしたときはそっちに直接フォーカスが移ってるんだろ。 例えばcsDropDownListとかにすれば、エディット持たないから クリックでもメッセージが出る。
452さん、453さん ありがとです。 ちょっとテストをしてみました。 同じようなものをTEditで作成して検証です。 マウスクリックの場合でもTEditベースだとダイアログが出ました。 (そしてフォーカスの奪いあいで止まらなくなる) WM_SETFOCUSはフォーカスが移ればメッセージは投げられているっぽいです。 ごめんなさい>452さん 453さん説で内部的にどうなってるのか確かめてみます。 ヒントありがとでした。
456 :
デフォルトの名無しさん :03/08/02 00:00
質問なのですが、 別のアプリケーションのボタンをクリックしたいのですが、 どのようにすればよいでしょうか。
>>442 アプリケーションの新規作成でなにもないフォームにボタン一個置いて、
そこのクリックイベントに
>>441 の2行書き、
実行して、ボタンクリックしたら
>>440 の思惑通りになりませんか?
>>456 mouse_eventとか
SendMessage(ボタンのハンドル, BM_CLICK, 0, 0);
>>456 「他のアプリケーションのハンドルを得る方法」は分かりますか?
それさえ分かれば後はなんなりと。
>>460 ウィンドウクラス名か、ウィンドウのタイトルでFindWindowする。
ウィンドウクラス名は、Spy++とかで調べられる。
>>460 電卓を開いて、ソレを最小化
というのは下記サンプルが見つかったのですが、
それの中にあるボタンなどを特定がわからないです
var
hCalc: HWND; {ハンドル}
begin
hCalc:=FindWindow(nil,'電卓'); {電卓のハンドルを取得}
SendMessage(hCalc,WM_SYSCOMMAND,SC_MINIMIZE,0); {最小化}
end;
>>459 さんでいうところの、「ボタンのハンドル」を知る方法が分からない状態です
>>461 spy++というのが、ボタンのハンドル取得方法ということでしょうか?
すみません
>>463 でのサンプルページに、ボタンのハンドル取得のサンプルもまんま表示されていました。
大変失礼いたしました。アドバイス、ありがとうございました
(456書いてたときは、FindWindowすら知らなかったです)
>>463 勝手に人のアプリを自動制御されたら困る。君は困ることにならんか?
自分で作ったアプリを自分で制御するならどうにでもなるだろ。
子のハンドルを探す。
>>465 えーと、具体的にしたい作業は
「あるソフトのエディタ欄に文字を入力」
「登録ボタン」クリック
「次の文字を入力」「登録」・・・
という手作業を自動化できるかなと思いまして。
>>467 Windows3.1には標準でそういうツールが付いてきたんだけどな。(単なるマウスKBの記録再生だけど)
スクリなんとかっていうソフトもあったけど、もう出ていないみたいだな。
参考になりそうなAPI
FindWindow() mouse_event() keybd_event() IsWindowEnabled() IsWindow()
GetActiveWindow() GetWindowText() GetGUIThreadInfo() SendInput()
(^^)
>>470 ロケットマウスか?
と、思ったら違った…。
えーっと、質問です。 NKF32.DLLを使って文字コード変換するときに、 はじめの文字が英語だったらうまく変換できないとかは、 どうしたらうまくいくようになるのでしょうか?
>>472 それは nkf32.dll の問題ではないかな?
ま、くだすれだし。 nkf32 の NkfConvert の第一引数に S とか E とかを指定して、入力ファイルのエンコーディングを 明示指定してあげれば良いかと。 ところで、nkf DLL と、その Pascal インターフェースソースは複数の人が作っているんだけど それぞれ誰のを使っているの?
えっと、こんな感じでやってます。 SetNkfOption('-s'); Memo.Text:=NkfConvert(Memo.Text); うーん、誰のでしょう??
知るかよ
この帽子、ドイツんだ??
>>458 出来ました。ありがとうございます。
ボタン無しでゲーム起動から終了まで、表示することは出来ませんか?
オブジェクトインスペクタにBorderStyle欄があろうに。 つーか、ボタンがイヤならFormCreateに書けよ。
解答者の質悪ッ 人間的に駄目な奴ばっかり(藁
( ´,_ゝ`)プッ
>>479 オブジェクトインスペクタのBorderStyleは分かるのですが、
BoundsRect := Rect(0, 0, Screen.Width, Screen.Height);
の部分が分かりません。FormCreateも良く分かりません。
modとdivって何の略?
moduloとdivisionだと思う
486 :
デフォルトの名無しさん :03/08/02 18:12
>>483 分からない単語は検索するなりして分かるように努力すれば?
もうわかったから。役立たず君。
489 :
デフォルトの名無しさん :03/08/02 19:04
TWebBrowserってGIFの特許問題に引っかかったりするの?
>>490 MicrosoftはIEコンポーネントを使うならば問題無いと言っていた。
Unisisはコンポーネントを組み込んだアプリ毎に使用料を払えと言っていた。
どっちにしろもうじき特許の有効期限が切れるからキニスンナ
Unisys はドキュソって事でFA
TProgressBar の中に反転色で文字列を描画したいのですが、 どうしたら一番スマートでしょうか? 文字列には、例えば作業進行度などを「〜%」のような形で 表示したいと考えています。
>>493 TProgressBarにTLabelを乗せれば良いだけかと。
Label1:=TLabel.Create(ProgressBar1);
Label1.parent:=ProgressBar1;
TLabel.Transparent:=true;
TProgressBarを継承してSetPosition辺りをoverrrideしてパーセンテージと
進行度が常に一致するようコンポーネントを作ると良いのではないかと思われる。
それだけでは反転色にはならないだろう。
WM_PAINTで描画するというベタな方法が …ベター
てゆうか、sampleタブにズバリのコンポーネントが、、、
漏れのしゃれが寒さを増した
質問なのですが、 TMemoコンポーネトで、最初の行にカーソルを移動することはできますか?
できますよ。
ありがとうございました
Memo1.SelStart := 0;
ありがとうございました
ありがとうございました
ありがとうございました ぬるぽ
世界が平和になりますように
レスありがとうございます。 書き方が悪かったようで申し訳ないのですが、 表示するのは作業進行度とは限らず、 とにかく文字列を表示したいので、 TGauge を使う方法は利用できませんでした。 WM_PAINT を使う方法も考えましたが、 なんだかDelphiらしくない気もしています。
GroupBoxとRadioButtonの合わさったコンポーネントってありませんか? GroupBoxのキャプションの隣にRadioButtonがある、みたいな。
*やさしい*スレッドって、どうなったのですか?終わった?
質問です。 Button系のコンポーネントを利用して、ボタンが押されている状態を取得する方法がわかりません。 具体的な処理は以下のとおり。 マウスダウンにより、ボタンが押されるとタイマーを起動し、一定間隔で処理を行います。 そのマウスが離されるとタイマーをストップします。 ただし、マウスボタンが押されている状態で、カーソルがボタンから離れるとタイマーをストップ。 その状態で、カーソルがボタンに入るとタイマーを起動。 要するに、ボタンの浮き沈みと同じく、タイマーを制御したいのです。 できればフォーカスを受け取らないTSpeedButtonか、TToolBarのTToolButtonを利用したいです。 このような処理を行うにはどうすればよろしいのでしょうか? よろしくおながいします。
こういうことが出来るかどうかもわからないんだけど、 他人の作ったDLLを、自分のEXEに取り込んじゃって、 単一ファイルで配布したい。 理由は、インストーラなしである以上、ファイル構成を単純化したいから。 何とかなるかい?
>>514 Windowsはその状態を教えてくれない。
よってDownプロパティは望み通りには動作しないため、
自前でマウスメッセージを処理すること。
質問させて下さい
ブラウザ機能を用いて指定ページを表示完了したら次のページを開く
と言ったようなものを作りたいと思っています。
自分で考えたことは、WebBrowser1.Busyを用いて、状態を判断して見ようと思ったのですが
無限ループ状態になり、処理が進んでいません。
読み込み処理を実行しつつ、完了するのを待つにはどうしたらいいんでしょうか。
↓現在この状況
begin
for i1:=0 to i2 do
begin
Edit1.Text := '
http://www.xxx.yy.zz/ ';
while WebBrowser1.Busy = True do
begin
(ここに何か入れるべき…?)
end;
end;
end;
>>514 MouseDown
MouseUp
MouseEnter
MouseLeave
で出来る
ドキューンメソト コソプリート イベソト ジャ ダメナノカイ?
>>520 オマエ、ドコカラカキコシテルンダ?(ワライ
その場合は、iをグローバル変数にして、イベント発生でiを+1して 次のを実行…ってのを繰り返しという手順ですよね 少しやってみます。 サンクスーコ
すぐバグだとか騒ぐのもなんですが、 Breakプロパティでメニューを二列に表示すると、 二列目に使っている”-”の横線描画がバグっちゃってるみたいなんだけど、 回避できないですか?
>>522 グローバル変数なんか使うよりイテレータとか使う方が良いと思うけど。
イメージリストも指定した場合の描画です。 二列目以降のセパレーターが一列目までかぶって描画されます。
>>524 イテレータ…聞いたこと無かったので調べてみましたが
RubyことばかりでDelphiは見つからなかったです。
どういう事か何となくわかるような、わからないような…
この概念で考えたこと無いので実際どのように使うのかがちょっと
わかりません。
できたら簡単な具体的な使用例的な物を見せて欲しいのですが
よろしくお願いします
ありがとうございました
デザパタの本を買え
>>527 関数抜けないとbusyが解除されないと思われ
イテレータは関係ない
532 :
デフォルトの名無しさん :03/08/04 18:13
Delphiスレで聞く内容ではない気がしますが、開発ソフトがDelphiなので、 ここで質問させて下さい。 売る値段によって、機能の数や動作が変わってくるようなソフトを作る場合、 1.全てのソースをそれぞれのバージョン毎に分ける 2.同じ動きや似たような機能のソースは共有して、大幅に違う所はソースを分ける 3.全てフラグなどで切り分け、ソースは全て共有する 4.その他 のどれが良いですか? とりあえずバージョンは二つだけなのですが、後々バージョンが増えるかも しれませんし、バージョン毎に必要な機能も現時点では決定していません。 もしかしてDelphiだとそのような管理をする機能が付いていたりしますか?
あぼーん
4.その他
>>532 取らぬ狸の皮算用っていうかなんというか
>>536 ようするに仕様がコロコロ変わるんでつ(T^T)
継承をつかえ。
なるほど、仕様が変わるたびに継承で対応するわけですね。
冗談ですよ。つまらない奴ですね。
うっせークズ共。とっとと、答えろや!
543 :
デフォルトの名無しさん :03/08/04 21:05
PCJapan:2003年8月号 - 特集4:Windowsカスタマイズツールを作ろう
PCJの多くのユーザーが何らかのカスタマイズツールを使ったことがあるだろう。
そうしたツールを使っていて,「この機能がほしい」,「このインターフェイスを変え
たい」などと感じたことはないだろうか。カスタマイズツールを自分でプログラミン
グできれば,本当に欲しい機能を備えたツールが得られる。この特集では,付録
CD-ROMに収録したプログラミングツールを使って,オリジナルのカスタマイズツ
ールを作るテクニックを紹介する
Part1 簡単にプログラムを作れるDelphiをマスターしよう
Part2 プロが教えるカスタマイズツール作成テクニック
http://www.zdnet.co.jp/magazine/pcjapan/0308/sp4/
544 :
デフォルトの名無しさん :03/08/04 21:06
546 :
デフォルトの名無しさん :03/08/04 21:09
そうだ!簡単じゃないぞ! ユーザーからはあれ付けてくれこれ付けてくれって言われるし、 新OSには対応させなきゃならないし。 もちろん自分で使うってなら別だが。
550 :
デフォルトの名無しさん :03/08/04 22:45
これからも
>>549 みたいな夏厨が押し寄せてきそうな予感
ネトランとPCJapanどっちが厨読者多いだろうか。
NASAのシステムよりも窓の手がDel製と いった方がよほど説得力があると思うのだが…
窓の手など一般人からみればしょぼいヲタツール おまいらからみたハッキングツールと同じような目でみられてるので マイナスイメージしかつかねーよ
554 :
デフォルトの名無しさん :03/08/04 23:13
WINDOWS をBASICでつくることはできますか?
WINDOWSという名のソフトはBASICでも作れますが?
556 :
デフォルトの名無しさん :03/08/04 23:16
そうなんですか? どんな感じになりますか?
BASICになります
558 :
デフォルトの名無しさん :03/08/04 23:41
ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、
DLLを実行ファイルのフォルダの中に作成したサブフォルダに入れ、 なおかつ external で静的にロードすることは可能でしょうか? [Hoge] ├ hoge.exe └ [DLL] ├ huge.dll └ func.dll 可能であれば、具体的にはどう記述すればよいでしょうか? external 'DLL\huge.dll' を試してみましたが、アクセス違反が起こりました。
DLL のフルパスで、path に加えても?
>>560 path といいますと、環境変数の事でしょうか?
環境変数は弄らないようにしたいのですが…
もし弄らないと出来ないのでしたら、素直に諦めます。
コンポーネントスレってこの板にある?
>>559 あたり
procedure foo; external 'test\bar.dll';
でできたけど?(Windows 2K)Windows ローダーが DLL を見つけられない場合は
「hoge.exe - DLL が見つかりません」って表示するはず。
「アクセス違反」ということは、DLL はロードできているということで
原因は別にあるのではないかな?
566 :
デフォルトの名無しさん :03/08/05 09:47
現在フォームに表示をしている、レコード1件のみをQuickReportで プレビュー及び印刷をしたいのですが、どの様にすれば宜しいのでしょうか? Delphi6上で、TTableを使ってDBを構築しております。 恐れ入りますが、諸先輩方の知恵をお貸し頂けますでしょうか。 それではよろしくお願いいたします。
>>566 コード書かずに済ませたいなら...
1件だけなら DB 系 QReport コンポーネントを使わないで処理するってのは?
TTable の変わりに TQuery で、ひとつのレコードだけ表示するってのは?
TTable の Filter を設定して、ひとつのレコードだけ表示するってのは?
568 :
デフォルトの名無しさん :03/08/05 11:19
TNMFTPのインストールの仕方を教えて下さい。 当方Delphi7 Professionalです。 宜しくお願いします。
>>567 さっそくのレス、ありがとうございます。
現在構築済みの物に追加して、1件のみの印刷をしたいと考えております。
TTableとTQueryを並行に運用出来るのか私には分からないですが
3番目のFilter設定は使った事がありますので、カレントレコードに限定する
手法が分かれば、私の稚拙な力でも出来そうです。
この点で質問なのですが、実行中の画面上ではDBの抽出(Filter)が
行われた事に気付かせずに、この手の作業は可能なのでしょうか?
>>565 (´Д`;)
どうやら、原因は別の所にありそうです…。
現在DLLをロードするDLLを作ってるのですが、
それは関係ないですよね…。
[hogehoge]
├ hoge.exe (huge.dll をロードする実行ファイル)
└ [DLL]
├ huge.dll (現在作成中のDLL)
└ [huge]
└ func.dll (利用したいDLL)
procedure foo; external 'DLL\huge\func.dll';
CDデータベースにCDプレイヤー機能をつけて、CDドライブに入っているCDの情報を表示させたいと思っています。 いろいろ調べて、GetVolumeInformationの、SerialNumberを使えばいいのかと思いましたが、 たまたま持っていた二枚の同じCDで試してみるとSerialNumberが異なりました。 こんなときに使える関数、方法、サイトなど教えてください。お願いします。
すみませんちょっと変な文章でした・・・。 質問は、「音楽CDのタイトルを判別する方法を教えてください」です。 Delphi6Personal使ってます。よろしくお願いします。
Delphiでビートマニアみたいなものって作れますか?
SerialNumberとそのCDデータベースで実現できます
レスありがとうございます。 しかし、私が持っていた二枚の同じタイトルのCDは、異なるSerialNumberを持っていました。 同じタイトルの音楽CDに共通のID番号の様なものがあればうれしいんですが・・。
だろうね
誤爆
TListViewに重複項目を出さないようにするにはどうすればいいですか? procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem; Change: TItemChange); var i:integer; begin for i:=ListView1.Items.Count-1 downto 0 do if ListView1.Items[i]=ListView1.Items[i+1] then ListView1.Items[i+1].Delete; end; ソートしてやってみてもダメだったぽ(´・ω・`) できればSubItemの重複でできるようにお願いします。
580 :
ダサダサコーディングで良ければ :03/08/06 00:51
一旦、TStringlistに全部移してソートして戻す。 はい次↓
よーく読見返してみたけど、
>>580 はダメだな(藁
忘れてくれ。
1行なら問題無いと思うが。
ダサイけど(藁
>>579 function MatchListItem(L1, L2: TListItem): Boolean;
var
I: Integer;
begin
Result:=false;
if L1.SubItems.Count<>L2.SubItems.Count then Exit;
if not(SameText(L1.Caption, L2.Caption)) then Exit;
Result:=true;
for I:=0 to L1.SubItems.Count-1 do
begin
if not(SameText(L1.SubItems.Strings[I], L2.SubItems.Strings[I])) then
begin
Result:=false;
Break;
end;
end;
end;
続き procedure TForm1.Button1Click(Sender: TObject); var I, n: Integer; begin I:=0; while I<ListView1.Items.Count do begin n:=I+1; while n<ListView1.Items.Count do begin if MatchListItem(ListView1.Items.Item[I], ListView1.Items.Item[n]) then begin ListView1.Items.Delete(n); Dec(n); Dec(I); end; Inc(n); end; Inc(I); end; end;
>>570 まずはバグの切り分け。
DLL 名にパス名を付けない状態で正しく動くことを確認するのが先でしょう。
次に、path 環境変数に置き先ディレクトリを追加した状態でテスト。これで各 DLL が
異なるディレクトリにあっても動くかどうかを検証。
最後に external 指定にサブディレクトリを追加。
こんな順番でがんばって
>>571 CDDBみたいに、MSFアドレス、トラック数、各トラックアドレスなどから
CDを判別するのはどう?
var Memo : array[1..100] of TMemo; i : integer; begin for i := 1 to 100 do Memo[i] : =T Memo.Create(Memo[i]); これをやるとデフォルトプロバティが無いというエラーで怒られますが どうにか簡単に作る方法は無いでしょうか?
Memo[i] はこれから作るところなんだから >Memo[i] : =TMemo.Create(nil); はエラーになるでしょ? >Memo[i] : =TMemo.Create(nil); または Memo.Create(self); かな?
>>588 レスありがとうございます
試してみたところ同じエラーがでてできませんでした
エラー文を正確に書くと
>このクラスはデフォルトプロパティを持っていません
です
>>585 レスありがとうございます。
CDDBでもそのように判別しているということは、タイトルごとに共通なIDは存在しないようですね。
取得しやすい情報を組み合わせてやってみようと思います。
ありがとうございました。
>>586 さんでした・・・。
ありがとうございました。
592 :
デフォルトの名無しさん :03/08/06 07:02
初心者小僧です。 Indyコンポーネントの使い方とか、Indyコンポーネントのチップス(これを行うには このコンポーネントのこのメソッドを利用するみたいな)とかを紹介している 良いWebサイトをあれば教えてもらえないでしょうか?
>>579 なぜにOnChange?
Captionでソートしてあれば
for i := ListView1.Items.Count-1 downto 1 do
if ListView1.Items[i].Caption = ListView1.Items[i-1].Caption then
ListView1.Items[i].Delete;
SubItemsでやるならCaptionをSubItemsに変えればよろし。
SubItemsでソートしてから動かせよ。
ファイラーみたいなの作る時、みんなコンポーネント何使っているの? SamplesのShellListViewコンポーネントとか使うとFD見に行って、 ガコガコ鳴って五月蝿いんだけど…(;´Д`)
>>595 TListBoxをOwnerDraw。
俺はListviewをオーナードローとオーナーデータ。
>>587 メモコンポを100個動的に作るということですが
まさか100個同時には画面表示できないでしょうし….
もしかしたら2ちゃんねる専用ブラウザのように
複数のテキストを切り替えて表示したいのかもしれませんが,
こういう場合は各テキストの保管はとりあえず文字列変数のの配列か何かにして,
そしてテキストを表示するためのコンポ(コントロール)は1個だけにして,
アクティブなテキストを切り替えるたびに内容をコピーするのがよいと思います.
Altキーの入力を無効にするにはどうしたらいいんでしょうか。
やっぱ、自前の人もいるのですな… すばらし〜コンポーネントがどっかでフリーでソースつきで無いかなぁ…。
>603 おーおー! そういえば以前MLでもTurboPower社の話が出てましたな! 元が商用だけに期待できますな!!( ̄▽ ̄)
606 :
デフォルトの名無しさん :03/08/06 18:30
>>600 ダウンロードします、ありがとうございました。
608 :
デフォルトの名無しさん :03/08/06 21:58
リポジトリへ登録しまくっていたプロジェクトを フォルダー毎コピーして、新しいプロジェクトを作成して修正していました。 そして、フォーム上のListViewから1項目削除しようとすると、 別のフォームから継承されたコンポーネントを含んでいるため削除できません。 とエラーが出て削除できないのですが、プロジェクト内を検索してみても 継承されたコンポーネントなんてありません、何処かに前のプロジェクトの リポジトリ情報でも記録されているのでしょうか??
>>607 もうちょっと具体的に言わないと。
「これこれこういう機能を無効にしたいのでこのコンポーネントでALTキーを無効に出来ませんか?」みたいな
>>609 Alt+F4を無効にしたいのです。
ジョークソフトを作っているので。
ちなみにAlt+Ctrl+Delの無効化はSystemParametersInfoでできました
Alt+F4に別の機能を割り当てる
三つ簡単な質問あります。 shelltreeviewとfilelistboxのリンクの仕方 shelltreeview、filelistboxで選択したディレクトリの場所とファイル名の取得 上にありましたがfilelistboxのMaskを"複数"にしたい場合 超初心者ですんません・・
delphiで作ったアプリケーションで 別のプログラム(たとえばword)を動かせるのですか? 実行ボタンを単純に一個作って、ボタンを押すとword.exeを起動(その後テキストを貼り付け、保存終了をする予定)。 秀丸マクロではなく、delphiで作りたいのですが・・・
615 :
デフォルトの名無しさん :03/08/07 02:44
>>613 ShellListViewなら ShellTreeViewのShellListViewに設定するだけなんだけど。
618 :
デフォルトの名無しさん :03/08/07 12:42
JoyPadからの入力を受けるのにjoyGetPos,joyGetDevCapsなどを 使えばいいということは分かったんですが、 引数がよく分かりません。 引数はどのようにすればよいのでしょうか?
DirectInput使いなよ。
620 :
デフォルトの名無しさん :03/08/07 13:00
DelphiでTCP/IP通信をモニターするプログラムを作りたいのですが、 ポートを設定せずに通信をモニターするにはAPIとか使わないと駄目ですか?
>>615 ありがとうございます!
これを大きいアイコンではなくて一覧リスト表示したいのですが・・
あと、ディレクトリの場所とファイル名の取得はどうしたらよいでしょうか?
>>621 621を訂正します・・
ドライブコンボボックス,ファイルリストボックス,
およびディレクトリリストボックスでのディレクトリの場所とファイル名の取得はどうしたらよいでしょうか?
それぞれのドライブ、ディレクトリ、ファイル名をeditに出力したいのですが・・
FormのParentFontって、何を親にしてるの? 効いてない気がするんだけど。
Parentがnilなら意味ないよ。 FormにForm埋め込むと効いてくる。
効いたよー効いたんだよー
>>621 ViewStyleをいじる
ってこの質問却下かよ・・・
>>618 丹念に検索すれば必ずサンプルが見つかるハズだよ。
オレも昔、探したし。
ヒント:
「JOYSTICKID1」、「TJOYINFO」、「TJOYCAPS」
うまく説明出来ないんですが なにかのソフトでよくショートカットキーの割り当てをするとき 例えばキーボードのCtrl + S を押せばCtrl + S が表示されるってのがありますよね あれをdelphiでやりたいんですがそういうコンポとかありますか?
case文の中にRandom関数を入れると 初期化されない場合があると言われて困っています。 どうしたらいいのでしょうか? 簡略化してますがこんな感じです。 a := 1; Randomize; case a of 1: b := Random(100)+1; end; ShowMessage(IntToStr(b))
a := 1; b := 1; Randomize; case a of 1: b := Random(100)+1; end; ShowMessage(IntToStr(b)); でええんでないの?
>>628 THotKeyを使うってことではないでしょうか?
なんでアイツ助けた!
ごめん、誤爆した。↑
StatusBar1のPanels[0]のTextの2バイト文字の先頭1文字を消したいのですが ↓のでは消えてくれません。どこがわるいのでしょうか? Bar := StatusBar1.Panels[0].Text; Delete (Bar,2,2);
>>636 var
S: String;
L: Integer;
begin
S:=StatusBar1.Panels[0].Text;
if 0<Length(S) then
begin
L:=1+Ord(IsDBCSLeadByte(Byte(S[1])));
Delete(S, 1, L);
StatusBar1.Panels[0].Text:=S;
end;
end;
639 :
デフォルトの名無しさん :03/08/08 11:04
DelphiでHORBは使えますか?
640 :
デフォルトの名無しさん :03/08/08 12:16
コードエディタのしおりは保存できないの?
641 :
デフォルトの名無しさん :03/08/08 12:27
タイトルバーのクリックを検知する方法おしえて下さい。 よろしくおねがいします。
642 :
デフォルトの名無しさん :03/08/08 12:31
643 :
デフォルトの名無しさん :03/08/08 12:53
TTreeNodeをVisable:=Falseみたいに存在してるんだけど 見えない。ってじょうたいに出来ますか? ノードが折りたたまれて見えないのとはまた別の意味で。
644 :
デフォルトの名無しさん :03/08/08 14:15
123456789を123,456,789みたいにしたいけどできないぽ(´・ω・`) var ListItem: TListItem; 略 ListItem:=Items.Add; ListItem.Caption:=SearchRec.Name; ListItem.SubItems.Add(Format('%10.0n', [(SearchRec.Size + $3ff) shr 10])); ListItem.SubItems.Add(DateTimeToStr(FileDateToDateTime(SearchRec.Time))); 略 これでやると(%n使うと)エラー吐いて死んでくれます。 どうすればよろしですか?
>>644 ヘルプの%nの説明に、引数は浮動小数点値でなくてはならないって書いてる。
646 :
デフォルトの名無しさん :03/08/08 14:32
ShellListViewで、カラムをクリックしたときにファイルサイズや日付でソートするには どうしたら良いのでしょうか? いろいろ見てみたのですが解りませんでした…(汗)。
647 :
デフォルトの名無しさん :03/08/08 15:00
Formに乗っている全てのコントロールを強制的に 再描画させるにはどうしたら良いでしょうか?
Form.Refresh;
>>636 × Delete(Bar, 2, 2)
○ Delete(Bar, 1, 2)
文字列の先頭が2バイト文字でその1文字を削除する場合は
先頭の2バイト(1バイト目から2バイト分)を削除しなければいけないのですから,
Delete(Bar, 1, 2) が正解となります.
文字列の先頭が2バイト文字とは限らない場合は
>>638 のように1バイト文字なら1バイト,2バイト文字なら2バイトを削除するようにするか,
あるいはワイド文字列を使います.
var
ws: WideString;
begin
ws := StatusBar1.Panels[0]; // ワイド文字列に変換して代入されます
Delete(ws, 1, 1); // ワイド文字列版のDelete手続き
StatusBar1.Panels[0] := ws; // 通常の文字列に変換して代入されます
end;
650 :
デフォルトの名無しさん :03/08/08 17:37
Office2000 professional、Delphi6 personalを持っています。 データベースを作るとして 1)前者で作ると、ACCESSの入ってない環境では使えない。 2)Delphiで作ると自立した?アプリケーションが作れるので、多くの環境で 使えるが、personal版ではDBは作れない。 という理解でよろしいのでしょうか?
>>645 とりあえずエラーは吐かなくなったので試行錯誤してみます
>>645 ぁ、できました。どうもありがとうございました
WebBrowserコンポーネントを使ってタブブラウザを つくっていますが、キャッシュを使用しない更新は var i: integer; Level: OleVariant; begin if (MDIChildCount > 0) then begin with MainForm do for i := MDIChildCount-1 downto 0 do if TIEWindow(MDIChildren[i]).WebBrowser1.Document <> nil then begin TIEWindow(MDIChildren[i]).WebBrowser1.Refresh2(Level); end; end; end; でいいのでしょうか。教えてください。お願いします。
>>653 自己レスですが、それであってるようでした。
ありがとうございました。
655 :
デフォルトの名無しさん :03/08/08 20:45
宣言したのにまったく使ってない変数はやっぱりアセンブルされたときに 余分なコードとしてEXEに組み込まれてるの? それとも最適化の段階でカットされてるのかな?
Windowsキーを無効にしたいんですが、どうやればいいのでしょうか。 キーボードを壊すとかは勘弁して。
657 :
デフォルトの名無しさん :03/08/08 20:56
Delphi6 Personalで簡単なメーラーを作りたいのですが、 Personalだと無理でしょうか?
658 :
デフォルトの名無しさん :03/08/08 21:07
>>657 Delphi6 + Indyコンポーネントでできると思う
659 :
デフォルトの名無しさん :03/08/08 21:14
>>658 ありがとうございます。
調べてがんばってみます。
661 :
デフォルトの名無しさん :03/08/08 21:19
>1)前者で作ると、ACCESSの入ってない環境では使えない。
おおむねその通りだと思います。
>2)Delphiで作ると自立した?アプリケーションが作れるので、多くの環境で
> 使えるが、personal版ではDBは作れない。
前者はあってますが、後者はそうでもありません。
Windowsにはデータベースエンジンの「ADO」という一種のActiveXが
組み込まれていて(古いOSには入ってませんが)、DelphiからADOを
コントロールすれば、Accessを持っていない環境でもAccessファイルを
操作することが出来ます。ただしPersonalではめんどうです。
以前書いたので参考にしてください(92から。98はわたしです)
http://pc3.2ch.net/tech/kako/1028/10284/1028436692.html
>>656 無効にしたい処理の前に下記のコードを記述。
ShowMessage('Windowsキーを押さないでね!v(^○^)v')
663 :
デフォルトの名無しさん :03/08/08 21:25
ひろみに会いたい人、ひろみが欲しい人、手ぇあげてっ!
はーい、その指をマウスにもってってぇ・・・
ここをclick! ☆ъ( ゜ー^)>
http://www.gals-cafe.tv 1週間毎日10分、がんばってサービスしますっ!来てください♪
・・・えっ?誰も手ぇあげてなかったってハナシ?
そんなんナシだよぉ〜〜〜。・°°・(>_<)・°°・。
会いたいよぉ。きてくださぁい( ・O・)∞∞OOO○○○☆(〃。。〃)
664 :
デフォルトの名無しさん :03/08/08 21:25
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
665 :
デフォルトの名無しさん :03/08/08 23:11
Button1を押すと「フォームを50%に縮小して表示」 このプロシージャ、どんなふうに書けばいいんでしょ
procedure TForm1.Button1Click(Sender: TObject); begin height := height div 2; width := width div 2; end;
スレ違いかも知れませんが 【】すみつきカッコの文字コード分かる方いらっしゃいます?
668 :
デフォルトの名無しさん :03/08/08 23:33
>661 有難うございます。 教えて頂いたスレのレス、保存させて頂きました。 少しずつ、勉強していきたいと思います。
670 :
デフォルトの名無しさん :03/08/08 23:35
>>661 OS means Windowsかよ。おめでてぇ。
672 :
デフォルトの名無しさん :03/08/08 23:38
>>670 Delphiスレで何言ってんの(^-^*)♪
673 :
無料動画直リン :03/08/08 23:38
>>671 素直にSJISの文字コード表見た方が良いと思うぞ。
>>666 _| ̄|○
まったくもって申し訳ないです
書き方が悪かったようで。
縮小したいのはフォームそれ自体ではなく、中身なのでした。
こんな書き方も変かな。
1000Pの文字とか(んな無茶な)、普通に表示したらはみ出すようなものを、
おさめてくれるような。
ExcelVBAでいうところの
ActiveWindow.Zoom = 50
みたいな
>>674 スンマセン。他の括弧は見つかったんですが【】は見つからなくて・・・
見直してきます
>>675 地道に全部のサイズを手動で制御するしかないんじゃないかな…?
それか、どっか別の場所の架空のフォームを作って、そこに書かせて
それをサイズを縮小してコピーとか…
イベントとかを座標修正して転送してやる必要がありそうだけど。
Timerコンポーネントがよく分からないんですけど Timer1.Enabled := False ; とするまでIntervalで指定した間隔で実行し続ける ということではないのでしょうか?
それで合ってます
>>679 そうですかありがとうございました。
では違うところが間違っていたのか・・・。
Intervalで指定した間隔でタイマーイベントを繰り返す
>>675 有償コンポがあるくらいだから標準では無理。
procedure TForm1.FileListBox2DblClick(Sender: TObject); begin FileListBox2.FileEdit:=Edit19; end; list内ファイルをダブルクリックをすればedit19に出力するんですが、 list内のファイルを選択する一回目はダブルクリックでいけるのですが、 二回目からはワンクリックでedit19に出力してしまいます・・ 二回目以降もダブルクリックで出力できるようにするには? 教えてください・・
使い方間違ってます。
最小化とかは普通に出来ても最大化やサイズ変更が出来ない フォームを作るにはどうすればいいのですかね? BorderStyleとかいじってもうまくいきません。
BorderStyleがbsSingleで、BorderIconsのbiMaximizeをFalse。
shift_jis 2バイト文字コードから、直接文字を表示するにはどうすればいいんでしょうか? WideCharにすると、文字コードがずれるし分かりません。
ボタンの上とかにマウスを載せるとポップアップヒント(?)が出るのはどうやってるんですか?
ListViewで項目を選択する際 一個目は問題ないんですがその後他の項目を選択しようとすると OnSelectItemでエラーが出てとまってしまいます。 どうにかなりませんか?
>>691 該当するコーディングをチェックし直す。
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); begin Edit2.Text:=ListView1.Selected.Caption; Edit3.Text:=ListView1.Selected.SubItems[2]; end; 2個目を選択しようとした時↑の Edit2.Text:=ListView1.Selected.Caption; に引っかかってる・・・。 何が問題なのかわかんない・・。漏れの頭?
if Key = 'a' then begin ShowMessage('a'); end; 押すkeyがaではなくspaceで反応してほしいのですが そう言う場合はどう改変したらよいのでしょうか?
SubItems[2];の「2」って何を示してるつもりダス? あと、エラーで困ってる場合は、そのエラー文も書くと(略)
>>695 SubItemの3つ目です。vsReportでのListViewの左から4つ目の項目。
コメントアウトしてみてもやはり2回目でエラーでした。
デバッガ例外が発生-----
プロジェクトが EAccessVilotationクラスの例外を生成しました。
'Access violation at address 004769CE in module 'Project1.exe'. Read of address 00000024'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
[OK] [ヘルプ(H)]
------
>>696 if Selected then
begin
Edit2.Text:=ListView1.Selected.Caption;
Edit3.Text:=ListView1.Selected.SubItems[2];
end;
>>698 (TT)ありがとうございました。無事選択できるようになりました。
>>694 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=' ' then ShowMessage( ' ' );
end;
こういう意味?
>>700 すいません、スペースバーを押すことによって反応して欲しいということです。
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_SPACE then begin ShowMessage('a'); end;
ぁ、すまん。イベント違うな 参考までに リターンキー VK_RETURN スペースキー VK_SPACE エスケープキー VK__ESCAPE SHIFTキー VK_SHIFT CTRLキー VK_CTRL ALTキー VK_ALT F1 〜 F12 VK_F1 〜 VK_F12 BSキー VK_BACKSPACE カーソルキー VK_LEFT , VK_UP , VK_RIGHT , VK_DOWN
>>700 もう一度すいません。
key=' ' でもスペースに反応してくれるんですね。
ありがとうございました。
>>702 ありがとうございました。
もう一つ質問なんですけどこれをCtrl+なにかのキーで
反応するようにするにはどうしたらいいのでしょうか?
>>703 ifを二重にしたらCtrl+なにかもできそうですね。
ありがとうございました。
>>677 >>682 お手数おかけしました
ほぼ10時間、頭かきむしりながら別フォームで試そうとしましたけど
体力の限界です。
今回のところは投げ出します。
もちょっと腕上げてから出直してきます。
ステータスバーに時間が減って行ってるのが視覚的に分かるような コンポーネントをいれたいのですがちょうど良いコンポーネントはありませんか? プログレスバーだと増えているようなイメージがあるので・・・・。
>時間が減って行ってる のを逆手にとれば、プログレスバーでいいじゃん
>>707 Anchorsを全部外してみては?
違うかな?
>>708 Windowsでは数値が減るのは殆どが数字で表現されているよ。
プログレスとかゲージとか使うんなら、経過時間(増える)とかにすれ。
プログレスバーで満タンから減らしていくっていうのはダメダメ(奇抜)ね。
あ、ビジネス系じゃなくてゲームなら許容されるかもね。
TComboBoxって複数bytes文字に対応してないの? BSが1bytes毎なんだけど。
TListViewのOwnerDrawについて詳しく説明されてるHPないですか?
>>713 AutoCompleteがTrueになってない?
質問なのですが、
TRichEditコンポーネトで、最初の行にカーソルを移動することができたら、
その方法を教えていただけませんか?
>>503 をみて、TMemoコンポーネントなら
できるようになったのですが、同じ方法では
対応できていないようなので、よろしくお願いします。
>>716 検索が足りないと思うよ。
リッチエディットの最後の行:=richedit1.Lines.Count;
RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX,リッチエディットの最後の行,0);
RichEdit1.Perform(EM_SCROLLCARET,0,0);
フォーカスが当たらないとダメっぽいから注意。
TlistView OwnerDraw ListView OwnerDraw Delphi Ownerdraw リストビュー OwnerDraw TListView オーナードロー Delphi オーナードロー こんだけググっても見つからないなんて(;´Д`) 他にイイ(・A・)検索単語ありますか?
>>718 (´-`)。o ○ (オーナードローの何が知りたいのか書かないから、レスが付かないと思われ…)
Editに入力されている文字が1バイト文字かどうか判断したいのですがよい方法はないでしょうか? 入力できるのを1バイト文字に固定せずif文等での判断でいいのですが。 よろしくお願いします。
ByteType
Formの拡大に合わせてボタンが拡大されるようにするにはどうすればいいんですか?
>>721 ありがとうございました。
しかし使い方がよく分からないので解説していただけないでしょうか?
ググってもよく分からなかったもので。
>>723 Delphiに付いているヘルプは見ましたか?
>>722 Anchorsを全部trueにしたり色々してみて研究してください
>>687 Shift-JISコードに対応する文字を出したいということでしょうか.
{
Shift-JISコードを文字に変換します.
}
function SjisToStr(const SJisCode: word): string;
begin
SetLength(Result, 2);
Result[1] := chr(SJisCode shr 8);
Result[2] := chr(SJisCode and $ff);
end;
{
Edit1.TextにシフトJISコード
Edit2.Textにそれに対応する文字
}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := SjisToStr(StrToInt('$' + Edit1.Text));
end;
>>727 ようやく分かりました。
脳みそ無限ループに入っていたので、大感謝!
>>723 「これはどうするのだろう?分からない」
↓質問
「レスは来たけど、やりかたが分からない」
↓質問
…
ループを続ける気ですか?ヒントもらったんだから、徹底的にいろいろ
実験してからでも遅くは無いと思うが…。
>>723 bytetype(Edit1.Text[i])で戻り値が
mbTrailByte //全角2バイト目
mbLeadByte //全角1バイト目
mbSingleByte //半角
わかりました。 ありがとうございました。
732 :
デフォルトの名無しさん :03/08/11 12:34
delphiでIRCクライアントの作成はできますか? ただ会話さえできれば良い程度で、ファイルの受け渡しや @配布とかモード変更とかも無し程度の機能です
>>732 RFC 1459
TClientSocket
>>725 それだと大きくなり過ぎるんですよ。
Formと同じくらいの倍率で拡大することはできないのでしょうか?
どこかの海外のコンポーネントで、 ボタン状で、押下するとメニューが出る、 っていうやつがあったと思うんだけど、 どこのサイトだっけ…?
すいませんVB厨です。 Delphiを使うことになって勉強しるのですが、わからないことがあるので、 教えていただけないでしょうか。 Form1からForm2を開きたいのですが、Form2を同時に何個も開き、 同じ処理をさせたいと思っています。 (例えば、Form1でjpgファイルを選択すると、次々に Form2が開き、それぞれ異なる画像が表示されるような・・・・) 例えばVBですと、 Dim objForm(10) as Object 'オブジェクト型で配列を作成 Set objForm(i) = New Form2 'オブジェクトのコピー objForm(1).Show '1.jpgが選択されフォーム表示 objForm(2).Show '2.jpgが選択されフォーム表示 のようにすると、Form2を何回も再利用できますよね。 このとき、2.jpgを選択すると1.jpgのフォームは残しておきたいのと、 例えば画像をクリックしたときに何らかの動作ができるようイベント も取得したいと思っています。 Delphiでは、どのようにすれば実現できるのでしょうか。 過去スレで似たようなのがありましたが、いまいちピンとこないので、質問 させていただきました。 まったくわからないので途方にくれています。よろしくお願いいたします。
>>736 Delphiでは、作成したフォームが、既にクラスになってます。
Var
F1:TMyForm;
F2:TMyForm;
Begin
F1 = TMyForm.Create(self);
F1.Show;
F2 = TMyForm.Create(self);
F2.Show;
です。配列にしたきゃ、TObjectかTFormの配列に代入して下さい。
>>736 なぜ最初に「すいません」と謝るのか。
「VB厨ですいません」と謝っているのか。
だとしたらそれは間違い。
外人に対して「日本人ですいません」と言ってるようなもの。
言語の壁は、ベルリンの壁より厚いが、生垣より低いはず。
>>737 お、ありがとうございます。
なるほど!なんか、そのように聞いて目の前のモヤがなくなった気がします。
少しだけオブジェクト指向の考え方に近づいたような気がします。
ちと長くなりますが、後進の方のために記述しておきます。
普通に新しくForm2を作ります。
Form1のinterfaceのusesの部分にUnit2を追加し、
arrForm2 :array[0..10]of TForm2;と変数を宣言し、
あとはarrForm2[0] := TForm2.Create(Self);で無事に
つくることができました。
はじめは何故かTFormでオブジェクトを造っていたので、
TForm2に設置したエディットボックスをいじることができず、
悩んでしまいましたw
わざわざありがとうございました。
また疑問があったらよろしくお願いします。
>>738 なんか申し訳ないかな?と思いまして。
どもすいません
>>734 じゃあ、なぜ先にそう書かない
質問スレで小出しすんなボケが
743 :
デフォルトの名無しさん :03/08/11 18:21
unit A の interface 部で宣言した定数 CONST_A1 を、unit B で使うためには、 unit B で uses A をするだけではだめなのでしょうか? "未定義の識別子" となってしまいます。 同じような形で宣言した型 typeA1 は使えるようなのですが。
744 :
デフォルトの名無しさん :03/08/11 18:51
>743 いや、それで使えるはずだよ。スペルミスとかじゃないの?
hogehoge : byte; このhogehogeの 上位4ビット(age)と下位4ビット(sage)に分けたいのですが、 どうしたらいいですか? delphiの最小単位がbyteかな?どうすれば。。。
shl and and
hogehoge&0xF0 hogehoge&0x0F
MainMenuやPopupMenuの背景色を変える方法ありませんかー?
オナドロー
>751 TMenuBar経由だと出来ないっぽい…
ScrollBoxにImage1を置いて、マウスドラッグでスクロールさせるには どんな風にコーディングすればいいのでしょうか?
>>754 つまんで移動する感じ?
MouseDownとMouseMoveとMouseUpを使用する。
MouseDownでフラグをON
MouseMoveかつフラグONのときに移動
MouseUpでフラグOFF
>>755 「スクロールさせる」の部分が分からないんじゃないの?
>>754 var
DragPos : TPoint; DragDown : boolean;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DragDown := true; DragPos.X := X; DragPos.Y := Y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
MovePos : TPoint;
begin
if DragDown then
begin
with ScrollBox1 do
begin
if HorzScrollBar.Position > HorzScrollBar.Range then HorzScrollBar.Position := HorzScrollBar.Range;
if HorzScrollBar.Position < 0 then HorzScrollBar.Position := 0;
if VertScrollBar.Position > VertScrollBar.Range then VertScrollBar.Position := VertScrollBar.Range;
if VertScrollBar.Position < 0 then VertScrollBar.Position := 0;
HorzScrollBar.Position := HorzScrollBar.Position - (X - StartDragPos.X);
VertScrollBar.Position := VertScrollBar.Position - (Y - StartDragPos.y);
end;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DragDown := false;
end;
>757 うまくいきましたです。ありがとうございます。 ソースの方は、 ・使用されていないMovePosの削除 ・宣言されてないStartDragPosをDragPosに変更 しましたが、それで正しいですよね?
759 :
デフォルトの名無しさん :03/08/12 13:53
>>719 根本から分かってない、というのが適切です。その上やりたいことがいっぱいあるんで。もうだめぽ
OwnerDrawでTListViewに項目を描画することすらできない・・・
vsReportでのCaptionは何とか追加できたんですがSubItemが描画できません
そこで、お願いがあります。
Button1をクリックするとListView1(vsReport)にOwnerDrawで
|A |B |C
|D |E |F
と描画する方法を教えてください。どのイベントで何を発生させればいいのかすら分かりません。
それさえできれば試行錯誤で他のもできるようになると思いますんで。
>>759 何がわかっていないのかわかってるならそこから調べればいいだろ?
根本からわかってないならそもそもOwnerDrawが何なのか調べろ
761 :
デフォルトの名無しさん :03/08/12 15:52
Delphiに未来はあるんでつか?
Delphiにあったとてお前には無い
Streamとかって、LoadFromStream/SaveToStream出来ますが、 2つのStreamを1つに繋げるには、どう書けばよいですか?
var src1, src2, dest: TStream; dest.CopyFrom(src1, 0); dest.CopyFrom(src2, 0);
有難うございました
>>764 0だと全部読んでくれるんですね。
>>760 文句言うなら最初から答えるなよ。知障、スレタイ読めヴォケ
767 :
デフォルトの名無しさん :03/08/12 19:13
IndyのIdHttpServerって例外が消されるんですか? エラーが知りたい場合どうすんでしょ。 エラーメッセージだけでも欲しい。
>>766 文句じゃなくてアドバイスだろ
超初心てのは何がわからないのかもわかってない香具師
何がわからないかわかっているのに調べないのはただの馬鹿
>>759 Demosディレクトリの下にOwnerlstってサンプルがあるから見てみたら?
リストビューじゃなくてリストボックスだけど、基本は同じ。
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。 特典があります。
771 :
デフォルトの名無しさん :03/08/12 20:41
>>770 メール覧の厨房撃退ってなんだ? 荒らすなボケ。
ハァ? 寝ぼけてんのかこのヴぉけ失せろや
お前が厨房丸出しだろ
774 :
デフォルトの名無しさん :03/08/12 21:23
>>770 見て始めましたが何か?
どんな特典か楽しみですね。
あなたが真性厨房になる所が見られるのですか?
必死だなwwwwwwwwwwwwwwwwwwwwww
776 :
デフォルトの名無しさん :03/08/12 21:27
で、特典って何よ?
厨房撃退は荒らしです。無視しましょう。
荒れろ荒れろwwwwwwwwwwwwwwwwwwwwwwwww
>>759 各項目のCaptionの描画まではできているのですね.
リストビューコンポのオーナー描画機能は何度も拡張されたためにややこしくなっていますが,基本的にはOnDrawItemイベントのみを使うと考えてください.
(OwnerDrawプロパティをTrueにしないとこのイベントは発生しません)
このイベントは項目ごと発生します.項目の見出しやサブアイテムごとに描画イベントがあるわけではありません.イベントハンドラでは項目の見出しとそれに対応するサブアイテムの描画も同時に行います.
イベントハンドラには項目の見出しとサブアイテムの描画領域は渡されませんが,
・全体の領域(上下左右の端)→引数Rect
・各領域の上と下の端→引数Rectと同じ
・見出し領域(一番左の領域)の左端→引数Rectと同じ
・それぞれの幅→(Sender as TListView).Columns[(カラムのインデックス)].Width
これらから各領域が求められます.
なお選ばれている項目の強調表示やフォーカス(点線枠)の表示も自分で描画しなければなりません.イベントハンドラの引数Stateを参照して,選択されていたりフォーカスがあることがわかるように描画してください.
「…と考えてください」って言い切ってしまいましたが,全然違うじゃないか_| ̄|○ すいません.出直してきます(首つりAA略)
すごい初歩的な質問なんですが・・ 「'」を出力したいのですけど・・ C言語では「\」を前につければ出力できますが、パスカル言語では?
chr($27)
ここはバカばっかりか! 糞でるふぁ〜い ぷー
>>784 Delphiユーザは、「糞して、死ね」が合言葉だからね。
あれ。もっといい答えがあるのかと思った(^^;
>>780 他のイベントは通常どおりでOnCustomDrawItem等のイベントを色々設定すればいいんですよね?
TListView の CustomDraw は2つの方法がありまして,1つは DrawItem プロパティを True して OnDrawItem イベントですべてを描く方法. もう1つは DrawItem プロパティを False のまま OnCustomDrawItem, OnCustomDrawSubItemイベントで描く方法です. 後者では DefaultDraw 引数でキャプションやフォーカスの描画を任せるかどうかが決められます. 更に細かいステージが必要なら OnAdvancedCustomDraw, OnAdvancedCustomDrawSubItem イベントを使えとありますが, これらはバグっていて cdPrePaint 以外が発生していません.
''''
>>790 助け船に感謝致します.
ところで後者の方法では項目の表示領域はどうやって取得するのでしょうか?
OnDrawItemイベントと違って表示領域を引数で渡してくれるわけではないようなので
試そうとして行き詰まってしまいました.
(というか数年前に同じ場所でつまづいたきりだったのを思い出しました…)
Rect:=Item.DisplayRect(drBounds);
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。 特典があります。
796 :
デフォルトの名無しさん :03/08/13 19:16
StringGrid の一カラムを非表示にして、隠しカラム的に使うようなことは できないのでしょうか?
>>796 ビューでデータ管理しようとする無かれ。
799 :
デフォルトの名無しさん :03/08/13 20:18
>>796 やれるよ、なんも無いはずのグリッドに値書けるでしょ。
>>797 一説には、ケースバイケースでは?
>一説には 憶測でしゃべんな
さすがにお盆なのでVBプログラマ様もデスマーチから解放されたかな?
>>799 なるほど。できますね。
RowCount, ColCount などは表示上の数ということですか。
実質、値をセットできる範囲の制限とはできるのでしょうか?
なんか気持ち悪いな……。
MathのInRangeと同じような感じで、 PointがRect内か否かを返す関数ありませんか? 自作は簡単ですが、最適化された関数が 標準であれば、それを使いたいのですが、 ちょっとヘルプで見当たらなくて…。 (探し方が甘い?)
>804 わっはー ビンゴです。うまく行きました。 元はAPIなんですな。
>>801 関係ないスレで暴れるなよ。アンチVB厨。
>>804 俺もちょうどこんな関数ほしかったところだ。タイミング(・∀・)イイ!!
まともなOOPLならRectangleクラスのメソッド探せば すぐ目的のメソッドが見つかるのにな。 Delphiって使いにくいね。
>Rectangleクラスのメソッド探せば そんなもんにまでクラス持ち出して・・・激しく重そうだな。
>>808 まともなOOPLかどうかは関係ないだろ。
DelphiがまともなOOPLだとは思わないが
目的のメソッドが見つからないのは
Delphiが糞だからだ。
>>810 関係あるだろ。Rectangleのメソッドは高々2・30個しかないから
Containsメソッドを探すのも容易。
それに対してPtInRectはフラットに並んだ数百数千のAPIから探し出す必要がある。
糞なのは手続き型言語全部だな。
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。 特典があります。
>>809 いまや貧乏人の低スペック環境なんか見てないんだよ
未だにDel厨はクラスが重いとかいってんのか?
>>813 でもJavaはクライアントサイドじゃ使えないって結論に達してますよ。
Java?? Del厨がかく乱作戦に出たようです。
>>815 サーバサイドでは使えますが何か?
Delphiとは違ってなぁ。
>>817 >Delphiとは違ってなぁ。
使えないんですか?絶対に?本当?
Delphiはクラスにするととても重くなるのです。
マターリしる!(・∀・) ここは初心者向け質問・解答のスレっすよ! バトルしたかったらそういうスレにGo!!
なんでクラスが重いんだ? 馬鹿じゃねーの(w
>>821 禿げ同。しかし
>>809 のような勘違いさんがいるのですよ。
Delphi使いの恥です。もう氏ねと。
いやいや、Rectangleを数千個とか使うのなら、どうだろう? RecordのRectと比べて、クラスの方が当然コストはかかるだろう
お前ら無知だね。 DelphiでRectangleクラス作ったら重いだろ。 これはもう言語の構造的欠陥といってもいい。
馬鹿大増殖(プヒュー
ここはスタックとヒープの区別のつかないお馬鹿ちゃんが集うスレですか?
827 :
デフォルトの名無しさん :03/08/13 22:56
listviewで数字のソートがうまくできないんですが・・・・ みなさん取り込み中?
SortType
>>794 ありがとうございます.Del5のTListItemのプロパティ一覧には出てこないので見落としていました….
>>796 昔やりましたが
>>797 さんに賛成.
情報を表示・編集(操作)する場所と保管する場所はできる限り分離した方がよいです.Delphiのデータベースコンポはまさにその良い見本になっているのですが,Per版ユーザーに見る機会がないのはもったいない話.
>>802 RowCount/ColCountは実際の数を返すはず.
>>811 私の場合Win32日本語ヘルプ(例の古いやつ)でカテゴリ別で調べたのでそんなに苦労しませんでした.Win3.1時代に電話帳のようなAPIリファレンスを買ったものの全くといって良いほど使わなかった苦い経験が生きているのでしょうか.
832 :
デフォルトの名無しさん :03/08/13 23:54
try〜finally文について質問です。 finally節は、エラーが起きても確実に実行したいコードを 書くところだと理解しているのですが、エラーが起きてないの にtry節でExitを実行してfinally節を通過することを期待す るようなコードの書き方は正しいのですか? たとえば、 StringList:=TStringList.Create; try (処理1) if f = False then ←処理2を実行する必要がないときは抜ける Exit;←@ (処理2) finally StringList.Free;←A end; @で抜けてもAが確実に実行されることはヘルプに書いて あるのですが、エラーが起きてないのにfinally節へ飛ぶ のを期待するのは作法としていいんでしょうか?
もちろんいいよ
>>832 そうじゃないとException型を引数としたキャッチと同じになってしまう。
begin try exit; finally foo; end; end; は begin try try raise ExitException.Create; finally foo; end; except(e: ExitException) end; end; とexitは例外で、最外周に暗黙のtry excpetがあると解釈しろとかいう説明が以前あったな。
836 :
デフォルトの名無しさん :03/08/14 07:46
PC Japanを見てはじめました。 誰か解凍ソフトの作り方教えろ。
DLLを作っていて文字列形の返し方が分かりません。 誰か教えてください
>>837 dll作ったときに長々とコメントとして書いてあった気が。
>839 あれはDelphiのString型としての話ではなかったっけ? Cと互換の文字列ならまた話は違うかと。 …と、未経験者なので適当に語ってみた(;´Д`)
841 :
デフォルトの名無しさん :03/08/14 11:47
Delphi.NETって、VB.NETやVC#.NETみたいにWindows APIを使用するときには 宣言は必要ですか? それとも不要?
文字列のアドレス渡してもい、そこに文字列を入れておけばいいんじゃなくて?鉄郎
デザパタのCommandパターンのDelphiでの実例を 分かりやすく解説してくれているページってありませんか? UNDO機能を実装したいんです。
×UNDO機能を実装したいんです。 ○UNKO機能を実装したいんです。
Undo;
>>843 TObjectListにCommandオブジェクト彫り込んでいけば?
命令すんな
>>847 dcc32.exeよ、気持ちは分かるがそう怒るな。
よろしくお願いします。Delphi7です。 再生/録音のピークメーターを実装したいのですが、 どこから始めればいいのかさっぱりです。 Webでも、そういう記述ないし・・・・。 サウンドカードにピークメーターが実装されている場合 には可能のようなんですが、実装されてない場合は、 どっからもってくればいいんでしょうか。 OS標準のマイクのテストなんか、あっさりと実現してい るんですよね・・・・。 どなたか、お教え下さい。
>>849 ピークメーターって何ですか?
mmsystem.hに関しては多少知識がありますが。
>>850 ありがとうございます。
要は、入力可能最大音量を100%として、現在、何%の
音量が入力されているかを知りたいのです。
例えばWave録音するときに、一定以下の音量の場合
は録音を停止したりできればいいなぁ・・・・と。
どなたかお知恵をお貸しください。
>>853 Wave取り込んで 現在の音量÷量子化数×100とかは?
開始から10秒までにボタンを押したらこれ、20秒までに押したらこれ、のように、 時間によって判定の結果を変えたいのですが、どういう文を書けばいいのでしょうか? ご指導お願いします。
>>855 開始時刻を記録。
ボタンが押されたら現在時刻と開始時刻から経過時間を求める。
似る成焼くなり。
857 :
デフォルトの名無しさん :03/08/14 20:49
>>857 >ある程度、Waveファイルに関する知識が必要。
PCMについての知識なら解るけど、内部でもRIFFチャンク形式でやりとりするの?
859 :
デフォルトの名無しさん :03/08/14 23:03
>>858 内部では、PCMのバイナリデータの読み書き。(WAVEFORMATEX構造体)
ただ、849は再生・録音をやりたいらしいので、RIFFチャンク形式の知識も
必要になる。
Delphiで他アプリが送信したパケットを取り込んだりできますか? ようするに、他アプリのネットへの接続に、プロキシ通したいんですが。 (靴下は鯖が少ないのでダメ&SockCap32てのがあるんで。
送信「した」のに?
すいません 他アプリ(普通のネットにつなぐヤシ) → Delphiで作成したソフト → 串 → お目当てのサーバ と、こんな風にしたいんですが。
Timerの使い方がよくわからないんですが…。 どういうコードを書けばいいんでしょうか?
それ以前に何がしたいんだ?
>>865 それもそうだな、スマンスマン。で、何がしたいんだ?
すいません、863=855です。 課題(?)で音ゲーを作ろうと思っています。 判定を秒単位で三段階くらいに分けたいんです。 そのためTimerを使って、指定された時間±何秒、とかで結果を変えたいのですが、 ネットや本などに載ってないので… よろしくお願いします。
>>855 Timerは一定間隔で何かをするときに使うものだからちょっと違う。
GetTickCount使え
startTime := GetTickCount;
ってやっといて
ボタン押されたら
(GetTickCount - startTime) div 1000
で経過時間が得られる
∧,,∧
ミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~)
Timerは使わなくてもいいのでは??
プログラム起動時に
TTime型の変数にNowで時間を取得しておいて
あとはボタンを押した時に
Nowで時間を取得して、
起動時からどれくらい時間が経ったかを
判定する。
という処理の流れになるのではないでしょうか。
って、
>>868 さんとかぶったな。
精度が必要ならNow関数より
GetTickCountがいいっすね。
どうもありがとうございます!それで進めてみます。
接続されたライブカメラや、デジカメのプロパティを開きたい のですが、どうすればいいでしょう。。。 通常のコンパネのスキャナとカメラからは見ることのできない プロパティ画面がカメラに存在するようなのですが・・・・。 あとコンパネのマウスのプロパティとか、キーボードのプロパ ティはShellApiを使って開けるのですが、そのなかでも特定の タブを選択した状態で表示させることってできるんですかね。
>>871 systemディレクトリの
*.CPLを開けば出来る
>>872 全部開いてもでてきませんですた・・・・
デバイスドライバのDLLとかに入っているのかな・・・
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
>>857 ありがとうございます!
まだ観てないのですが、取り急ぎお礼まで。
Wave関連はコンポーネントがあるので、その知識は
必要とはしないです。とにかく、入力音量の値だけ
持ってくることができれば、それにあわせてTrueと
Falseを設定してあげれば済むので・・・・。
また質問させてもらうかもしれません。よろしくです。
unitAで宣言しているレコード型変数を引数にして、 unitBにある関数に渡すことは出来ますか? unitBでレコード宣言したら [エラー] edit_form.pas(313): 'unitA.Thogehoge' と 'unitB.Thogehoge' には互換性がありません と出たんです
var unitB.Thogehoge rec;とユニット名を修飾するか 'unitB.Thogehoge' の定義を削除。
879 :
デフォルトの名無しさん :03/08/15 18:13
usesで指定してあるMessagesとかの中身というか、定義をみたいのですが・・・・
質問です。 Delphi6Personal版のコードエディタで、行末でカーソルを→に入れたら 次の行頭に行かずさらに右に進んでしまうのですが、 こういったDelphi独自(?)の操作性には慣れるしかないのでしょうか? 設定でよくあるエディタのように行頭に行くようにしたいのですが…
ふと #define begin { #define end } を思い出した。
は?
>>886 別の言語も知っておいた方が良いぞ。
特にDelphiはC言語知ってると世界が広がる。
delphiのヘルプに他のヘルプのキーワードを追加したいんですがどうにかやる方法ありますか? delphi6 personalです
>>887 C言語はまったくわからないけど
Borland C++を使ってみたほうがいいかな?
>>889 WindowsAPIの宣言読替とか位は出来るようになってた方が楽ちん。
>>890 マジな話Cもpascalもまったくわからん。
一から始めるならどっちから始めるのがいいとおもう?
Borland C++ Compiler 5.5
Borland Delphi 6 Personal
よくわからんから薦めてくれたほうを使ってみる。
>>891 何がしたい?
単なる勉強ならC/C++を、
GUIなツール等を作りたければDelphiかC#Builderがいいよ。
無料版がないから
>>892 何がしたいかって言えば仕事ではなく勉強かな。
今落としていてすぐに使えるのはBorland Delphi 6 Personal
今から落としてみようかと思ってるのはBorland C++ Compiler 5.5ってとこです。
何か実用レベルの物を作るとかじゃなくてまずやってみながら覚えていきたいというレベルの話しなのですが
タダでできるもので勉強してみたいのでBorland C++ Compiler 5.5のほうがいいですか?
Delphiは書籍も出てないしC++の方は解説書も沢山出ているのでわかりやすいのかもしれないですね。
どうもCは難しそうなんで敬遠してたんだけどいまからやってみます。
どうもでした。
∧,,∧ ども。 ミ,,゚Д゚彡 ミ つ旦)~~ 〜と,,,~),,~) BigエンディアンやLittleエンディアrン 周りの処理をしているのですが Result: WideString UpByte, DownByte: Byte; Result[i] := UpByte + DownByte; や Result[i] := DownByte + UpByte; こういうことをやりたいのですが、 上記コードではうまくいきません。 どうやったらうまく上位バイトと下位バイトとで WideStringに値を入れる事ができるでしょうか? よろしくお願いします。
∧,,∧ ミ,,゚Д゚彡 すまそ。解決しまつた。 ミ つ旦)~~ 〜と,,,~),,~) Result[i] := WideChar( (UpByte) + (DownByte) * $100 ); このようにしたらよいようです。
htonlとか使えよ。
∧,,∧
>>898 ミ゚Д゚,,彡 ん?俺?
ミ つ旦)~~
いちいちAA貼るなよウザギコ
>>871 DirectShowで入力フィルタのプロパティページを開くのはどう?
>>897 8bitシフトとかじゃあかんの?
data = ((data and $ff00) shr 8) or ((data and $00ff) shl 8);
>>884 thx!
いくらか触った感じだとDelphiはプログラム自体の設計はいいのに
エディタの操作性が微妙だから7でそのへんが良くなってるといいんですが…。
905 :
デフォルトの名無しさん :03/08/16 13:11
TPageControlを使っているので、すが、 タブの高さが小さくて選びにくいです。もう少し大きくするには どうしたらよいでしょうか?
TabHeight
>>906 ありがとうございます
>>907 今回は
>>906 さんの方法を利用させていただきました。
頂いたアドバイスは、別の機会で参考にさせていただきます。
ありがとうございました。
・・・ってネタレスなんか期待してねーんだよ!! 真面目に答えろ!
TabHeightを30ぐらいにして、大分いい感じになりました。 逆に0にしてもタブが非表示にはなりません。 1にすると変な感じですし。タブを非表示にすることは、 どうすればいいでしょうか
少しはヘルプ見ろよ。
>>913 インストールしたフォルダの中に、ヘルプファイルがありました。
ありがとうございました
フォームのタブクリックしてF1でヘルプが出るよ
そりゃあるさ
かちゅ〜しゃで、
>>3 みたいなところにカーソルを合わせると、
フォームじゃない、コメントのような枠?が出てきますが、
それをするにはどうすればいいですか?
>917 THintWindow
920 :
デフォルトの名無しさん :03/08/16 18:38
921 :
デフォルトの名無しさん :03/08/16 19:00
920さんに便乗なんですが OCXってActiveXとどんな関係があるのですか? ネットで説明探しましたが概念が全然わかりません VB用(としか書いてない)のOCXをdelphiで使うことは出来るのですか? 本当に何がなんだかわかりませんのでおながいしまつ
>>920 なんかエラーでも出るの?
何事もなく取り込めて使えたけども。(Del6 Per)
925 :
デフォルトの名無しさん :03/08/16 20:11
Delphi6Personal版で、 program FirstCode; begin writeln('Hello!'); readln; end. ってプログラムがちゃんと動かなかった。なぜ?
エラーメッセージは?
>>925 >readln;
胡散臭い。エラーメッセージは?
プロジェクトを作るとき [ファイル|新規|その他]でコンソールアプリ選んでる? これやらないとエラーになるかも。
929 :
デフォルトの名無しさん :03/08/16 20:19
>>925-926 「モジュールUnit1でエラーが発生しました。TForm1クラスの宣言が無いか間違ってます。」
です。
>>924 当方win2k + Delphi5pro
1.WhoisCom.dllを\WINNT\SYSTEM32のシステムディレクトリにコピー
2.コマンドラインから Regsvr32 WhoisCom.dll
3.Delphi起動 [コンポーネント]→[ActiveXコントロールの取り込み]
でリストにWhoisComが出てインストールボタンで出来るんですよね?それらしいのが無い。
追加ボタンでwhoiscom.dllを直接指定してみたけど出てこない。
何か間違ってますか?
>>931 [プロジェクト]→[タイプライブラリの取り込み]
>>932 うまくいきました。
有難うございました。
AのalignをLeft,BをBottomにしたら、 ┌──┬──────┐ │ │ .│ │ │ .│ │ A │ Form .│ │ │ .│ │ │ .│ │ │ .│ ├──┴──────┤ │ │ │ B │ └─────────┘ になったんですが、 ┌──┬──────┐ │ │ .│ │ │ .│ │ A │ Form .│ │ │ .│ │ │ .│ │ │ .│ │ ├──────┤ │ │ .│ │ │ B .│ └──┴──────┘ のようにするにはどうすればよいですか?
+−+−+ |A|B| +−+−+ として(パネルAはLeft, BはClient) Bの上に +−+ |B1| +−+ |B2| +−+ を乗せればいい
>>934 多分
bのparentをFormとAがあるパネルに移動する
色々やってる厨です。 delhpi6 Personalです。 要は実行時に色々ellipseやrectangle図形を描いてそれをメタファイルとして 保存なりコピーしたいのです。 なるべく簡単な実現方法をしりたいですけど。 やってみたのは imageコンポーネントに image1.canvas.ellipse(x,y,x,y)なんて描画したのを emf/wmfファイルとして保存 あるいはクリップボードにコピーするのは image1.Picture.Metafile.SaveToFile('c:\hi.wmf'); clipboard.Assign(image1.Picture.Metafile); (image1.Picture.Metafile.assign?) なんて気軽にやったところで無理です。三時間ばかり格闘してますが var MetaFile : TMetaFile; MetaCanvas : TMetaFileCanvas; という ヒントらしきものが今漂流中に手に入ってます。 だれか助けてくだされ
>>938 Image1.Picture.SaveToFile('a.bmp');じゃだめなんか?
>>938 順番が逆。図形を描いてからメタファイルにするんじゃなくて、
最初からメタファイル作っといてその上に描く。
MetaFile := TMetaFile.Create;
MetaCanvas := TMetaFileCanvas.Create(MetaFile, 0);
MetaCanvas.Ellipse(x, y, x, y); { 問題の図形を描画 }
MetaFile.SaveToFile('higedance.wmf'); { ファイルに保存 }
Image1.Canvas.Draw(0, 0, MetaFile); { 画面にも出したければこう }
MetaCanvas.Free;
MetaFile.Free;
Win2k,XPだとTEdit等の文字列がUnicodeで9xはSJISという噂は本当ですか? だとするとSelStart等を使うコードをOSごとに切り替えるなんて糞面倒くさいことをするんですか? これはひどいDelphiの限界ですね。
>>942 プ 見事に引っかかってやんの
それはVB厨吊るための偽情報ですよ。
944 :
デフォルトの名無しさん :03/08/17 04:10
もう少し待ってれば>941さんのスマートなコードにありつけたのに… Image1.Canvas.Draw(0, 0, MetaFile); { 画面にも出したければこう } ってのを image1.canvasに対して同じように image1.Ellipse(x, y, x, y); { 問題の図形を画面に描画 } ってやってしまってました。 図形の数だけゴチャゴチャでなんて汚い、 と思って二つのimage1.canvasとmetacanvasをTlistにいれてみてキャストしてメソッドだしたり assignかな、とかやってみたけど失敗で諦めてました。 本当に参考になります。 までも、自力で推測して近いとこまでいけたのは嬉しいかな。 >939さんありがとうございます。
945 :
デフォルトの名無しさん :03/08/17 04:10
でも次の問題が… 描いたmetacanvasの一部領域のみを、保存したいとき、 もうひとつ保存用のstoreMetafileというのを作ってそこでmetacanvasからcopyrectして 保存という案で storeMetaFile := TMetaFile.Create; storeMetaFile.Height := 50; storeMetaFile.Width := 50; storeMetaFile.Enhanced:=true; storeMetaCanvas:=TMetafileCanvas.Create(storeMetaFile, 0); storemetaCanvas.Pen.Color:=clblack; storeMetaCanvas.brush.style:=bsClear; sourceRect := Rect(0,0,50,50); MyRect := Rect(0,0,50,50) storeMetacanvas.CopyRect(MyRect,metacanvas,sourceRect); //eMFの書き込み storeMetaCanvas.Free; storeMetaFile.SaveToFile('C:\dtert.emf'); で中身なしのemfファイルができてしまうのです。 これも二時間以上googleとかで調べてもわからない…。 copyrectはビットマップのみなのかなとか諦めムードです。
>>943 Del7でそういうコードを書いたよ。SelStartやくにたたん。
947 :
デフォルトの名無しさん :03/08/17 09:57
Visual Basic.net とか Visual c++.net はどこで入手できるのでしょうか? Visual Basic5,0 はマイクロソフトのHPでダウンロードできたのですが
>>947 ちょっと大きめのパソコンショップへ。
ダウンロード出来たって言うのはVB5CCEの事かい?
>>947 Del厨ならDel厨らしくDelphi使いなよ。
950 :
デフォルトの名無しさん :03/08/17 10:13
>948さん ありがとうございます。VB5はCCEの事です。 パソコンショップ行って来ます。 >949さんもありがとうございました。
まともな解答者が居ないのに次スレなんて要るのか?
スマン ちょっとHDDは壊れるわ納期は次々くるわで、答えてられんかったんよ。
950です。パソコンショップ逝って来ました。 おかげでVisual c++.NET の予約できました。 でもよく見るとここDelphiスレだったんですね(汗 お決まりらしいので新規にスレッド作成しておきました。
KylixのCLXで作ったヤツを、 WinのDelphiのVCLへ、 移植は簡単に出来ますか?
DelphiのCLXなら殆ど手間はかけなくて良いと思うが?
>>945 メタファイルってのは描画の手順を記録したものだから、
ビットマップみたいに一部分だけ切り取るなんてことはできん。
うまくいくかどうかわからんけど、クリッピングして描いてみるってのはどう?
var rgn: HRGN;
rgn := CreateRectRgn(0, 0, 50, 50);
SelectClipRgn(MetaCanvas.Handle, rgn);
{ ここでMetaCanvasにあんなことやこんなことを… }
SelectClipRgn(MetaCanvas.Handle, nil);
DeleteObject(rgn);
962 :
デフォルトの名無しさん :03/08/17 20:49
>960 ソースは先にクリッピングしておいてから、そこに描く、という感じなんですよね。 ありがとうございます。でもとりあえず描いてしまったものの一部を切り取りたい んですよね…。 >描画の手順を記録 なんですよね。!!てことではっきり解決方向が見えました。 実行時、描画した順番(コード)を何らかの方法で再現させればいいのでは、と。 ユーザーがフロントエンドで円や四角形を描いたときの内部コードをそのまま再現させる という感じ。 一番楽なのは、そのコード丸ごと文字列に入れて、あとでそれをそのまま実行してくれたら 、と夢のような。 極端なこと言ってしまえばユーザーがエディトボクスに、デルファイコードそのままの metafile.ellipse(0,0,60,80)って入力して「実行」なんてコマンドボタンを押して描画する方法 があれば、一瞬にして楽に解決なんだけど。
'ellipse,0,0,60,80'を解釈・実行するなんて簡単だと思うけど。 全命令に対応するのは面倒だけど。
>>962 メタファイルってのは正にその描画した順番を再現する仕組なのだが。
メタファイルをもう一個用意して、クリッピング領域を指定してから
元のメタファイルを再生すれば切り抜きになるんでないの。
次スレの季節だがこのまま全滅ってことになりそうだな。
Delphiでグラフィックをいじるなら、SOFTBANKから出ている 「Delphi Graphic Secrets」という本がサンプルコードなどが沢山のっていて とても参考になる。著者はかの中村拓男氏。
969 :
デフォルトの名無しさん :03/08/20 23:37
アハハハハハハハハハハハハハハハハハハハハハッハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ ハハハハハハハハハハハハハハハハハハハハハハハハハハ
970 :
デフォルトの名無しさん :03/08/22 12:33
フリー版delphiで作ったソフトとかソースって 商用利用じゃなきゃ公開、配布しても大丈夫?
>970 2ch専用ブラウザを何と心得る。
うめ
>>961 別件で質問しようとしていたので(言語にかかわらないのでここではしません)
遅れて気づきましたが、そういうアドインがでていたんですね。
感謝です!
そして、亀レススマンです…
あ
と
公式DirectXユニットを作ってくれるようにボーランド様へ投書してくれる人募集!
作ってくれたとしても、どうせまた中途半端なのができるだけさ。
というか、敵はLongHornに向けて頻繁にアップデート繰り返してるからねえ
>>979 それでも無いよりゃマシざんす。
出来ればデータはリソースから読めるヤツ、キボンヌ(死語)。
つーか、必ずリソースから読めて。
おながい(死語)。
>>981 Stream経由で読めるようにすれば解決
掲示板に、 「exeのサイズがでかいので何とかしてくれ」、 「VBは小さいのに」、 とか書いてあるとガックリ来ない? 「VBやってろや」って思っちゃう。
C++Builderは小さいのに・・・ とか
ランタイムも配布すりゃいいじゃん。 「VBもこうやってます。」とか言って。
いや、書き方が悪かった。 「delphiプログラミング系」の掲示板(オレのところでは無い)に、 delphiを始めた人からの書き込みで ってこと。
>>986 ああ、そういうことね。
自分しか使わないようなツールとかなら、
実行時パッケージを使って構築にチェックしる。
で済むんだけどね。
UPX で圧縮してやればいいじゃないか。 それくらいのサービスは手間じゃないだろ
こっちもまだ生きていたのか。
世の中の人の大半は、exeデカイ=メモリ喰い ってことだろう。
>>983 そいつは、exeのサイズがデカイことで、
本当に実害を被っているのか小一時間問い詰めたい。
いいたいだけちゃ(ry
.NET もメモリ食いなんだけどね。
exeでかいって言っても、普通に組んでれば10Mとかあるわけでもないし。 別に配布の問題も無いと思うんだがな。
いや、つい絵を沢山入れちゃうとそうなっちゃう時もなきもしもあらず
問1 貴方が一番嫌いな国はどこですか?
ぬるぽ
∧__∧ i i ト──┤ |::::::::::::::::| javaと一緒にさよなら !::::::::::::::::! イi゙、:::::::ハ!ヽ |゙'i `i'´ /i i | | .| i _ i' i .| | i ,,r ''~:::::::゙''ヽ、 i キ====i i /::::::::::::::::::::::::::\ i. /::::::::::::::::::i i, /》:::::::::::::::::::::::::::::::《i {_i::::::::::::::::::::::ヒ=ュ i'":::::::::::::::::::::::::::::::::::゙i !~i::::::::___::::::::|сg---i::::::::::::::::::::::::::::::::::::::::::i `'「 ̄ ||  ̄i' ヾ::::::::,':::::::::::::::::::::::::::::::::::::::::::| | || ,' `'''y:::::::::::::::::::::::::::::::::::::::::::::|ヽ !. i i i' ,':::::::::::::::::::::::::::::::::::::::::::::::|::::゙、 i. i .| | i:::::::::::::::::::::::::::::::::::::::::::::::::ト:::::゙、 ├‐┤.|_| |::::::::::::::::::::::::::::::::::::::::::::::::::|i \:i ! !. | i .|:::::::::::::::::::::::::::::::::::::::::::::::::::リ ´ |,,,,i | .,' i、:::::::::::::::::::::::::::::::::::::::::::::// ├'メ, |__i ゙\:::::::::::::::::::::::::::::::::::/ ' !、,,) .!,,」 >--、_,,r-r─‐'''<
もうもらっとこうか。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。