くだすれDelphi(超初心者用)その19
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その18
http://pc5.2ch.net/test/read.cgi/tech/1093996761/
<その他>
ボーランド
http://www.borland.co.jp/
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
0002デフォルトの名無しさん
NGNG17 http://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 http://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 http://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 http://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 http://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 http://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
10 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
09 http://pc2.2ch.net/test/read.cgi/tech/1071294733/
08 http://pc2.2ch.net/tech/kako/1068/10682/1068201045.html
07 http://pc2.2ch.net/tech/kako/1065/10651/1065195699.html
06 http://pc2.2ch.net/tech/kako/1063/10632/1063202727.html
05 http://pc2.2ch.net/tech/kako/1061/10610/1061090908.html
04 http://pc2.2ch.net/tech/kako/1058/10588/1058834815.html
03 http://pc2.2ch.net/tech/kako/1055/10559/1055986736.html
02 http://pc2.2ch.net/tech/kako/1053/10537/1053757982.html
01 http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
0003デフォルトの名無しさん
NGNGhttp://0b9tonzzn4si.hotusa.org/ze9fb1z.html
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGそれは使用中のファイルなのですが、これを回避して開きたいのですがどうしたらいいでしょうか?
メモ帳など他のソフトではそのまま開けるので完全?にロックされているわけじゃないようなので
ファイルオープンの方法が変わればいけるんだと思うんですが
こういう場合はどういった命令で読めばよろしいでしょうか?
0006デフォルトの名無しさん
NGNG00075
NGNGさっそくTFileStreamで開いてみましたが同様のエラーがでてしまいました
00085
NGNGあきらめ半分でWin32APIを使ったら・・・なんとすんなり開けてしまいました。
以下が結果で、ヘルプを見た感じだとどっちも同じことをするようにしか見えないのにできない。
D6Personalゆえソース見えないんですが内部でどのAPI呼んでるんですか?
FileStream.Createがどうしてダメなのか、わかる方いませんか?
//開けない
TFileStream.Create('test.txt', fmOpenRead, fmShareDenyNone );
//fmShareCompatFCB によりファイルを開く方法と互換性がある
//fmShareExclusive他のアプリケーションはファイルを開くことができない
//fmShareDenyWrite他のアプリケーションは読み出し用にファイルを開くことはできるが,書き込み用に開くことはできない
//fmShareDenyRead他のアプリケーションは書き込み用にファイルを開くことはできるが,読み出し用に開くことはできない
//fmShareDenyNone他のアプリケーションからのファイルの読み出しおよび書き込みを妨げる処理は行われない
//開ける Win32API
CreateFile('test.txt', GENERIC_READ, 3, nil, OPEN_EXISTING, 0, 0);
//0 共有しない 他のアプリケーションからオープン出来ない
//FILE_SHARE_READ = 1 他のアプリケーションから読み込み可能
//FILE_SHARE_WRITE = 2 他のアプリケーションから書き込み可能
//READとWRITEをあわせて 3 (定義はなし)
0009デフォルトの名無しさん
NGNGもしかして「読み書き属性」のままファイルを開こうとしているじゃない?
読み書き属性なら「書き込めないと困る」からエラーが出ても不思議じゃ
ないんだけど。
LoadFromFileの前にFileMode=0を入れてエラーが出るか確認してみて。
00105
NGNGFileMode は Reset 手続きでしか使わないのでは?
TFileStream.Create('test.txt', fmOpenRead, fmShareDenyNone );
の命令文でEFOpenErrorになります。
直前にFileMode := 0 にしてもやはり変わりませんでした。
0011デフォルトの名無しさん
NGNGTFileStream.Create('test.txt', fmOpenRead or fmShareDenyNone );
じゃないかな?
00135
NGNG動きました!!
引数指定ミスだったとは・・・・・・ご迷惑おかけしました。
回答くださったみなさんありがとうございました。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG関数一覧を表示してオブジェクトツリーにドッキング出来るの
あったら教えて。(D6パーソナル)
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGstring型でもいいのですが、LoadFromFileとかのメソッドが使えたほうが便利なんです。
仕方がないので、TMemoを非表示にして、TMemo.Linesにデータを入れてるんですが、
何かもっと普通の方法があるはずだと思うのですが。。
どなたか教えてくださいませ m_ _m
0020デフォルトの名無しさん
NGNG0021テレパス名無しさん
NGNG○ TStringList.Create
0022デフォルトの名無しさん
NGNGTStringlist
0023デフォルトの名無しさん
NGNG「SL.Create」としないように。
経験者談w
0025デフォルトの名無しさん
NGNGどうすればいいですか?
0026デフォルトの名無しさん
NGNG0027ななしへたぐらま ◆XcB18Bks.Y
NGNG設計時の話だと思いますのでその前提で.
フォーム上のコントロールのフォント設定はどうなっていますか?
全くいじっていない場合はコントロールはその親となるコントロールの設定に合わせますので,
フォームのフォント設定を変更すればすべてのコントロールの設定も同様に変わります.
いじっている場合には個別に変換することになるでしょうが,
フォームをテキスト形式で表示させれば
ユニットファイルのソースコードと同じように文字列置換できます.
フォームがテキスト形式で表示するには
対象となるフォームを右クリックして『エディタで編集』をクリックします
(または対象となるフォームがアクティブな状態で[Alt]+[F12])
ソースコード中の Font.Name というところでフォント名を指定しているので
ここの既存のフォント名を任意のフォント名に置き換えます.
フォント名がデフォルトだとこの記述がないので自分で書き足す必要があるかもしれません.
念のため,あらかじめバックアップを取ってください.
※テキスト形式の表示をやめるには[Alt]+[F12]です.
002825
NGNGいやそうじゃなくって…
プログラムで行うにはどうすればいいかな?っていう質問です。
ParentFontを使うのも無しでお願いします。
下のようにすればいいのかなあと思ったけど、エラーが出るので‥‥。
procedure SetFont( TheControl: TControl );
var
i: Integer;
begin
TheControl.Font.Charset := DEFAULT_CHARSET;
TheControl.Font.Name := "MS 明朝"; //ここはフォントにするとか
for i:= 0 to TheControl.ControlCount - 1 do
begin
SetFont( TheControl.Control[i] );
end;
end;
0029デフォルトの名無しさん
NGNGForm1.Font.Name :=
TControl では Font プロパティーにアクセスできない。protected だから
0030デフォルトの名無しさん
NGNGPaintメソッドをoverrideして、そこに描画命令を書くと、一応表示はされるのですが、
スクロールすると、残像が残ってうまく描画できません。
リサイズすると、きれいに再描画はされるのですが、スクロール量に
関係なく、canvasの原点から描画されるので、テキストの途中が
表示されてても、ページの先頭が描画されてしまいます。
スクロールされているときに、
実際に表示されている領域の原点が、(隠れている部分を含めた)
画像全体の原点から何ピクセルずれているのか
取得する方法がありますか?
0031デフォルトの名無しさん
NGNG作者は日本人なんだし、サポート掲示板もあるし、そっちで訊いたら
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG29 さんのがヒント。
あなたの SetFont 関数の引数を TWinControl にし、
子コントロールをなめるときに、TWinControl またはそれの子孫のクラスかどうかを
判定して再起呼び出しすればよい。
0034デフォルトの名無しさん
NGNGラベルのフォントが変更できないでしょ
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG003825
NGNGなぜParentFontを使わないのかというと「フォントサイズは
デザイン時のを使いたいから」らしい‥‥。
んで、>36の言うようなFontプロパティの有無を確認するっていう
方法は探したら下のように出てました。
http://130.158.124.192/~takeuchi/delphi/browse.cgi?index=068731
これと再帰と組み合わせれば実現可能ですね。
勉強になりました。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGソースが分からんと答えようがない
0041デフォルトの名無しさん
NGNG>>39
0042デフォルトの名無しさん
NGNG理由は>39の胸に手を当てて聞いてみるとよい。
0043デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0044デフォルトの名無しさん
NGNGどうすればいいでしょうか?
0045デフォルトの名無しさん
NGNGスクロールして再描写している最中に更にスクロールすると残像が残ってしまいます
再描写の部分をスレッド化すれば防げますか?
0046デフォルトの名無しさん
NGNGhttp://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=018949
のパクリだけど
uses
ComObj,ActiveX,ShlObj,ShellApi;
function GetLinkedFilePath(LinkFile:string):string;
var
PersistFile:IPersistFile;
ShellLink:IShellLink;
wsz:array[0..MAX_PATH] of WideChar;
pfd:TWin32FindData;
begin
ShellLink:=CreateComObject(CLSID_ShellLink) As IShellLink;
OleCheck(ShellLink.QueryInterface(IPersistFile,PersistFile));
Assert(Assigned(PersistFile));
MultiByteToWideChar(CP_ACP,0,pChar(LinkFile),-1,wsz,MAX_PATH);
OleCheck(PersistFile.Load(wsz,0));
result := StringOfChar(#0,MAX_PATH);
OleCheck(ShellLink.GetPath(PChar(result),MAX_PATH,pfd,SLGP_SHORTPATH));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := GetLinkedFilePath('C:\Documents and Settings\All Users\デスクトップ\+Lhaca.lnk');
end;
0047デフォルトの名無しさん
NGNGいいえ。
> スクロールして再描写している最中に更にスクロールすると残像が残ってしまいます
うーむ、シングルスレッドで再描画しながら同時にスクロールするってことがあるとは思えないが
0048デフォルトの名無しさん
NGNGいいえ。
> スクロールして再描写している最中に更にスクロールすると残像が残ってしまいます
うーむ、シングルスレッドで再描画しながら同時にスクロールするってことがあるとは思えないが
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
0051デフォルトの名無しさん
NGNGtype TMyClass = class
MyMethods: array [0..99] of TMyEvent;
procedure MyMethod(a, b: Integer);
end;
var obj: TMyClass;
obj := TMyClass.Create;
obj.MyMethods[0] := obj.MyMethod;
0052デフォルトの名無しさん
NGNGよくわかりました。ありがとうございました。
この場合、クラス生成後に自分で配列に関数を登録しますよね。
(見たまんまですが)
初期化付き?(というんでしたっけ?)で宣言する事はできないですか?
0053デフォルトの名無しさん
NGNG初期化付きと言っているのは
aaa:array [0..6-1] of integer = (
0, 1, 2, 3, 4, 5
);
みたいな感じで。この0〜5が、要はクラスのメンバ関数にしたいんです。
とりあえず格納する配列はクラス外でもいいんですけど・・。
0054デフォルトの名無しさん
NGNG基本的にメソッドポインタはクラスインスタンスに従属してるから。
全部クラスメソッドにすれば可能かもしれないけど。
0055デフォルトの名無しさん
NGNG使い道よくわからんけど。
0056デフォルトの名無しさん
NGNG「ディレクトリにあるファイルをすべてにたいして適切な加工を施す。」
と言うプログラムを作りたいとします。
これをメインスレッドでやってしまうととんでもないことになるので、別途
ディレクトリの中のファイルを読み出し、適切な加工を施す処理を行う専用スレッドを作って、メインスレッドから
そのスレッドを起動して、処理させるという方法をとりました。
ところが仕様上である制約があるのです。
作業状態をこと細かくメインスレッドのForm上のLabelに報告せねばならない。(ユーザーがなにをしているか分かるように)
たとえば今〜フォルダの〜というファイルを処理しています。
処理結果は進行状態は何%ですといった具合にです。
ところがこれを実装しようとすると、処理専用スレッドの中で、いたるところでSynchronizeメゾットを呼び出さねばならず
スレッドの中はSynchronizeだらけになってしまいます。
これでは大変効率が悪いと思うのですが。皆さんならどのように実装しますか?
お知恵を拝借したいと思います。
長文失礼いたしましたm(_ _)m
0057デフォルトの名無しさん
NGNG進捗表示がいい加減でいいなら
スレッドセーフなCurrentDir, Positionプロパティを用意して
Timer使って一秒毎にラベルを更新するとか。
005856
NGNGなんか自分のコードを見てですね。 Synchronizeばかり呼び出しているのをみて。
「かっこわるいコードだなぁ…」とおもっていたものですから…
やはりこれは仕方が無いのですね。もっとエレガントな実装方法があるのかなぁなんて思ったものですから…
0059デフォルトの名無しさん
NGNGアスペクト指向であれば指定した一連のメソッドを抜ける際に
自動的にSynchronizeを呼び出すってできるんだけどね。
Delphiじゃサポートしてないけど。
0060デフォルトの名無しさん
NGNG1:
Synchronizeを呼び出す別のメソッドを定義すればよい。
ファイル名や進行状況の値をクラスの変数などにして。
2:
ファイル名など排他制御が必要なものだけSynchronizeまたはクリティカルセクションで保護して更新。(取得時も保護ね)
進行状況の値は32bitの変数などで保護なしで更新もあり。
GUIの更新はタイマで定期的にそれらの値を参照して行う。
こっちの方法はGUIの更新頻度を一定にできるので負荷が少ない。
被ってる内容だが2が個人的にお勧め。1だと大抵の場合処理が遅くなるし負荷も高い。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGこれは例えば、
A[0..100,0..100]という配列があった場合、Aの中身全てを総合して2GBが限度ということですか?
006356
NGNG>>60さんの二番でアプローチしてみたいと思います。
次いで質問で申し訳ないのですが…
>進行状況の値は32bitの変数などで保護なしで更新もあり。
integer型はクリティカルセクションの保護が必要ないのですか!?
0064デフォルトの名無しさん
NGNG2G byte は Windows の制限/制約ですから、乗り越えることは大変ですよ。
配列は、実体を宣言した時点でメモリを確保されますから、
A[1..256, 1..256] の2次元配列は 64K (65536) 個の要素を格納します。
ひとつの要素の大きさが 1K (1024) byte だとしたら全体で 64M の(連続した)
メモリ領域が必要となります。
Delphi では、このトータルの最大値が 2G.
ビジネスアプリなどではめったに 2G の制限に達することはありませんが、
科学計算などで三次元配列とか使うと、限界に到達するのは早いです。
0065デフォルトの名無しさん
NGNGSizeOf(A)が2G以上になったらコンパイルエラー。
0066デフォルトの名無しさん
NGNGWindowsの動いているPCは大抵32bit以上だから、32bitの変数は1命令で変更される。(4バイトがバラバラに取得変更されることはない)
この特性から、変数書きこみが1スレッドだけならば保護しなくてもただしく値を取得できる。
0067デフォルトの名無しさん
NGNG迅速な対応に感謝します。確かに、普通に使っていて2Gを超えることは無いと思うのですけど、
今回、2次元配列をサイズが448×448のビットマップ型で宣言しているんですよ。
それで、その変数がA[400,400]くらいのでかい配列なので。無理かな、と。
というか、普通はやんないことですよね・・。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGええと、ビットマップのサイズは、ファイルサイズではなくて画像の大きさです。
いずれにしろ、無駄なことをやってるには違いないんですが。
横着なことやってないで、Byte型で宣言して、
それに対応した画像描画プロシージャを呼び出すようにします。
0070デフォルトの名無しさん
NGNGSMP環境でバグるけどな
0071デフォルトの名無しさん
NGNG一度に 4G byte までしかアクセスできません。さらにその空間を OS や各種データ
でやりくりしなきゃいけないわけだから..
物理メモリの半分以上をひとつのデータで確保しなきゃいけなくなったら、何か間違っている。
と思わないと。
なお、フォトショップとかの画像処理アプリケーションでは、自前でメモリ管理をするのが定番です。
0072デフォルトの名無しさん
NGNG>書きこみが1スレッドだけならば
って予防線張ってるじゃん
0073デフォルトの名無しさん
NGNGそれは関係ない
0074デフォルトの名無しさん
NGNG参考になります。重いデータを扱うなら相応の気配りが必要ですね。
処理上のことで、もう一つ質問がしたいんですが、
単純な四則演算や、if文は一度に(単位時間あたり)どれくらいの演算ができるんでしょうか。
変な質問ですみません。演算量の多いプログラムを組んでいまして、処理落ちを心配しています。
試しに秒間数十万回の四則演算、数万回の条件文を組み込んだプログラムを回してみました。
そうしてもCPU使用率はほぼゼロ%になるんですが、ほとんど際限なく演算ができると考えていいのでしょうか?
(完璧なのかどうかは分かりませんでしたが、処理が行われてることも確認しました。)
演算の処理上、CPU使用率を参考にしていいのかどうかもわかっていないので、恐らくおかしなことを言ってるんだと思います。
また指摘していただければ幸いです。
0075デフォルトの名無しさん
NGNGエディタ部とブラウザ部に分かれた
HTMLエディタを作成しています。
エディタ部に書き込んだソースを
リアルタイム(エディタ部が変更されたときに対応)で
ブラウザ部に反映(更新)させているのですが
「ブラウザに表示される内容が縦長になった」場合
ブラウザの縦スクロールバーを一番下まで下ろしておいて
その状態でエディタにソースを書きたすと
ブラウザの縦スクロールバーが一番上に勝手に上がって更新されます。
これを回避し、ページを更新する方法がありましたら
教えていただきたいのです。
スクロールバーの位置を記憶させておいて
更新と同時にそこに飛ばす
(記憶させたところにスクロールバーを戻す)
という感じ・・ですか?
0076デフォルトの名無しさん
NGNGCPUによるっしょ。際限無く、ってのはあり得ない
0077デフォルトの名無しさん
NGNGSMPでも問題ない。マルチプロセッサのメモリアクセスについて勉強したほうがいいよ。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGあなたのコードによるので、実測するしかない。
が、ものすごく大雑把に。クロック 1G の P3 クラスの CPU を考える。
1秒間に 1000 * 1000 * 1000 クロック存在する。
32bit の四則演算をキャッシュアクセスできたとして4クロックで処理できるとする。
そうすると一秒間に 250,000,000 / 2億5千回の単純計算が可能だ。
「秒間数十万回の四則演算」は、データがキャッシュ等 CPU の近傍に存在するうちは
CPU の能力の1%も使わずに処理できる。わけだ。
大雑把な数字でいいから、だいたいの目安を一度計算、会得しておくと、異常な結果に
気づきやすいぞ。
0081デフォルトの名無しさん
NGNGキーボードの「1」「2」「3」〜
が押されたことにするようにするのはどのように書けばよいのでしょうか。
procedure TForm1.Button1Click(Sender: TObject);
begin
(ここに、キーボードの数字の「1」が押されたことにするように書きたい)
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key =('1') then
showmessage:=('1が押されました')
008281
NGNG0083デフォルトの名無しさん
NGNG解決したようですけど、せっかくやったので・・・
Form1 の KeyPreview を true にし、Button1〜9 の OnClick イベントハンドラを
共有して、
procedure TForm1.Button1Click(Sender: TObject);
var
KeyCode:Byte;
Caption:string;
begin
If Sender is TButton then begin
Caption := TButton(Sender).Name;
KeyCode := $30+StrToInt(Copy(Caption,Length(Caption),1));
keybd_event(KeyCode,0,0,0);
keybd_event(KeyCode,0,KEYEVENTF_KEYUP,0);
end;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case Ord(Key) of
Ord('1')..Ord('9'):ShowMessage(Format('%d キー が押されました',[Ord(Key)-$30]));
end;
end;
008481
NGNGすいません。ほんとにありがとうございました。
私は
procedure TForm1.Button1Click(Sender: TObject);
var c : Char;
begin
c := '1';
form1.KeyPress(c);
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key =('1') then
showmessage:=('1が押されました')
end;
一応これでやりたいことは出来ました。
82さんのは私の知識を遥かに超えていて良く分らない・・
0085デフォルトの名無しさん
NGNG釣られないよw
0086デフォルトの名無しさん
NGNGそれはキーを押してることにはならない。ただ、ハンドラを呼び出してるだけ。
それが目的ならいいけど。
> form1.KeyPress(c);
これじゃコンパイルできないとおもうけどなぁ。
FormKeyPress(Sender,C);
だと思う。
0087デフォルトの名無しさん
NGNGハンドラを呼び出すだけでいいにしても、ButtonClick のイベントハンドラを
9つも書くのは無駄です。Button2〜Button9 までを選択して、OnClick イベント
ハンドラを Button1Click に設定すると一つですみます。
procedure TForm1.Button1Click(Sender: TObject);
var
KeyCode:Byte;
Caption:string;
c:Char;
begin
If Sender is TButton then begin
Caption := TButton(Sender).Name;
KeyCode := $30+StrToInt(Copy(Caption,Length(Caption),1));
c := Chr(KeyCode);
FormKeyPress(Sender,c);
end;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case Ord(Key) of
Ord('1')..Ord('9'):ShowMessage(Format('%d キー が押されました',[Ord(Key)-$30]));
end;
end;
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGRPGツクールに汁!
0093デフォルトの名無しさん
NGNGDelphiの方が細かい事ができる。
難易度は変わらない。 後は好みの問題。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGTHoge = record
0096デフォルトの名無しさん
NGNGtype
PHoge = ^THoge;
THoge = record
Child : array of THoge; TArratHoge
end;
PArrayHoge = ^TArrayHoge;
TArrayHoge = array of THoge;
THogeのChildをPArrayHogeにしたいのですができるでしょうか?
009796
NGNGChild : array of THoge; TArratHoge
正
Child : array of THoge; //TArrayHoge
です
009896
NGNGこれ自体だめだったみたいですね
他の方法で実装することにします
0099デフォルトの名無しさん
NGNG010075
NGNGないんですね。
0101デフォルトの名無しさん
NGNG本家いっても記述がないし、BBSもないので。。。
0102デフォルトの名無しさん
NGNGttp://www33.ocn.ne.jp/~takoyakusi/delphi/UIWebBrowser/
ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200309_03090064.html
0103デフォルトの名無しさん
NGNG最前面から最後面に送るやつ。
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGできますたサンクスです
0106デフォルトの名無しさん
NGNGありがとうございました
0107デフォルトの名無しさん
NGNGツクールより自由でDelphiより高性能
でもDelphi製なんだけどな
【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc5.2ch.net/test/read.cgi/gamedev/1087068523/
0108101
NGNGvclieってのがないとDelphiに怒られて、やっぱりインストできませんでした。・゚・(ノД`)・゚・。
0109デフォルトの名無しさん
NGNGoverride指令とoverload指令を同時に使用することはできませんか?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG下位クラスで overload できるけど、override したことにはならない。
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG何も考えずにそのまま使っても、
関数として使われているか変数として使われているか
コンパイラが自動的に判断してくれる。
逆に言い換えれば変数か関数か識別できない構文は使えないと。
0115デフォルトの名無しさん
NGNG即レスありがとうございました!
0116109
NGNGとりあえずReintroduceで解決しました。
0117デフォルトの名無しさん
NGNGユニット名を明示する
SysUtils.Rect(Rect.X, ...)
とか。SysUtilsじゃなかったような気もするけど。
0118デフォルトの名無しさん
NGNGClassesにある。
で、ClassesのRect関数はTypesのRect関数を呼び出してる。
Point関数なんかも同じようになっている。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGできる。ということ。
0123デフォルトの名無しさん
NGNGディレクトリが空かどうかを調べたいのです。
具体的にはワールドカードでディレクトリをfindfirstで検索して見つかったファイルの数が0ならTRUEという手順なのですが、空ディレクトリを調べても絶対2になってしまいます。
なにかいい方法はありませんか?
0124デフォルトの名無しさん
NGNG..
だろ、2なら空で良いんじゃねぇか?
0125デフォルトの名無しさん
NGNG使い方を間違えてないか?
0126デフォルトの名無しさん
NGNG..
があるんだろ
0127デフォルトの名無しさん
NGNG拡張子がないファイルは必ずディレクトリとは限らないのでワイルドカードで引っかけてはダメ。
Pathは"*.*"にして、AttrにfaDirectoryを使うべき。
それと"."".."というディレクトリをカウントに含めない。
0128デフォルトの名無しさん
NGNG.と..を取り除く方法って
(F.Name = '.')or(F.Name = '..')でifにかけるだけでいいの?
なんか原因不明のバグがあってこのifが原因かなぁと疑っているのだが
0129デフォルトの名無しさん
NGNGfaAnyFileじゃないとだめだろ。
>>128
それでいいよ。
処理はしょってF[1]='.'で原因不明のバグを生んだことがあったけどw
0130デフォルトの名無しさん
NGNG2ch は匿名掲示板ですから、恥ずかしさは脇においといて聞くだけ聞いてみましょう。
コマンドラインで DIR やった場合にも
04/10/17 11:12 <DIR> .
04/10/17 11:12 <DIR> ..
0 個のファイル 0 バイト
2 個のディレクトリ 1,540,747,264 バイトの空き領域
と出ますね? . と .. は必ず存在します。これらの意味、利用方法がわからない
場合は google で「親ディレクトリ カレントディレクトリ」のキーワードで調べて
みましょう。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG.. は知ってたけど、. もないとは意外なり。
0134デフォルトの名無しさん
NGNGルートディレクトリはカレントディレクトリとする意味ないし。
親ディレクトリがないのはあたりまえ。
0135デフォルトの名無しさん
NGNGいみふめ
0136デフォルトの名無しさん
NGNGDefaultValueに変な値入れとくとかはなしで。
0137デフォルトの名無しさん
NGNGどうやってってデフォルト値がセットされてるとして処理するだけだろ
0138デフォルトの名無しさん
NGNGDefaultValueに変な値入れといて、変な値であったら存在しなかったと判断する。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG.はカレント、..はペアレント
0141デフォルトの名無しさん
NGNGBDEも一緒にインストールさせたいのですが、どうしても、BDEがインストールできません。
この辺のやり方を解説しているサイトがあったら教えていただけないでしょうか?
具体的にはインストールしたマシンで実行しようとするとそんなデータベースは無いと怒られてしまいます。
0142デフォルトの名無しさん
NGNG0143141
NGNG即レスありがとうございます。
はい。きちんとインストールしてます。
すみません、私の質問の意味がきちんと伝わってないといけないので書きますと、
Delphi環境の入っていないマシンに自分の実行ファイルとBDEをインストールするように
InstallShieldで設定しているのに、InstallShieldを実行した後で、自分の作った
プログラムを実行するとそんなデーターベースソースは無いって怒られるんです。
0144デフォルトの名無しさん
NGNGまとめサイトとかあればプリーズ
0145デフォルトの名無しさん
NGNG1581 件
0146デフォルトの名無しさん
NGNGが意外ですね。
0147デフォルトの名無しさん
NGNGすでに C#にも抜かれているんだな。
> C# (1879 projects)
もうそろそDelphiから手を引くのには良い潮時か。
0148デフォルトの名無しさん
NGNGばかだなw
0149デフォルトの名無しさん
NGNGなんでも宣言に読める奴もばかだなw
0150デフォルトの名無しさん
NGNG0151141=143
NGNG0152ググってきた。
NGNG269 :デフォルトの名無しさん :04/09/09 00:22
BDEは付属のInstall Shieldでインストーラを作成し配布する。
その他、BDEのディレクトリにあるBDEINST.CABを使ってWebで
配布する方法もある。同じディレクトリにあるBDEINST.TXTを参照の事。
0153141=143
NGNGたぶんそれはくだすれの過去ログだと思いますが、その質問をしたのは私です。
で、そのアドバイスに従ってやってみてBDEはたぶんきちんとインストールできたのですが、
どうもデータソース絡みの設定がきちんとできてないみたいでしてデータソース絡みが
きちんとインストールされていないようです。
一月悩んでもまだ解決しないのでどなたかお知恵を貸してください。
0154デフォルトの名無しさん
NGNG>プログラムを実行するとそんなデーターベースソースは無いって怒られるんです。
じゃいくつか質問。
・ファイルは展開されていますか?(展開後の BDE ファイルがどれかはわかりますね?)
・BDE アドミニストレーターはコントロールパネルにありますか?それは起動できますか?
この二つがクリアされていれば、問題は BDE インストーラーではなく(おそらく)データベースの
Alias が定義されていないだけ。でしょう。
とりあえず、ここまで確認を
0155141=143
NGNGレスありがとうございます。
>展開後の BDE ファイルがどれかはわかりますね?
がはっきりとは分からないのですが、実行ファイルはきちんと展開してあります。
あと、BDEもコンパネにあります。しかし、インストールしたいdatasourceは
表示されないです。
0156デフォルトの名無しさん
NGNGF5キーを押すとこのメソッドでエラーになるんですが、何でかな。
ショートカットキーは割り当ててないし。
ビジュアルコンポーネントをFreeした後にだけ発生します。
0157156
NGNG0158156
NGNG>function TCustomActionList.IsShortCut(var Message: TWMKey): Boolean;
2回目でエラーが出ます。
エラーが出ない場合は5回ほど飛んできます。
self.nameに値が入ってる場合は、「ActionList1」です。
0159デフォルトの名無しさん
NGNGあるアプリを起動させ、そのアプリのあるウィンドウが終了するのを待ちたいと思ってます。
アプリ自体の終了を待つならばWaitForSingleObjectでできるみたいですが、
そのアプリの特定のウィンドウの終了を待つにはどうしたら良いのでしょうか?
宜しくお願いします。
0160デフォルトの名無しさん
NGNG簡単にやるならウインドウハンドルが有効かどうかポーリングする。
一瞬の隙も見逃すわけに行かないなら
SetWindowLong関数を使ってウインドウプロシージャを書き換えてWM_CLOSEを拾う。
0161デフォルトの名無しさん
NGNGそのビジュアルコンポーネントのオーナーを
TCustomActionListのオーナーと同じものにすれば良いかと。
0163156
NGNG正常に動作するときにTCustomActionListのオーナーみてたら、
Freeされるフレームが混ざってました。
でも、ActionListのOwner差し替えしてなさそうなんだけどな...
とりあえず、アドレス違反を起こすコンポーネントが特定できたので、
サイアクの事態は回避しました。
0164156
NGNGActionListによって、
>function TCustomActionList.IsShortCut(var Message: TWMKey): Boolean;
がコールされるものとされないものと、どこで分かれるんでしょうか。
ソースをざっと見たところ、ショートカットは設定されてないし...
いくらDelphiでも、アドレス違反エラーが出る場合の対処は(´・ω・`)ショボーン
0165デフォルトの名無しさん
NGNGフォーム等で押されたキーが TAction で処理されるべきかどうかを判定するための
メソッド。
TForm (かその祖先クラス)のメッセージハンドラ近辺から読んでいくと呼び出している
コードが見つかるだろう。
0166デフォルトの名無しさん
NGNGあと、Free じゃなくて FreeAndNil を使ってみたら?
0167デフォルトの名無しさん
NGNGなるほど、ショートカットを割り当ててるからコールされるんでなくてショートカットの割り当てを判定してるんですね。
じゃぁ、毎回コールされるのかな思って、幾つかあるフレームクラス(これらのCreate/Freeが繰り返される)を見直してみたら、アクションリストがあるのはアドレス違反起こすフレームにだけありました。
つまり、フレームクラスにアクションリスト貼り付けない方が良いのかな。
0168デフォルトの名無しさん
NGNG問題ないと思うけど、頻繁に Create/Free? そいうコードはあまり経験ないなぁ。
多分、Free の方に何か問題があるのだと思うけど、ここから先はコードがないと何ともいえない。
0169デフォルトの名無しさん
NGNGアクションとか使って、そのアクションのターゲット自体が破棄される時、
ターゲット自体にまだ実行されるコードが残っているとAVが発生する。
これは仕様だ。唯一の回避方法は正しい使い方をすること。
Releaseなんてのがあるのはそういった問題の回避のためなんだよね。
0170デフォルトの名無しさん
NGNGなるほど、参考になりました。
AVが発生するというより、
アクションリストが破棄されてるのにアクションリストのキーチェック処理がレジストされたまま、
みたいな感じなんで、もしかしたら今回の件は若干違うかもしれませんが。
テスト結果は今日明日にこのスレに報告致します。
0171デフォルトの名無しさん
NGNG故にデストラクタから制御が戻らず困ってるのですが,原因として何が考えられるでしょうか。
0172デフォルトの名無しさん
NGNG0173171
NGNGとしています。純粋仮想なのでinheritedは書いていませんが。
デストラクタが呼ばれた時Terminatedを見てExecuteのループから抜けてるのは確認しています。
0174171
NGNGオーバーライドして,基底のデストラクタも呼んでます。
TThread.Destroyの
Terminate;
if FCreateSuspended then
Resume;
WaitFor;
この部分で止まってしまう訳なのです。
0175デフォルトの名無しさん
NGNGまさかデッドロックを引き起こす様なコードは書いてないだろうな?
WaitFor中にはSynchronizeの処理が行われたりするのだが、その時待機状態になるコードがある場合そこで止まる可能性がある。
いづれにしても、自分でトレースすればわかることだ。
0176デフォルトの名無しさん
NGNGオレの経験上w
0177171
NGNGfinalizationの中でスレッドを終了しようとした時,EndThreadが呼ばれてもスレッドが走行中のまま終了しなかった。
故にシグナル状態にならず,MsgWaitForMultipleObjectsのあたりのループをぐるぐるしてた。
対策
TThread派生オブジェクトのフィールドにExecute実行中かどうかを表すフラグを追加。
(イベントオブジェクトだとResetしてもWaitForSingleObjectが返ってこなかったから)
finalizationではTerminateを呼んだ後そのフラグを監視。
実行中フラグが外れたらTerminateThread呼んだ後Free。
finalization中ではカーネルオブジェクトの扱いはやめた方がいいのかな。
お騒がせしました。
0178デフォルトの名無しさん
NGNGTTestThread = class(TThread)
protected
procedure Execute; override;
end;
procedure TTestThread.Execute;
begin
Sleep(3000);
end;
var
Thread: TTestThread;
initialization
Thread := TTestThread.Create(False);
finalization
Thread.Free;
現象を再現できない。バグの原因は違うところだと思う。もう一度自分のコードを見直せ。
0179デフォルトの名無しさん
NGNGMessageDlgでボタン[mbYes,mbNo]を使用しているのですが、
ダイアログが表示された際にフォーカスが必ずmbYesに当たっているので
これをデフォルトでmbNoにフォーカスを当てたいのですが、方法が分かりません.
どなたかご教授ください。
0180デフォルトの名無しさん
NGNGFindChildControl で 'No' {No ボタンの Name}
を取得して、SetFocusedControl で上のコント
ロールを TWinControl にキャストしてフォーカ
スし、 ShowModal で返り値を得る。
泥臭い方法の一つ。
0181デフォルトの名無しさん
NGNGこれが一番早い
0182デフォルトの名無しさん
NGNGTApplication.MessageBox使え。
flagにMB_DEFBUTTON2。
API直でもいいけど。
0183180
NGNGいつも感心するぜ。
0184171
NGNG失礼。説明が足りないばかりに話を長引かせてしまって。
解放するのはDLLファイルなのです。
ホストアプリとしてボタンを2個持つアプリケーションを作成,一方を
module := LoadLibrary('Project2.dll')
他方を
FreeLibrary(module);
を行うよう設定
DLL側はTThreadから派生するクラスTMyThreadでExecuteだけをオーバーライド
グローバルにMyThread: TMyThreadを確保してプロジェクトのbegin〜end;で生成
他は下に示すようなものを作って検証
procedure TMyThread.Execute;
begin
while not Terminated do
Sleep(100);
end;
initialization
finalization
if Mythread <> nil then
Mythread.Free;
結果同様の現象が起こりました
0185デフォルトの名無しさん
NGNG確認できました。そんでもって調べました。Windowsの仕様です。結論としてはそのような使い方をしてはいけない。
参考
ttp://www.numeric.co.jp/Win32.htm#Q0004
DLL_PROCESS_DETACHが呼ばれた状態でスレッドが存在しないようにしましょう。
まあ開始終了の関数をエクスポートしておけば無事解決。
0186デフォルトの名無しさん
NGNG実行すると、パネル2 からはみ出した、パネル1 内での位置っぽい感じで Edit1 が表示されます。
オブジェクトツリーでは Edit1 は間違いなくパネル2 の下にあります。
新たにパネル2 上に別の Edit2 を追加すると、そのように表示されるので、Edit1 が
何からおかしいようなのですが、その理由がわかりません。
何か思い当たることはあるでしょうか?
コードで位置を変更したりはしていません。
0187デフォルトの名無しさん
NGNGプロパティのWriteに使われているメソッドの書式を教えてください。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGDelphi6 でも Doc ディレクトリに公開されているインターフェースのソースが公開されていますが
そちらは確認済みですよね?
0190デフォルトの名無しさん
NGNGもしくは、代替で実現できるコンポーネントはあるのでしょうか?
初心者すぎてすみません・・・
Delphi6使用です。
0191デフォルトの名無しさん
NGNGVBのListItemsにはそんな感じのプロパティがあった気がするんですが
Delphiでみあたりません、教えてください
0192デフォルトの名無しさん
NGNGTEdit
>>191
OwnerDraw
0193デフォルトの名無しさん
NGNGこういうこと?
procedure TCustomPanel.SetText(const Value: TCaption);
>>188-189
答える気がないならレスしなくていいよ。ここはそういうスレだから。
0194デフォルトの名無しさん
NGNGprocedure TControl.SetText(const Value: TCaption);
0195デフォルトの名無しさん
NGNGTPanel でフォームの領域分割をする場合はTPanet.Align を
片方のパネルを alBottom、alLeft、alRight、alTop のいづれか
もう片方を alClient とする。
0196デフォルトの名無しさん
NGNGレスありがとうございます。
どこで使えるのか探してみていますが、TEdit内で
「○○はここです \\サーバ名\フォルダ...」のように、
通常文字とリンクを混合させた場合でも、リンクははれるのでしょうか?
要は、コメント欄を作って、その中でファイルへのリンクを貼りたいのです。
クリックすると、ファイルが開くような・・・
0197デフォルトの名無しさん
NGNGClientSocketのHostプロパティに無効なURLを入力すると
OnErrorイベントが発生しないで
「'ASync Lookup' APIでWindows ソケットエラー:そのようなホストは不明です。(11001)」
というメッセージが表示されちゃうのはなんとかできないのでしょうか?
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGあ〜、DelphiはItemにそういう項目はなくてListViewのCanvasをそこでいじるんですね
解決しましたー、ありがとう
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGヘルプとか参照してみたんですが分からないです・・・orz
0202デフォルトの名無しさん
NGNGTRichEdit
0203デフォルトの名無しさん
NGNG> OnTerminate イベントハンドラは,メイン VCL スレッドのコンテキスト内で呼び出され,
> VCL メソッドおよびプロパティを自由に呼び出せるようにします。
とありますが、これは Synchronize を使用したときのようにスレッドセーフでないオブジェクトも気にせず扱えるということですか?
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGじゃ表示されないんだYO!
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG回答の質のレベルダウンは目を覆うばかりだな。あちこちのBBSも同じ状況
0212デフォルトの名無しさん
NGNGForm.ManualFloat(Rect)
したくて、かつ、Formの位置を変えずに表示させたいんですが、
Rectには何を入れたら良いですか?
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGTextプロパティ
0215デフォルトの名無しさん
NGNGWinExec('IEXPLORE.EXE' ,SW_SHOW);
ShellExecute(0, 'OPEN', Pchar('http://www.yahoo.co.jp/'),nil, nil, SW_SHOWNORMAL);
このようにやっていて一応目的は果たせているのですが、
環境によってはブラウザ起動後ホームに設定してあるページが1,2秒表示され、やっとyahooへ飛ぶといった挙動になってしまいます
HTMLのリンクをクリックした時のように最初からURLをセットした状態で新規に起動したいのですが、何か解決方法はありますでしょうか?
0216デフォルトの名無しさん
NGNGん?1行目要るか?
0217デフォルトの名無しさん
NGNG一行目を入れないとすでに開いているブラウザにURLをセットしてしまいます
新規に起動させたブラウザにyahooをセットしたいのです
0218デフォルトの名無しさん
NGNGCommaTextつうのもある
0219ななしへたぐらま ◆XcB18Bks.Y
NGNGTClientSocket 11001 でぐぐってみたら一発目にこんなのが出てきましたよ.
http://www.talkaboutprogramming.com/group/comp.lang.pascal.delphi.misc/messages/242762.html
0220デフォルトの名無しさん
NGNGこれでは駄目ですか?
ShellExecute(0, 'OPEN','IEXPLORE.EXE' ,'http://www.yahoo.co.jp/', nil, SW_SHOWNORMAL);
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224初心者
NGNGテキストファイルに保存してある文字列を、
ComboBoxやMemoに読み込んで表示させたいのです。
テキストファイルの中身を、
a1,a2,a3,a4,a5,a6
b1,b2,b3,b4,b5,b6
c1,c2,c3,c4,c5,c6
と仮定して、
a1,b1,c1をComboBoxに
a2,b2,c2をMemo1に
a3,b3,c3をMemo2に
・・・
a6,b6,c6をMemo5に
というふうに、コンマごとに区切って表示させたいんです。
さらに、ComboBoxで選ばれた文字に対応するデータをMemoに表示させたいんです。
例えば、
ComboBoxで、a1を選んだとすると、
Memo1はa2、Memo2はa3、Memo3はa4、Memo4はa5、Memo5はa6が、
とこんな感じで。
LoadFromFileメソッドを使うってのは分かるんですが、
イマイチ良く分からないんです・・・。
よろしくお願いします。
0225デフォルトの名無しさん
NGNGそんな処理、かなり強引なコード書くしかないと思う
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229215
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG丸投げイクナイ
もう少しポイントを絞って質問しなよ
0232デフォルトの名無しさん
NGNG正直お勧めはしない
procedure TForm1.FormCreate(Sender: TObject);
const
TextFile = 'test.txt';
var
str : TStringList;
i,j,k : integer;
tmpstr,substr : string;
Control : array [0..5] of TWinControl;
begin
Control[0] := ComboBox1;
for i := 0 to 4 do
Control[i+1] := TWincontrol(FindComponent('Memo'+inttostr(i+1)));
str := TStringList.Create;
try
str.LoadFromFile(TextFile);
for i := 0 to str.Count-1 do
begin
tmpstr := str[i];
for j := 0 to 5 do
begin
k := pos(',',tmpstr);
if k = 0 then
k := Length(tmpstr)+1;
substr := Copy(tmpstr,1,k-1);
if Control[j] is TMemo then
TMemo(Control[j]).Lines.Add(substr)
else if Control[j] is TComboBox then
TComboBox(Control[j]).Items.Add(substr);
Delete(tmpstr,1,k);
end;
0233232
NGNGfinally
str.Free;
end;
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGprocedure TForm1.FormCreate(Sender: TObject);
const
TextFile = 'test.txt';
var
str,str2 : TStringList;
i,j : integer;
Control : array [0..5] of TWinControl;
begin
Control[0] := ComboBox1;
for i := 0 to 4 do
Control[i+1] := TWincontrol(FindComponent('Memo'+inttostr(i+1)));
str := TStringList.Create;
try
str.LoadFromFile(TextFile);
str2 := TStringList.Create;
try
for i := 0 to str.Count-1 do
begin
str2.Clear;
str2.CommaText := str[i];
for j := Low(Control) to High(Control) do
begin
if Control[j] is TMemo then
TMemo(Control[j]).Lines.Add(str2[j])
else if Control[j] is TComboBox then
TComboBox(Control[j]).Items.Add(str2[j]);
end;
0236デフォルトの名無しさん
NGNGfinally
str2.Free;
end;
finally
str.Free;
end;
end;
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGColsのCommaTextで読み出すのが一番簡単かな
0241初心者
NGNG出掛けていたもので・・・。
質問の丸投げなんてとんでもないです。
ほんとスイマセン。
確かに強引なのは分かっているんですけど、
237でおっしゃっておられるように、
ComboBoxのリストをセレクタとしてMemoに表示させる内容を変更させるのが目的なんです。
教えていただいた方法で試してみます。
で、238でおっしゃっておられるように、
ComboBoxのリストのセレクタを変更させる毎に、
Memoに表示させる内容を変更させたいんですよね。
240でおっしゃっておられる方法ですれば、上手くいくのでしょうかね?
試してみたいと思います。
また行き詰まったら、質問してもいいでしょうかね?
よろしくお願いします。
0242デフォルトの名無しさん
NGNGあとはどうとでもできる。既出の TStringList の CommaText の使い方を
覚えるのがポイント。
0243240
NGNGCドライブに>>224の内容をtest.txtいうテキストファイルを用意。
Buttonをダブルクリックしてイベントハンドラに以下を記述。
procedure TForm1.Button1Click(Sender: TObject);
var
SL,SL2: TStringList;
i: Integer;
begin
SL := TStringList.Create;
SL2 := TStringList.Create;
try
SL.LoadFromFile('c:\test.txt');
StringGrid1.RowCount := SL.Count;
SL2.CommaText := SL.Strings[0];
StringGrid1.ColCount := SL2.Count;
for i := 0 to SL.Count - 1 do
StringGrid1.Rows[i].CommaText := SL.Strings[i];
ComboBox1.Items.CommaText := StringGrid1.Cols[0].CommaText;
Memo1.Lines.Add(StringGrid1.Cols[1].CommaText);
Memo2.Lines.Add(StringGrid1.Cols[2].CommaText);
Memo3.Lines.Add(StringGrid1.Cols[3].CommaText);
Memo4.Lines.Add(StringGrid1.Cols[4].CommaText);
Memo5.Lines.Add(StringGrid1.Cols[5].CommaText);
finally
FreeAndNil(SL2);
FreeAndNil(SL);
end;
end;
0244240
NGNGprocedure TForm1.ComboBox1Change(Sender: TObject);
begin
Memo1.Lines.Add(StringGrid1.Cells[1,ComboBox1.ItemIndex]);
Memo2.Lines.Add(StringGrid1.Cells[2,ComboBox1.ItemIndex]);
Memo3.Lines.Add(StringGrid1.Cells[3,ComboBox1.ItemIndex]);
Memo4.Lines.Add(StringGrid1.Cells[4,ComboBox1.ItemIndex]);
Memo5.Lines.Add(StringGrid1.Cells[5,ComboBox1.ItemIndex]);
end;
あとは実行してみれ。
0246デフォルトの名無しさん
NGNGこういう手続きを宣言したとき引数の型を調べるにはどうすればいいのでしょうか?
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG無理
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGNew Dispose は難しそう。
0252初心者
NGNG0253デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGSetWindowPosを使った方法もあります。
こっちの方が強力です。
SetWindowPos、HWND_TOPMOST
あたりを検索してみてください。
0259デフォルトの名無しさん
NGNG>>258だと消えないという違いもあるな。
0260デフォルトの名無しさん
NGNGrecordなどの代わりにclassで実装するのも手だよ。
0261デフォルトの名無しさん
NGNG初心者ほど使いたがるが。
0262デフォルトの名無しさん
NGNG感想は書かなくていいよ。スレ違い。
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG禿同。ユーザの立場からはそういえるね。
0265デフォルトの名無しさん
NGNGそのポップアップメニューを差し替えるのではなくて、追加メニューしたい場合はどうしますか?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG無理でした
0268デフォルトの名無しさん
NGNGのですが、どのイベントプロシージャを使えば良いですか?
0269デフォルトの名無しさん
NGNG0270268
NGNG早い返事ありがとうございます。ついでにカーソルをはずした時のイベントプロシージャも
教えていただければ幸いです。
0271デフォルトの名無しさん
NGNGImageList1.GetBitmap(0,SpeedButton1.Glyph);
0272デフォルトの名無しさん
NGNG練習でデスクトップのキャプチャーを作ってみたのですが、思うように動作しません。
bmp:=Tbitmap.Create;
bmp.width:=screen.Width;
bmp.height:=screen.Height;
dc:=getdc(0);
hide;
sleep(500); {←※}
bitblt(bmp.canvas.handle,0,0,bmp.width,bmp.height,dc,0,0,srccopy);
show;
フォームにボタンを貼り付け、
ボタンを押したら自分自身を隠してからキャプチャーしようと思ったのですが、
※の行がないと、ウィンドウが消える前の状態がキャプチャーされてしまいます。
これだとマシンの処理速度によっては待ち時間が無駄になってしまうので、
もっとスマートに、hideの処理が終わったら次に進むようにするには
どう書けばよいのでしょう?
0273デフォルトの名無しさん
NGNG押したら自動的にスクリーンセーバーが立ち上がるソフトがありますよね。
あれって、タスクトレイにアイコンも無くてタスクバーにもアプリのタブが無いソフトが
時々ありますけど、ああいうのってどうやって作るのでしょうか?
参考になるサイトなどありましたら教えてください。
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG普通にプロジェクトを作ればタスクトレイには何も出ない。
Hide;と書けば自分自身のウィンドウも消える。
タスクバーからも消すにはちょっと手間がかかる。
http://pc3.2ch.net/tech/kako/1022/10229/1022921598.html
ここの22以降を見るべし。
0276デフォルトの名無しさん
NGNGWindows APIを呼ぶとコンパクトにできる。
ttp://www.wwlnk.com/boheme/delphi/tips/tec1310.htm
0277デフォルトの名無しさん
NGNGオレのところでは Sleep なくてもいいけどね。
かわりに
while IsWindowVisible(Handle) do;
とかしておけばいいんでは? API使うのはOSにききたいからだけど。
0278272
NGNGありがとうございます。さっそく試してみたのですが、
残念ながらその方法ではダメでした。
どうやら、Hideメソッドが呼ばれると、まずVisibleプロパティをクリアしてから
デスクトップを再描画しているみたいです。
Slot 1のセレロン300という化石のようなマシンなので、ものすごく遅いんです。
ウィンドウも上下左右の枠を順番に描画しているのがわかるぐらいなのです。
0279デフォルトの名無しさん
NGNGまたは
PostMessageして遅延させろ
0280デフォルトの名無しさん
NGNGSleep なしでもうまくいく環境もあることからアプリ内のメッセージ処理の問題ではない。
デスクトップの再描画の速度の問題だから、アプリ内で本質的な遅延時間を決めることはで
きない、と思われ。タイマやSleepなどで逃げるしかない。
0281デフォルトの名無しさん
NGNGなんか迷惑だな。
0282272
NGNGいただいたヒントでぐぐって調べてみたのですが、PostMessage等は
いったん別のプロセスに制御を渡して(?)、待ち時間を有効に使う手段のようですね。
つまり、GDIで再描画の完了を検出する方法はないということなのでしょうか?
0283281
NGNGFormのParentがFreeされても、Formの実態はFreeされませんね。
Formの場合だけ???
0284デフォルトの名無しさん
NGNGTEditってAlignmentプロパティ無いんですね。
意外でした・・。
0285デフォルトの名無しさん
NGNG(たとえば複数のTEDITを配列のように扱うなど)
0286デフォルトの名無しさん
NGNGあるメッセージが送られてきたときに特定のキーが押されているかどうかを調べるにはどうすればいいのでしょうか?
ぶっちゃけて言うと、WM_LBUTTONDOWNを受け取ったときにShiftキーが押されているどうかを調べたいんですけど
0287286
NGNGGetKeyStateを使ったらアホみたいに簡単にできました。
お騒がせしてすんません。
0288デフォルトの名無しさん
NGNG何言ってるの?
例えば、Form1 の Panel1 に Button1 をのせたら Button1 の Owner は Form1、
Parent は Panel1。
0289デフォルトの名無しさん
NGNGTForm にはふつう parent はない。無理に設定すると、親が Free するとき
ウィンドウは破棄されて、言語上のオブジェクトが生き残る、という珍妙な状況になる。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGPostMessageで送られると思われるので、BitBlt実行時にはまだ WM_PAINTの処理が
終っていないのかも知れませんね。
RedrawWindow で強制的に再描画させる事は出来ないかな?
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG一個分のデータ構造を自前で定義しておいて TComboBox の Items.Objects に
つっこんでおいたらどうですか?
データの部分は TStringList を使うとか、array[] of PChar へのポインタとか
お好みのものでどうぞ。
いずれの場合も、Items はデータ自身を所有しないので、自分で確保したものは
適切な方法で解放する必要があります。
>>289
Form には Owner があり、自動生成なら Application グローバル変数。
Application グローバル変数が廃棄されるときに Form も廃棄されます。
オブジェクトが存在しないとウィンドウは存在できないけど、オブジェクトが
存在するからといってウィンドウが存在するとは限りません。
0294デフォルトの名無しさん
NGNG289 です。そう、そのとおり。それを言っている。TForm の Owner はデフォルトで
Application であり、Parent はない。 SetParent(Handle) で無理矢理設定すると
Windows の仕組みによって、Parent が破棄されるとき Form のウィンドウは破棄され
るけど、インスタンスの破棄の権利はVCLの仕組みによって Owner が持っている。
0295デフォルトの名無しさん
NGNG> RedrawWindow で強制的に再描画させる事は出来ないかな?
いや、だから再描画をトリガすることはできるけど、一般にそれが終わったことを
検出するのが難しい、ということ。とくに他アプリでは。前面のウィンドウを最小化
したり、Hide したりするだけで自動的に再描画されるし。
0296デフォルトの名無しさん
NGNG>TWinControl.Parentと親ハンドルを混同している。
そうなの? Parent のウィンドウハンドルと、その「親ハンドル」とはどこが違うの?
0297デフォルトの名無しさん
NGNG格納されるデータ数が同じだとしたら、次元を増やしても問題ないでしょうか?
配列内で同一の性質を持つデータ間で演算を行いたいのですが、
例えばデータを二次元配列で定義していると、条件判断文を相当な回数行わなければならなくて、
その条件事態を配列の数値で判断してしまえば(つまり性質を配列の数字で定義します)
if文やらを使う必要は無くなるのですが、その場合五次元以上の配列になってしまいます。
単純に演算回数だけを見れば後者のほうが少ないのですが、
あまり配列を複雑にするのはマズイような気がしました。
分かりにいうえ、つまらなくて申し訳ないですが、どなたかアドバイス頂けると助かります。
0298297
NGNGですので、次元を下げた場合、レコードの中で性質を定義する変数が増えます。
条件判断文はそのプロパティを使用して行うということです。
0299デフォルトの名無しさん
NGNGメンテが楽な、そして、ロジックが見えやすいコードになると思います。
0300297
NGNGありがとうございます。
やはり配列が複雑だとバグの危険性が伴うのですね。
三次元配列くらいなら、極端に条件判断が増えることもないので、ひとまずはそれで組んでみます。
0302デフォルトの名無しさん
NGNG文字列は''、数値は0になるだけでいいんですが
0303デフォルトの名無しさん
NGNGFillChar
0304デフォルトの名無しさん
NGNGサンクス!早速試してみます
0305デフォルトの名無しさん
NGNGDelphiは複数インストールすることはできないのでしょうか、、
Delphi6において、Update Pack2を当てているとエラーがでるソースがあるので
当てているものと当てていないものと、二つ環境を作りたいのですが。。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGできればDelphiを複数用意したいのです。。(´Д`;
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGそれはUpdatePackを当てていないものならエラーはでない。という保証はあるの?
漏れの場合、OSをMeからXPにしたところ
ActiveXの取り込みを使ってるプロジェクトが、終了時に原因不明のエラーを吐く様になった。
わざわざOSのクリーンインストール(途中で致命的ミスがあったため結局こうするしかなくなった泣)から
UpdatePackの当てなおしやら、いろいろやりなおしたけど、結局解消しなかった。
今でも解消してないけどデバッグ・プログラミングには影響ないから我慢してそのまま使ってる。
0310デフォルトの名無しさん
NGNG吐き出される乱数が整数なんです・・・
実数の乱数を吐かせるにはRandG関数を使うのでしょうか?
GUIだと範囲指定しなくても使えるけど、
コンソールだと範囲指定しれ!ってコンパイラさんに怒られるんですぅ('A`)
0311テレパス名無しさん
NGNG○ Random
0312デフォルトの名無しさん
NGNGあるtxtファイルの、最後の行の内容を変数に代入して使いたいのですが、
どうすればいいでしょうか。
(a.txt)
あいうえお
かきくけこ
さしすせそ
というものがあったとして、
さしすせそを変数に入れたいということです。
書き込むときには、
TStringList.CreateしてLoadFromFileで読み込み、Add→SaveToFileとしています。
応用で、
(b.txt)
あ,い,う,え,お
か,き,く,け,こ
さ,し,す,せ,そ
という、各行が,区切りになっているものがあったとして、
さ,し,す,せ,そをそれぞれ別の変数に入れたいのですが
これはどうでしょうか?
これも最後の行だけでいいのですが。
0313デフォルトの名無しさん
NGNG知りたければVCLソースを読みなさい。
0314デフォルトの名無しさん
NGNG宿題ですか? ではヒントだけ。
ヘルプでTStringListとTStringsのプロパティーを全部見れば解かる。
0315デフォルトの名無しさん
NGNG>>243-244を見てね
0316デフォルトの名無しさん
NGNGVCLソースに「親ハンドル」の定義が書いてあるのか?
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGTControl.Parent
Parent プロパティは,コントロールの親の名前を示します。
property Parent: TWinControl;
これって、間違いだよな。「親の名前」が TWinControl なわけないし。
ヘルプ書いた人は、インスタンスと「インスタンス変数の名前」を混同してるな
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG●●●○○○○
↓
●△△●●○○
ということをやっています。
○は空、●は既存データ、△は挿入したデータです。
データの数は数百から数千ほどを想定しています。
●を移動するのに、二つ方法を考えています。
1、forで一つずつコピーする
2、データ挿入後SetLengthで切る
どちらが高速ですか?またはもっとマシな方法ありますか?
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG挿入や途中の要素の削除などをする場合は、動的配列は面倒だし、有効データの数も管理してくれない。
どんなデータかわからないけど、TObject の派生クラスにして、TObjectList を使うのが
おすすめ。インスタンス管理も自動化されるし。欠点は、いちいちコンストラクタを実行しなければ
ならないことと、データの入出力部分をキャストしなければならないこと。専用のリストクラスを
つくれば、どちらも解消される。ファイルアクセスのメソッドも作れるし。
0323デフォルトの名無しさん
NGNG現在、TList使ってますが、楽したいんじゃなくて速くしたいんです。
面倒でも高速な方法をとりたいということで考えてるところです。
要素が増えたり減ったりするたびにメモリを確保したり解放したりしない方法で
何とか速くできないかと思い、その一つのアイデアとして上のように想像してます。
0324デフォルトの名無しさん
NGNGSystem.Moveをつかうとよろし。
範囲チェックしてくれないから自分でいろいろ管理する必要があるけど
0325デフォルトの名無しさん
NGNG「はい」「いいえ」のダイアログをMessageDlgで出して
「いいえ」が選択された場合フォームは閉じないようにしたいのですがどうしたら良いですか?
それとイベントのOnCloseとOnCloseQueryはどちらに書いたほうがよいですか?
0326デフォルトの名無しさん
NGNG>要素が増えたり減ったりするたびにメモリを確保したり解放したりしない方法
それなら、はじめから必要最大限の要素を作っておけば、並び替えは TList でも
TObjectList でもポインタだけだから高速なはず。動的配列のように、内容をすべて
コピーしなおすのはスピード重視なら愚の骨頂。
0327デフォルトの名無しさん
NGNG自分で Move してずらすこともできるし。実体は別に確保する必要があるが。
それでも TList の方が使い勝手がいいと思うけど
0328デフォルトの名無しさん
NGNG処理しようとしています。
このバーコードリーダはキーボードとして動作する為、読みとった値を
あたかもキーボードから入力したかのごとくPCに送り込んできます。
そのため、バーコード内にキーコード外のデータ(漢字など)が含まれて
いると、正しく値を読みとれません。
Keydownイベントで値を読みとろうとしてみたのですが、仮想キーコードに
変換済みの値しか読みとれず、上手くいきません。
キーコードが何であろうと関係なく送られてきたデータを読みとりたいの
ですが、何か良い方法はないでしょうか?
0329デフォルトの名無しさん
NGNG>実行時に FormStyle の値をなるべく変更しないでください。
とありますが、実行時にfsStayOnTopしたい場合はどうしますか?
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGうまくいかない例(漢字など)をあげてください。どのようにうまくいきませんか。
0332329
NGNG0333329
NGNG0334デフォルトの名無しさん
NGNG0335334
NGNG0336デフォルトの名無しさん
NGNG回避って、それが普通では?
0337334
NGNGエラーメッセージウィンドウが出たときだけはStayOnTopをオフにしたいでつぅ
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGPopupMenuのクリックイベントでどのコンポで発生したのか判断で期末か?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGOnCloseQueryをヘルプで検索して説明をよく読めば
あなたの疑問は解決するだろう
0342デフォルトの名無しさん
NGNGprocedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := MessageDlg('閉じる?', mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end;
>>339
PopupComponentってのがそれな希ガス
0343デフォルトの名無しさん
NGNGEM_SETTABSTOPS
0344デフォルトの名無しさん
NGNGインデックスによる参照がいらないなら、
リンクリストを自作すると移動が不要なので理論上は最速。
>329,334
正しくはNormalizeTopMostsとRestoreTopMostsを使う。
エラーってのが例外の事ならApplication.OnExceptionに
ShowExceptionをNormalizeTopMostsとRestoreTopMostsで挟んだ
自作の例外ハンドラを指定する。
0345デフォルトの名無しさん
NGNGそれは、削除や挿入はそうですけど、たとえば1000番目の項目にアクセスするときは
リンクを辿って行かなければならないでしょ。
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNGNormalizeTopMosts メソッドは,一番上のフォームとして指定した
フォーム(FormStyle が fsStayOnTop のフォーム)の上に別のフ
ォームを重ねて表示できるようにします。
だから、とにかく fsStayOnTop をフォームに設定するところは同じなんでは?
0348デフォルトの名無しさん
NGNGいや、1000番目に挿入するときも削除するときもそう。追加するときは大変。
リンクリストはシークエンシャルアクセス以外は使い道なさそう。そもそもインデックス
でアクセス出来なければ、挿入や削除もあんまり意味ないし
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG>またはもっとマシな方法ありますか?
0351デフォルトの名無しさん
NGNGまっ、ポインタと同じサイズのintegerなんかの配列だったらそれでもいいけど。
0352325
NGNGありがとうございます
なかなかレスがつかなかったのでくだすれにすらふさわしくないくだらない質問だったのかと思って過去ログ漁ってたら同じような質問があって解決しました
0353デフォルトの名無しさん
NGNG配列というランダムアクセスがO(1), 挿入・削除がO(n)なデータ構造選んでるんだから
そこを覆すような代案するなんてアホだろ。
オーダー変えずにオーバーヘッドの削減する方法を聞いてるんだろ。
0354デフォルトの名無しさん
NGNGで回答は?
0355デフォルトの名無しさん
NGNGTList も TObjectList も同じオーダー。実体コピーかポインタコピーかの違い。
0356デフォルトの名無しさん
NGNG知らなかった。
0357デフォルトの名無しさん
NGNGParent は GetParent(Form.Handle) で得られるウィンドウの事で、
Free は DestroyWindow の事だったのか!
それなら正しい。
0358デフォルトの名無しさん
NGNG違う。TList も TObjectList も挿入・削除ではポインタコピー。
配列なら実体コピーだろ、て意味。
0359デフォルトの名無しさん
NGNG0360334
NGNGShowModalなウィンドウが開く前後をトラップというか監視できれば、
>Application->NormalizeTopMosts();
>Application->MessageBox("This should be on top.", "Look", MB_OK);
>Application->RestoreTopMosts();
で回避できますね。
FormクラスとApplicationクラス調べてみまつ。
0361334
NGNG>Application->ShowException(E);
の前後で、NormalizeTopMosts/RestoreTopMostsしてみまつ。
0362334
NGNGMainFormの場合はShowModalやエラーダイアログがTopMostウィンドウより上に来てくれますね。
その時点のMainFormみたいなのを設定できないんだろうか。
NormalizeTopMostsの中のソース見ましたが、ちょっと追い難いでつ。
0363デフォルトの名無しさん
NGNG>FormChild.Parent := FormParent;
>FormChild.Show;
とすると、フォームの中にフォームが入りますが、
FormChild上のMomoコンポーネントがマウス受け付けません。
タブキーでFocusがくるとキーボードは受け付ける、みたいな。
どうすれば普通に動作しますか?
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366334
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369334
NGNG0370デフォルトの名無しさん
NGNGOnException イベントは,アプリケーション内で処理されない例外が生成されたときに発生します。
0371デフォルトの名無しさん
NGNGfsStayOnTop を使いたい気持ちはわかるけど、君みたいなプログラマがたくさんいて、
他のアプリでも同じようなことしてたら、君のフォームが最前面にくる保証はないよ。
0372334
NGNG他アプリじゃなくて、自アプリ内でつ。
フォームが変わる度に、それらについてくる付箋紙みたいな画面、みたいな。
0373372
NGNG0374372
NGNG334の間違いでつ。
0375デフォルトの名無しさん
NGNG他のプロセスのフックプロシージャを止めるのは無理なのでしょうか?
0376●
NGNG0378デフォルトの名無しさん
NGNGMDIの親フォームにメニューとステータスバー以外のコントロールをおくのは間違い
0379334
NGNG>ChildForm.Parent := ParentForm;
>ChildForm.ManualFloat(Rect);
>ChildForm.Show();
みたいなことしてまして、ManualFloatでParentがNilになってます。
parentがnilのFormだと駄目なんかな?
0380デフォルトの名無しさん
NGNGみたいな挙動をするソフトを作るには、どうすればいいか、ヒントとかを教えてください。
(リンク先のは、DelphiでいえばTreeViewコンポーネントみたいなものだけど、実際に自分が聞きたいのは、ListBoxを使った時の
実装方法のヒントとかを教えてください。)
0381デフォルトの名無しさん
NGNG正しく判断する方法はありますか?
Win32APIのIsWindowEnabledでも駄目ですた。
0382デフォルトの名無しさん
NGNGTCustomListBoxを継承して作ればいいんじゃないのかな。
実装方法はTCheckListBoxが参考になるとおもう。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG「Delphi オブジェクト指向プログラミング」技術評論者からでていた本ですが
他に同等のおすすめ本ありませんか? 去年復刊したときに買い逃した
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG在庫僅少、今すぐに注文しろよ。Amazon はじめ、品切れ続出のようだ。
http://bookweb.kinokuniya.co.jp/htm/4774104272.html
0388デフォルトの名無しさん
NGNGされてたよな。「人の足下見やがって...」と出品者を呪ったもんだ。
復刊されたから俺でも入手できた訳だが、復刊.com と (このスレにも多数いるで
あろう)賛同者の皆様方には、ほんと感謝してる。ありがとう。
0389デフォルトの名無しさん
NGNGVCLソースのShowModalを見なさい。
0390224
NGNGで、実行してみたのですが、どうも上手くいきません。
テキストファイルに入っている文字列は、スペースを含むものがあるのですが、
スペースで言葉が区切られてしまいます。
例えば、
a b,のような文字列があるとすると、a bを一つの文字で扱いたいのに、
aとbが区切られてMemoに表示されてしまいます。
aがMemo1に、bがMemo2にと言う感じです。
ComboBoxにも同じ現象が起きています。
さらに、ComboBoxで選んだ文字列に関連する文字列だけが
Memoに表示されるのではなく、全て表示されてしまいます。
テキストファイルを前回と同じで
a1,a2,a3,a4,a5,a6
b1,b2,b3,b4,b5,b6
c1,c2,c3,c4,c5,c6
と仮定して、
ComboBoxでa1をえらんだところ、
Memo1にa2,b2,c2を
Memo2にa3,b3,c3を
・・・
Memo5にa6,b6,c6を
と全て表示されてしまうんです。
なぜでしょう?
お手数ですが、またご教授願います。
0391デフォルトの名無しさん
NGNG配列に代入出来さえすると、なんでもできる。それから、TStringList の
CommaText は空白も区切りにするから、"" で囲むなどの工夫が必要。
0392デフォルトの名無しさん
NGNGShowModalん中で無限ループでメッセージ読み続けてるだけで、
親フォームには何にも通知されないんだね。
0393デフォルトの名無しさん
NGNG> 無限ループでメッセージ読み続けてるだけで、
モーダルループっていう。
自分以外はちゃんと EnableWindow( ,false) にされてるでしょ
モーダルダイアログが TCustomForm の派生クラスなら、Screen.ActiveCustomForm
の FormState に fsModal が入ってるから分かる
0394デフォルトの名無しさん
NGNG0395224
NGNGまた、ご教授いただいた通り、テキストファイルから取り出すのに使用した配列から、
さらに必要な部分だけを取り出して保存させる別配列も作成してみます。
ありがとうございました。
0396デフォルトの名無しさん
NGNGにしては、他ウィンドウのEnabledを見てみたらtrueなんだけど?
0397デフォルトの名無しさん
NGNGfsStayOnTopを使わずに、自アプリ内でいつもトップウィンドウにする方法教えて下さいでつ。
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGEnumThreadWindows で列挙した中に入ってるかどうか。
あるいは、もっと簡単に GetWindowThreadProcessId を使って ThreadID か
ProcessID が Application.Handle のそれと一致するかどうかでわかる
0400デフォルトの名無しさん
NGNG>他ウィンドウのEnabledを見てみたらtrueなんだけど?
いまソースが見られないところにいるんだけど
VCL のプロパティーに EnableWindow API の結果が反映されてないだけでは?
IsWindowEnabled API だとどうなる?
0401デフォルトの名無しさん
NGNG>FormのOnActivateでSetWindowPosしてZオーダー変えれば?
TScreen.OnActiveFormChange イベントのほうがいいと思う
0402380
NGNGありがとうございます。ちなみにそれは自分でコンポーネントを作る必要があると
解釈してよろしいのでしょうか?
継承とか使わないところは調べていないのでイマイチ意味がわかりませんが、
もう少し自分で勉強してみます。ありがとうございました。
P.S.レス遅くなってすみませんでした。
0403デフォルトの名無しさん
NGNG起動されていなければそのまま実行し、
起動されていればParamStrを渡して終了というのをやりたいんですが、
どうやればいいのでしょうか?
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG勘違いしてたけど、APIだとfalseになってる。これで判定しやすくなった。
0406405
NGNGということは、イベントハンドラとかメソッドは期待できないんだな。
変更を監視しとかなきゃならんのか。Timerしかないんか。
0407デフォルトの名無しさん
NGNGやさしく教えてくれるサイトとかありませんか?
ちなみにTCustomControl派生です。
0408デフォルトの名無しさん
NGNG>>401
0410405
NGNGTApplicationEventsアイコンみたく、Screenアイコンは無いんでつか?
0411デフォルトの名無しさん
NGNGどうやったらVCLオブジェクトを参照できるんでしょうか。
0412デフォルトの名無しさん
NGNGないから、型を調べて Form1 のメソッドにして代入する。
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG>GetActiveWindowでアクティブなウィンドウのハンドルを取ったとして
Screen.ActiveCustomForm.Handle と比較して一致したら好きにキャストしてつかう。
一致しなかったら、VCL のフォームじゃなく、API やコモンダイアログのウィンドウだから
VCLオブジェクトとウィンドウは無関係かもしれない
0415デフォルトの名無しさん
NGNGアイコンって・・・・
コンポーネントだろ。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGなんか馬鹿っぽくて、教えた句ねー
0419デフォルトの名無しさん
NGNGGetActiveWindowをやめて、Screen.ActiveCustomFormを使い待つ。
0420デフォルトの名無しさん
NGNGコンポーネント使わずCreateOleObjectでから始めたいのですが
0421デフォルトの名無しさん
NGNGOnPaint イベントで Paint.Canvas に描き込むだけでは駄目なのでしょうか?
0422デフォルトの名無しさん
NGNG○TPaintBox
です。
すみません。
0423デフォルトの名無しさん
NGNG>>421
Refreshメソッドは×
あれは背景色で塗りつぶしたあとPaintをメソッドを呼ぶからどうしてもちらつく
プロパティでcsOpaqueを追加すると領域をクリアしないでベタッと描画する
ただし領域全体を塗りつぶさない場合じゃない前の色のがゴミとなって残るので使えない
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG>テキストデータの文字列のスペース部分は、アンダースコアを入れることにします。
スペースを生かすために "" で囲むのは簡単だよ。
こんな感じ。
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
sl:TStringList;
begin
s := 'a b,c d,efg h,i j,klm';
sl := TStringList.Create;
try
sl.CommaText := '"' + StringReplace(s,',','","',[rfReplaceAll]) + '"';
Memo1.Lines.Assign(sl);
finally
sl.Free;
end;
end;
0426375,377
NGNG0427デフォルトの名無しさん
NGNG昔ここで紹介されていたサイト
ttp://hp.vector.co.jp/authors/VA036663/dbmsbyd6p.htm
ttp://www.geocities.jp/fjtkt/program/_frame.html
0428デフォルトの名無しさん
NGNGこれだけわかれば十分です
ありがとうございました
0429デフォルトの名無しさん
NGNGプロパティのアクセスメソッドの詳細を知りたいのですけど、???の部分のメソッド名とプ
ロトタイプをどなたか教えてください。
バージョンはDelphi6 Personalです。
property Caption: TCaption read ??? write ??? ;
0430デフォルトの名無しさん
NGNGproperty Caption: TCaption read GetText write SetText stored IsCaptionStored;
つうか*.intで調べろ。
0431デフォルトの名無しさん
NGNGcontrols.int の記述?
パーソ版には無いっぽい。
0432デフォルトの名無しさん
NGNG特定のパスの集合をとってきたいのですが。
0433デフォルトの名無しさん
NGNGそれでDelphi8のアカデミック版を購入しようと思っているのですが見当たりません
どこに行けば購入できるのでしょうか?
0435デフォルトの名無しさん
NGNG最後にカッコ数字がでるけど、何を表してるの?
Windows.pas (12)っていうやつ
0436デフォルトの名無しさん
NGNGunit Windows;
とかの。
0437デフォルトの名無しさん
NGNGコードを書いて入れるしか無いのですか?(プロパティエディタとかから入れる事は出来ないのですか?)
0438デフォルトの名無しさん
NGNGぐぐったら
http://store.nttx.co.jp/_II_BOL1112JDL
あったけど
0439デフォルトの名無しさん
NGNG.dfm を直接編集すれば出来る
0440デフォルトの名無しさん
NGNGNID : TNotifyIconData;
NID.cbSize :=Sizeof(TNotifyIconData);
NID.uID := 1;
NID.hIcon := Application.Icon.Handle;
NID.Wnd :=Form1.Handle;
NID.szTip :='Test';
NID.uCallbackMessage :=WM_USER + 100;
NID.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP ;
Shell_NotifyIcon(NIM_ADD, @NID);
としてうまくタスクトレイに入ったのですが
そのアイコン上で右クリックしても
タスクバーを右クリックしたようなメニューがたまに出て
反応が悪いんです
左クリックの反応はちゃんと出るんですが
おそらくタスクバー上で左クリックしても何もならないからたまたまかなっと思っております
これってどうやったらなおるんですかね?
クリックしたときの処理は
SetForegroundWindow(Handle);
GetCursorPos(Point);
if (Msg.wParam = WM_LBUTTONDOWN) then
PopupMenu1.Popup(Point.x, Point.y)
else if(Msg.wParam = WM_RBUTTONDOWN) then
PopupMenu2.Popup(Point.x, Point.y);
です
0441デフォルトの名無しさん
NGNGサンクスです
0442デフォルトの名無しさん
NGNG漏れのプログラムで動いている同じようなコード
procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_LBUTTONDOWN:
PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
WM_RBUTTONDOWN:
PopupMenu2.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;
inherited;
end;
0443デフォルトの名無しさん
NGNGじゃなくて
if Message.Msg = WM_USER + 100 then
case Message.LParam of
だろな、この場合。
0444デフォルトの名無しさん
NGNG> if (Msg.wParam = WM_LBUTTONDOWN) then
wParam と lParam を間違えてるよ。
0445440
NGNG>>443
>>444
情報ありがとうございます。
>>442
>>443
受け取りがTMessageにしてますが
ソース上部での
procedure宣言の部分はどうしてるんですか?
>>444
lParamにするとメニューが出なくなりました・・・。
ソースコピー元は
ttp://homepage1.nifty.com/MADIA/delphi/Win32API/Tasktray.htm
です。
引き続きよろしくお願いします。
0446デフォルトの名無しさん
NGNGWndProc の override でしょ。
WM_USER+100 なら procedure(var Msg:TMessage);message WM_USER+100;
を TForm1 のメソッドにするのでは?
> lParamにするとメニューが出なくなりました・・・。
MSDN の NOTIFYICONDATA Structure のところでは
The wParam parameter of the message contains the identifier of the
taskbar icon in which the event occurred. The lParam parameter holds
the mouse or keyboard message associated with the event.
だから、メッセージID は LParam だよ。
0447440
NGNGん〜やってみましたが
依然変わらずですねぇ
メニュー出す処理自体は
TMsg型で受けてるのでwParamなのでいいと思うんですが
ポップアップメニューを出してから
他の部分をクリックするとメニューが消えるように
SetForegroundWindow(Handle);
をやってまして
(>>440で書いてますけど)
それをコメントにすると
誤反応がなくなりましたので
もしかしたらSetForegroundWindow(Handle);の部分が悪いのかな?っと思ったり・・・。
>>442さんは
SetForegroundWindow(Handle);
を書いても誤反応とかしないですか?
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGここのところのBorland製品は、ライセンスがけちで、
アカデミック版に関してはDelphi7以降、プログラミング学習用途以外の禁止を
利用規程で明確に記している。
で、MSのVisual Studio系とは違ってアカデミック版では商用利用は確実にできないし、
下手するとフリーソフト公開も危ういライセンスなので気を付けろ。
0450デフォルトの名無しさん
NGNG>TMsg型で受けてるのでwParamなのでいいと思うんですが
ソースは?
0451デフォルトの名無しさん
NGNG原理がわかってないんだろ?
それ用のコンポがいっぱいあるから、DLして使ったほうがいい
0453デフォルトの名無しさん
NGNGそれ、メッセージハンドラ で TMsg 型で受け取ってるのが間違いのもと。
TMessage 型で受け取るべき。そうするとドキュメントと一致する。
TMessage 型の lParam の領域が TMsg 型の wParam の領域に相当してる。
ウィンドウメッセージを受け取るときは TMessage 型にするように。
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGLockWindowUpdate
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG8は.NET用だぞ。ProfessionalにはDel7Studioもついてるけどマニュアルは無い。
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG2005のことは全く知らないけどどうなるんでしょう?
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGこんな感じ
uses
CommCtrl;
procedure TForm1.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
hti:TTCHitTestInfo;
ret:integer;
begin
if Button = mbRight then begin
hti.pt := Point(X,Y);
ret := TabCtrl_HitTest(PageControl1.Handle,@hti);
if ret <> -1 then
PageControl1.ActivePage := PageControl1.Pages[ret];
end;
end;
0465デフォルトの名無しさん
NGNG詳しく
0466463
NGNGソースまでつけてもらってありがとうございます
明日試してみます
0467440
NGNGTMessage型に変更しましたが変わりませんでした
しかし開発環境はWinXP(SP2)なのですが
Win2000(SP4)上でコンパイルしたプログラムで確かめると
誤動作をしなくなりました
しかし同じプログラムをWinXP(SP2)上で実行すると
やはり誤動作を確認できました
もうちょっと頑張ってみます・・・。
0468デフォルトの名無しさん
NGNGなにか宣言しないと使えないんでしたっけ?
DELPHIは6、CPUは当然MMX有効。
0469デフォルトの名無しさん
NGNGemmsを書き忘れてました・・・
別な質問ですが、BITMAPはSCANLINEで調べるとY方向が連続してない
ようなのですが、これをきれいにメモリ上に連続した状態にする方法はありませんでしょうか。
for文でY方向のSCANLINEをやると遅くなるので、インラインアセンブラ内の
演算だけでアドレスを計算したいのですが・・・
0470デフォルトの名無しさん
NGNGWindowsのビットマップはメモリ内だと上下がひっくり返って格納されてる。
左下ピクセルのアドレスを先頭にw*bpp*hバイトのサイズで連続した領域になってたはず。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGもっとMMXを勉強しろ。それはMMXの仕様を知っていない証拠だ。
0473デフォルトの名無しさん
NGNGFPUレジスタとMMXレジスタは共用です
0474デフォルトの名無しさん
NGNGビットマップのサイズを8の倍数にしる。
0475デフォルトの名無しさん
NGNGOn Error Resume Next
にあたる命令ってある?
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG�d
0479デフォルトの名無しさん
NGNG一度変えたものの元に戻そうと思ったらファイルがどれだかわからなくなっちゃった。
0480デフォルトの名無しさん
NGNGColCountを変更したときに、ある動きをさせたいと思っています。
ところが、VCLでColCountプロパティのSetColCountメソッドが
privateになっているので、overrideすることができません。
ColCountが変更されたことを取得するイベントもみあたらないよう
なのですが、列数を変更された場合に処理を行うにはどうすれば
いいでしょうか?
0481デフォルトの名無しさん
NGNGTCustomGrid.SizeChangedをオーバーライド
0482デフォルトの名無しさん
NGNGおお、こんなのあるんすね。
ちとみてみます。また、あとで報告します。
0483デフォルトの名無しさん
NGNGバッチリです。できました。ありがとうございました。
しかし、SizeChangedて・・・、てっきりコンポの幅かと思って見過ごしてました。
今度からは引数もちゃんとみまつ・・・・
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG単独動作中は二重起動防止する、という動作をさせて楽したいのですが、
アプリの側からデバッガ接続の有無を知るにはどうしますか?
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGfunction IsDebuggerPresent:bool; stdcall; external 'kernel32.dll' name 'IsDebuggerPresent';
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsDebuggerPresent then
ShowMessage('Debugger is Present')
else
ShowMessage('Debugger is not Present');
end;
0489デフォルトの名無しさん
NGNGありがとうございます。
Windows.pasにはなくて、宣言しなきゃいけないみたいですね。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNGWin95 では使えない。VCL に相当するシンボル定数がありそうだけどしらない。
リリース版では、宣言消して
const
IsDebuggerPresent = false;
みたいにしておけば完璧かな
0492デフォルトの名無しさん
NGNG>delphiでXML操作にTXMLDocumentを使ってるのですが、xpathを利用する方法はないですか?
>特定のパスの集合をとってきたいのですが。
ヘルプ見てもないような感じですね。。
自分もこの機能がほしかったのですが、、
しょうがないからまたMSのパーサにまたお世話になるか、、
0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNGクリップボードにコピーしたいんですが、
タブ区切りテキストの作り方がよくわからなくて・・・
何を挿入すればタブになるんですか?
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNGタブじゃないのか?
VK_TAB、またはChar(9)、または#9
0497デフォルトの名無しさん
NGNG仮想キーコードで良かったのですね。
早速やってみます。ありがとう。
0498デフォルトの名無しさん
NGNGえっと、普通文字列のなかに挿入するときは Char(9)、または#9 の方をつかいますよ。
0499デフォルトの名無しさん
NGNGヘルプくらい嫁
>default 指令と nodefault 指令は,集合の基本型の上限と下限が 0 〜 31 の範囲の順序値である順序型と集合型のみサポートしています。
つまり不可能
0500デフォルトの名無しさん
NGNGエエー
VCLだとキャプションとか表示されてるのに・・・・・
無理なのかぁぁ さんくす
0501デフォルトの名無しさん
NGNGコンストラクタで設定してるだけじゃないの
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGエディタとかinline展開とか小技は効いている。
個人的にはローカルで履歴が持ててDiff取れるのがいい。
(プロジェクトごとではないような気がしたが半分寝てたので)
で、半分寝てたのでx86-64(EM64T)に対応したかどうか聞き忘れた。
どうだったか教えてエロイ人!
0504デフォルトの名無しさん
NGNGこれプロジェクトの管理機能としてはかなりお粗末だよな。
旧IDEでも外部ツールのやりくりで簡単に実現できるレベル。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGしてない。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGExplorerでプロジェクトフォルダごとバックアップとって
WinDiffにSendToで渡して比較するのはめちゃ便利だぞ。
0512デフォルトの名無しさん
NGNG枯れ木も山のにぎわい。近頃ここすたれすぎだから景気づけ。
0513デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGたしかに初心者レベルの質問がいたるところで激減してる・・・・・・
なんか地殻変動があったのかな?
Delphi入門者が減ったのか? みんなGoogle使いがうまくなったのかな・・・・・
0516デフォルトの名無しさん
NGNG沈みかけた船から逃げ出すのも早いってことだ
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGParent Windowだけあればいい気がします。
何にも考えないで常にCreate(Self)って書いてますが、
Selfじゃなければなにか問題あるのかと。
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG当然、Windows上のwebサーバーで実行するとして。
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGDelでApacheモジュール作れるならそれが最速
0524デフォルトの名無しさん
NGNGコントロール''は親ウィンドウを持っていますってエラーになるんだけどなぜ??
Formatを指定しなければ、エラーにならず、FormのOnCreateに書いても
エラーにならないのに!!
fDateTimePicker := TDateTimePicker.Create(Self);
fDateTimePicker.Parent := Self;
fDateTimePicker.Format := 'yyyy';
0525デフォルトの名無しさん
NGNGハンドルが割り当てられていないとParentになれない。
割り当てられているかどうかはHandleAllocatedで確認できる。
CreateHandleをオーバーライドしてブレークポイントを置いてみればわかりやすい。
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGPCカエ
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG普通に8カエヨ 7ツイテクル
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGただし.net 2003だけど
と布教してみる
0536デフォルトの名無しさん
NGNGまず、PC買え。
0537デフォルトの名無しさん
NGNGまさかPC98じゃないよね?
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGDel2005カエヨ Win32、.netデツカエルシ、.netナラC#モツカエル
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGブルーバック出したくないならNT系買え。
0543デフォルトの名無しさん
NGNGってオブジェクト指向を学ぶもの?それともDelphiを学ぶもの?
オブジェクト指向については他の専門書籍あったよね?
0544デフォルトの名無しさん
NGNGあの本がでた当時、ポインタを意識しなくていいけど、
そのかわりに、クラス変数がデフォルトで参照渡しな、オブジェクト指向言語が
他にあんまりなかったので、あの本は有用だったと思うよ。
今読んでも、Delphiのオブジェクト指向の知識は、JAVAやC#にかなり流用できるしね。
0545544
NGNG基本的な知識を本読んで得た後、
上手く書かれた他言語のオブジェクト指向を取り込んだソースコードを
Delphiなりなんなりに移植してみるのが、一番勉強になると思う。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG手続き型言語との中間。Java や C# のような言語が入門にはいいだろう。
0548デフォルトの名無しさん
NGNG当分死滅しないしな
0549デフォルトの名無しさん
NGNG中途半端間は否めないな・・
今ではDelphiの中途半端感に慣れてしまったのでDelphiが一番使いやすいけど
これからプログラミングを学んでいくなら
完全OOPL型の言語の方が学びなおす手間がかからなくていいかもね
0550デフォルトの名無しさん
NGNG安定しないのはおまえが組んだプログラムだけだろ(大爆笑)
0551デフォルトの名無しさん
NGNGオブジェクト指向に関しては、
塚越本は、なかなかいいよ。
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGどのようにすればよいでしょうか?
サンプルなどあったら教えてください。よろしくです。
0554デフォルトの名無しさん
NGNGpublic
id:ATOM;
procedure WMHotkey(var Msg:TWMHotkey);message WM_HOTKEY;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
id := GlobalAddAtom('HogeHogeHotkey');
RegisterHotkey(Handle,id,MOD_CONTROL,Ord('A'));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,id);
GlobalDeleteAtom(id);
end;
0555デフォルトの名無しさん
NGNGprocedure TForm1.WMHotkey(var Msg: TWMHotkey);
var
ThreadID1,ThreadID2: DWORD;
begin
if Msg.HotKey = id then begin
ThreadID1 := GetWindowThreadProcessId(GetForegroundWindow,nil);
ThreadID2 := GetCurrentThreadId;
AttachThreadInput(ThreadID2,ThreadID1,true);
SetForegroundWindow(Handle);
AttachThreadInput(ThreadID2,ThreadID1,false);
BringWindowToTop(Handle);
end;
end;
0556デフォルトの名無しさん
NGNGMemo1〜Memo8までを対象とした処理を書くときに、
var
i:integer;
begin
for i:=1 to 8 do
begin
{処理内容}
end;
end;
となりますよね?
このときに、MemoiもMemo[i]もコンパイルされないんですが、
どういう表記をすればコンパイルされますか?
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG0560556
NGNGMemo1.Color:=clRed
を557さんの方法でやると、エラーが出ます。
FindComponent('Memo'+IntToStr(i)) as TMemo.Textや,
FindComponent('Memo'+IntToStr(i)) as TMemo.Color:=clRedは、
コンパイルされません。
どうすれば良いですか???
ほんとくだらない質問ですいません;;
0561デフォルトの名無しさん
NGNGおぬし、OOPの勉強しなおし
FindComponent('Memo'+IntToStr(i)) as TMemo までが TMemo のインスタンス
だから
(FindComponent('Memo'+IntToStr(i)) as TMemo).Text := 'おぬし、OOPの勉強しなおし';
な感じ
0562556
NGNG0563デフォルトの名無しさん
NGNG本当にメモリーリークを起こしているか確認するソフトは無いでしょうか?
0564デフォルトの名無しさん
NGNGたとえばuses FileCtrl;としてもSelectDirectory()しか使わない場合、他の関数を残しておくと何か無駄が生じたりしませんか?
0565デフォルトの名無しさん
NGNGMemCheck使え。
0566デフォルトの名無しさん
NGNGunitのinitialization/finalization部分にコードが記述されてるユニットはusesするだけで
強制的に一定のコードがリンクされる。
記述されてないユニットは明示的に使っていない関数・変数・クラスは削除される。
0567デフォルトの名無しさん
NGNGお答えありがとうございます。よくわかりました。あまり気にしないことにします。
0568デフォルトの名無しさん
NGNGこの内容通りやってうまく表示されたのですが再び表示しようとすると真っ白になってしまいます。
どうすればうまく表示できるでしょうか?
0569デフォルトの名無しさん
NGNG「再び表示しようとすると」って、Refresh のこと? 動的に書き込んだ内容は
表示してるだけでどこにもドキュメントがないので Refresh したら、書き込む
前の空白が表示されるんでは
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGもちろん答えてる側のレベルの話だよな。
0572568
NGNGいえ、新しくHTMLを作成しそれを表示した場合です。
言い換えますと>>568の方法では一度表示したら内容を変更することができません。
(直接 HTML を表示するのではなく一度htmlファイルを作りそれを表示した場合はうまくいきます。)
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGどうすれば良いんでしょうか?
ヘルプ読むと、ページプロデューサーからページプロデューサーへ、
コンテンツを引き継ぐことが出来るようなことは書いてあるんですが、
分からん。
0575デフォルトの名無しさん
NGNG超初心者用ってスレ見に来るくらいだから低レベルで当たり前。
もちろん答えてる側のレベルの話だよな。
0576デフォルトの名無しさん
NGNG563ではないけど、MemCheckでSystemユニットやらGraphicsユニットでリーク出る。
なにを信じればいいのかわからん。
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGmemoにいったん書き出してから保存だと死ねたけどread,readlnなら一瞬だなw
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGありがとうございます
さっき検索していたときの一番にそこに辿りついたのですが見逃してました
0584デフォルトの名無しさん
NGNGインストールしてサンプル読んだけど、さっぱり使い方がわかりませぬ。
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNG俺も知りたいので5分で試して報告しなさい。
0588デフォルトの名無しさん
NGNGDirect Drawだけかな?
0589デフォルトの名無しさん
NGNGPCが爆発しそうでできません(><
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNGWDirectXなら日本語対応だろうし、
QD2に対してなら、Inside DirectXの存在かね、優位な点って。
UnDelphiXがあんまり盛り上がって無さそうなのが気がかりだな。
0593592
NGNG0594デフォルトの名無しさん
NGNG500KBのIniファイルつくって試したが別に問題なく読み書きできた。
0595デフォルトの名無しさん
NGNGhttp://turbo.gamedev.net/wrappers.asp
0597デフォルトの名無しさん
NGNG余計なお世話かもしれんが、「なぜ再表示する必要があるのか」を書くと
もちっとレス付くかも。
0599デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGソレは「何か処理して動的に表示するから」ってこと?
0603568
NGNGabout:blankを表示 → OnNavigateComplete2でHTMLを書き込み
とすることで何度でも表示できるようになりました。
about:blank以外ではうまくいったりいかなかったりすることがありました。
ありがとうございました。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGヘルプを見るとonCreateはFormが作成される'とき'呼ばれるとあります
ということはonCreateイベント内ではForm内のコンポーネント
(ボタン、ラベル等)の実体がないこともあるのでしょうか?
だとするとonCreateイベント内でコンポーネントのプロパティを
変更するような処理はEAccessViolationを引き起こす恐れがあるので
onShowイベント内で記述した方がいいですか?
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGOldCreateOrderがtrueだとそうなる。
falseだとAfterConstructionで呼ばれるから貼ったコンポーネントはできあがってる。
0609デフォルトの名無しさん
NGNGありがとうございます
TCustomForm.OldCreateOrderをヘルプで調べて
より理解が深まりますた
便乗質問なんですが
Formのコンストラクタをオーバーロードした時には
inherited Create(AOwner);と継承元コンストラクタを呼び出す必要があり
それによってonCreate→オーバーロードしたコンストラクタ
という順番で呼ばれるのでしょうか
0610デフォルトの名無しさん
NGNG深く追い求めるならどうしてもVCLソースが必要になる。
Pro版以上買って読め。
0611デフォルトの名無しさん
NGNGあるページを表示しました。
その中の「ウィンドウを閉じる」ボタンを押したら
TWebBrowserが消えてしまいました。
TWebBrowserが消えたらTabSheetも消したいのですが
どのイベントを拾えばいいのでしょうか?
0612デフォルトの名無しさん
NGNGあれをDelphiでやるにはどうしたらいいですか?
0613デフォルトの名無しさん
NGNG//TStringGridEXは×
フォーカス周りでバグがあって使いにくいのです。
バグの修正は今試みているのですが、なんとも・・・
0614デフォルトの名無しさん
NGNG> クリックしながら動かす
> クリックしながら動かす
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG機能が同等なら何を以って「良い」とするのか
0617デフォルトの名無しさん
NGNG自分でコンポーネントを作成中なのですが、コンポーネントをパレットから
フォームに追加してコンパイルすると、コンポーネントのユニットがUSES節
に追加されますが、コンポーネントのユニットだけではなく、特定のユニット
(ComCtrlsとか)も同時に自動的に追加されるようにしたいのですが、どう
すればいいでしょうか?
0619613
NGNGあーあ
0620デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNGWindowClosing Event
0623デフォルトの名無しさん
NGNGできません
0624ななしへたぐらま ◆XcB18Bks.Y
NGNG調べてみたところではWin9x系でWindows APIで読み書きする場合は
64kBを超えるとうまく動作しないという情報もあるようです.
TIniFileは内部で上記APIを呼び出していますのでこの制限を受けると思われますが,
TMemIniFileではこれは使われず,自力で読み書きしているのでこの制限を受けません.
要はTMemIniFileを使えばOK.
>>612
クリック:押した直後にその場で離す
ドラッグ:押しっぱなし
たとえばペイントツールでドラッグによって画像の処理範囲を指定する場合は,
一般的なやり方は知りませんが,
私はキャンバスに直接点線の矩形を描画したり消したりしています.
(キャンバスのDrawFocusRectメソッドで描画すると消すのが楽でしょう.)
0625デフォルトの名無しさん
NGNGpublishedなプロパティに影響される。
例えばTFont型のFontプロパティが公開されていれば、
TFontを定義してあるGraphicsユニットも自動で追加される。
ComCtrlsが追加されると言うことは、
ComCtrlsで定義された型がpublishedなプロパティにあるはず。
0627617
NGNG>ComCtrlsが追加されると言うことは、
>ComCtrlsで定義された型がpublishedなプロパティにあるはず。
試してみたのですけど、>ComCtrlsは追加されず無理でした。
因みに、新規作成してプロジェクトを起動したときに、初めからUSES
節にあるGraphicsを削除してからFontプロパティがあるTLabelを追加し
てコンパイルしても、Graphicsユニットは追加されませんでした。
0628デフォルトの名無しさん
NGNGグローバル一時テーブルはOK、ローカル一時テーブルでは
Open時に無いと言われてしまう。
一時テーブルはOpen直前のTQueryで
CREATE TABLE #TableA ・・・ してます。
0629デフォルトの名無しさん
NGNGふーん、それで?
学校の宿題は先生に聞いた方が早いよ。
以上。
0630デフォルトの名無しさん
NGNGわからなかったら書かなきゃいいのに。w
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGセッションが終了しているか、別セッションで使用しようとしてません?
0633デフォルトの名無しさん
NGNGどうもです。
こんな感じで直後にOpenしてます。
もちろんTDataBaseも同じです。
Query1.ExecSQL; [CREATE TABLE #TableA (aaa int null)]
Table1.Open; [Table1.TableName:#TableA]
Query1.Open (SELECT * FROM #TableA) だと問題なしです。
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNGCommitでもダメでした。
0636デフォルトの名無しさん
NGNGてかなんでTQueryじゃ駄目なの?
0637デフォルトの名無しさん
NGNG右下の//←こんなようなウィンドウサイズを変える部分が描画できるコンポーネントってないですか?
どっかで見かけたような気がするんですが。
0638デフォルトの名無しさん
NGNG複雑な処理でのワークファイルに使いたいのでTTableじゃないとダメなんです。
勘違いしてグローバル一時ファイルで作りまくってしまい、本番前テストしたら
他のユーザーとぶつかってしまい慌てているところです。w
ローカルの寿命:作ったユーザーのセッションが切れるまで。
グローバルの寿命:使っているユーザーのセッションが切れるまで。
TDataBaseを使ってセッションも明確にしているのに
グローバルができてローカルができないのは?です。
0639デフォルトの名無しさん
NGNGAPIで自分で書いたら?
0640デフォルトの名無しさん
NGNGDrawFrameControl API
SizeGrip
http://www.delphi3000.com/articles/article_3785.asp?SK=
0641デフォルトの名無しさん
NGNG作りたいんですけど下記の方法ではダメでした。
何故なんでしょう?
Query1.ParamByName('TableName').AsString := 'Table1';
Query1.ExecSQL;・・・・CREATE TABLE :TableName (Field1 varchar(1) null)
0642デフォルトの名無しさん
NGNGさっそくやってみます。
0643デフォルトの名無しさん
NGNGキャプションに(&T)とつけなくても実行すると勝手についてしまうので・・・
0644デフォルトの名無しさん
NGNG「メニュー&」って書いたら消えた
0645デフォルトの名無しさん
NGNG0646644
NGNG適当なこと言ってごめんなさい
0647デフォルトの名無しさん
NGNGそれだと「_」だけ残りました
>>645
AutoHotKeysのプロパティはmaParent,maManual,maAutomaticでどれを選んでも変化ありませんでした
0648デフォルトの名無しさん
NGNGそんなはずはない.
大元の TMenu.AutoHotKeys を maManual に設定すれば勝手にホットキーが付加されることはない.
0649デフォルトの名無しさん
NGNGあ、大元をmaManualにしていませんでした
できました、ありがとうございました
0650デフォルトの名無しさん
NGNGログを採取するかSQLモニタで投げられるSQLを監視してみたら。
>>641
テーブル名はリテラルじゃないからねえ・・・素直にクライアント側でSQLを編集すれ。
0651初心者
NGNG変なプログラムに関連付けてしまって、テキストが見れなくなってしまいました。
もとのテキストを見るには、どのプログラムから開けばいいですか?
0652デフォルトの名無しさん
NGNG0653初心者
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGそれとも無理?
0656デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGどのようにしたらいいのでしょうか?
0659デフォルトの名無しさん
NGNGファイルをメモリに読み込んで反転したい場所をNOTしてまたファイルに書き込む。
0660デフォルトの名無しさん
NGNGWin32APIのメモリマップファイル使っても簡単。
0661デフォルトの名無しさん
NGNGnotじゃなく、$ffffとのxorだろ
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG少なくともnotじゃないと思うぞ
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG00110101
↓not↑
11001010
01110011
xor ↑
10111001
↓ xor
11001010
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGA := B xor $FFFF;
も
A := not B;
も結果的には一緒だが。
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGわざわざひねくれるのはなぜ?
普通に反転ならnotだろ
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGプログラム以前
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGTMedeaPlayerを扱うような感じで、Flashを組み込みたいと思っているのですが、
できるのでしょうか。できるとしたら、どのようにすればよろしいのでしょうか。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG変な口調。(w
それはさておき、TShockwaveFlashをタイプライブラリ取り込みする。
0680デフォルトの名無しさん
NGNGどうするのが効率的な処理なのでしょうか?
現在はとりあえずStringListでファイルを読み込み、
Strings[0]で読み込んでいますが、非常に非効率的な気がします
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0683デフォルトの名無しさん
NGNGありがとうございます
それでやってみます
0684デフォルトの名無しさん
NGNG遅レス申し訳ありません。
ShDocVwだとだめなんですね。
ActiveXのインストールでShDocVw_TLBを作ってusesを変えたら
CTRL+SPACEで選べるようになりました。
ヒントをいただき大変助かりました。ありがとうございました。
0685デフォルトの名無しさん
NGNG書き込みはwrite
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGOpenDialogでFileNameを'(フォルダの選択)'にしといて
ExtractFilePathでパス(フォルダ名)を取得とかやったことはある。
ファイル選びたければ選べるし。
0689デフォルトの名無しさん
NGNGなるほど!それは思いつきませんでした。やってみます。
0690デフォルトの名無しさん
NGNG取得したレコードの項目を更新したいのです。
IBDataSetのプロパティに
SelectSQL には SELECT文
ModifySQL には UPDATE文 設定していた場合、
このUPDATE文を実行する方法はどのようにしたらいいのでしょうか?
環境はFirebird1.5 Delphi7です。
0691デフォルトの名無しさん
NGNGよーわからんが、
CasheUpdatesをTrueにして
OnAfterPostイベントで
ApplyUpdatesして、トランザクションのCommitRetainingを実行汁。
0693デフォルトの名無しさん
NGNG[Delphi-ML:76040] フォルダもファイルも選べるダイアログ
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=076040
0694デフォルトの名無しさん
NGNG確かに「ショートカットの作成」の「参照」ってファイルもフォルダも選べるな。
想像もしてみなかった。
0695デフォルトの名無しさん
NGNGおおー、これも面白いですね。
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGDelphiの欠点って何ですか?
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNGそのネタは荒れやすいので釣りじゃないならこっちで聞きなよ。
質問が漠然としすぎだから、やりたいことがあるならそこらへんも詳しく書いてさ。
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その17
http://pc5.2ch.net/test/read.cgi/tech/1099706362/
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGあるコントロール(例えばパネル)にマウスポインタが入ってきた、
もしくは出て行った事を感知するにはどうすれば良いのでしょうか。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGCM_MOUSELEAVE
0714デフォルトの名無しさん
NGNG速レスありがとうございます。
ぐぐって調べつついろいろ試したいと思います。
というか、質問する前に検索するの忘れてました。すみません。
0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGBorlandのDelphiはDelphi自身でできています
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG最初のDelphiは何で作られたの?
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNGなにをいじればよいのでしょうか?
0731デフォルトの名無しさん
NGNGIDEがDelphi製、dcc32はDelとは別の言語らしい。
0732デフォルトの名無しさん
NGNG「Delphi システムメニュー」でぐぐれ
0733デフォルトの名無しさん
NGNGtype
TRec = record
tree:TTreeNodes;
files: string;
end;
var
fst:TFileStream;
rec:Trec;
この前提の元
Rec.tree := TreeView1.Items;
Rec.files := 'aaaaaa';
fst := TFileStream.Create(ExtractFileDir( Application.ExeName ) +'\aa.txt', fmCreate);
fst.Write(Rec,sizeof(Rec));
fst.Free;
と実行したのですが出力されたファイルはたった8バイトのサイズでした
どこが悪いのでしょうか?
0734デフォルトの名無しさん
NGNGそりゃ、TTreeNodesもstringもポインタ保持だからだろう。
参照型変数と値型変数で調べてみな。
他の言語のリファレンスが多いと思うが、それでも勉強になるだろう。
0735デフォルトの名無しさん
NGNG用は、おまいさんのしたいことをするためには、
値型変数じゃなきゃいけないんよ。バッファは。
だから、stringはchar配列に、TTreeNodesは各メンバーをintegerとかchar配列にして
Filestreameで書き込んでみな
0736デフォルトの名無しさん
NGNG>TRec = record
>tree:TTreeNodes;
>files: string;
>end;
こういった複合型のデータをファイルに読み書きするには
recordではなくclass(TComponent)にして
TStream.Read/WriteCompoenentすればいいんだけど
ちょっと難しいかも。まあ調べてみなよ。
0737デフォルトの名無しさん
NGNGTThreadを利用して次の方法で描画を試みているのですがどこか間違っているでしょうか。
Form1.Image1.Canvas.Pixels[x, y] := $00000000; //右辺は任意のCardinal値。
0738デフォルトの名無しさん
NGNGCanvas プロパティは,Picture プロパティが TBitmap オブジェクトを表しているときのみ有効です。
Picture プロパティが TBitmap以外のほかのグラフィックイメージを表しているときに
Canvas プロパティを読み出そうとすると,TImage は EInvalidOperation 例外を生成します。
0739デフォルトの名無しさん
NGNGありがとうございます。TBitmap.Createを試みます。
0740デフォルトの名無しさん
NGNG印刷されなくなってしまい、PCを再起動しないと回復しなくなります。
こんな症状はどうやって回避すれば良いでしょうか?
0741740
NGNGビットマップがプリンタに印刷できないを参考にしてたんですが、
よく読むと、
>この問題は以下のコードのように ビットマップを
>Device Independent Bitmap に変換し StretchDIBits API で印刷すれば、
>かなり成功率を高めることができます。
>但しこれは完璧では有りません。
>いぜんとして印刷に失敗することがあります。
となってる...
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGって人お願いすます。
Delphi2005でC#を使ってMDIアプリケーションを作れるでしょうか?
それと、DBCtrlGridはC#で使えるでしょうか?
それが出来ればDBのフロントエンドに使おうとおもってます。
0744デフォルトの名無しさん
NGNGくだらなくないのでお答えできません。
0745デフォルトの名無しさん
NGNGそうですか。ボーランドのHPを見ても詳しいことが分かりません。
といって会員登録してまで資料を見るのもなんだし...。
困ったな...。
0746デフォルトの名無しさん
NGNG5000fpsキターちっこい円の描画だけどwwwwwwwwww
CPU死ぬけどwwwwwwww
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGDelphi2005のC#でできることは、VC#でも殆ど出来ることなんだから、
既存のVC#文献や.NET Framework SDKのドキュメントを読め。
0749デフォルトの名無しさん
NGNG同時にはどれか一つしか使えないのがDelphi2005なわけで、
当然C#からDelphi機能は使えないし、DelphiからもC#機能は使えない。
VSと一緒だね。
0750デフォルトの名無しさん
NGNGサイズ変更可能なタイトルバーなしのフォームを作りたく思い、
検索してサンプルなども見つかって動作するのですが、不満な点があります。
探したところCreateParamsをoverrideしてWS_THICKFRAMEを指定してあげる方法しか
見つからなかったのですが、これだと当然ながらフォームの縁に太い線が出来てしまいます。
出来れば縁がないものを作りたいのですが、良い方法がありますでしょうか?
※BorderStyleでbsNoneにしたときのような外観にしたいのです。
0751デフォルトの名無しさん
NGNG有難うございます。
どうも私はDelphiでコーディングする時にObjectPascalの
代りにC#が使えると勘違いしてました。
単にC#BuilderとDelphiの機能が合体しただけなんですね。
お騒がせして済みませんでした。
0752デフォルトの名無しさん
NGNGhttp://www.impress.co.jp/ebook/title/263-1.html
0753デフォルトの名無しさん
NGNGTBigBitmapで何が良くなりますか?
0754デフォルトの名無しさん
NGNGとは、紙全体でつか?
マージンを除いた範囲で塚?
0755デフォルトの名無しさん
NGNG印刷可能領域の幅。
てか試せばわかるだろうに・・・
0756デフォルトの名無しさん
NGNG特定のOS固有の問題なのか特定のマシン固有の問題なのか
Delphiアプリの問題なのかの切り分けはできてるのか?
0757デフォルトの名無しさん
NGNGいや、紙全体と思ってプログラム作ったら、印刷可能領域の幅のように印刷されたんです。
で、そう理解してプログラムして、あるプリンタだとマージンが0になったりしたらアウトだし、
念のため確認させて貰わないと怖かったんで津。
0758デフォルトの名無しさん
NGNGGetDeviceCaps使えよ。
0759デフォルトの名無しさん
NGNGこれを他のTDataSetの変数にコピーするって可能ですか?
たとえば、TStringList.Assign()のように。
デストラクタとコンストラクタの関係で、データの中身だけをコピー
したいのですが、そういう関数ってあるのでしょうか?
0760デフォルトの名無しさん
NGNGTNkPrinter使え
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGブラウザに「404ファイル未検出」って出ます。
環境はXP SP2です。
2000 sp4だとデバッグ出来ます。
おおざっぱな質問で申し訳ないですが、どなたかヒント下さい。
webアプリケーションデバッガ自体の設定は何も変えていません。
よろしくお願いします。
0764デフォルトの名無しさん
NGNG404ファイル未検出
0765デフォルトの名無しさん
NGNG......
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0772ななしへたぐらま ◆XcB18Bks.Y
NGNG>>741のリンク先の中村拓男氏の本によるとWindowsでは
巨大なビットマップの拡大縮小,さらにそれが印刷と絡むとかなり厄介みたいです.
で,それを回避したのがTBigBitmapみたい.
0773デフォルトの名無しさん
NGNGTBitmapをそれに置き換えたいのでつが、クラス宣言差し替えるだけ?
0774ななしへたぐらま ◆XcB18Bks.Y
NGNG・uses節にユニット名を追加 BigBitmap
・変数宣言 FNantokaBitmap: TBitmap → FNantokaBitmap: TBigBitmap
・実体(インスタンス)を生成しているところ.FNantokaBitmap := TBitmap.Create → FNantokaBitmap := TBigBitmap.Create
0775デフォルトの名無しさん
NGNG>DIBの拡大は4倍以下にとどめ、それ以上の拡大が必要な場合は、Scanlineプロパティなどを使ってアプリケーション側で拡大処理を行う。
単純にTBitmap上で拡大して、それをStretchDIBitsすれば無問題なんかな???
0776デフォルトの名無しさん
NGNG10000で1秒だよorz
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGs[10] := #0;
move(PChar(s), p, 100);
0779デフォルトの名無しさん
NGNGBCBの場合はどうなりまつか?
0780デフォルトの名無しさん
NGNGすれ違い
0781デフォルトの名無しさん
NGNGめんどくさくなるだけだからやめておけ。
char配列では出来ない理由でもあるのか?
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG中のファイルを削除しようとするといつも削除失敗するわけですが・・・
属性や使用中の問題はないはずなんですが、なんでだ・・・
0785デフォルトの名無しさん
NGNGttp://hp.vector.co.jp/authors/VA009712/take/delphi/kabesys.htm#shfileoperation
0786デフォルトの名無しさん
NGNGうまくいきました。ありがとうございました。
0787デフォルトの名無しさん
NGNGTShellListViewで、 '*.txt'のように拡張子で限定して表示させたのですが、どのプロパティに設定すればいいのでしょうか。
オブジェクトインスペクタを見ても該当のプロパティが見当たりません。
ソースを解析するしかないのでしょうか。
直接の情報でなくても、このサイトに詳しい情報があるということでもかまいませんので、よろしくお願いします。
0788デフォルトの名無しさん
NGNG0789787
NGNGたとえば、ファイルリストボックスだと、MASKというプロパティがあって、その値は、デフォルトで’*.*'になっています。
これを
FileListBox1.Mask := '*.txt'
と記述すると、拡張子がTXTのファイルだけが表示されます。これをTShellListViewでも行いたいのです。
よろしくお願いします。
0790デフォルトの名無しさん
NGNGOnAddFolder イベントで ファイル名により CanAdd 引数を False にする
0791デフォルトの名無しさん
NGNGtimer を使ってやると必ず実行されるのですが・・・
0792787
NGNGありがとうございます。早速試してみます。
0793デフォルトの名無しさん
NGNGタイマーを使うと確実にできるけど、使わないとできないというなら、
考えられるのは、SetFocusの次のコードで意図せずにフォーカスを
動かしてしまっている場合だけど、具体的なことがわからないので
これ以上は答えられない。
もう少し詳しく書いて。できれば当該個所のコードを書いてもらったほうがいい。
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGエディタって統合環境のこと?16色あれば十分だと思うが。8色でもいいくらいだ。
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGそんなに負けを認めたくないの?
0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG[デフォルトを使用]にチェックを入れた項目はWindowsのシステム色と同じになる。
0803デフォルトの名無しさん
NGNGということは出来ますか?
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGどうやるのが一番簡単でしょう。大昔のIOポートをずっと見てる
みたいなイメージなのですが。
入力の内容には全く用はなく、他のアプリへの入力も感知したいのですが。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNGスクリーンセーバーみたいに長いこと入力がないと
動くようなプログラム書きたいんです。
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNGシステムフックか、GetAsyncKeyStateで全キーを頻繁に調べる。
0810デフォルトの名無しさん
NGNGマウスは動かしても関係ないの?
[Delphi-ML:79020] windows がアイドル状態を検知
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=079020
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGマウスでやってるんですが、それだとキーボードだけでやってる間に起動しちゃうんです。
参考にさせていただきます。
>>812
だから違いますって_| ̄|○
0814デフォルトの名無しさん
NGNGなんだかよくわかってませんが・・・
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGいったん最小化してから元のサイズに戻すと半分以下になるよ
なんで?
0817デフォルトの名無しさん
NGNG0818ななしへたぐらま ◆XcB18Bks.Y
NGNGレジストリエディタでいじれば…と思ったら,
Delphi 5は0〜15の値で記録してた(´・ω・`).
DWORD値を使って4ビットの値なんか書き込むなよなぁ.
システムの文字色と背景色を使うオプションで何とかするしかないようです.
(Delphi 7は違うらしいのですが持っていないので未確認)
>>814
WM_KEYDOWNを,どうしたいのですか?
やりたいことを具体的に書いた方がレスはつきやすいですよ.
ちなみにDelphiで使えます.
0819デフォルトの名無しさん
NGNGありがとうございます、
Application のウィンドウを消すとは具体的にはどうすればいいですか?
0821デフォルトの名無しさん
NGNG意味がわかりません。そんなことで >>805 の内容が実現できるの?
0822デフォルトの名無しさん
NGNGShowWindow(Application.Handle,SW_HIDE);
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGヘルプ読むとPaintToメゾット使う前にキャンバスをロックしろって書いてあるけど
TWebBrowserにはそんなメゾット無いみたいだし…。
分かる方いませんか?
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGワロタ
0828デフォルトの名無しさん
NGNGごく一部では静かなブームっぽいがw
0829デフォルトの名無しさん
NGNG本当済まない。
が、
>>828
その中に「メゾット」ってタイトルで、ファイル名に「mezotto.html」と
付けてるのが…。
ああああああ。
>>824
早めに訂正してくれ。済まんな。
0830デフォルトの名無しさん
NGNGだから、イタリア語読みとかすると、メゾットになるのだろうか。
そういや
はじめてのObject Pascalプログラミング テクニカルマスターシリーズ
って本で、英単語系のふりがなが、一般的なものとめちゃくちゃかけはなれて
笑ってしまった記憶があるなあ。
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNGChangeFileExt (チェンジファイルエクステンション)、
WriteLn (ライトライン) …てことか?まぁ確かに。
でも俺はあの本で "Width" の読みを知ったよ。10年以上「ワイズ」と読んできたが
「ウィドス」が正しいのな。 ハァ?と思って辞書を引いたら _| ̄|○
更に話がそれるが、プログラミング入門書には Procedure と 引数 の読み方
ぐらいは書く事にしておいても良いと思うんだが。 ぷろせでゅあ〜 マンセー♪
0833830
NGNG俺が一番笑ったのが、そのプロセデュアーなんだけど。
記憶違いじゃなかったら、確かあの青い本もそう書いてあったよね?
一応 dictionary.goo.ne.jp/search.php?kind=ej&MT=procedure
で確認したが、多分プロシージャが普通だよなあ。
0834830
NGNGネイティブな人の発音を聞いてみたいやね。
0835デフォルトの名無しさん
NGNG↓次の質問か、>>824の続きか
0836デフォルトの名無しさん
NGNGプラシージャに該当するページが見つかりませんでした。
"プラシージャ"を含むページは見つかりませんでした。
0837デフォルトの名無しさん
NGNGてつづき の検索結果のうち 日本語のページ 約 3,580 件中 1 - 30 件目 (0.35 秒)
0838デフォルトの名無しさん
NGNG「プロセデュア」というのは、経営学の方面でよく使われる読み方。
世間一般には、プロセデュアのほうがとおりがよさそう。
0839デフォルトの名無しさん
NGNGインハリテッドって読んでるけどちょっと違う気がする
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGそれはリゾット
0842デフォルトの名無しさん
NGNG0843824
NGNGメソッドでしたか…。道理でATOKが一発で変換してくれないわけだ…。
失礼しました。
0844デフォルトの名無しさん
NGNGインヘリテッド
Heritec -> ヘリテック
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGどこかの掲示板にSendMessageで出来ると書いてあったので調べたんですが、
全くわかりませんでした。漏れの目が節穴なのは承知ですが、どなたかご教示ください。
0847デフォルトの名無しさん
NGNG俺はインクリメント、デクリメントと心で読んで打っている。
でもインクリーズ、デクリーズかもしれないので人には言えずにいた。
0848デフォルトの名無しさん
NGNG改行コード等で区切って2行で表示するとかいうことはできますでしょうか?
0849デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
hRadio:HWND;
ctrl:TControl;
Style:LongInt;
s:string;
begin
hRadio := TWinControl(RadioGroup1.Controls[0]).Handle;
Style := GetWindowLong(hRadio,GWL_STYLE);
SetWindowLong(hRadio,GWL_STYLE,Style or BS_MULTILINE);
s := '1111111111'+#13#10+'22222222';
SetWindowText(hRadio,PChar(s));
end;
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGD5以下ではつかえません
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG0855848
NGNGやはりプロパティ上ではなく、コードでなんとかしろということですね。
0856デフォルトの名無しさん
NGNGホンとならやり方教えて♪
0857デフォルトの名無しさん
NGNG0858750
NGNG0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGコンポで出来るか出来ないかが重要で、出来ないことはあきらめる。
コンポで出来ないことはDelphiでは出来ないことになる。
0861デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1088578261/
0862デフォルトの名無しさん
NGNGふーむ、そうだね。背後にある原理とかは興味がないんだね。残念。
0863デフォルトの名無しさん
NGNGファイル名には特定の文字が使用できませんよね。[*]とか[:]とか[?]とか・・。
で、エディットボックスのKeyPressイベントで入力制限をしているのですけど、
コピペされたとき、どんな文字でも入ってしまいます。
もし、コピペする文字に無効な文字が入っていたらコピペ不可!
という処理をしたいのですが、どうすればよいのでしょうか?
0864832
NGNGすまん、俺の書き方がまずかった。>>830の本に『プロセデュアー』と書いてあった
訳ではない(表記は「手続き」、読み仮名はなし)。正しい読みを知るまで *俺は*
「プロセ…」と読んでしまっていたぞ、というだけの話。 <だから読みも欲しい、と。
スレ違いを更に広げてしまい、スマンかった。
0865デフォルトの名無しさん
NGNGコピペ処理を自分で書き直せば良い。
TMainMenuをフォームに置いて「貼り付け」メニューを作成。
キーボードショートカットはCtrl+Vに設定。
procedure TForm1.Paste1Click(Sender: TObject)の中で貼り付けされる前のクリップボードの中を検閲。
クリップボードについてはヘルプのTClipboardの項のプロパティとかメソッドとかを色々調べること。
0866デフォルトの名無しさん
NGNGアクション時に不正な文字がないかチェックした方が早いんとちゃう?
0867デフォルトの名無しさん
NGNGこんな。usesは自分で調べて追加してな。
procedure TForm1.Paste1Click(Sender: TObject)
var
str: String;
begin
if Clipboard.HasFormat(CF_TEXT) then
str := Clipboard.AsText
else
Exit;
if AnsiPos(str, '*') > 0 then
Exit
else if AnsiPos(str, ':') > then
Exit
else if AnsiPos(str, '?') > 0 then
Exit
else
Memo1.SelText := str;
end;
0868デフォルトの名無しさん
NGNG同意。実際はWin32APIに頼るのが一番確実。
未来永劫ドライブレター付のFAT/NTFSでアプリが動くとは限らないし。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNGもしあったとしてもかえって使いにくいと思うが
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGなんが違う気がするぅ〜
0875833
NGNGあれ? と思ったので、今日あの本を買ってみた。
(以前読んだときは会社の備品だったので)
……どこにもプロセドゥアーなんて無かった。著者さん、すまんす。
どこでこんな記憶が入り込んだんだろう。
┃━┏┃。oO(……でも、exitはイグザットじゃないと思う)
スレ違いスマソ。
0876デフォルトの名無しさん
NGNG確かに、[*]とか[:]とか[?]とかだけ入力不可能なエディットボックスて見たことありません。
けど、winXPでエキスプローラ起動して、新規ファイルを作成して名前を変更しようとして[*]をペーストするとペーストされませんよね。
で、ちょっと作ってみたくなったんです。
>>865さんと
>>867さんの方法で、いろいろさぐってみます。ありがとうございました。
0877デフォルトの名無しさん
NGNGありがとうござーます
ありがとうござーます
ありがとうござーます
0878872
NGNG!・・・OTZ
これからはもう少し謙虚に生きようと思います。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGエクスプローラだと思ってた
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGhttp://dictionary.goo.ne.jp/search.php?MT=False&kind=ej&mode=0&base=1&row=1
「フォース」って感じかな。
音声聞けるから聞いてみれ。
0884デフォルトの名無しさん
NGNGうぉぉぉサンクス。
自分の発音とも職場の発音とも違うぜ〜
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG「フォルス」だけど、「ル」は、はっきり聞こえない。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG発音記号風に書くと"tru:", "fo:ls" な。
0892デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1056173956/
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNG>「フォルス」だけど
大丈夫か?
0895デフォルトの名無しさん
NGNG入力はintegerでも計算するときはrealの変数に代入してから計算したほうがいいの?
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGそのかわり計算速度が遅いよ。メモリも余計に喰うよ。
0898デフォルトの名無しさん
NGNG試しに、今のDelphiなら、
自分で$7FFFFFFFに1を足すコードを書くとよくわかる。
integerは、OSやCPUといった環境ごとで、一番速度が速くなるように
使用バイト長が変わるんだけど、(現在のWindows環境だとほぼ4バイト長)
将来それが問題になる可能性もあるところでは、
4バイト長固定のlongintを使った方がいいよ。
0899デフォルトの名無しさん
NGNG0900898
NGNG10年後くらいには、integerは8バイト長とかになってるのかなー?
というかDelphi自体が無くなっていませんように。
0901デフォルトの名無しさん
NGNG10億回計算してみたよ
GetTickCountで時間計ってみたよ
単位はミリ秒
初期値
a:=1
real integer
a:=a+1 13389 2103
a:=a-1 13259 2143
a:=a*1 15411 2644
a:=a/1 19448 2114
a:=a div 1
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGどうせならIntegerとCardinalで比べれば面白いのに。
0904デフォルトの名無しさん
NGNGということだろう
何を言いたいとか意味のわからない質問されても困るねぇ
0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGttp://130.158.124.192/~takeuchi/delphi/article/055/055751.html
というのをちょっと使わせてもらっているのですが
Result := Result + Copy(S, 1, Index - 1) + ' ';
この部分で
'String' と 'TAction' には互換性がありません
というエラーが出てしまいます
どうしたらよいのでしょうか?
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGSはStringです
>>908
ありがとうございます、試してみます
0910デフォルトの名無しさん
NGNGbegin
result := StringReplace(s,#9,StringOfChar(' ',TabSize),[rfReplaceAll]);
end;
0911デフォルトの名無しさん
NGNGそれだけじゃダメだろ
\tX\tXX\tXXX\tXXXX\t
でそれぞれ展開するサイズが違う。
0912ななしへたぐらま ◆XcB18Bks.Y
NGNG>>847
私は単純に「いんく」「でっく」って読んでますが,
動詞ならincrease/decrease,でも名詞ならincrement/decrementかな?
意味的にはどちらでも合っているから大丈夫だと思います.
0913デフォルトの名無しさん
NGNGところで過去ログどおりに動作するね。Pos は AnsiPos を使うべきだと思うけど。
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := #9'1'#9'22'#9'333'#9'4444'#9'55555'#9'666666';
s := TabSpace(s,4);
Memo1.Lines.Add(s);
end;
0914デフォルトの名無しさん
NGNGただ他人に余計な突っ込みと不安を生まないために
AnsiPosにするというのもひとつの見識では歩けど。
0915デフォルトの名無しさん
NGNGなるほど。二バイト文字の二バイト目に #9 が来ることはないのね。ありがとう。
0916デフォルトの名無しさん
NGNG俺も無駄にタブ展開してみようかな。
0917デフォルトの名無しさん
NGNG書き込んだセルの文字色を変えるのは可能でしょうか?
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGXlsApp.Cells.Font.color で合ってますか?
ちなみに設定値はどうなりますでしょうか。
0920デフォルトの名無しさん
NGNGCellsでは、レンジオブジェクトが参照できないのでは。
0921デフォルトの名無しさん
NGNGPGが冗長って言うか、面倒になっても構わないので……
0922デフォルトの名無しさん
NGNG送りたいのですが、
keybd_event(44, 0, 0, 0);
とやっても出来ません。
アルファベットやスペースなんかはできるんですが、
どうやってら出来るんでしょうか?
0923デフォルトの名無しさん
NGNG「VK_SEPARATOR」では。
0924922
NGNG返答ありがとうございます。
それも駄目でした。
今、Excelのセルに入力したX,Y座標の値を読み取って、
CADソフトに自動的に線を書くソフトを作ってます。
ALT(VK_MENU)、ENTER(VK_RETURN)、数値を
CADソフトに送ることは出来ているんですが
唯一カンマを送ることが出来ません…
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGマニュアルが微妙なんですが、製品版はどうなんでしょうか?
0927デフォルトの名無しさん
NGNG二次方程式を判別するプログラムおねがいします
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0930デフォルトの名無しさん
NGNGプログラミングの要素としてはくだらなすぎ
0931デフォルトの名無しさん
NGNG0932シスシス
NGNG0933デフォルトの名無しさん
NGNG0934922
NGNG受け付けます。もともとX、Y座標をカンマで区切るので。
試しにメモ帳でやってみても、カンマは送れないです。
とりあえず、他の方法も考えてみます。
一応、環境は
Win2000
Delphi7Pro
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGクイックスタート、言語ガイド、開発者ガイドのPDFのことなら全く同じ。
0937デフォルトの名無しさん
NGNGabcabcで二つ目(一番後ろ)のaの位置を取得したいっす
AnsiPosだと1しか返ってこないけど、他に関数とか用意されてるんでしょうか?
一応、先頭が見つかるごとに検索開始位置をずらしてやってみたりしたんですけど文字数が多いととてつもなく時間食ってしまいます
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG即レスサンクスです
調べてみます
0941デフォルトの名無しさん
NGNGText:=StringGrid1.Rows[StringGrid1.Row].DelimitedText;
とやると、セルの内容に半角スペースが含まれるときに、そこが
ダブルコーテーションで囲まれちゃうんですが、これをしないように
する方法はありますか?
0942デフォルトの名無しさん
NGNGQuoteChar := ''でいけるかも
0943デフォルトの名無しさん
NGNG即レスありがとうです。やってみたんですが、
QouteChar:=''だと、StringとCharに互換性がないと言われます。
#0ではエラーが出ました。
0944デフォルトの名無しさん
NGNGvar
i: Integer;
begin
i := -1;
if i in [-1, 0] then ShowMessage('');
end;
コンパイルエラーが出るのは何故ですか?
0945デフォルトの名無しさん
NGNG集合型は負数の指定は不可。
InRange使え。
0946デフォルトの名無しさん
NGNGHenkanJ.pasの使い方を教えていただけないでしょうか。
len := Length(Line);
for ch := 1 to len do
begin
moji := SJisToEUC(ord(Line[ch]));
mojis := mojis + chr(moji);
end;
何故かデータが難しい漢字ばかりになってしまいます。
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG二バイト文字の判断をしなくちゃだめでしょ。文字ごとじゃなくて文字列で変換してくれる
HenkanJ2.pas というのを使ったらいい
http://forum.nifty.com/fdelphi/samples/00959.html
0950デフォルトの名無しさん
NGNG凄い助かった。ありがとう。
後から二バイトの判断には気づいたんだが、
その後の処理がめちゃくちゃだった。
これで家に帰れる。
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953922
NGNGkeybd_event(188, 0, 0, 0);
お騒がせしました。
>>935
コロンは「186」
中括弧は不明です。
0954デフォルトの名無しさん
NGNGありがとう。こっちでも試してみた。virtual-key code が Windows.pas で未定義な 166 から 228 の間で
keybd_event(Code, 0, 0, 0);
keybd_event(Code, 0, KEYEVENTF_KEYUP, 0);
で意味ある「文字」を送れるのは
186 : :
187 : ;
188 : ,
189 : -
190 : .
191 : /
192 : @
219 : [
220 : \
221 : ]
222 : ^
226 : \
228 : 00 (?)
たとえばキーボードを見ると { は shift + [ だから
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(219, 0, 0, 0);
keybd_event(219, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
でOK。以下おなじ。
0955922
NGNGなるほど。
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGカンマとかのキーコードはキーボードレイアウトによって変わる。
VkKeyScanを使えば、任意の文字に対応する仮想キーコードと修飾キーを調べられるよ。
0959デフォルトの名無しさん
NGNG>>922 じゃないけど試してみた。ありがとう。
function GetVirtualKey(ch:Char):string;
var
ret: word;
func,code: byte;
begin
ret := VkKeyScan(ch);
func := HIBYTE(ret);
code := LOBYTE(ret);
if (func = $FF) and (code = $FF) then
begin
result := 'not found';
exit;
end;
result := '';
if (func and $01 <> 0) then result := 'SHIFT + ';
if (func and $02 <> 0) then result := result + 'CTRL + ';
if (func and $04 <> 0) then result := result + 'ALT + ';
result := result + IntToStr(code);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(GetVirtualKey('a'));
Memo1.Lines.Add(GetVirtualKey('A'));
Memo1.Lines.Add(GetVirtualKey(','));
Memo1.Lines.Add(GetVirtualKey('['));
Memo1.Lines.Add(GetVirtualKey('{'));
end;
0960デフォルトの名無しさん
NGNG結果
65
SHIFT + 65
188
219
SHIFT + 219
うまくいった!
0961デフォルトの名無しさん
NGNGkeybd_event()
を SHIFT を押すかどうかなどを判断するようにコードを書けばいいね。
0962デフォルトの名無しさん
NGNGfunction KeybrdEvent(ch: Char; CtrlCode:Boolean=false):Boolean;
var
ret: word;
func,code: byte;
fShift,fCtrl,fAlt:Boolean;
begin
result := false;
if CtrlCode then
begin
keybd_event(byte(ch), 0, 0, 0);
keybd_event(byte(ch), 0, KEYEVENTF_KEYUP, 0);
end
else
begin
ret := VkKeyScan(ch);
func := HIBYTE(ret);
code := LOBYTE(ret);
if (func = $FF) and (code = $FF) then exit;
fShift := (func and $01 <> 0);
fCtrl := (func and $02 <> 0);
fAlt := (func and $04 <> 0);
0963デフォルトの名無しさん
NGNGif fShift then keybd_event(VK_SHIFT, 0, 0, 0);
if fCtrl then keybd_event(VK_CONTROL, 0, 0, 0);
if fAlt then keybd_event(VK_MENU, 0, 0, 0);
keybd_event(code, 0, 0, 0);
keybd_event(code, 0, KEYEVENTF_KEYUP, 0);
if FAlt then keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
if FCtrl then keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
if FShift then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
result := true;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
KeybrdEvent('D');
KeybrdEvent('e');
KeybrdEvent('l');
KeybrdEvent('p');
KeybrdEvent('h');
KeybrdEvent('i');
KeybrdEvent(Char(VK_RETURN),true);
KeybrdEvent('@');
KeybrdEvent('<');
KeybrdEvent('|');
KeybrdEvent('8');
KeybrdEvent('_');
KeybrdEvent(Char(VK_LEFT),true);
KeybrdEvent(Char(VK_LEFT),true);
end;
0964デフォルトの名無しさん
NGNGDelphi
@<|8_
となって、期待通りキャレットが8の前に来る
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGfunction KeybrdEvent(VKey: Byte):Boolean;overload;
begin
keybd_event(VKey, 0, 0, 0);
keybd_event(VKey, 0, KEYEVENTF_KEYUP, 0);
end;
function KeybrdEvent(ch: Char):Boolean;overload;
var
ret: word;
func,code: byte;
fShift,fCtrl,fAlt:Boolean;
begin
result := false;
ret := VkKeyScan(ch);
省略
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
KeybrdEvent('D');
KeybrdEvent('e');
KeybrdEvent('l');
KeybrdEvent('p');
KeybrdEvent('h');
KeybrdEvent('i');
KeybrdEvent(VK_RETURN); // 見かけ上同じに書ける
KeybrdEvent('@');
以下略
0968デフォルトの名無しさん
NGNGどのように書けば良いでしょうか。
0969デフォルトの名無しさん
NGNG文字列 name から adress までに含まれる
文章1だけ指定するにはどうしたらいいんでしょうか?
name
文章1
adress
文章2
proffile
文章3
end
0970デフォルトの名無しさん
NGNGsl.LoadFromFile('foo.txt');
idx1 := sl.IndexOf('name');
idx2 := sl.IndexOf('address');
for i := idx1+1 to idx2-1 do
Writeln(sl[i]);
0971デフォルトの名無しさん
NGNGあとはCopyで文章1を抜き出す。
0973デフォルトの名無しさん
NGNG素晴らしい連携だな、おい
0974デフォルトの名無しさん
NGNGttp://hp.vector.co.jp/authors/VA015669/
ここのUIDHTMLEdっていうのをインストールしようとしたんですが、
どうもActiveXの初期化(?)の部分でエラーがでます。
未定義の識別子 action.UIEditon みたいな感じのです。
必要なコンポーネントはインストールしたんですけど全く駄目でした。
サポートもHPも死んでるみたいなので、どなたか対処法をご存じの方、
ご教示下さい。
>>973
同一人物では?
0975デフォルトの名無しさん
NGNG前者が正解に近い
0976デフォルトの名無しさん
NGNG1週間前に更新してるから生きてるんじゃないの?
ttp://www33.ocn.ne.jp/~takoyakusi/index.html
0977デフォルトの名無しさん
NGNGそれにあたって、
プログラム内で、○日目○時○分という形で、
独自の時間を動かしたいのです。
現実の1秒=プログラム内の1秒ではなく、
速度を早めたりできるようにしたい。
今の知識で思いついたのは、
day,time,minuteという3つの変数をIntegerで定義して、
Timerコンポーネントの中に、
time=23 minute=59 なら time=0 minute=0 day+1
time=23 でなく minute=59 なら minute=0 time+1
それ以外なら minute+1
というような内容を書き込んで
時間を経過させていくというものです。
Timer.intervalによって速度も変えられますよね。
ただどうも原始的というかスマートではないですよね。
他にこういう時の定石みたいなものがあるのではと思ったんですが、
何かないでしょうか。
0978デフォルトの名無しさん
NGNGTDateTime型とIncSecond関数とかどうよ?
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG難しそうで諦めたんですが
もう一度見てみます。
0981デフォルトの名無しさん
NGNGPAnsiCharが指す文字をString型に代入するという意味なら
a: PAnsiChar;
b: String;
b := a^;
0982デフォルトの名無しさん
NGNG独自の時間を秒単位で持つ変数をtとすると
second := t mod 60;
minute := t div 60 mod 60;
hour := t div 3600 mod 24;
day := t div 86400;
0983デフォルトの名無しさん
NGNGありがとうございます
0984デフォルトの名無しさん
NGNGaa : string[10];
bb : Integer;
cc : Boolean;
end;
こんな型で宣言時に値をつめたいと思っているのですが、
どうもうまくいきません。よろしくお願いいたします。
var
MyRec : array [0..0] of TMyRec =
( (aa:'テスト'),(bb:0),(cc:True) );
こんな風にすると、要素数が異なるって怒られます
0985高野聖
NGNG((aa:'テスト';bb:0;cc:True));
0987デフォルトの名無しさん
NGNGできた!ありがとう
098820用テンプレ
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その19
http://pc5.2ch.net/test/read.cgi/tech/1097454588/
<その他>
ボーランド
http://www.borland.co.jp/
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
098920用テンプレ
NGNG18 http://pc5.2ch.net/test/read.cgi/tech/1093996761/
17 http://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 http://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 http://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 http://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 http://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 http://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
10 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
09 http://pc2.2ch.net/test/read.cgi/tech/1071294733/
08 http://pc2.2ch.net/tech/kako/1068/10682/1068201045.html
07 http://pc2.2ch.net/tech/kako/1065/10651/1065195699.html
06 http://pc2.2ch.net/tech/kako/1063/10632/1063202727.html
05 http://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 http://pc2.2ch.net/tech/kako/1058/10588/1058834815.html
03 http://pc2.2ch.net/tech/kako/1055/10559/1055986736.html
02 http://pc2.2ch.net/tech/kako/1053/10537/1053757982.html
01 http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
0990デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101530485/
0991デフォルトの名無しさん
NGNG同じ引数を取る、別の型を返す同じ名前のfunctionって作れなかったっけ?
オーバーロードしようとしたら怒られたんだけど
function GetInput(const Prompt: string): string; overload;
function GetInput(const Prompt: string): integer; overload;
0992デフォルトの名無しさん
NGNGSetInput(GetInput('xxx'));
でSetInputがoverloadされてたらあいまいさを解決できないから。
0993デフォルトの名無しさん
NGNG任意のファイルを開くまたは起動させるにはどうすれば良いですか?
TXTファイルを指定してメモ帳で開いたり、EXEを起動させたりということをプログラムから行いたいです。
よろしくご教授お願いします。
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGお早い回答ありがとうございます。
助かりました。多謝。
0996927
NGNGend; begin if A = 0 then begin X := -B / 2 * A;
end
else
begin
D := B * B - 4 * A * C;
end;
if D = 0 then
begin
X := -B / 2 * A;
Memo1.Lines.Add(Format('解は%g',[X]));
end
else
begin
E:=( -B + sqrt ( D ) ) / 2 * a;
F:=( -B - sqrt ( D ) ) / 2 * a;
Memo1.Lines.Add(Format('解は%gと%g',[E,F]));
end;
if D >= 0 then
begin
E:=-b/2+A+-sqrt(D);
F:=-b/2+A+-sqrt(D);
end
else
begin
Memo1.Lines.Add(Format('解なし')); end; end; end.
とりあえず自分で作ってみました
間違い指摘おねがいします
0997デフォルトの名無しさん
NGNGあとどうでもいいが
> end; end; end.
何だコレは
0998927
NGNGMemo1の定義ってどうやるんですか
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。