Delphi相談室その7
■ このスレッドは過去ログ倉庫に格納されています
0001Delphi1 から使ってます
NGNGボーランド
http://www.borland.co.jp/
<関連スレッド>
モナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/test/read.cgi/tech/1027873869/l50
・雑談はこちら
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室�E
http://pc3.2ch.net/test/read.cgi/tech/1031668744/l50
0153デフォルトの名無しさん
NGNGでも手間が増えるんだろ。だめじゃん。
0154デフォルトの名無しさん
NGNGTMyMemINIFile を継承して
WriteEscString ReadEscString を一度作るだけだろ
0155デフォルトの名無しさん
NGNG痛すぎる・・・
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGそりゃ、windowsフォルダに入れるなら糞だけどローカルに作ると
1、速い
2、実行ファイルを別のディレクトリに入れれば相互に独立する
3、環境を移す時にディレクトリを丸ごとコピーするだけでいい
4、アンインストールも楽
0159デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGサイズによると思うよ。
巨大な iniファイルを作ると1文字の追加削除でも全件読まなければならない iniより
木構造で管理されてるレジストリが速いだろうね
それでもアプリ起動時に全件読んで、終了時に全件書き込むような使い方なら iniの方が速いんじゃない?
0162デフォルトの名無しさん
NGNG議論になるのかわからん。
各項目のサイズ。レコード数。更新の頻度。とかを考えないと
テキストのまま保存されるINIファイルは論外になる可能性が
あるでしょ。
それに、こんなことでレジストリを使っていていいのかって
問題もある。たとえばNT系列でAdministrator以外でも
きちんとつかえるのかしら。
0163デフォルトの名無しさん
NGNGじゃぁ何をつかったらいいか提示して
0164デフォルトの名無しさん
NGNG>レジストリじゃなくてiniに拘る理由?
ちゃんと133からの流れを読んでいるのか?
データだよ、保存したいのは。前に出てた Stream 系かデータベースを
使うのが普通だろ。
0166162
NGNGだめじゃないの?最初から除外する意図がわからん。
プログラムが使い捨てか、長く使うかでも変わるし
データのサイズが数KBか数百MBかでもかわりますから
そこらへんがわからないうちからINIだのレジストリだの
いうのは意味がないでしょ。
0167デフォルトの名無しさん
NGNG巨大データをINIになんて入れると時間がかかるよ。
君の言いたいことは、気にせず「巨大データを書き
込むプログラムが作れる」だろ。
0168158
NGNG>>133 を読み返すと データ番号 とかデータ名となってるから1件じゃなくて
複数のこういうペアを作りたいのかもしれないね。
だとすると、単純にデータ名でディレクトリ掘って、
データ番号をファイル名にして
データの内容=ファイル内容 なんて解法が一番スマートで楽じゃないかな
可変長のテキストをRDBで扱うとRDBによっては効率悪いし
0169デフォルトの名無しさん
NGNGまずは各データの最大長とデータの最大個数書かないと。
わからないならおおよそのサイズ(数バイト,KB,MB,無制限)でもいいから。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG>何個もこのようなデータを1つのテキストファイルに保存したいのですが
これ、読めないのか?
0172デフォルトの名無しさん
NGNG>いいのでこういう方法がいいとかあったらおながいします。
これ、読めないのか?
0173デフォルトの名無しさん
NGNGいいかげんにしろよ。168では、データ数分だけファイルつくるってんだから
仕様を満たさないのは明らかだろ。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG君の住所録は TMemIniFile でエンコードして作ってろよ。
おもしろい奴だね。もっと日本語の読解力をつけろよ!
0176デフォルトの名無しさん
NGNG住所録ならCSVだろ
0177デフォルトの名無しさん
NGNG僕も半年だけど、全然だめぽ。。。
Delの前にも違う言語やってたんですか?
0178デフォルトの名無しさん
NGNG0179Delフサギコ ◆A6VzDeLphI
NGNG初心者の場合、作りたいものと、作れるもののギャップに
激しく差があって、なかなかプログラミング意欲が沸きにくいと思うです。
とりあえず、何を作りたいか、のネタ探しからはじめて
たくさん、プログラム/ソフトウェアを作っていくしか
ないと思いますよ。
ライフゲームとか、作ったことがあるんですが
ネタとしては面白かった yo.
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022733594
いろんなネタが見つかるといいですね。
0180Delフサギコ ◆A6VzDeLphI
NGNGXPの本では、とりあえずDBやるときでも
最初にファイルでやっといて、後から
データアクセスを担う1関数だけを
ファイルアクセスからDBアクセスに
切り替えたら、いいよね
ってアプローチがいいと紹介されてました。
0181デフォルトの名無しさん
NGNGその方法だと、Delphiのデータベースコンポーネント使えないんじゃ…
初めからDBでテストすればいいと思います。
ローカルかリモートか程度なら後で変えても苦労しないでしょうが。
0182Delフサギコ ◆A6VzDeLphI
NGNGコンポもクラスなんだし。
0183Delフサギコ ◆A6VzDeLphI
NGNG0184デフォルトの名無しさん
NGNG>データアクセスを担う1関数だけ
なんてわけにはとてもいかず、データベースとの中継を行なうコンポーネントひとつ
作る労力が要るのでは無かろうか?
素直にMyBaseでも使ってればいいじゃん…。
0185Delフサギコ ◆A6VzDeLphI
NGNGファイルアクセス用に1関数つくるのと
同じような入出力で
DataModuleに1メソッド作って
相互置き換えすると、いいだけなんだけど。
トラザクとかはそれからでもいいし。
たかが、3Stringにしょっぱから、DB導入ナノ?
ま。どうでも。
0186デフォルトの名無しさん
NGNGDBの代わりにファイルアクセスするものを作るにしても、
既存のDBコンポと連携させようとしたら、
TDataSetから派生させて、全メソッドサポートしないと動かないじゃん…。
(まさか、本番も、全データをメモリに読み込んで、書く時も一斉に…ってわけじゃあるまいし)
で、ローカルファイルでテストしたければ、
BDE経由でCSVでも、MyBaseでXMLでも、似たような事はできるので、
わざわざ手間かけて回り道することは無いでしょ?
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGムキになるなよ
0189デフォルトの名無しさん
NGNG絶対ドラゴンボールと勘違いしてる。
0190デフォルトの名無しさん
NGNGインデントまたは元に戻すショートカットキーって
なんでしたっけ?
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194190
NGNG0195デフォルトの名無しさん
NGNGキーワード検索で探すしかないの?
目次からではどうやってもたどり着けなかった気がするのだが。
0196デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGおっちょこちょいだけだろ。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1032985885/l50
/| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
| | | ̄ ̄ ̄ /| ||
| | | / /|TTTTTT TTTTTTTTTT||TTTTT
| /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
| / / |// / /|
| / / |_|/|/|/|/|
| / / |文|/ // /
|/ /. _.| ̄|/|/|/ Λ_Λ
/|\/ / / |/ / (___)
/| / / /ヽ /〔 非OO 〕〕つ
| | ̄| | |ヽ/l `/二二ヽ
| | |/| |__|/ Λ_Λ / /(_)
| |/| |/ ( ´∀`) (_) Λ_Λ
| | |/ // / ^ ̄]゚ (` )
(省略されました・・全てを読むにはここを押してください)
0201デフォルトの名無しさん
NGNGvar
FS1 : TFileStream;
begin
FS1 := TFileStream.Create(FILENAME, fmOpenRead);
try
while FS1.Position <> FS1.Size do
begin
//ファイルを読み込んでいく処理
end;
finally
FS1.Free;
end;
end;
こういうのって成立しますか?
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGワラタ
0206デフォルトの名無しさん
NGNGListbox1.DeleteSelected;
をおこなうとフォーカスが線だけの囲み状態になって、例えば
DELキーにレスポンスして連続削除のようなことができないです。
どのようにすれば、プログラム側から動的にリストの項目をセレクト
状態にできるでしょうか?
-----------------------------------------------
ListBox1.TopIndex:=i;//リスト画面のスクロール
この関数でリスト表示位置を移動した時に連動して、
オーナー描画をしたいんですが。
onオーナー描画で描くと、描画後にリストのスクロールがおこなわれ描画画面が消えてしまいます。
このような場合正しいタイミングにするためには、どのような設計が必要なのでしょうか?
0207デフォルトの名無しさん
NGNG同様の症状が出る方はいますか?
0208デフォルトの名無しさん
NGNG確かめてないけど、他バージョンのdcuを認識しないのは伝統的な仕様だったと思う。
0209無責任だが
NGNGいま、逆アセみたいなのを作ってるんだけど
1、元になるテキストデータを作って
2、それをDelphiでDelphiソースに変換
3、2のソースを
function Cvt(dt:Integer):string;
begin
{$INCLUDE CODE.INC}
end;
みたいに取り込んで利用
で、問題は、1,2,3を調整の為に頻繁に行き来するんで DelphiのIDE上で全て作業出来ないかなと
複数プロジェクトを作っても2のアプリを実行までは自動で出来ないんで
どうやると効率良いかなというご相談です。
0210デフォルトの名無しさん
NGNGフリーのコンポーネントの中にはソースの付かないものがあるけど
バージョンが古いともうだめってこと?
だとするとフリーでもソースの付かないコンポーネントは逝ってよしかな
0211デフォルトの名無しさん
NGNGその通り
0212デルファイの名無しさん
NGNG普通に考えれば、ツールメニューに$EDNAMEなどを使って登録しておくか、
OpenToolsAPIでIDEの機能として全てを組み込んでしまうか、でしょうね。
後者の場合深くやろうとすればそちらへ労力を割かれそう。
やっと昨日、ずっと引っかかっていた新規プロジェクトをOpenToolsAPIで作る方法を発見…。
0214デフォルトの名無しさん
NGNGたとえばこういうのとか
var
Index: Integer;
begin
Index:=ListBox1.ItemIndex;
ListBox1.DeleteSelected;
if not(Index<ListBox1.Items.Count) then
Index:=ListBox1.Count-1;
if 0<=Index then
begin
ListBox1.Selected[Index]:=true;
end;
end;
------------------------------------------------
TopIndex:=i;の後にRepaintすればいいのでは?
そういう話ではない?
0215無責任だが
NGNGそうですね。 やっぱりそれしかないかな。
今、3で作るアプリ内で日付を比較して更新する方法を考えました。
更新があったらソースを書き換えて勝手に終了させるようにしてと
0216デフォルトの名無しさん
NGNGmakefileをmakeするツール登録してるよ。
makeしたけりゃmakeすりゃいいのさ。
0217デフォルトの名無しさん
NGNGどうすればいいのでしょうか?ヘルプを見ても載っていませんでした。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGどうすればいいんでしょうか?
画像データを1dotづつRGB(R, G, B)からTColorへの変換
して、点を打っていくしかないんでしょうか?
0220デフォルトの名無しさん
NGNG0221無責任だが
NGNG>>217 メインのメニューが作れたなら Itemsの所から[・・・] をクリックして追加
>>219 同じサイズのTBitmapを作って、作ったイメージデータをBitmap.ScanLine先にコピー
Bitmapは、Imageコンポを画面に貼り付けて Image.Pictureに設定するだけで表示出来るし
OnPaintイベントで Canvas.Drawメソッドでも表示可能
0222デフォルトの名無しさん
NGNGスレッド作ってSynchronizeでApplication.ProcessMessages呼んで
フォームが固まるのを防ぐのって有りかな?
0223デフォルトの名無しさん
NGNGというか Synchronize って そのProcessMessageで呼ばれるのじゃなかったっけ?
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG他を処理出来ないケースとかって結構あるから、
スレッドにする事で処理速度が落ちる可能性を考えると
スレッドって有効な手段なんだろうか?
とか、昼飯を買いに行きながらよく考える。
0226デフォルトの名無しさん
NGNGヘルプで調べたのですが
procedure Rewrite(var F: File [; Recsize: Word ] );
のRecsizeのところが分かりません。
ヘルプではデータ転送に使われるレコードサイズを指定と書いてあるのですが
これは通常どれくらいの数にすればよいのでしょうか?
デフォルトでは(何も書かなければ)128となっていますが
この設定基準ってなんなんでしょう?
0227デフォルトの名無しさん
NGNG少なければ無駄は無いが、遅くなるかもしれない。
デフォルトでよいのでは?
数メガ書き込むときなどは、大きめにとればいいんじゃ
こんなコトに悩むより、自分で実験してみたらいいと思う
0228デフォルトの名無しさん
NGNGいまはほとんど、TStream 系や TStrings 系の LoadFromFile()
や SaveToFile() ですましてる。
0229デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGドラえもん祭り
サップvsホースト
ゴールデンシアター[マトリックス]
0232ななしへたぐらま ◆XcB18Bks.Y
NGNGRewriteのRecSizeは書き込みバッファのサイズではなくて,
何バイト単位で書き込むかを指定する値です.
RecSizeには1を指定します.
128という値は昔のOSが128バイト単位でファイルを読み書きしていたのと
関係があるかも知れません.
#私も今はRewriteは使わずストリームを使っています.
0233デフォルトの名無しさん
NGNG>何バイト単位で書き込むかを指定する値です.
あ、そうなんすか。
で、たとえばデフォルトの128バイトの場合、
3バイト書き込んだ時点で、ディスク上のファイルはどうなるの?
0234デフォルトの名無しさん
NGNG確認してないのであてずっぽうですが、バッファが128byteで
書き込みが3byteの状態って単にバッファにたまっていて
書き込まれていないでしょうね。
そしてバッファがいっぱいになったときとかクローズするときに
全部を書き込むようになっっているはずです。
0235デフォルトの名無しさん
NGNGいやーんなことになります
ま、やってみりゃわかる。
0236デフォルトの名無しさん
NGNG最近AssignFile使わないけど
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGm×n行列なら2次元配列でいいんじゃないですか。
http://www.users.gr.jp/ml/archive/delphi/41901.asp
より
多次元配列は配列の配列です。次に例を示します。
type TMatrix = array[1..10] of array[1..50] of Real;
これは次と同じです。
type TMatrix = array[1..10, 1..50] of Real;
どちらの方法で宣言しても,TMatrix は 500 個の実数値の配列を表します。
0239デフォルトの名無しさん
NGNGCode Centralに逝きたまえ。それが全てだ。
0240デフォルトの名無しさん
NGNGいろいろとチャレンジしているのですが教科書が無いのでInpriseのマニュアルだけでは進展しません。
データベース対応アプリを作るのに参考になる良いサイトあるいは書籍があったら教えてください。
手元にDelphi2.0テクニックマスター集中講義があるのですが、データベースに関する部分は
説明が少なくてなかなか理解出来ないでした。
私のレベルはなんとか脱初心者レベルではないかと自分では思っています。
0241デフォルトの名無しさん
NGNG良かったですね。
0242デフォルトの名無しさん
NGNGありがとうございます。
最初、Bitmap.ScanLine := pDataとか間抜けなことして、読み出し専用
だっつーてんだろ!というコンパイラのツッコミにかなり悩みましたが
やっとこなんとか解決できました。
0243デフォルトの名無しさん
NGNG脱初心者出来ていなかったようなので初心者に戻ります。
どうかよろしくお願いします。
0244デフォルトの名無しさん
NGNGDelphi2.0のころの本だとしんどいと思います。そのころじゃBDE(BorlandDatabaseEngine)の
説明しかないんじゃないでしょうか。現在ではDatabaseへのアクセス方法が
BDE ボーランド独自
ADO MS(というかWindows)の流儀
dbExpress Kylixとの互換性を考えた新しい方法
あとInterbaseへのダイレクトなアクセスとかローカルにXML形式でファイルを作るMybaseなど
いろいろな方法が用意されていますから、そのころの本だけで勉強しても無駄骨に終わる
という可能性が大いにあります。
DelphiでDBとかいうテーマの本だとOracle oo4oを扱ったものまでありますから、とりあえず
大きな本屋さんへ行って気に入った本を買いなさいってこと。
脱初心者なら自分にあった本くらい探せるでしょ。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGデータベースの場合、基本の概念を理解していれば応用が楽(と言
うより基本ができていないと何をやってもだめ)なので、本当に身
に着けたいならそこからやるべき。
0247デフォルトの名無しさん
NGNGなんでもそうかと思うふ
0248デフォルトの名無しさん
NGNGDel&DB本の一冊でも紹介してやりゃいいのに。
0249デフォルトの名無しさん
NGNG未だに隅をつつくなよ。某がかわいそう
0250デフォルトの名無しさん
NGNGネタニマジレスカコワルイ
0251apone
NGNGファイルを作成したいんですが、どうすればいいでしょうか?
0252Delフサギコ ◆A6VzDeLphI
NGNG(V)∧,,∧(V)
ヽミ・ω・ノ フォッフォッフォッ
. .ミ,,,,,,, ミ
ノ ゝ
>>251むずかすぃかも
とりあえず有名なDragDropコンポーネントをインスコ汁汁汁
■ このスレッドは過去ログ倉庫に格納されています