モナーの *やさしい* Delphi質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001DELモナ
NGNGDELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
∧ ∧
( ´∀`)( )
0175160
NGNGdpkを開いて requires の下に
rtl,
designide,
vcl:
と挟んで入れたらコンパイル出来た。 いやホントありがとう
0176160
NGNGDsgnIntf/DsgnIntfを切り替えるのは {$IFDEF }でいいとして
designide と dsnide50 はどうやったらいいんだろ?
まあ別名で作ればいいか
0177デフォルトの名無しさん
NGNG幸い今後は DLL 名とパッケージ名が分離しパッケージ名には
バージョン番号が含まれなくなったから、今回だけですむ。はずだ。
0178デフォルトの名無しさん
NGNGSynapse のどこにスレッドが使われてる?
0179デフォルトの名無しさん
NGNGIndy は「スレッドが使えるんだ。ブロッキングで何が悪い?」という思想だから
スレッド使いすぎという批判は筋違い。
0180デフォルトの名無しさん
NGNGスマソ、誤送信
0181デフォルトの名無しさん
NGNGやっぱり踊って歌える ギコのほうが人気高いんね。
0182デフォルトの名無しさん
NGNG0183s
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGDelphi6 は www.borland.co.jp からタダでDLできま。
0187デフォルトの名無しさん
NGNGアカデミックばんはさんまんごせんほどでかえるからマイクロソ
フトマンセー
ボーランドはくがくせいにはきびしい成り
0190デフォルトの名無しさん
NGNGhttp://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16739
0191デフォルトの名無しさん
NGNGウィンドウの位置を
←手前 奥→
タスクバー>デスクトップのアイコン>ウィンドウ>壁紙
の位置に持っていくことは出来ませんか。
0192デフォルトの名無しさん
NGNG逆にVCL側からスレッドを触るにはどうすればよいのでしょうか。
スレッド側からSynchronizeでポーリングしなければならないのでしょうか。
それとも、ふつうにスレッド(のメンバ)を使っていい、、、わけないですよね。
0193192
NGNGのかなということです。Indyの実装によるのかな
0194デフォルトの名無しさん
NGNGあるレコード型の中のフィールドに、
そのレコード型自身を指すポインタを指定するにはどうしたら良いんでしょうか?
Cで言えば、
struct CELL{
int value;
struct CELL *before;
struct CELL *next;
};
みたいなことをやりたいんですが、これをそのままやろうとすると
「〜型の宣言が完了していません」とコンパイラに怒られてしまいます。
まさか「汎用のpointer型を使うしかない」なんてことはないと思うんですが…
0195デフォルトの名無しさん
NGNGCELL = record; // コレ
PCELL = ^CELL;
CELL = record
value: integer;
before: PCELL;
next: PCELL;
end;
こんな感じ?
0196デフォルトの名無しさん
NGNGtype
TCell = class
public
Value: Integer;
Prev, Next: TCell;
end;
0197デフォルトの名無しさん
NGNG早速のお答え、ありがとうございます。
レコード型で >>195 のようなforward宣言をしようとしても
コンパイラが受け付けてくれないので、
どうやらforward宣言が効くのはクラスだけみたいです。
ボーランドとしては、レコード型なんか使わずにクラスを使えってことなのかな…
とにかく、どうもありがとうございました。
0198デフォルトの名無しさん
NGNGそれいらない。
>PCELL = ^CELL;
>CELL = record
forward しなくてもこれでコンパイルできるでしょ?
Borland 以前、原典の Pascal から、^でポインタ型を定義するときだけ
未定義の型に対する参照が許されるんです。
0199デフォルトの名無しさん
NGNGTCell = record
・・・
がDelphiらしいかな・・・クラスとレコードの区別がつかんけど
0200デフォルトの名無しさん
NGNGなお、宿題とは関係ありません。自分で書いたコードもあります。
要望があれば公開します。
私が作ったコードでは、1024*786*24BITで
15−20秒ほどかかります
{ Source で指定された画像を Scale 倍したものを
Dest に描画する。Dest のサイズも同時に設定される。
拡大縮小時には線形補完を用いて、そこそこ高画質にする。
Source は 24Bit カラーである事を前提とする }
function Zoom(Source,Dest:TBItmap; Scale:Extended);begin
if Scale = 1 then
Dest.Assign( Source );
Exit;
end;
Dest.Width := Floor( Source.Width * Scale );
Dest.Height := Floor( Source.Height * Scale );
{ なんたらかんたら }
end;
0201デフォルトの名無しさん
NGNG>最速の実装をしてください
が、ちと気に入らないが・・・。
>自分で書いたコードもあります。
とのことなので、まず自分のソースをあげてみよう。
そこから悪いところを直していけば勉強にもなる。
0202デフォルトの名無しさん
NGNGDelphi5 と Delphi6 にアップグレードしようしているのですが、
Delphi3→Delphi5
Delphi5→Delphi6
以上のように移行するにあたって、それぞれのメリット、
追加されたものがあれば、教えてください。
0203200
NGNGもともと TBitmapEx というクラスのメソッドだったのですが、
関係有るメソッド、関数だけを取り出して一つのユニットに
まとめました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004364661&res=1
0204デフォルトの名無しさん
NGNGブロックに分けて、テーブルを使うのはどぉ?
0205デフォルトの名無しさん
NGNGピクセルの色がどの程度影響しているかという指数というか、
そういう奴をテーブルにするという事ですか?
0206デフォルトの名無しさん
NGNG1,2,3,4
5,6,7,8
って分けて、1で計算したのを2以降で使うようにするの。
0207デフォルトの名無しさん
NGNG揚げ足とり敵に細かいところを責めてみるか
・SetPixels、GetPixels、ComplementedBrightRGB等のループ内
各関数をインライン展開して、オーバーヘッドを抑える
・Canvas.Pixels[x,y]やScanLine[y];は重いので使わずに、
bit列へのポインタもらって自力で描いたり書いたり読んだりする
# Canvas.Pixels[]など、速度が必要なときに使うのは論外中の論外!!
・浮動小数点は比較的重いので、固定小数点にする
# 最近はあまり意味ないかもな
0208デフォルトの名無しさん
NGNGおお、どうもありがとう
早速修正したいとおもいます。
ところで…
>ScanLine[y];は重いので使わずに、
>bit列へのポインタもらって
今まで ScanLine[y] っていうのは y 行の
ピクセルデータへのポインタを得るものだと思っていたのですが、
そうではないという事ですか?
0209デフォルトの名無しさん
NGNG自分で読み書きってことはCreateDIBSectionを使うってことなのかな?
ttp://www.sm.rim.or.jp/~shishido/dibsec.html
俺、Scanline使って遅いなあとか思ってたけど、これ使えばもっと速くなるかな。
(でも、ScanLineでもかなり速かったような気もするんだが。)
どのくらい速くなるのか解説きぼん
0210デフォルトの名無しさん
NGNGとりあえず5もくならべのつくりかた教えて。
いままでエディタ+コマンドラインでコンパイルという
ことしかやってません。
0211デフォルトの名無しさん
NGNGというかまずはTmemoを使ってメモ帳作るところから始めた方が良いようなー
3目並べならTlabel のCaption使うだけで作っても良いかも。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG○●を入れて貰って
後はなんとか頑張る
0214デフォルトの名無しさん
NGNGおまえら、五目並べ作ってみろよ!!!
http://pc.2ch.net/test/read.cgi/prog/1004278856/l50
0215Sock2に挑戦
NGNGWSAEventSelect()によって非同期によるクライアント待ちをする場合、
accept()実行後、
WSAEnumNetworkEvents()でFD_ACCEPTが成功したかどうか調べたいんですが、
その際、本来accept()の戻り値であるsocketハンドルは
どうやって取得すればいいのでしょう?
それとも
WSAEnumNetworkEvents()によってFD_ACCEPTを確認してから
accept()を実行するのでしょうか?
0216デフォルトの名無しさん
NGNGTBitmap自体、内部的にDIB使ってるけどScanLineの連続呼び出しはやっぱ重い。
検証用に、無理やりTBitmap継承してScanline使わないようにしたクラスが手元にあるんだが、
不完全だしさらすのいやだからなあ(笑
どうしてもっていうなら、さらし用のつくってみるけど。
いや、でも確実に速くなるよ。
02172000
NGNG最低限のことさえ教えていただければ、自力でなんとかします。
0218216
NGNGおかしいな・・・。
0219209
NGNGScanLineをキャッシュすれば、多少は速くなる。
ttp://homepage1.nifty.com/beny/tips/dib02.html
まあ、ScanLineの方が分かりやすいし・・・。
0220216
NGNGと思ったら>>219とほぼおなじじゃーん。
ガーソ。
一応あげとく。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004364661&res=2
0221デフォルトの名無しさん
NGNG( ◎_◎)
( )
24bitではなく32BITにしてあるのは、ダブルワードの
インクリメントでちょうど1ピクセル分移動できるようにするためですか。
0222デフォルトの名無しさん
NGNG左上からなめるようにスキャンする場合は
効率が良いかもしれないけど、ランダムに
アクセスするような場合ってどうよ?
0223209
NGNGそれも、キャッシュするだけでちょいっと速くなるけど
やっぱ遅くなるね。ぼかしで広い範囲指定した日には地獄。
0224216
NGNG>>221
そんなところで。
>>222
気持ちほど速くなる(藁
つーことは、今回の件ではあまり高速化には貢献できないことになりますか。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0227デフォルトの名無しさん
NGNGDHCPサーバーからDNSサーバーのアドレスを取得したいんですけど、
出来ればサンプルが欲しい…。どなたか情報お持ちでないでしょうか?
0228デフォルトの名無しさん
NGNGいろいろコストがかかる処理しているからだね。
俺は ScanLine から次のラインへのオフセットを計算して
以後それを使って高速化している。
var
ScanLinePtr0: Pointer;
ScanLineOffset: Longint;
Y: Longint;
P: Pointer;
begin
{ 画像の任意のラインのポインタを計算するための準備 }
ScanLinePtr0 := Bitmap.ScanLine[0];
if Bitmap.Height>1 then
ScanLineOffset := Integer(Bitmap.ScanLine[1])-Integer(Bitmap.ScanLine[0])
else
ScanLineOffset := 0;
{ 各ラインのポインタを求める }
for Y:=0 to Bitmap.Height-1 do
begin
P := Pointer(Integer(ScanLinePtr0)+ScanLineOffset*Y);
// 取得したポインタPを使ってとりあえず何かしよう
end;
end;
0229デフォルトの名無しさん
NGNGこれはいいこと聞いた。感謝上げ。
…したいんだが荒らし、批判その他避けで下げ。
0230デフォルトの名無しさん
NGNG何でも入ってるしソースから盗むこともできる
0231デフォルトの名無しさん
NGNGポインタの使い方が分からん。参考例全文をきぼん。
Delphi向けのポインタの詳しい解説サイトってないのかな。
0232デフォルトの名無しさん
NGNGhttp://user3.allnet.ne.jp/tadnakam/Delphi/delphi4/pascal/Pointer.htm
多分Cのポインタが分かっていれば、それと同程度に理解できるのでしょうが。
というわけでCのポインタ
http://member.nifty.ne.jp/maebashi/programmer/pointer.html
0233デフォルトの名無しさん
NGNGありがと
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG他のアプリ(たとえば、かちゅ〜しゃ)を終了させるのってどうしたらいいの?
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGWindows終了時にかちゅーしゃ終了させるアプリ作ってる?
需要あるから公開キボンヌ。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240235
NGNG|うぇーん、どうしたらいいかわからないモナー
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧
( ´Д⊂ヽ
⊂ ノ
人 Y
し (_)
Googleで調べたら、
PostMessage(Self.Handle, WM_CLOSE, 0, 0);
ってすると、自分自身を終了できるけど、
Self.Handleのとこの変え方(?)がわかんない・・・。
こういうのの使い方ってどうやって調べるの?
>>237
2ch依存しすぎてるんで、
一定時間したら強制終了させられたらいいかな、と。
>>238
cygwin(?)だと、一定時間後とかってできないですよね?
>>239
できたら代わりに作ってください。お願いします。
0241デフォルトの名無しさん
NGNGEnumProcessとかFindWindowとか
0242235
NGNGFindWindowを使って、
FindWindow(nil,'かちゅ〜しゃ');
ってしたらできました。
(こんな方法で良いのか、わからないけど・・・)
あとはタイマーつけて頑張ります。
この度はありがとうございました。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG/ ̄ l | / ̄ ̄ ̄ ̄ ̄
■■-っ < んなこたーない
´∀`/ \_____
__/|Y/\.
Ё|__ | / |
| У.. |
0245デフォルトの名無しさん
NGNGむしろ、
FindWindow('TKatjushaMainForm', nil);
のほうがいいかも…
0246235
NGNGかちゅ〜しゃ起動・終了の代わりに、
このソフトで起動・終了をさせなくちゃいけなかったり、
色々と使いづらいところもありますが、満足なできになりました。
ありがとうございました。
0247235
NGNGhttp://members.tripod.co.jp/RtFchs/KatjuClose_1113.lzh
0248Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < sageでゴメンなさい。
⊂,,,,,,,,,つつ. \_
かちゅのパスが取得できていないみたいですので
http://homepage1.nifty.com/beny/tips/other10.html
これみて、かちゅ起動時には
フルパスを自動取得できたらいいなあ。
0249デフォルトの名無しさん
NGNGNTだとそれじゃフルパスが取得できないんだよねw
0250Delフサギコ
NGNGミ ゚Д゚彡 ジョウホウ サンクスコ
〜ミ,,,,uuミ
0251249
NGNGEnumProcesses
EnumProcessModules
GetModuleFileNameExA
を組み合わせて作る。
たしかこれ併用して9x/NTどちらでも
プロセスをフルパスで列挙可能な非VCLがあったんだが…
コンポのソースに書いてあったURLに飛ぼうとしたら404、
MSDNの検索でも結果に飛ぼうとしたら、んなページねぇぞゴルァ言われた…
具体的なURLは出せないスマソ。
0252デフォルトの名無しさん
NGNGBorlandのQ&Aで見た記憶がある。
C++用だったかも。
0253235
NGNG(>>248で上げられてるのを、どう使ったらいいのかわからないレベル・・・)
レベル的に無理そうだし、OpenDialogでの取得で落ち着きます。
http://members.tripod.co.jp/RtFchs/KatjuClose_1119.lzh
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGフォームを表示させる場合に、自動的に画面の中央に
表示させたいのですが、コーディングしないとダメなのでしょうか?
0256デフォルトの名無しさん
NGNGForm の Position プロパティのヘルプを読め!
0258デフォルトの名無しさん
NGNGデータを追加するにはどうすればよいのでしょうか?
ヘルプにはAddItemにリンクが張られてなかったのですが・・・
0259デフォルトの名無しさん
NGNGVCL ソースを読んだら?
0260デフォルトの名無しさん
NGNG質問者がどこで引っかかっているのかがわからないが...
ListView1.AddItem(Item: String; AObject: TObject);
または
with ListView1.Items.Add do
begin
Caption := 'XX';
end;
こんな書き方は? Items.AddItem は第一引数の扱いが難しいから
あまり勧めない。
0261_
NGNGItem: TListItem;
Item := ListView1.Items.Add;
Item.プロパティ := 値;
0262デフォルトの名無しさん
NGNGおなじじゃん...
0263デフォルトの名無しさん
NGNGそこで、環境変数のPathを変更する機能を作ろうと思ったんですが、
読込方法しかわからず、書き込み方法がわかりません。
DelphiMLとか、WebでWin32APIとか検索したんですが、どうにも見つかりません。
知っている方、教えていただけませんか?
0264Delフサギコ
NGNG∧,,∧ /
(,,,,,,,ミ,,゚Д゚彡 < 実は、かなり調べたけどフサにはわからなかったんだな。
⊂,,,,,,,,,つつ. \
もしかしてBATファイルで設定できないでしょうか?
そしたら、テキストファイルとしてBATを作成して実行して削除すれば
いいのかも....
0265Delフサギコ
NGNG#define ENV_MAX 256 //特に根拠のない数字
char EnvOfTmp[ ENV_MAX ];
GetEnvironmentValiable( "TMP" , EnvOfTmp, ENV_MAX );
設定
SetEnvironmentValiable( "TMP", "C:\Windows\Temp" );
∧,∧ ,:: / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡っ━'~ | 改めて調べたらいきなりわかった。
ミ∪ ~,ノ < BCBコードは訳しておくれ。
ミ '' ミ \____________
し'~し'
今は亡き、BCBサイト[ARAHIQS]のTipsですす。
試してないので、動作確認よろしう。
0267デフォルトの名無しさん
NGNGありがとうございます!
早速試してみたんですが、未定義の識別子:'SetEnvironmentValiable'
と言われてしまいました。
現在GetEnvironmentValiableの方は動いております。
何か、Usesに加えたりすれば解決するのでしょうか?
0268名無しヘタぐらま ◆B18Bks.Y
NGNG文字列リストのObjectsプロパティのような
関連するデータへの参照ということでしたら
>>261さんの方法でもできますです.
レポート形式ということなので蛇足ながら
2つ目以降の列の設定のコードの例もあげるです.
procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TListItem;
begin
NewItem := ListView1.Items.Add;
NewItem.Caption := 'なんとか';
NewItem.Data := FMyNantokaObject; // データへの参照.
NewItem.SubItems.Add('さぶ1');
NewItem.SubItems.Add('さぶ2');
NewItem.SubItems.Add('さぶ3');
end;
0269Delフサギコ
NGNGミ゚Д゚,ミ,ノ< ハニャーン
ミ⊃ ,ミ \
ミ, ,,ミ >>267、あら、見つからないですね。ガセかしら。
⊂,,,ノ
∪
Windows.pasにはこんな風にかかれてるけど。
function SetEnvironmentVariable(lpName, lpValue: PChar): BOOL; stdcall;
0270デフォルトの名無しさん
NGNGValiableじゃなくてVariable。lとr間違ってる
0271デフォルトの名無しさん
NGNG間違っていました(汗
修正したら動くようになりました!
フサギコさん、270さんありがとうございました。
0272デフォルトの名無しさん
NGNG現在テキストエディタを製作中なのですが、
作業中にTabを押してもメモ帳のようにカーソルが移動しません。
これはやはりOnKeyPressでそれ相応の処理をさせないと
いけないのでしょうか?(空白を入れる、など)
一通りTipsを探し回ってみたのですが、それに近い答えが見つからなかったもので…。
お願い致します。
0273Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < WantTabs
UU""" U U \_______________
0274デフォルトの名無しさん
NGNGまさかプロパティだったとは…。
もう少し勉強してからお邪魔致します。
厨な質問申し訳ございませんでした。
■ このスレッドは過去ログ倉庫に格納されています