モナーの *やさしい* Delphi質問スレ Ver.10
■ このスレッドは過去ログ倉庫に格納されています
0001Delモナー
NGNG( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
( ) .| Delモナーは時に私であり、時には別の人。
| | | | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
(__)_) \_________________________
前スレ モナーの *やさしい* Delphi質問スレ Ver.9
http://pc3.2ch.net/test/read.cgi/tech/1033668645/
0153デフォルトの名無しさん
NGNGやっぱり遅くなるぞ。
0154デフォルトの名無しさん
NGNGチューチューマウスみたく親に関係なくMessageBoxが表示された際に動作
するアプリを作りたいのですが、あれは一体どんなメッセージを取得?or
フックすればいいのでしょうか?
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGTListではどのようにするのですか?
var
List:TList
〜
List[high(list.count)]
とやると21億くらいになっちゃうし・・・・。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGTList は 0 .. Count - 1 まで。Low は固定。
High( list.count ) だと、Count の型である Integer 型の上限値が取れてしまうよ。
0159デフォルトの名無しさん
NGNGまたDelphi6ではこのプログラムはVerupしているのでしょうか
0162デフォルトの名無しさん
NGNGサンプルに何を求めてるんだと。
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGDemos & Examples の下に有るわけではないので、サンプルアプリではないすよ。
0165デフォルトの名無しさん
NGNGDual CPU ってことない?
0166デフォルトの名無しさん
NGNG鳴らないようにするにはどうすればいいですか?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG(最大化と最小化時のフォームサイズを固定にする方法はわかったのですが・・・)
0170169
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGボダアイコン
0173169
NGNGさっそく調べて試してみたいと思います。
0174デフォルトの名無しさん
NGNGメモ帳実際50kbしかないのに。delphiでつくるとこれが普通なんですか?
それとも作り方が悪いの?
0175デフォルトの名無しさん
NGNGカラープロパティを変えると全てのアイテムの色が変わってしまったりで
うまくいきません。どなたか教えてください。
0176デフォルトの名無しさん
NGNG普通。そういうものだと割り切ることが大切。
サイズ問題は、Delphi1の頃から言われ続けてきたことだ。
気にしないのがよっすぃ〜。
0177デフォルトの名無しさん
NGNGVCL使うとそんなもん。
小さくしたけりゃAPIたたけ。
0178デフォルトの名無しさん
NGNGオーナードローを使って自前で項目を描画する。
OnDrawItemあたり参照。
0180165
NGNGdualcpuです。dualだとまずいのですか?scktsrvr.exeって。
DELPHI5に付属のやつですが。
0181デフォルトの名無しさん
NGNGURLエンコードしたいのですが
plaza11.mbn.or.jp/~pz/delphi/vcl.html
↑ ここにあるTPzConvを使ってURLエンコードすると
改行や「&」などが正しく変換されません・・
どうしたらちゃんと「改行」が「%OD%OA」に、「&」が「%26」
変換されるように出来るでしょうか。 もし解る方がいらっ
しゃいましたらご教授宜しくお願い致します。m(__;)m
0182159
NGNG0183デフォルトの名無しさん
NGNGこのページ、i-mode N503iで表示されません。
P504i では表示されるのですが、
表示させる方法をお分かりの人がいたら、教えてください。
サーバー構成は、Apache+SSL(Apache1.3.27 OpenSSL0.9.6g) です。
0184デフォルトの名無しさん
NGNGこれとかどうかな?
InternetCanonicalizeURL
0186デフォルトの名無しさん
NGNGInternetCanonicalizeURL じゃだめだった。ごめんね。
0187デフォルトの名無しさん
NGNG結果が早すぎて見えないんです。すぐに終了してウインドウが
閉じてしまうんですけどキー入力するまでウインドウ閉じない
ようにするにはどうしたらいいですかね?
Delphiと直接関係ない質問の気がしますがよろしくおねがいします。
0188デフォルトの名無しさん
NGNG最後に、Readln(s); を入れておく。
0189デフォルトの名無しさん
NGNGそういうことしない限り無理なんですかね?やっぱり
とりあえずありがとう。
0190デフォルトの名無しさん
NGNGstatic int x=0;
x=x+1;
return ;
}
みたいなことをdelphiでしたいんですけどできないですか?
staticって無いですよね?
0191>>190
NGNGTxx = class
fX: Integer;
procedure addone;
end;
procedure Txx.addone;
begin
fX:=fX+1;
end;
・ユニット内変数
var addone_x: Integer;
procedure addone;
begin
addone_x:=addone_x+1;
end;
・トリック
procedure addone;
{$J+}const x: Integer = 0;{$J-}
begin
x:=x+1;
end;
0192デフォルトの名無しさん
NGNGスコープを超える寿命の変数が存在しないのは明快と言えなくもない。
どうしてもスコープを同じにしたいなら、constで宣言して、
型付き定数への代入を許可するオプションを付けてコンパイル。
0193デフォルトの名無しさん
NGNGD6 初期版だと、スレッド周りにバグが有って Dual CPU だと確実に吹き飛ぶ。
けど D5 なんだっけ?別の話しかなぁ?
私のところでは、社内データ管理システムとして Midas/ソケットサーバーの組み合わせで
半年以上ノンストップで動かしていた経験があります。同時 50 人くらいで、一つのデータパケットの
大きさは 10K から 1M 程度までさまざま。
ソケットサーバーが止まってしまう。という環境でデバッグしてみるのが早いと思いますが。
まずは、ScktSrvr.exe に対してタスクマネージャで CPU の割り当てを一つにして
具合を見てみては?
あと、あたりまえですが、ソケットサーバーを使わずに動かした場合に、止まらずに動きますか?
クライアントとサーバーソフトを同一マシンにおき、ソケット接続ではなく COM 接続にして
試してみたら?(DCOM では無く)
0194デフォルトの名無しさん
NGNGD6 初期版だと、スレッド周りにバグが有って Dual CPU だと確実に吹き飛ぶ。
けど D5 なんだっけ?別の話しかなぁ?
私のところでは、社内データ管理システムとして Midas/ソケットサーバーの組み合わせで
半年以上ノンストップで動かしていた経験があります。同時 50 人くらいで、一つのデータパケットの
大きさは 10K から 1M 程度までさまざま。
ソケットサーバーが止まってしまう。という環境でデバッグしてみるのが早いと思いますが。
まずは、ScktSrvr.exe に対してタスクマネージャで CPU の割り当てを一つにして
具合を見てみては?
あと、あたりまえですが、ソケットサーバーを使わずに動かした場合に、止まらずに動きますか?
クライアントとサーバーソフトを同一マシンにおき、ソケット接続ではなく COM 接続にして
試してみたら?(DCOM では無く)
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGコンパイラオプション {$J+} で、型付き定数使えばいいんじゃないか?
procedure addone;
var
const x:Integer = 0;
begin
x := x + 1;
end;
で。
0198デフォルトの名無しさん
NGNGペイントボックスあたりに描画するとかシェープを利用したりするしか無いのでしょうか?
フリーでコンポーネントがあれば良いのですが無いですよねぇ。
0199デフォルトの名無しさん
NGNG探す前からそう言っているのならお前はアホだ。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=delphi+%E3%82%B0%E3%83%A9%E3%83%95+%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88
4番目とか。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG今、いろいろなHPを参考にしてサンプルプログラムを組んで理解を深めています。
もうそろそろ本がほしいと思っていますがいい本を3冊ほど推薦していただけないでしょうか。
0204デフォルトの名無しさん
NGNGない。
0205デフォルトの名無しさん
NGNGない。
フサスレも覗いてみればわかるが、バイブルまでまともな本は一冊も無いのがdelの現状
0206デフォルトの名無しさん
NGNG正直、ヘルプとAPIガイドが最大のごちそう。がんばれ。
0207デフォルトの名無しさん
NGNGWinInetを使ってインターネットアプリケーションを書いているのですが、
WinInetで取得したHTMLをTWebBrowserに表示するのに、
TWebBrowser.OleObject.document.writeを考えていたのですが、
これはJavaScriptなので、JavaScriptが無効になっている環境では動作しません。
JavaScriptを使わずに、取得したHTMLをTWebBrowserに表示する方法ってありますか?
0208デフォルトの名無しさん
NGNGテンポラリファイルにしてそれ読むとか。
0209デフォルトの名無しさん
NGNG....
for(int i = 0; i < 10; i+=2) {
// loop
}
みたいに、 ループ変数を任意回インクリメントしたいんだけど、
var
i: Integer;
begin
for i := 0 to 10 do
begin
// loop
end;
end;
では、1しかインクリメントされませんし、loopのブロック内で
Inc(i);とか書くと、コンパイルエラーになります。
for文ではできないのでしょうか?
0210デフォルトの名無しさん
NGNGまぁ、こんな感じじゃないの?
for i := 0 to EndValue div 2 do
begin
a := i * 2;
end;
0211デフォルトの名無しさん
NGNGこういう方法もあるよ。
http://members.jcom.home.ne.jp/monazilla/document/directwrite.html
>>209
forでは無理
俺はこうしてる。
i := 0;
while i < 10 do
begin
//処理
Inc(i, 2);
end;
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214207
NGNGありがとうございました。
おかげで解決しました。
0215デフォルトの名無しさん
NGNGマニュアル付有償版もあったと思うが。
0216203
NGNGえと、APIガイドというのはなにを指しているのでしょうか?
ぐぐったんですが、これというのがわかりませぬ。
0217デフォルトの名無しさん
NGNGディスクに入ってるwin32.hlp
0218203
NGNGありがとん、見つかったよ。
・・・あ゛、これ英語のままなんだね・・・。
みなさんこれ読んで頑張ってるんですか???
ううう、これは手厳しいですなぁ。
なんとか読みまする。
0219デフォルトの名無しさん
NGNGC++Builderには日本語版があったり。
でも、両者読み比べても同じこと書いてあるなと高校生の俺は思った。
0220203
NGNGただ、少しでも理解しやすいほうがありがたいので日本語版がいいと
十年前高校生だった漏れは思った。
0221デフォルトの名無しさん
NGNGAPIに関する日本語情報はここがいいよ。
何がどこにあるか探すのに最初は苦労するけど。
0222デフォルトの名無しさん
NGNGからPlatform SDKをダウンロードしておくと結構便利だけど、
今はファイル入れ替え時期で落とせないみたい。
0223デフォルトの名無しさん
NGNG長年使ってて初めて気づいたんですが、引数の省略可能って仕様だったのですか?
Delphi6 UpdatePack2です。
0224デフォルトの名無しさん
NGNG{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in 'Unit1.pas';
var
ATest: TTest;
begin
ATest := TTest.Create(10);
try
ATest.Test(23);
finally
ATest.Free;
end;
Writeln(Eoln);
end.
0225デフォルトの名無しさん
NGNGinterface
type
TTest = class
public
constructor Create(AValue: Integer);
procedure Test(AValue: Integer);
end;
implementation
constructor TTest.Create;
begin
Writeln('Create');
end;
procedure TTest.Test;
begin
Writeln('Test');
end;
end.
0226デフォルトの名無しさん
NGNG> 定義宣言のヘッダーには,クラス宣言で指定したパラメータリストを
> 再度指定してもかまいませんが,その場合は,パラメータの順序,
> 型,および名前をクラス宣言での指定と完全に同じにしなければなりません。
引数は指定しなくてもかまわないのかー。しらなかったー。
constructor TTest.Create;
begin
Writeln(AValue);
end;
なんて出来るし…。気持ち悪(´д`;)
0227デフォルトの名無しさん
NGNGunit Unit1;
interface
type
TBaseTest = class
public
constructor Create(AValue: Integer); virtual;
end;
TTest = class(TBaseTest)
public
constructor Create(AValue: Integer); override;
end;
implementation
constructor TBaseTest.Create(AValue: Integer);
begin
Writeln('TBaseTest.Create(AValue) ', AValue);
end;
constructor TTest.Create;
begin
inherited;
Writeln('TTest.Create(AValue) ', AValue);
end;
--実行結果
TBaseTest.Create(AValue) 10
TTest.Create(AValue) 10
0228デフォルトの名無しさん
NGNGunit Unit1;
interface
type
TBaseTest = class
public
constructor Create(AValue: Integer); overload; virtual;
constructor Create; overload; virtual;
end;
TTest = class(TBaseTest)
public
constructor Create(AValue: Integer); override;
end;
implementation
constructor TBaseTest.Create(AValue: Integer);
begin
Writeln('TBaseTest.Create(AValue) ', AValue);
end;
constructor TBaseTest.Create;
begin
Writeln('TBaseTest.Create');
end;
constructor TTest.Create;
begin
inherited;
Writeln('TTest.Create(AValue) ', AValue);
end;
0229620
NGNGvar
Buffer:array[0..2] of Char;
s:String;
begin
Buffer[0]='A';
Buffer[1]='B';
Buffer[2]='C';
s:=Buffer; �@
または
s:=String(Buffer); �A
end;
この場合、�@や�Aのようにsへ代入するのは正しいのでしょうか?
それとも、ちゃんとBufferの最後にヌル文字を追加してから代入しなければいけないのでしょうか?
0230デフォルトの名無しさん
NGNGもちろんNULLいります。
0231デフォルトの名無しさん
NGNGAPIヘルプの日本語版なら、CDの中に入ってるよ。
Info->Extras->JPHELP->API32WH.HLP
古いので不便なところもあるけど。
0232229
NGNGそうですか。
疑問に思った理由は「Delphi4プログラミングバイブル」のp979に
strRead:=strRead + string(Buffer);
(strRead はString型、Bufferは添え字0から始まるChar型の配列)
というコードがあるのですが、このBufferも最後のヌルをつけていません。
厳密に正しいのかどうか、気になったので。
0233デフォルトの名無しさん
NGNG調べてないけどObjectPascalがメモリ確保時に配列を0で初期化しているなら動いてしまう。
でも、それに頼りすぎるのはあまりよくないと思われるので$0はつけるべきかと。
0234229
NGNGつまり、配列のために確保したメモリの中にはヌルの部分がないんです。
なのに string(Buffer)とキャストするのは正しいかどうかちょっと気になりました。
0235デフォルトの名無しさん
NGNG配列の長さが取得できない以上、各種文字列変換関数で死にます。
0236デフォルトの名無しさん
NGNGLength(Buffer)
0237デフォルトの名無しさん
NGNGじゃあ。安心だね♪
まぁ、激しく非推奨。
0238デフォルトの名無しさん
NGNG正しい筈です。配列のサイズが上限として、途中に#0があるまでのサイズになります。
system . _LStrFromArray を読むとよいでしょう
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG>>233 × メモリ確保時は不定です。しかし配列の場合 #0は不要です
>>235 × Cと違ってDelphiは配列のサイズ情報は関数でも渡されます
0241デフォルトの名無しさん
NGNG思い出した。確か余計な空白まで取り込んじゃう困ったちゃんな仕様だ。
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG1、String := PChar ; //ヌル迄の文字に自動調整
2、String :=array of Char ; //配列サイズかヌル迄の文字に自動調整
3、PChar := string ; //stringには終端にヌル文字が隠れている。
4、array of Char:=String ;×代入互換性無し
0244デフォルトの名無しさん
NGNG>>>233 × メモリ確保時は不定です。しかし配列の場合 #0は不要です
0245デフォルトの名無しさん
NGNG○関数のローカル変数は基本的にメモリ確保時は不定,自動的に値0で埋められる事はない。
それとは別に、CHAR配列の要素全てに文字が入っているなら最後に#0でターミネートしなくとも良い
CHAR配列の途中で文字列を終りたいなら #0でターミネートすれば良い。
0246デフォルトの名無しさん
NGNG送りたいのですがいい方法ありませんか?
0247デフォルトの名無しさん
NGNGパイプ WIndowsメッセージ Socket OLE etcetc
0248デフォルトの名無しさん
NGNGとしてdelphiのヘルプに載っていたんですけど、下の関数の
SkipChars:=SkipChars+(I*2)が何をしているのか全然わからないんですが
誰かおしえてくれませんか?
procedure TForm1.FindDialog1Find(Sender: TObject);
var
I, J, PosReturn, SkipChars: Integer;
begin
for I := 0 to Memo1.Lines.Count do
begin
PosReturn := Pos(FindDialog1.FindText,Memo1.Lines[I]);
if PosReturn <> 0 then {検索文字列が一致}
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I*2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Break;
end;
end;
end;
0249デフォルトの名無しさん
NGNG検索し終わったんでは?
0250デフォルトの名無しさん
NGNGすいません。意味がわからないです。
どういうことですか?
0251デフォルトの名無しさん
NGNGで検索したい単語を含む文字列までの全文字数を数えて、
SkipChars+PosReturn-1でその単語の先頭までの文字数を
加えていますよね。これだけで検索できてしまう気がするのですが
0252デフォルトの名無しさん
NGNGこれ中身は英語版ですか?日本語版はありますか?
■ このスレッドは過去ログ倉庫に格納されています