Delphi相談室その3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG気楽な雰囲気がよければこちら
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/
希望や夢はこちらに
★クライアントサイド最強の Delphi に物申す★
http://pc.2ch.net/test/read.cgi/tech/1001442200/
メーリングリストのウオッチすれはこちら
Delphi/Kylix Tech 2nd
http://pc.2ch.net/test/read.cgi/tech/993005709/
つづく >>2-3 あたり
キャラ系雑談はこちらで
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1006602102/
APIで直接な漢な人はこちら
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/
ギコBASIC拡張計画
http://pc.2ch.net/test/read.cgi/prog/961558082/
前の Delphi相談室2
http://pc.2ch.net/test/read.cgi/tech/995950803/
前の Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGttp://pc.2ch.net/test/read.cgi/tech/1001442200/
しかも1000行って終わってるだろこれ
0004デフォルトの名無しさん
NGNGDelphi/Kylix Tech 2nd
http://pc.2ch.net/test/read.cgi/tech/993005709/
の方、 これは昨夜いきなりDel無用論の荒らし風状態になって終了
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGオレ、Kylixには全く興味無いなぁ。
0008デフォルトの名無しさん
NGNGまだ使ってる人いるのか?
0009デフォルトの名無しさん
NGNGhttp://paming.s7.xrea.com/yukiwiki/yukiwiki.cgi?[[44656C706869918A926B8EBA814095CA8AD9]]
手始めにリンク集をまとめてみました。
0010デフォルトの名無しさん
NGNGDelphiがどんなにだめになっても割りとAPIレベルから再構築できるから
素人からバカ(プログラム中毒者)まで使える。OO用だけど実はアンチOOでもOK
欠点はマクロ展開できないことぐらいじゃないかなあ。
リンクがないのがとにかく好きだ
kylix/delphiってのはインターベースやオラクルを前提にして
いわゆるプログラマーでない人がやる分には悪くないとは思うけれど
TCP/IPベースならばおんなじことがNETSCAPEブラウザーで
テキストベースのhtmlとjavascriptでできそうな気がする。
ところでD6ってのはNULL変数がなくなったんですか?
あと absolute 0 って使い方ができないから
D6のおまけCD-ROMについているJEDIのDirectDrawでエラーが出る。
ちなみにこれは
const
nullGUID :TGUID =(D1:0;D2...);
var
nilGUID :TGUID absolude nullGUID
ってやったら直ったけれど
こう仕様が変わるとほんとにつらい。
Delphi1からDelphi2に変わったときなんて
OS違うのにソースそのままでコンパイルできたって言うのに
0011
NGNGメインフォームとサブフォームがあってメインフォームで
ボタンをクリックするとサブフォームが表示される命令文を教えてください
ちなみにForm1.Close;で終了するのはわかりますが・・・
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGShowModalそれが知りたかったのです。ありがとうございました
0014デフォルトの名無しさん
NGNG>テキストベースのhtmlとjavascriptでできそうな気がする。
それはもしかして、wwwアプリみたいなものを作る話ですかな?
あれで普通のGUI構築ツールと同じ表現力を求めて開発するってのは、
まるでお薦めできませんぜ。
というか漏れのプロジェクトが、それっぽい安易な発想しかないアフォどものせいで
月曜の初仕事からの暗礁のりあげが保証されていると思われ(わら(T_T
del(この文脈ではVBでも可)ならば、こんなことくらい楽勝で出来るのに!と
歯噛みすることが、なんどもなんども有ります。やってられないっすwwwアプリは。
wwwだと、(serverとのやりとり無しには)絵も描けないわけだしね。
JavaAppletの出番をあおぐくらいなら、delとかを使うのと同じことだし。
>リンクがないのがとにかく好きだ
これ、なんのこと?
delにもリンクは有るでしょ? はやすぎて判らないかも知れないけど。
VCにもgccにも有るのと同様に。
0015Delフサギコ
NGNGミ,,゚Д゚彡 < しつもソや!
U ミ \____________
〜ミ ミ
∪''∪
StringList.LoadFromFileで読み込む時は
当然ShiftJISのファイルがテキストで読めますが
HTMLでよくあるEUCを読み込んでSHIFTJISの文字列リストとして
格納するのはどうやるんでしょうか。
また、
HTMLってShiftJISとEUC以外に縁コードの方法はありますか?(日本語で)
あるのならそれもStringListにShiftJIS形式で格納したいっす。
教えてください。
0017デフォルトの名無しさん
NGNG表示させたいのですが、どうすればよろしいでしょうか?
教えてください
ちなみにWindows上の設定のODBCまでは何とかエラー無く行けたと思います
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGJIS と UNICODEが有名かと
0020Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < 愛してくれとはいわーないわー♪
UU""" U U \_______________
ストーカーニハ ナラーナイデー♪
レスありがとうです。
>>16
HenkanJ.pas.....変換はword単位なんですね。
Stringを全部変換するのはどうやるのかな.....
SiftJIS以外テキストをStringListに入れて
そのStringをShiftJISに変換なんて事が出来るのでしょうか...
>>18
nkfって何でしょうか。
関連しつつ、別質問ですが
テキストファイルがそれぞれJISかSiftJISかEUCかUnicodeかを判別する
のはどのようにしたらいいのでしょうか?
質問ばかりでスマソ
0021デフォルトの名無しさん
NGNG実装しようと思っているんですけど、
何かいい方法ありませんか?
教えてください。
0022デフォルトの名無しさん
NGNGgoogle見れ
>>21
TActionList使ってメニューを全てTAction化して
TActionListのショートカット編集フォーム作成すればよい。
0023デフォルトの名無しさん
NGNG↑ nkf32.dll
UNICODEは無理かも。だけどwebページは普通JIS/EUC/SJISなので大丈夫だらう。
0024Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミっ < 車輪の再発明はするなってことですかい
|''U ̄| \_________________________
| ̄ ̄|
/ ゙ヽ
( ゚Д゚ ) リダイレクション デ ドウヤッテ StringList ニ.......
人____ノ
Pascalソースがありゃあいいのになー.....
DLLもあるんですね....
そんでもってDLLの作者の方々に.....
ウワァアァァアァア!!!!!
∧,,∧
ミ;゚Д゚彡
0025デフォルトの名無しさん
NGNG0026Delフサギコ
NGNG∧,,∧ 2002ネソ 今年のフォーフ
ミ,,゚Д゚彡 「ネタの中にもマジレス」
ミつ[|lllll])
〜ミ ミ
U U.
Actionのショートカットの管理は
実装例はホットゾヌを見るといいです。
が、初心者にはムズイと思います。
どこかの方がやっていたアイデアですが
Shiftを押しながらMenuItemをクリックすると
ショートカット変更ダイアログ
(FormにTHotkeyが張り付いただけのForm)
が表示されてそれを入力したら
ショートカットが変更されるというもの。
実装の概要は
MenuItemでもActionでもいいけど
クリックされたイベントハンドラで
begin
if (Shiftキーが押されてる?) then
begin
MyChangeShortCutDialog.Hotkey1.ShortCut := (Sender as TAction).ShortCut
if MyChangeShortCutDialog.ShowModal=OK then
beign
(Sender as TAction).ShortCut := MyChangeShortCutDialog.Hotkey1.ShortCut;
end else
exit
end else
begin
//元々のイベントハンドラの処理
end
end;
こんな事を行えば楽にショートカットキー変更機能が搭載できて
いいんじゃないでしょうか。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG>リダイレクション デ ドウヤッテ StringList ニ.......
DLLツカエバ、CモジレツヲカイシテStringListニデキルジャン
ッテソウイウコトデハナイ?
0029Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < で、こういう場合にインターフェースを学んでしまおうか
UU""" U U \_
ShortCutという同名のプロパティを持つが
継承依存関係の無いTMenuItemとTAction、
それぞれをインターフェース変数に代入すると
同一のプログラムソースで同じ処理が行える
はずなんだけど.....
∧,,∧,,,,,,,,,,,,,,, / ̄
ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜 < 恥ずかしいかしら
U U """"UU \_
俺、いまだにインターフェースに慣れません
なんか苦手意識...
だから、誰か例、書いてくれないかなー。。。(汁
0031下手人
NGNG| 改行コードの問題もあるんで |
| http://home1.infonia.ne.jp/~delphian/delphi/compo/miscella.html#MI0031 .|
| 使いませう .|
|_________________________________|
. ∧∧ ||
( ゚д゚)||
/ づΦ
0032下手人
NGNG( ゚Д゚)< アンカー飛ばないんでjconvert.pasね
|つ つ \
〜 |
∪ ∪
0033デフォルトの名無しさん
NGNGよっぽどコンソールアプリとかがトラウマになっとるようだ・・
別にたいした違いはないんだが。
0034ねこま
NGNG0035Delフサギコ
NGNGミ ゚Д゚彡 わからないです。
〜ミ,,,,uuミ
DLLの方がいろんな場面で使いやすいと
思うんだけど。違う?
>>34 そなの?
Javaではそういう使い方が日常で使われると思う。
誰かがそういう目的でよく使っている
と2chで言っていたような…ガセだったかな。
そこんとこDelもJavaみたいになればいいのにナ。
0036Delフサギコ
NGNGミ,,゚Д゚彡 < しゅ・・・宗教上の理由から
,;゙ ミ \_nkf32.dll は使えません。
ミ. ミ
/゛゛゛゛ ダッテダッテ アノヒトガ サンカシテルモノ
>誰かがそういう目的でよく使っている
デlpヒでInterfaceをそのように使っているという事です。
ねこまさん、下手人さんありがとう。
jconvert.pas を調べてみます。
ああ、また夜型になってしもた。
0037デフォルトの名無しさん
NGNGOnHelp か HelpContext
0038デフォルトの名無しさん
NGNGEWin32Errorに対するEOSErrorはあるのに見当たらないような。
0039デフォルトの名無しさん
NGNG俺もその事実を知ったときは驚愕した。
0040デフォルトの名無しさん
NGNG何処かに公開されてたりしませんか?
普通のと違う、かっちょえーコントロールが使いたいです、激しくハイ!
0041デフォルトの名無しさん
NGNGここのスレが詳しい。
かっちょいいDelphiコンポーネントはここだ!
http://pc.2ch.net/test/read.cgi/tech/1010277581/
0042デフォルトの名無しさん
NGNGDelphiはコンポーネントを自作してなんぼ。
見たところ趣味だろうから生産性は無視しな。
と、言う想いを込めて>>41。
0043デフォルトの名無しさん
NGNGfoo f;
case f of
bar: xxx;
baz: yyy;
end
ってした時に通常ありえないelse部分ってどうしてる?
0044デフォルトの名無しさん
NGNGabort
0045ななしヘタぐらま ◆B18Bks.Y
NGNGelse
Exception.Create('内部エラーだゴルァ');
社外に出すソフトでこれをやるのは危険.
0046デフォルトの名無しさん
NGNG何が危険?って口調がヤバイってコト?
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049ななしヘタぐらま ◆B18Bks.Y
NGNGハイ,以前恥ずかしいエラーメッセージを
社外で出して恥ずかしい思いをしました.
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGちょっとタイミングのずれたレスだけど
日本語コードではユニコードはつかわず UTF8,UTF7(ほとんどUTF8)を使うのが標準
で実際にはShift-JISがスタンダードでUNIX系ホストはEUC-JP 一部がJIS
でJISコードはメールでは標準だけど改行や英字に切り替えるたびに制御コード入れないといけないので
サイズがでかくなる。
昔のCGIで半角かな禁止だったところはたいてい頭に¥の入ったコードが誤変換しているって事を聞いた
だからコンバートおたくになるのでないのなら
現実問題としてS-JIS,JIS,EUC-JP,UTF-8を抑えておけばいいんだと思う。
どっかで見つけたソースコードを元に一回作ったんだけどちょっとみあたらない。
確かIEのデータ(UTF8)をクリップボードに入れてどうこうというのだったと思うんだけど
0054デフォルトの名無しさん
NGNG>>14 Webアプリではなくてインターフェースとしてのブラウザー
Delphiってストリームからフォーム読み込む仕様なのに設計時デザインが原則なのはもったいない
あと思うのはdelphiについている表示用コンポーネントはWIn依存物も含めて
HTML表示で代替できてしまうので考えてしまうのです。
でもIEってなんかWIndowオブジェクト貼り付けてるだけらしくて
テキストのところでカーソルがアイビームになるから、効率はわるいのかも....
って結局自作かい...オリ...
フレームとテーブルと画像の入れ替えと矩形探索に特化したパネルつくればいいんだな。
ってもVCLベースでなくてWin32APIベースだけど
0055デフォルトの名無しさん
NGNG>HTML表示で代替できてしまうので考えてしまうのです。
このネタもう飽きた
0056Delフサギコ
NGNG____∧ ∧_ / ̄>>49 ヘタぐらまさん
___ミ,,゚Д゚ミ< もっと暴走だ!
__ ミ ⊃ つ \_
_〜ミ,, ,,〃 いつか、2chネラと会える日が来るはず。
_ ∪ ∪
>>55
そこがJava鯛C#の戦いの争点になるのではないかしら。
暗い蟻マシンのGUIにIEってのはやはりつらいから
VBで作るという案件も世の中イパイイパイで溢れてるかも。
ソースエヂタをコンポーネント化してくれ。
0057デフォルトの名無しさん
NGNGスクリプトのバージョンを上げました。
以後は以下を使ってください。お願いします。
http://paming.s7.xrea.com/ykwk166_kai/yukiwiki.cgi?mycmd=read&mypage=%5B%5BDelphi%91%8A%92k%8E%BA%81%40%95%CA%8A%D9%5D%5D
0058Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < なぜやろか
UU"""" U U \_______________
なんか、RichEditでEUCのコンバートだけ誤動作するみたい
一部、文字化けする。
procedure TForm1.Button6Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
RichEdit1.Lines.LoadFromFile('C:\Temp\無題EUC.txt');
RichEdit1.Text := ConvertJCode(RichEdit1.Text, SJIS_OUT);
end else
begin
RichEdit1.Lines.LoadFromFile('C:\Temp\無題EUC.txt');
end;
end;
どうやら改行コードを勝手に改変しやがるのか>>RichEdit
ヤナ仕様だな。
ConvertJCodeはjconvert.pas の関数です。
jconvert.pasはUTF-8はサポーとしてないみたいですね。
ちょと残念。ま。いいか。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGみんな同じような症状なんじゃない?
0062デフォルトの名無しさん
NGNG> RichEdit1.Lines.LoadFromFile('C:\Temp\無題EUC.txt');
> RichEdit1.Text := ConvertJCode(RichEdit1.Text, SJIS_OUT);
こんな横着なことしてはイカンよ。
ちゃんとした文字列保存用の TStringList などを用意するように。
どうしても TRichEdit に直接読み込みたいのであれば、
type
TJaConversion = class(TConversion)
function ConvertReadStream(Stream: TStream; Buffer: PChar; BufSize: Integer): Integer;
end;
function TJaConversion.ConvertReadStream(Stream: TStream; Buffer; BufSize: Integer): Integer;
begin
{ EUC から SJIS に変換する }
end;
というようなクラスを作って
RichEdit1.DefaultConverter := TJaConversion;
RichEdit1.Lines.LoadFromFile( FileName );
のように読み込みながら変換しないといけない。
この用途には NKF32.DLL も Jconvert.pas も利用できないので
素人にはおすすめできない。
0063Delフサギコ
NGNGミ,,゚Д゚彡 モナユーティルスのファイルから文字列直読み関数
ミつ[|lllll]). を使ったよ。
〜ミ ミ
U''U フユハサムイネ
function FindFile(const FileName: String): TSearchRec;
begin
if FindFirst(FileName, faAnyFile, Result) = 0 then
FindClose(Result)
else
raise Exception.Create(FileName+'の情報の取得に失敗しました。');
end;
function LoadStringFromFile(const FileName: String): String;
var
size: Integer;
F: File;
begin
size := FindFile(FileName).Size;
if size = 0 then
begin
Result := '';
Exit;
end;
SetLength(Result, size);
AssignFile(F, FileName);
Reset(F, size);
try
BlockRead(F, PChar(Result)^, 1);
finally
CloseFile(F);
end;
end;
0064デフォルトの名無しさん
NGNGコンポーネントを作る際
コンポーネント→コンポーネントの新規作成を選んで
上位クラスを選ぶわけですが、特に上位クラスを選びたくないとき
(TObjectにしたいができなかった)どうしたら良いですかね。
適当な上位クラスを継承させたら良いんですかね。
0065んと
NGNGいいかなぁ??あえて6のパーソナルにするべきだろうか・・
0066デフォルトの名無しさん
NGNGTclass はどうだ?
0067デフォルトの名無しさん
NGNGDeiphi3のプロフェッショナル >>>>> D6 personal
だと思うぞ
0068デフォルトの名無しさん
NGNGTComponent クラスから直接/間接に派生しないと、「コンポーネント」とは
言わないんだよ。コンポーネントパレットに乗らないし。
TObject から派生してつくるのは、たんなる「クラス」ですよ。
コードエディタに直接書けるよ!
0069デフォルトの名無しさん
NGNG>BlockRead(F, PChar(Result)^, 1);
最後が 1 だけどいいの?
0070デフォルトの名無しさん
NGNGプロからパーソナルになると
IDEが使いにくく感じるから微妙。
あえて換えなくてもいいような。
0071デフォルトの名無しさん
NGNGそれはD4以降の話では?
0072デフォルトの名無しさん
NGNGファイルタイプの関連付けを入れとくと便利だよ
でもD3ProとD6Personalなら同じようなもんかもね ちょっとだけD6Personalが便利かも
0073デフォルトの名無しさん
NGNGコモンダイアログの所謂「ファイルを開く」ダイアログで、
リストに追加されるファイル名をゲトしてそのファイル
から条件分岐で追加/不追加を制御したいんですが、
イマイチOnIncludeItemのイベントの引数、
const OFN: TOFNotifyEx
からファイル名を取得する方法が分かりません。
Googleも検索してみたけどうまく引っかかりませんでしたです。
メモリエディタで覗いてみると、
OFN.pidl
の指してるアドレス周辺にファイル名があるみたいなのですが、
構造体の定義も分からず、困っています。
OnIncludeItemのイベントでファイル名をゲットする方法、
ご存じの方ご教授下さい。
動作/開発環境は Win2kProSP2+D5Pro Up1 です
0074デフォルトの名無しさん
NGNGD6だとフォームだけで360kbyteになっちゃうyo
あえてD3の欠点があるとしたら
Dword型がLongIntでInt64がcompになるので
整数演算がややこしいこととタイプライブラリーでInt64を使っているものをととりこめないことだ
D6の長所っていったらインストールシールドついていることぐらいだから
Per版はやめたほうがいい
インターネットコンポーネントはほとんどWebでダウンロードできるyo
ちなみにFastnetのFree版も1.61になった。
もしもD6 per買うぐらいならば どっかでD5 learning探したほうがいい
007574
NGNG一番安定している。
もうひとつ欠点をいうならばD4,D5以降のコンポーネント取り込みには
一苦労するという点だけどたいていD3用のコンポーネントもあるからOK
D6 perにいくくらいならFreePascalにいったほうが将来性がある
0076デフォルトの名無しさん
NGNGDelphi/VCL使わないなら
今時Pascalにこだわる必要性は皆無だよ。
もっとまともな選択肢が山ほどある。
0077デフォルトの名無しさん
NGNGつーか(・∀・)?
0080デフォルトの名無しさん
NGNG遅レスですがありがと!
0081デフォルトの名無しさん
NGNGキニスルナ
所詮Delphiが好きな奴同士だ。仲良くせい
0082デフォルトの名無しさん
NGNGでVCL使うならD3しかないでしょう。
まともな選択肢なんて一つでもあるの?
Webでのサンプルの圧倒的な量
似たようなコードばかりのC++とはおーちがい
D6-perの最大の難点は作ったEXEの扱いだと思うのだが...
はっきりいってWindows nativeアプリを作ることに関してはDelphi最強でしょう。
でもソースはボーランド以外のができがいいけど
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG実は病巣部は Classes,varientsなので
Delphiのクラスをちょっとでも使おうとするといきなりファイルサイズが
120kbyteくらいになっちゃう。
どうもグローバル関数とか初期化部分が多くて循環参照しているのが原因みたい
TlistやTstreamくらいはつかいたいのに
でも一回ライブラリーがそろえばいいし、
Delphiの場合Webのサンプルが多いのがありがたい
まぁ非VCLでもVCLでも一番バランスが取れているのはD5なのかな?
D6でもKolとか使えばファイルサイズは小さくなるけれど
あまりに独自なクラスで(Tobjectすら使っていない)
D3は使うかもしれないけれどD5を使うのはあまりにも癪なので
アプリのデータを増やしてかってに入っている関数を使い尽くすつもりで
やるっきゃない。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG禿同
などどいいつつ、逆にVCL使わないで頑張ってらっしゃる同業者が
何人もおられると思うとちょっと感動。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG自分の持っている/長く使っている道具が良い。って話になっているぞ
ホンとのプロは道具を選ばない。
0090デフォルトの名無しさん
NGNG俺はもうD3は使わない D1は使うけど D4,D5 お試しでD6だけかな
0091デフォルトの名無しさん
NGNGfor i:=0 to cnt -1 do func(i);
みたいなコードで、どれか一度でも成功したら別の処理をしたくて funcの帰り値をboolにして
for i:=0 to cnt -1 do flag:=or func(i);
if flag then funcB;
とやったんだ・・・・もう判るよね。
func(0)がtrueを返すと func(1)は呼ばれないなんて・・・・
0092デフォルトの名無しさん
NGNGfor i:=0 to cnt -1 do flag:= flag or func(i);
の間違いね ・・・鬱
0093ねこま
NGNGD3 もいいんだけど,COM のサポートがイマイチ
もういいか,古い話題は…….
009484
NGNG大体Delphiで作るときって画面レイアウトは設計時に決まっちゃうので
フォームってデザイン時しかいらんのよ。
ちりも積もれば山になるというけれど
例えばユーティリティが10個あって合計1Mというのと合計10Mというのは
やっぱ違うと思うし、実行時ファイルサイズが大きければそれだけ重くなる。
零細企業は大変なのよ。あとおいらけちだし
>>89 Int64て D4からだっけというよりD3はLongWordがないほうが痛い
そう考えると最終安定版はDelphi4ということ?
Delphi5はフォームがテキストというけれど元々エディターで表示できるので
関係ない気もする。
スプラッシュはD3かD4がいいねぃ。D5はださいしD6は寒い
しかもWin2Kだとユーザーかえると未許諾になっちゃうし..
インテルのIJLがレジストリーをいじんないとIJGより速くないそうだし
COM関連を考えるとあるライブラリーを無理に使わない必要もないから
ボーランドオリジナルソースでは、
sysutiles、jpeg,graphics,classes,varientsくらいは使ってよさそうだけど
Delphiってフォントの回転できないから結局API使っちゃう
D6はif def でOS分けないでユニット別名使ってほしかったなぁ。
どのみちもうAPIでの環境整っちゃったからがんばってD5も使わないで
D6で逝こう。
0095デフォルトの名無しさん
NGNGフォーム固定ならRCでいいわけだし...
D3,D4,D5の場合フリーのツール類をそろえればそうとうよいと思う
MMXasm,CtoPas,HtoPasとかもお勧め
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGDelphi4.1ってあったっけ?
Delphi4 + パッチ?
0098デフォルトの名無しさん
NGNGまじで?
0099デフォルトの名無しさん
NGNGオプション次第でそうなると思いますが?
0100デフォルトの名無しさん
NGNGfor i:=0 to cnt -1 do flag:= flag or func(i);
をひっくり返して
for i:=0 to cnt -1 do flag:= func(i) or flag
と書けばいいんだよね
確かに最初驚くだろなあ
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGiwaaskiみたいなのがあふれかえっちまうのかね。
そうなったら、あのMLはどうなるんだろうな。
ていうかiwasakiはもっと基礎からやりなおせ、MLに書いて
いるようなiwasakiの造りたい物を作れるようになるには3
ヶ月は修行して空を飛べるようになってから出直せ。
0103デフォルトの名無しさん
NGNGMLウォッチスレは終了しました。
0104デフォルトの名無しさん
NGNG>例えばユーティリティが10個あって合計1Mというのと合計10Mというのは
そのサイズなら、パッケージを分離したら?
0105ねこま
NGNGDelphi4 + sp(2|3) あたり (w
>104
それ言おうと思ったけど,もしかして作者が違うというケースじゃないのかと推測
0106105
NGNG0107デフォルトの名無しさん
NGNGショートサーキットの事ね。
for i := 0 to cnt - 1 do
flag := flag or func(i);
つまり、 flag = True の時、 func(i) が実行されないって事が問題らしいが。
考え方が変だと思う。
flag := func(i) or flag;
も変。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGしらなんだ。
やばいな潜在的バグがあるかも
0110デフォルトの名無しさん
NGNGxor esi,esi
call func
or bl,al
inc esi
>>101 は安全だけど、分岐命令になってしまう
xor esi,esi
call func
test al,al
jz +$02
mov bl,$01
inc esi
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGSSIを埋め込んでいるhtml部分に「スクリプト 'http://localhost/xxx/xxx.exe' を実行できませんでした: Win32 エラー コード = 123」
とのエラーが表示されていて困っています。htmソースは以下のような感じです
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY background="logoback.gif">
<!--SSIここから-->
<!--#exec cgi="http://localhost/xxx/xxx.exe"-->
<!--SSIここまで-->
</BODY>
</HTML>
IISの設定をいじくってもうまくいかないし・・解決策がわかる方、ぜひともおながいします。
(微妙にスレ違いのような気もしますが・・・)
0113デフォルトの名無しさん
NGNG0114112
NGNGWin32形式??
って何でしょうか・・
(当方delphi暦2週間なうえにIIS最近初めて触ったばっかの厨なもんで)
0115デフォルトの名無しさん
NGNGしたら死刑
0116デフォルトの名無しさん
NGNGプロジェクトオプション の中の リンカ タブの中の
EXE/DLLオプション のところの コンソールアプリケーション の
スイッチがちゃんと on になってるか?
ということだと思われ
0117デフォルトの名無しさん
NGNG0118112
NGNG>プロジェクトオプション の中の リンカ タブの中の
>EXE/DLLオプション のところの コンソールアプリケーション の
>スイッチがちゃんと on になってるか?
なってませんでした。で、onにして再構築してみたんですけど、やっぱりダメでした。
う〜ん、そもそもIISだとdelphiで作ったexeファイルをSSIで実行ができない、なんて事ぁないですよね?
0119デフォルトの名無しさん
NGNGが正解じゃないかな?ISAPI フィルタにする必要があったと思うけど。
0120デフォルトの名無しさん
NGNGApacheにすれば?そういう問題じゃない?
0121112
NGNGそれは無いと思います。同じIIS環境でC++で組んだexeファイル(「test」って文字列を返すだけのもの)
はSSIからきちんと動作してくれたんで・・・
>>120
Apacheにはできそうにないスね。仕事場がIISばっかしで
色々とやっているようなので
0122デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/support/kb/articles/J049/1/77.asp
ここ見ると
<!--#exec cmd="cmd.exe /c dir"-->
ってあるけどなあ
とりあえず実行されたかどうか見てみたら?
0123デフォルトの名無しさん
NGNG0124112
NGNG「CMD のオプションは #EXEC の呼び出しに対して使用可能になっていません」
なるエラーを返してきます。厨房には何の意味やらさっぱりで・・くそー
0125デフォルトの名無しさん
NGNGCGI,Win-CGI,ISAPI,Win32実行ファイルを選択するようになってる。
Del6パーソナルではCGIは無理だYO!
0126デフォルトの名無しさん
NGNG<!--#exec cmd="cmd.exe /c dir"-->
をやってみてみたら?
それができない場合は、セキュリティその他の問題で IIS の振る舞いが
変わっている可能性が。
ところで IIS のバージョンと動作 OS は?
0127112
NGNGURLに直接http://〜/xxx.exeってファイル名を打ち込めば
ちゃんと動いてくれるんですけど・・
>>122 >>126
ひーん!実行できないです・・(またもや「CMD のオプションは #EXEC の呼び出しに対して使用可能になっていません」の文字が・・)
0128デフォルトの名無しさん
NGNGもちろんそのままじゃだめだけどさ。
なぜってProとの差はほとんど再配布可能ファイルとフリーソフトだからさ
0130デフォルトの名無しさん
NGNG直接的、あるいは間接的にお金を受け取りさえしなければ良い。
ライセンス読もうね。
0131デフォルトの名無しさん
NGNGこれはここ参考にする
http://www.microsoft.com/JAPAN/developer/library/jpiis/core/iiregwww.htm
0132デフォルトの名無しさん
NGNGたとえば、だ。http://foo/bar/baz.exe が
<!--#exec cgi="http://foo/bar/baz.exe"-->
として動くように設計されているならば、ブラウザで直接
http://foo/bar/baz.exe
へアクセスするとエラーにならないとおかしい。
まず、なにをどうして baz.exe を作ったか説明せよ。
まさかとは思うが、Delphi で新規作成の
Webサーバアプリケーション
とか選んでいるなんて馬鹿なことはしてないよな??
0133デフォルトの名無しさん
NGNGCOMについてよく知らないんですが、TWebBrowserってCOMコンポーネントですよね。
COMはQueryInterfaceで使うとか、_Addref,_Releaseで管理するという話を聞きました。
TWebBrowserの場合、それらは必要ないんでしょうか。
とりあえずポトリペタで使えてしまうのですが。。。
よくわからないです。ポインタでも結構ですので、詳しい方アドバイスお願いします。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGSSIEnableCmdDirective
REG_DWORD
範囲 : 0、1
既定値 :0 (有効)
サーバー側インクルードの #exec cmd ディレクティブがシェル コマンドを実行します。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNGあ、オレも知りたいなっと。
ところで、delphiマガジンって、まだ本屋で見たことないんだけど、
幻の雑誌?
それとも取り寄せないと読めない愉快な雑誌?
0138ねこま
NGNG0139デフォルトの名無しさん
NGNG売ってるんだ!見たこと無い。本屋寄る度にチェックしてるのだが…。
VBやCはあるね。
0140ななしヘタぐらま ◆B18Bks.Y
NGNG発行元が非常に小さいところ,
というかDelphiマガジンのために設立したような感じですね.
扱っている店が非常に少ないのは
発行部数の問題もあるでしょうけど,
書店流通は新規参入の会社の商品はまず扱ってくれないらしいので,
それも影響していると思います.
0141デフォルトの名無しさん
NGNG定期購読出来るから、そっちにしたら?
0142デフォルトの名無しさん
NGNG現物見て内容を吟味して値段を考慮しないと、なかなか定期購読はね…(^^;
0143デフォルトの名無しさん
NGNGこっちしか読んでない
0144デフォルトの名無しさん
NGNGソース読めばわかりますが、その辺はオブジェクト生成時にやってしまってます。
0145144
NGNGま、とりあえず、その辺の面倒なことはTWebBrowserの親のTOleControlがやってくれてるみたい。
その辺やってくれないと、コンポーネント貼り付けで手軽に出来ないしな。
0146デフォルトの名無しさん
NGNGだから、変なことをする場合以外は自分では何もしなくても平気。
QueryInterfaceはinterface型に対してasを使えばいいだけ。
COMコントロールはDelphiで取り込んだときにポトペタで扱えるところまでは、
Delphiが勝手に必要なコードを作ってくれる、だからTWebBrowserはポトペタ
で使えるし、それで大丈夫。
0147133
NGNGそういえばフォームに置いたボタンとかも勝手にCreate,Freeしてくれますしね。
Personal版なので、その辺は想像するしかないのですが。
0148デフォルトの名無しさん
NGNG0149133
NGNGそれでAddRefとReleaseによってinterface型が自動的に管理してくれる、と。
146さんのをよく読んでませんでした。
そういえば、DelphiもJavaみたく参照で扱うのですべて動的と言えるんでしょうか?
0150デフォルトの名無しさん
NGNG教えて下さい
0151デフォルトの名無しさん
NGNG普通に、TDBLookupComboBoxを使うのではダメなの?
それか、TComboBoxに流し込むとか。
トラフィック・負荷・速度を考えると前者、細かいところをイジリたいなら後者かな。
0152デフォルトの名無しさん
NGNGListBox.Items[0] := 'A'; は大丈夫で
CheckListBox.Items[0] := 'A';だとエラーがでるのは仕様なのでしょうか?
なんか納得がいかない・・・。(del4,del6で確認しました)
0153デフォルトの名無しさん
NGNGソース見たけど分かんなかったよ。
でも、通常は存在しないアイテムに代入することはないと思うので
いいんじゃないかな。
0154152
NGNGいや、TListBoxの内容を書き換えるときに使ってたのですが、
これだとItemIndexやSelectedをとばさずに、1部だけListBoxの
内容を書き換えられたのですが
ListBox.Item[RewriteIndex] := RewriteText;
という感じで、
これと同じことをTCheckListBoxですると、なぜかエラーがでてしまう・・・。
今は、
CheckListBox.Clear;
CheckListBox.Add;
CheckListBox.Checked;
CheckListBox.ItemIndex
を組み合わせてプログラムを書いています・・・。
CheckListBox.Item[Index] := String;さえ使えればこの手間が省けるのに。
ヘルプをみてもエラーになる理由が書いてない、というよりもTListBoxと
一緒なのが。
あと、これとは関係ないけどDel6で今書いているプログラムステップ実行をすると
確実にハングアップする部分があります。
なにも派生してないTListにポインターを放り込むだけなのに・・・。
止まる部分は
List.Items[Index] := Pointer;
と、止まりようがない部分でDelphiが固まってしまいます。
その部分だけステップ実行をしないようにすると平気で動くのに・・・。
どうもDel6のIDEはメモリ操作がらみでバグがありそうな気がする。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGうーん、これだとメモリ書き込みがらみのエラーが出るんですけど・・・。
ってゆうか、Step実行でDelphiがとまってしまうのは何でだろう。
プログラム自体は正常に動くのに・・・。
Delphiのコンポーネントライブラリは便利だけど、意味不明な
エラーが出てくると対処に困る・・・。
0157デフォルトの名無しさん
NGNGそのコードだけ新規プロジェクトに移してステップ実行してもまだ起こる?
0158そすぃんさ
NGNG使用して作成したアプリには「どの程度」まで含まれてコンパイルされるのでしょうか?
例えばrealmediaのプレーヤとか…。
0159そすぃんさ
NGNGちょっと意味不明ぽかったので…。
ようするに、「配布先は、そのアプリ以外に入手するべきものがある」のか無いのか
が知りたいのですが…。まだよく分からん気もするな…(^^;。
realプレーヤを作ったとして、配布した場合、必要なdllとかは先方が用意する
必要があるんですよね?
※ウザかったら失せますので…※
0160デフォルトの名無しさん
NGNGされている必要があると思われ。
0161そすぃんさ
NGNGあ、やっぱり…。ということは、「ActiveXの取り込み」でコンポーネントに登録したヤツを
使用して作成したアプリ(長い…)は自由に配布出来るワケですよね?
dllは先方がインストールするなりして用意する必要があるということは。
レス、ありがとうございました!
0162デフォルトの名無しさん
NGNGなんのエラーがでるのか教えて。
0163デフォルトの名無しさん
NGNGが、プログラム自体が正常に動くってのがわからんな。
DirectXのアプリでLockからUnlockまでの個所内はデバッガが止まっちゃう
ってことはあったけど。
0164デフォルトの名無しさん
NGNGDirectX の Lock/Unlock は win16mutex を使っているから
そこへステップインするとハングするのは OS の仕様。
0165112
NGNG>>131 >>135の情報を元にレジストリの変更を行って、
どうにか <!--#exec cmd="cmd.exe /c dir"--> ←こいつは動くようになってくれました。
でも相変わらずexeファイルは動いてくれない・・・
「スクリプト './xxx/test.exe' を実行できませんでした: Win32 エラー コード = 2」←エラーメッセージ
#EXEC の呼び出しに対して使用可能になってないよーのエラーよりは若干進歩したようですが・・・
こんな厨房の質問にお付き合いできる方、引き続きご教授お願いたします。
0166112
NGNGSSIを呼び出しているアドレスを「http://〜」から「D:/〜」に変更したら動いてくれました!!
あ゛〜長かった、色々付き合ってくれた皆様に感謝いたします。
0167ななしん
NGNGnetapi32.lib の宣言した pas は標準ではついてないようです。
(Delphi Ver5 を使用しています)
自分で起こすしかないんでしょうか。
どっかにころがってないですかねえ?
0168デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&lr=lang_ja&q=netapi32%2Epas
0169ななしん
NGNGいやいや、
google で「NetUserEnum delphi」とか
「netapi32.lib delphi」で検索したら
関係ないのしかヒットしなかったんで
ここでの質問したというわけのです。
ずばり「netapi32.pas」で検索すればよかったんですね。
というわけでスペシャルサンクス!!>>168
0170ななしん
NGNGここで質問したというわけなのです
もうだめだ俺・・・逝ってきます
0171デフォルトの名無しさん
NGNGTorry's
http://www.torry.net/index.htm
に行って、NetAPI で検索すると4つのコンポーネントが
ヒットする。フリーでソース付きのがあるから参考になると
思う。
0172152
NGNGいろいろやってみて、TListBoxとTCheckListBoxの微妙な違いがわかってきました。
基本的には153さんが指摘したように、存在しないItemにStringを代入したときに
どのような処理を行ってるかなのですが、
TListBox(TCustomListBox)では、Index-1までItemが書き込まれている場合、
なにも書き込まれていないItem[Index]に文字を代入できるが、
TCheckListBoxでは文字の代入はできるが、ステータス保存用に拡張された
部分がこの状況に対応していないため、Listのインデックスの範囲が越えて
しまうようです。
TCheckListBoxで項目を書き換えるときのプログラムは
if TCheckListBox.Count = RewriteIndex //プログラム処理上Count<=RewriteIndex
then TCheckListBox.Add(RewriteText) //にしかならないようにしています。
else TCheckListBox.Items[RewriteIndex] := RewriteText;
に書き直しました。
0173152
NGNGすみません、TCheckListBoxでの処理を上のように書き換えると
メモリリークが生じるようになりました。
詳しく調べてみると、
TCheckListBox.Items[Index] := String;
の処理だけで、メモリリークが生じます・・・。
TCheckListBox.Add('12345678');
for i:=0 to 63353 do TCheckListBox.Items[0] ;= '12345678';
で、1MBほどメモリがリークします。
どうも、TCheckListBoxはステータス保存リスト処理がらみでバグが
有りそうです。
でわでわ。
0174デフォルトの名無しさん
NGNG訳の分からない動作をします。
やっぱりDel6はバグっているのだろうか?
0175デフォルトの名無しさん
NGNGそれを説明してくれないと誰もコメントをつけることはできない。
たいていのバグは自分自身から。
0177デフォルトの名無しさん
NGNG調べた限りでは列挙型→整数はOrd()関数で出来ることが判ったのですが。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGtype
TFoo = (a, b, c);
var
Bar : Byte;
Foo : TFoo;
begin
Bar := 1;
Foo := TFoo(Bar);
Assert( Foo = b );
end;
0180デフォルトの名無しさん
NGNGまあ、それはそうなんだけど、TListの派生コンポで
ステップ実行していて
inherited Items[Index] := P;
でDelphiごととまられてしまうと、どこが悪いかまったくわからないよ。
普通に実行すると、何事もないのに。
あと、173の件ですが、もうちっと詳しく調べてみると
TcheckListBox.Items[Index] := String;1回につき16Byteメモリリークしてました。
やっぱり、ちゃんとVCLがついているバージョンを買って自分でバグ取りを
しないといかんのかなー?
0181デフォルトの名無しさん
NGNGTCheckListBox.Itemsは駄目だろう。
0182デフォルトの名無しさん
NGNGなんで?実際に使うときは
SelectViewCheckListBox: TCheckListBox;
とかにしてから(Formに貼り付けてから)
使ってるけど?
0183ねこま
NGNG0184デフォルトの名無しさん
NGNGなら、実際に使っているコードを載せてくれ。
確認してくれる奇特な人に打ち直しさせるきですか?
0185ねこま
NGNG0186ねこま
NGNGOnAdvancedCustomDraw で描画
GetHitTestInfoAt で判定
以上,独り言.
0187152
NGNG0188152
NGNG一応ソースです。
フォームにButtonとCheckListBoxを張り付けてから、
----------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckListBox1.Items.Add('Test');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
CheckListBox1.Items.BeginUpdate;
for i := 0 to 65535 do CheckListBox1.Items[0] := 'Test';
CheckListBox1.Items.EndUpdate;
end;
----------------------------------------------------------
これ、Delphi6(Update1)だとボタン一押しで16*65536=1MBずつメモリ使用量が増えるのに、
Delphi4だと問題ないんだよなー。Del4と6でTCheckListBoxのVCLどこが変わってるの
だろう?professional以上持っているひと教えて!!
0189デフォルトの名無しさん
NGNG0190ねこま
NGNGソースがあっても参考にならないでしょうね
0191デフォルトの名無しさん
NGNGfunction ZenToHan(const Source: string) : string;
begin
Result := MapString(Source, LCMAP_HALFWIDTH);
end;
0192デフォルトの名無しさん
NGNGhttp://www.wwlnk.com/boheme/delphi/vbtodel/vbfaq/vbd0050.htm
それに以下を定義しないと...
function MapString(const Source: string; Flag: integer): string;
var
Chr : array [0..255] of char;
begin
Windows.LCMapString(
GetUserDefaultLCID(),
Flag,
PChar(Source),
Length(Source) + 1,
chr,
Sizeof(chr)
);
Result := chr;
end;
0193デフォルトの名無しさん
NGNGhttp://www.google.com/search?q=TCheckListBox+memory+leak+bug&hl=ja&lr=&num=50
0194デフォルトの名無しさん
NGNGがんばったようだが、全部的をはずしている。
0195デフォルトの名無しさん
NGNG何が問題なのでしょうか?
0196デフォルトの名無しさん
NGNG君がアホなのが問題
0197デフォルトの名無しさん
NGNG16色アイコンしかつくれないのでしょうか?
0198デフォルトの名無しさん
NGNG白黒や256色のアイコンもリソースに入れられますよ。
ただし、Delphi付属のImageEditorでは256色アイコンが作成出来ないので、
別途アイコン作成ソフトなどを利用してアイコンを作成する必要があります。
0199デフォルトの名無しさん
NGNG作ったとして、そのファイルは出来たアプリにどのような形で
入ってるんですかね?
結果的にバイナリでくっついちゃってるんですかね?
変な質問ですか?(^^;
0200デフォルトの名無しさん
NGNGbitmapファイルとして読み込むように作れば当然別ファイルになっているし、
リソースとして結合することもできるし。
独自形式でexeの後ろにくっつけておくこともできる。
関係ないけど200げっとズザー
0201デフォルトの名無しさん
NGNG0202199
NGNGははぁ。そうなんですか。ありがとうございます。
後から読み込むのではなくて、「決まった画像をImageコントロールに
表示させるだけ」ってヤツはどーなってるのかな?と思った次第でして。
その場合は、バイナリでくっついちゃってるんですよね?
「ズザー」ってあのAAのズザーか(^^;
0203デフォルトの名無しさん
NGNG何か「16bitリソースは扱えない」とか怒られてしまいました。。
もっと根本的なところから勉強してみます。
0204デフォルトの名無しさん
NGNG0205Delフサギコ
NGNG\\ヾ__ ∧_∧_ヾ\
\ \ \ (*´∀`)_\ \
\\ | ̄ ̄∧∧ | ヾ
\\\ ヾ |\ ミ;゚Д゚ ∧_∧
\\\ | ̄ ̄ ( *・∀・) 今だ!205番ゲットォォォォ!!!
\\\ ヾ |\ ̄/っ y っ\
\\ |  ̄ ̄ ̄ ̄ ̄ |
0207デフォルトの名無しさん
NGNG環境変数からアクセス者のドメイン(「*.*.プロバイダ名.ne.jp」形式のもの)を取得したいんですけど、
なぜかIP(「数字.数字.数字.数字」形式)ばっかり返ってきてしまいます。
環境変数名はキチンとREMOTE_HOSTで取得してるのですが・・・
(本来、IPを返すのはREMOTE_ADDRの方ですよね??)
0208デフォルトの名無しさん
NGNGドメインにかえちゃえば?
0209デフォルトの名無しさん
NGNG0210207
NGNGGetHostByAddrですか?
初めて聞く単語なんで(←ぉぃ)それを少し調べてからもう一回戻ってきます。
すごい良さげなヒントありがとうございます。
0211デフォルトの名無しさん
NGNGinet_addrもつかう
0212デフォルトの名無しさん
NGNG0213207
NGNGIP(xxx.xxx.xxx.xxx)をそのままドメイン名(*.プロバ名.ne.jp)で返してくれる
関数が見つかりました、おかげで問題も解決です。ありがとうございました。
(GetHostByAddrを使うのにwinsockを組み込むのが気づかなくて少々てこずりましたが)
ちなみにこいつです。
ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/033/033662.html
0214サ骨
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGIndy のサンプル
0218デフォルトの名無しさん
NGNG#end
0219デフォルトの名無しさん
NGNGかなり藁
つーか、最近多すぎ
0220デフォルトの名無しさん
NGNGFormを持ったアプリケーションで、
タスクバーにアプリケーションアイコンを出さない簡単な方法あります?
0221デフォルトの名無しさん
NGNGTIPSで見たぞ。検索すれ!
0222デフォルトの名無しさん
NGNGたとえば↓コレとか。
ftp://delphi-jedi.org/api/Winsock2.zip
で、コレをどうやったら使えるようになるのかサッパリなんです。
凄い基本的な事らしく何処行ってもやり方乗ってないし、、、
どなたかヘルプ
0223デフォルトの名無しさん
NGNG>ftp://delphi-jedi.org/api/Winsock2.zip
↑これってIndyとは無関係のような、、、
何がやりたいのかわからんけど、ソケットを使ったプログラムなら VCL で
普通に書いたほうがいいんじゃないかな。
0224222
NGNGいやあのそのですねハイ。
それ展開したら「WinSock2.pas」と「svcguid.pas」ってのができたんです。
んで、コレ何だろう、コンポーネントなんかな?とか思って別プロジェクト
立ち上げて「コンポーネントのインストール」をやってみたのです。
でも何にもできないし。
たぶん壮大な勘違いな予感なんですけど、何処でどう勘違いしたのかもわからない。
とりあえずコイツを動かしてみたいんです。
0225デフォルトの名無しさん
NGNGなんだ、中身は単なる宣言だけじゃん。
これ、コンポーネントじゃなくてヘッダみたいなもんだよ。
これをusesしておけばWinsock2の関数が呼べる。
後はWinsockの知識があるかどうか。
0226222
NGNGありがとうございます。コンポネントじゃなかったのですね。
って事で「Sock2.dpr」とやらにTFormを追加。usesに
WinSock2,svcguid,
を加え、WinSock2と打ってみた所、候補がズラリ。
・・・でもなんか嫌な予感。内部定数まで見えてんの?コレって感じで。
そのまま↓キーをずっと押してたら、スタックオーバフローで逝ってしまいました。
どの辺で道を間違えたのでしょう?
0227デフォルトの名無しさん
NGNGWinsock2は非同期オブジェクトを使うためのものなので
なんだかわからないならば使いようがないのだけど
どの辺で道を間違えたかっていうか
根本的にDelphiがわかってないだけ
コンポーネントしかわかんないのならWinsock2使ったコンポーネントを使えば良し
0228デフォルトの名無しさん
NGNG俺も今これを探してるところなんだけど、何かお勧めってある?
0229デフォルトの名無しさん
NGNG何を作っていいかわからずこまっています
みなさんどうかお知恵を貸して頂けませんでしょうか?
他の言語の経験もありませんしdelphiの経験すらありません
よろしくお願いします
0230デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/developer/library/vccore/_core_windows_sockets.3a_.background.htm
0231デフォルトの名無しさん
NGNGhttp://www.asahi-net.or.jp/~nk2w-ishr/winsock0.htm
0232デフォルトの名無しさん
NGNG1)ネットワーク関係
2)ゲーム
3)データベースとか会計ソフトみたいなの
0233デフォルトの名無しさん
NGNGどんな訳じゃ
0234デフォルトの名無しさん
NGNG手始めに乱数を使った単純なゲームを作ってみるといいよ
電卓とコンピュータの違いがよく分かる(・∀・)
0235デフォルトの名無しさん
NGNG1)ネットワーク関係
2)ゲーム
には興味があります
>>233
私は
http://pc.2ch.net/test/read.cgi/tech/1011649179/
の90です
0236デフォルトの名無しさん
NGNGマルチポストうざい。氏ね。
0237デフォルトの名無しさん
NGNG"モナーの90#覚えとける文字" とでも入れてね
じゃ、
先輩がアニメ絵モエな系統なら
こんなのはどう?
http://www2s.biglobe.ne.jp/~wind_f/projectd/project1.htm
0238222
NGNGありがとう。
つか勉強なるわコレ。
Delphi使った事なかったから知らんかったんだけど、
なんやコレVCとJAVAとVBのいいとこ取りみたいな言語なんね。
0239デフォルトの名無しさん
NGNGこんなことで騙されるような頭の弱い奴に一週間でできるというのは
人を小馬鹿にしてるとしか言いようがないな
http://www.text2music.com/mine/delphi/2.html
↑これやってみてできなかったら、先輩に金を返してもらえ
0240デフォルトの名無しさん
NGNG文字列型の変数同士を比較する時に、双方の文字列が完全に一致するのではなく
変数の中の一部だけを一致した場合にtrueを返すような書き方ってどうやるのでしょうか?
例えば変数aに文字列'abcde'が入っていて
変数bに文字列'cde'が入っていて、それを比較した場合にtrueを返すような感じなのですが・・・
if(a = '*'+b+'*') then begin
TorF := true;
end else begin
TorF := false;
end;
↑試しにこんなん書いてもダメだったんで(汗
0241デフォルトの名無しさん
NGNGTofF := Pos(a,b) > 0;
0242デフォルトの名無しさん
NGNG× TofF := Pos(a,b) > 0;
○ TofF := Pos(b,a) > 0;
0243デフォルトの名無しさん
NGNGおぉ!できました!どうもありがとうございます!!
(>>242は手元で試したらすぐ気づきました、どうもです)
0244デフォルトの名無しさん
NGNGマルチバイト文字(ファイル名などはその可能性がある)を扱う時は
PosをAnsiPosに替えましょう 「DELPHI クイックリファレンス」より
0245デフォルトの名無しさん
NGNGスペースとタブの区別がつかなくて
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGIDE上の話?
俺はタブは使わないけど。
0248デフォルトの名無しさん
NGNGそ。
秀丸みたいにいかんかね。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGそのクラスで何をラップするの?
ParamCount/Str って、もう充分ラッピングされている
と思うが? グローバル変数だし。
0252デフォルトの名無しさん
NGNGFindCmdLineSwitch
0254デフォルトの名無しさん
NGNGサーバをWinにすると、Delphiは無駄にならない(w
しかしこの程度の奴にサーバを公開されたらたまらんね。
0255Delphi6には失望しました
NGNGHPも.comとかになってくれません
バージョンが上がり今やDelphi6となっていますが、やっぱり無理なのでしょうか?
このままではDelphi6を買った意味が無くなってしまいます・・・
0256デフォルトの名無しさん
NGNGソフマップに売ってVB買え。
0258デフォルトの名無しさん
NGNGアメリカには Delphi で作った ISAPI のホスト業者があるのよ..
条件はソースの提供。
0259デフォルトの名無しさん
NGNGgekiwara
0260デフォルトの名無しさん
NGNGあー。そういう商売もいいかもなあ。
日本にあるWindows鯖屋で人が集まらないとこは、そういうサービスを始めるといいかもしれんなあ。
でも、MLとかみると、無茶苦茶やりそうな人がいるから怖いなあ。
0261デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1002111468/
0262デフォルトの名無しさん
NGNG山田く〜ん、座布団1枚取り上げなさい。
0263デフォルトの名無しさん
NGNG>無茶苦茶やりそうな人
そのためにソースを出してもらう。コンパイルもサーバー側で行う。
0264デフォルトの名無しさん
NGNG大変だなぁ
0265デフォルトの名無しさん
NGNG>221に言われて、検索して見つけたんだけど。↓
http://www.nifty.ne.jp/forum/fdelphi/faq/00039.htm
これでこのソースを保管し、タスクバーに出したくないアプリが
必要になったら、このソースのあるPathを検索Pathに加え、さら
にプロジェクトオプションの条件定義に、HIDEAPP
を加えてからコンパイルします。
「検索Path」を加えるって言うところが分からないので、
アドバイスを下さい。
0266デフォルトの名無しさん
NGNGディレクトリ/条件タブ
0267220
NGNGやってみたんだけど、?って感じ。
やっぱフォームが表示されるとき、タスクバーにアイコンが出る。
フォームを非表示にすると消える。
ただ単にform1.Hide;ってやっても同じような気がする・・・
0268デフォルトの名無しさん
NGNG動的に入り口を変えればいいだけ
ちなみに自分のIPはSMTPサーバーで対応しているところに聞くか
POP3で一回メールのやり取りをするか確認君みたいなサイトを利用するかでわかる
つーか今日日ダイヤルアップサーバーなんてやめてADSLにすれば?
0269デフォルトの名無しさん
NGNGネタか?
関係ないけど、俺の住む町はADSLどころかフレッツISDNすら来てない(なく
0270デフォルトの名無しさん
NGNGもさとかばっかしやって、自分で情報収集しない奴は駄目なんだぞ
しかも何だよ、「動的に入り口を変える」って
ろくでもない事言ってないで、もっと具体的な方法で示してやれよ
いちいち俺に注意させるなよ。わかったか?
0271デフォルトの名無しさん
NGNG>POP3で一回メールのやり取りをするか確認君みたいなサイトを利用するかでわかる
そういうのを使わないと確認できない程度の知識で何を偉そうに・・・。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275268
NGNGMXなんて違法ソフトは使ったこと無いけれど
>>271 知らないの?自分のインターネットアドレスを知る方法ってないんだよ。
それともダイヤルアップしかしたこと無い?
まさかトレースルートで自分のグローバルアドレスわかると思っている?
最近無知ごりおしする厨房多くて困るねまったく。
0276デフォルトの名無しさん
NGNGあるよ。アフォ?
0277デフォルトの名無しさん
NGNG255がネタだってことが理解できてないのか・・・。
0278デフォルトの名無しさん
NGNGMXが違法ソフトと思っている時点でかなり香ばしい。
違法な使いか確か思い浮かばないんだろうな。
0279デフォルトの名無しさん
NGNG申し訳ありませんが、あなたがどうやってネットに接続してるか教えてもらえないでしょうか?
どういう接続なら外(SMTP、POP、確認君)にアクセスしないと自分のIPアドレスを知ることが
できないのか知りたいのです。
0280デフォルトの名無しさん
NGNGおばあちゃんの秘伝のレシピでも公開するのか?(藁
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGお客様、ここは釣堀ではございません。いますぐお引取りをお願いいたします。
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGDBGridコントロールを使い、新規レコードに移動した際に、
フォーカスを1番目の項目に移動したいのですが、
DBGrid1.SelectedIndex := 0;
こう書くしかないのでしょうか?
何か項目名を指定して移動させる事はできないのでしょうか
よろしくおねがいします
0285デフォルトの名無しさん
NGNG=三|...お も い き り は め ら れ た........ ── ......................
=三|................................................................/ \................
=三|..........気 が す る モ ナ …...../ ..........................
=三|... ... ... ... ... ... ... ... ... ... ... ... ../ ... ... ... ... ... ... ...
∧_∧.. .. .. .. .. .. .. .. .. .. .. .. | |.. .. ..
(三 |). . . . . . . . . . . . . . . . | |. . . .
~|三 ,). . . . . . . . . . . . . . . . . . . . . . . . . /. . . .
ヽ三 ). . . . . . . . . . \ . . . . .
;" ̄ ̄ ̄ ̄ ̄ ̄ ̄@. . . . . . ー __ /. . . . .
ミミミ_、-─" ̄. . . . . . . . . . . . . .
=三| ̄ ̄. . . . . . . . . . . . . . . . . .
=三|
0286デフォルトの名無しさん
NGNG統合アーカイバコンポーネント for Delphi/C++Builder
はどうしてダウンロード数が多いのでしょうか?
2位に倍近い差をつけていますよね。。。
0287デフォルトの名無しさん
NGNG項目名からインデクスを検索させる関数を作成するのが簡単
function FindDbIndex(db:TDBGrid):Integer;
0288デフォルトの名無しさん
NGNGプログラマなら一度は書庫ファイルを扱ってみたいようですね。
0289デフォルトの名無しさん
NGNGべつに。
0290デフォルトの名無しさん
NGNGウィザード実行したはいいが、プロパティの追加方法とかじぇんじぇんわかりません。
タイプライブラリでプロパティ追加しても、ユニット上から値が参照できないんですが
XX_TLB.pas の方で
IHoge = interface(IDispatch)
と定義されてるでしょ?
プロパティもRead/Write両方メソッドになってますよね?
実装の方も それと同じメソッド名にします
ActiveXを動かしてプロパティを読み書きするとそのメソッドが呼ばれるという仕掛けです
0292名無し~3.EXE
NGNGサブクラスしないと無理なのかな。
SHAppBarMessageとかSetWindowsPos, MoveWindowとか
いろいろ試したけど、どれもだめだったよ。
なぜ、幅を変えたいかというと、WindowsXPでTaskBarを
縦においたとき、再起動するたびに幅が縮むからです。
どなたか、お知恵を。。。
0293290
NGNGまた質問あったらよろしくです...
0294デフォルトの名無しさん
NGNGタイプライブラリからプロパティ足せるよ。
0295ねこま
NGNGDelphian World だけ
0296デフォルトの名無しさん
NGNG'1:せつめい'
'2:なんとか' みたいに表示して、選択したら1,2だけ入力するようにしたくて
OnChange/OnClickとかでコードを追加してみましたが巧くゆきません
ではそういうコンポーネントTMyComboBoxを作ろうと
procedure xCB_GETLBTEXT(var Message: TCBGETLBTEXT); message CB_GETLBTEXT;
を追加してみたのですが、確かにtextプロパティは変更されてるのに最終的には
'1:せつめい'のように戻ってしまいます
それで
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
として無理やり変更すると巧くいったようなのですが、次にドロップダウンした時
にTextがまた元に戻ってしまいます。巧くやる方法はないでしょうか?
procedure TMyComboBox.WMCommand(var Message: TWMCommand);
var s:string;
n,idx:integer;
begin
if Message.NotifyCode = CBN_SELCHANGE then begin
idx:= ItemIndex;
if idx>=0 then begin
ItemIndex:=-1 ;
s := Items[idx];
n := pos(separetor,s);
if n>0 then s:=copy(s,1,n-1);
inherited;
Text:=s; Click; Change;
exit;
end;
end;
inherited;
end;
0297デフォルトの名無しさん
NGNGCBN_SELENDOK とか CBN_SELENDCANCEL も見る必要があるかもしれない。
でも、いっそオーナードローで全部自分で描いた方が面倒がないと思われ。
0298296
NGNGあれから、色々実験してドロップダウンして勝手に元に戻るのは
補完機能のようなのがcomboBoxに備わっているからのようだと判りました
結局 WM_GETTEXT で無理やりセパレータの部分に#0を代入する事にしました。
最初からオーナードローにした方が簡単でしたね。
楽しようとして失敗するパターンのようです。
0299デフォルトの名無しさん
NGNGこれって何か必要なのですか?
Delphi初心者です。
0300デフォルトの名無しさん
NGNG0301299
NGNG他の人が作ったやつでそれのメンテしようと思ったら以上のようなエラーが出ました。
0302デフォルトの名無しさん
NGNG標準のコンポーネントやクラスじゃないみたい(Del6Entのヘルプにもない)
TTimeAnalyzer.pasを検索してみるといいよ
多分、そこへのパスが通っていないのだと思う
0303デフォルトの名無しさん
NGNG× TTimeAnalyzer.pas
○ *.pas
とにかくライブラリを探そう
0304299
NGNG自分が使ってるのはDelphi6proです。
どうやら標準ではパス通ってないみたいです。
探してみます。
0305デフォルトの名無しさん
NGNG0306299
NGNG居ないです、、
0307デフォルトの名無しさん
NGNGハードディスクの中から Grep したら?
Grep判らなければ エクスプローラの検索でね
0308デフォルトの名無しさん
NGNGたぶん、他の人がコンポーネントとしてインストールしたものに依存しているのだと思われ。
用意に手に入るものでない(作った人がいない)ならあきらめるしかない
0309デフォルトの名無しさん
NGNG環境:
windows98SE Del4とCB5をアンインストールした後Del6を標準インストール
現象:
1)Delphi6を立ち上げる。
2)表示されたTForm1を選択(クリック)してから、F1キーを押す。
3)ダイアログが出たら、TForm (VCL Refarence)を選ぶ。(出ない時もある)
4)TFormのヘルプが出る。<<<ここまでは正常
5)ヘルプウインドウのメニューから、キーワードを選ぶ。
6)目次のタブをクリック。目次が出るはずが、何も表示されない。
7)キャンセルでダイアログを閉じようとすると、「このプログラムは不正な
処理を行ったので強制終了・・なんたら」でヘルプウインドウが逝く。
あと、4)の後Form1をクリックしてF1キーを繰り返すと、ヘルプウインドウが逝く。
6.1アップデート入て、Delphi6.ohx、使ったりしても改善しない。
誰か、同じ現象の人いませんか。
0310デフォルトの名無しさん
NGNGヘルプが必要だと困るかも。
ま、変なら他も疑うべきか…。
0311デフォルトの名無しさん
NGNGちゃんと .gid 消した?
1-4 やらずにヘルプ広げても落ちるの?
0312309
NGNG>ちゃんと .gid 消した?
消しました。
C:\Program Files\Borland\Delphi6\Help\*.gid
ですよね
>1-4 やらずにヘルプ広げても落ちるの?
メニューからだと、大丈夫。エディタからF1でも平気みたい。
コントロールを選択して。F1キーの時がダメみたいです。
0313デフォルトの名無しさん
NGNGW2k でやってみたけど再現せんな。
Win9x で要追試。ってとこですね。
0314デフォルトの名無しさん
NGNGこれ?
http://www.google.com/search?num=50&hl=ja&q=TimeAnalyzer&lr=
http://www.neuber.com/timeanalyzer/
アイコンがDelphiですね。
0315309
NGNG何故か、C:\WINDOWS\HELP\Delphi6.gid が出来ていたので、消しました。
.gidを消した直後は、逝きませんでしたが、何回か同じことをするとやっぱり逝きます。
メニューから ヘルプ(H) → Delphiヘルプ(D) を選ぶと、Delphi6.hlpを見に行くけど、
コントロールを選んでF1キーを押すと、Del6vcl.hlpを直接見に行っているみたい。
Open Helpって意識したこと無かったけど、これって仕様?
Delphi使うときは、Help窓ほとんど開きっぱなしなんです。Help窓開いた状態でF1キー押すと
高確率でhelp窓が死んでしまうので、かなり不便。本体には影響ないけど。
みんなF1ヘルプって使わないのかな?
0316デフォルトの名無しさん
NGNG使ってるけど、そんな症状がでないのよ。
0317309
NGNGいまどきwin98つーのがいけないのかなぁ
それとも、変なのはウチのDelp君だけ?
同じ症状の人がいたら、Borlandに問い合わせようと思ったんだけど。
0318デフォルトの名無しさん
NGNGDelphiで作ったDLLをVCで呼び出そうとしてるんですが、
Del側で
function AnFunctionName( var
sHost : PChar;
sUserID : PChar ): bool; export;
...
exports
AnFunctionName index 1;
で宣言した関数を、VCのヘルプにならって
typedef UINT ( CALLBACK* LPFNDLLFUNC1 )( LPCTSTR, LPCTSTR );
...
HINSTANCE hDLL = LoadLibrary( "MyDLL" );
if ( hDLL != NULL ) {
LPFNDLLFUNC1 lpfnDllFunc1 = ( LPFNDLLFUNC1 )GetProcAddress( hDLL,
"AnFunctionName" );
if ( !lpfnDllFunc1 ) {
FreeLibrary( hDLL );
return SOME_ERROR_CODE;
}
else {
bool ReturnVal = lpfnDllFunc1(
( LPCTSTR )CString型のメンバ変数,
( LPCTSTR )CString型のメンバ変数 );
}
}
でやっても、関数の呼び出しのラインでエラー起きるんです。
Delphiから呼び出したときはうまく動きました。
ひょっとして凄い勘違いしてます?
0319デフォルトの名無しさん
NGNG即レスで試してないのでいいかげんアドバイスだが。
呼び出し規約の問題かも。
cdecl; export; にしてみ
0320デフォルトの名無しさん
NGNGregister cdecl stdcall を Delphiのヘルプで調べてみたら?
0321デフォルトの名無しさん
NGNG0322270
NGNGDelphiのデフォルトの引数スタイルはregister これはVCのfastcallとは互換ではない
VCは _cdecl がデフィルとのスタイル
こういう場合 APIと同じ stdcall に双方するのが良いと思う
それと LPCTSTR だと オプションによってunicodeという扱いになるから注意
0323318
NGNGCdecl; と Stdcall; Register各々でコンパイルしなおしたんですが、
やはりダメでした。
VCからでは呼び出せないんでしょうかね...
もうちょっとやってダメなら、Cスレにでもポストしてみます。
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGDelphiを立ち上げといて VCで作ったアプリを実行時引数のホストアプリケーションにして
AnFunctionName でブレークポイントかけたら・・・
あ! var sHost : PChar; sUserID : PChar
だから呼び出す方は
LPCTSTR & , LPCTSTR
じゃないとダメじゃないの?
双方stdcallにして やってみて?
0326茶碗
NGNGメールで受信した場合の添付ファイルでBase64でエンコードされた
pDA6rdFUeg7AVQca2fY+LhIgeNqQTwahRCwFHAART18V0ackp/1lWPfxjCe9OONeCCDpdFDeOoqq
1nUV6OSQw06SrUh24u3zY5CTP7bEmKRfKpEEGYk59aNyurYrBiJKlEKC06i2JBOL8qeVgDmkvp5b
Yk2M5+RgEPKJSuEZlNYPYKthvyNHNFG2vmHE2FKjGAD3PJWRSo48qJKOEhylWFjPM5/ki+GPXRSh
みたいなのを元の画像ファイルに戻すにはどうすれば良いのでしょうか?
jconvertなんかを使ってみましたが的を外していますか?
どなたか教えてください。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGIndyに TIdBase64Decoder ってのがあるんだけど、どうだろ?
俺その辺全然知らないんだけどさ。
0329茶碗
NGNGstr = 'ややこしい文字列';
stl := TStringList.Create();
stl.Text := jconvert.DecodeBase64(str);
stl.SaveToFile('aaa.jpg');
stl.Free;
等としても上手く行かないのです。
やり方がまずいのでしょうか。
>>328
あれ、禁句なんですか?暫く来てなかったもので。
早速TIdBase64Decoder いじくってみます。
0330デフォルトの名無しさん
NGNG「どう うまく逝かないのか」
を説明するべきと思われ
0331デフォルトの名無しさん
NGNGストリームを使ってファイルを開いて
var s:string;
s:=jconvert.DecodeBase64(str);
xx.Write(PChar(s)^ , Length(s));
としてみたら?
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/
これの 22の ソース使って
writeFileStr( 'aaa.jpg', jconvert.DecodeBase64(str))
とやれば一番簡単かもね
0332茶碗
NGNGはい、
329のようにして保存したところ、その画像ファイルは見れず
エディタで開いても
リ
とこれだけしかありません。
ちなみにそのややこしい文字列を
ttp://beetools.trustbee.com/b64dec/
で復元してみたらちゃんと表示されたので
ややこしい文字列に問題は無いと思われます。
0333茶碗
NGNG後者の方法を使ってうまく行きました。
みなさんありがとうございました。
0334318
NGNGVC側を
typedef BOOL (__stdcall *ANFUNCNAME)(
LPCTSTR &,
LPCTSTR);
DLLを
function AnFunctionName( var
sHost : PChar;
sUserID : PChar): bool; stdcall;
としたところ、呼び出しはうまくいったようです。
ただ、
FreeLibrary( Handle );
を実行するとwincore.cpp内でエラーが発生するなど、
まだ問題があるようです。
もう少し研究してみます。
0335デフォルトの名無しさん
NGNG文字列をどっちが受け取ってどっちが設定するの?
VC側で( LPCTSTR )CString型のメンバ変数,
って前に書いてるから 2番目の引数は VC->Delphiだろうけど1番目は逆なんだよね?
1番目の引数のVC側はどう扱ってるの?
それから、LPCTSTRだから文字列は変更してないんだよね?
なんとなくだけど VC側で十分なメモリを確保しといて 1番目はLPCSTRで返した方がいいんじゃないの?
0336デフォルトの名無しさん
NGNG遅いんだけど、それもWindows自体がハングしたように重くなる。
これは、Win98SEが悪い?それともDelphiが悪い?
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGWin9X系は大きなデータをあつかうのに向いてないでしょ
以前、Win95ではハングアップするので
試しにWinNTで同じことをしたらさくさく動いたということがあった
0340デフォルトの名無しさん
NGNG440BXベースのリファレンスなPCなんで大丈夫だと思う。
>>338
MMFってなんすか?
一瞬、証券会社が思い浮かんだですがヽ(;´Д`)ノ タブン カケイナーイ
>>339
むむ、やっぱOSですかね?
TFileStreamが原因かと思って、OpenFile系も使ってみたんですが
変わらなかったですから・・・・・
とりあえず、部分書き換えは諦めて、元ファイル読み込み→処理→
別ファイルへ書き出しにしました。こちらの方が遥かに速かったです。
でも何故なんだろう?
別ファイルへ出力だと、100MB読んで100MB書き出し。
部分書き換えだと、40-50MB読んで、20-30MB書き出し。
別ファイルの方がディスクアクセスは多いのに・・・・・
0341MMF?
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGデータベースのレコード(名前、住所など)を表示させたのですが、
値を修正することができません。
TUpdateSQLコントロールも設定しています。
TQueryではなく、TTableであれば値を更新することが出来ました。
何か設定のミス、漏れがあるのでしょうか?
それとも、TQueryでは値を直接更新することはできないのでしょうか?
初心者ですいませんが、よろしくおねがいします。
0345318
NGNGFreeLibraryのエラーも、解決です。
>>335さんへですが、第1、第2引数ともに、VC→Delのリードオンリー
です。
自分は、
typedef BOOL (__stdcall *ANFUNCNAME)( LPCTSTR &, LPCTSTR );
で、第1引数にだけ&が付いているのが理解できていないのですが、
このことでしょうか?
ただのLPCTSTRにすると引数が渡せなくなるので、付けています。
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/sql_delphi.html
ここ見てた感じだけど
RequestLiveはTrueになってる?
>>345
奇異に見えるのはそれなら >>334 の
function AnFunctionName( var //<-- このvar が不要でしょう?
sHost : PChar;
sUserID : PChar): bool; stdcall;
このvarが付いてるという事は ポインタそのものが変更されるという事になるので
0347334
NGNG>RequestLiveはTrueになってる
Falseでした
Trueに設定したらきちんと更新できました。
ありがとうございます。
0348デフォルトの名無しさん
NGNGタブブラウザを作ってみたいのですが、
タブでウインドウを切り替える方法が分かりません。
これって簡単に出来ることでしょうか?
以下のようにタブを作成してるのですが、
ここから既に間違ってますか?
procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;
NewTabSheet: TTabSheet;
begin
Child := TMDIChild.Create(Application);
Child.Caption := Name;
PageControl1.visible := true;
NewTabSheet:=TTabSheet.Create(Self);
NewTabSheet.PageControl:=PageControl1;
NewtabSheet.Caption := Name;
PageControl1.ActivePage:=PageControl1.Pages[PageControl1.PageCount-1];
end;
0349デフォルトの名無しさん
NGNG0350348
NGNG子ウインドウです。
348のソースは
新規作成でMDIアプリケーションを作って、
それに
PageControl1.visible := true;
NewTabSheet:=TTabSheet.Create(Self);
NewTabSheet.PageControl:=PageControl1;
NewtabSheet.Caption := Name;
PageControl1.ActivePage:=PageControl1.Pages[PageControl1.PageCount-1];
を足しただけです。
わざわざ
PageControl1.visible := true;
としてるのは、
子ウインドウが無い状態の時に
PageControl1.visible := false;
としてあるからです。
0351デフォルトの名無しさん
NGNGMDIのz-orderいじるだけならTabControlで良さそうだけど
0352348
NGNGまだよく分かってないんで…
タブでウインドウを切り替える部分のソースを書いて頂けると
有り難いんですが…
0353デフォルトの名無しさん
NGNGbegin
MDIChildren[PageControl1.TabIndex].BringToFront;
end;
0354デフォルトの名無しさん
NGNGJaneやぞぬのソースを見ると何かつかめるかも。
0355デフォルトの名無しさん
NGNGタブと併用したらかなりマシかもね。
標準のToolBarの下にもうひとつToolBarを追加して、その上(ToolBarの中)に
TabControl追加したら見た目はそれらしくなったよ。
ToolBarのParentColor=False,Color=btnFaceで。
MainFormにPageControlをAlign=alClientにすると生成されたMDIChildが全部
PageControlに隠れてしまう。
タブをクリックした時に対応するMDIChildをActiveにするコードは
自分で書かないといけない。
0356348
NGNGありがとうございます。
何故か思い通りのウインドウに切り替わってくれませんが
おかげで何とかなりそうです。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG各項目の幅を設定することは出来ないのでしょうか?
また、コントロールの幅よりも大きくリストを表示することはできないのでしょうか?
0359デフォルトの名無しさん
NGNG内容をソートさせる方法はどんな方法がありますかのう?
0360348
NGNGヘルプによると
MDIChildren プロパティを使うと,子フォームにアクセスできます。
I パラメータはアクセスする子フォームのインデックスを指定します。
MDI 子フォームの順序は,別の MDI フォームがアクティブになると変わります。
初期状態では,フォームは作成した順序でリストされ,
新しいフォームは配列の最後に追加されます。
しかし,MDI 子フォームはアクティブになると,常にリストの先頭に移動します。
そのため,I パラメータを使うと,配列内のすべてのフォームをインデックス化できますが,
特定のフォームを参照することはできません。
との事だから
どうも他のを使った方が良いっぽいのだけど、
どうしたらいいのかがわからん…
0361348
NGNG2ちゃんブラウザってほとんどオープンソースだったんだね。
しばらくはギコナビのソースを眺めて勉強しようかと思う。
0362デフォルトの名無しさん
NGNGMDIアプリ作ってないからセオリーは知らんが
MDIChildrenに頼らずTListかなんかで管理すれば良いんでは
0363デフォルトの名無しさん
NGNG1 2 3 4 と作成して,2 を閉じたら,1 3 4 の3個のウィンドウが残る。と。
3 番目に作成したウィンドウをアクティブにすると 3 1 4 の順になる。
だから MDIChildren[0] が最前面ウィンドウになる,以上の情報は取れない。
たとえば MDIChildren[2] が何番目に作成したウィンドウかは,MDIChildren からは
取れない。
けど,すべての MDIChildren をスキャンすることはできるのだから,MDIChildren
側が情報を提供するようにすればよい。
0364デフォルトの名無しさん
NGNGSetImeCompositionWindow(Font,x,y)
が正常のx,yに行ってくれないんです。
win95+IME95だとうまくいくのですが
win2k+IME2000だとダメです。
IME2000の問題ですか?
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGソースはImmSetCompositionWindowを呼び出していると思ったんですが。
Del5で試しています。でも本当はDel2で動かしたい。(T_T)
0367デフォルトの名無しさん
NGNGframe.addInternalFrameListener(new InternalFrameAdapter() {
public void internalFrameActived(InternalFrameEvent evt) {
System.out.println("フレームが選択された!");
}
} );
これでいいんでないんですかい!?
なんか出来ないんやけど、どないすんの?
0368デフォルトの名無しさん
NGNGage;
end.
0369
NGNGage;
end;
end.
では?
0370368
NGNG{$APPTYPE CONSOLE}
uses
SysUtils;
begin
Age;
end.
厳密に言えば、こーかな?
begin〜end. が一番上のレベルだから、368で正しい。
因みに、age; の部分をbeep; にすると、音が1回鳴って終わるプログラム
になる、正常である事を確認できるアゲ
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNGヽ'
}.}
,. .:-::':::::: ̄:::`:::::ー.//
,. :' .: .:: ::::::.:::::.:::::::::::::ノ:.'::`;;,,.、
/,.へ: : .: .:.::::::;:'`:::::::::::::::::',::::;;;;;;;ヽ
,. 〜、 ,:' , ' : : .: , ': .:/::: :::: ::::::::::::::l:::::;;;;;ヽ;;ヽ
/ '⌒ヽ\ ,'.:/:.,: , , : 〃,' : l l!.:l:l.}:: :: ::i::l:l ::l::l;;;;;;|l:lヽ
/ ' ` i:ヾ:;:: ,': ,' : i l.i :l. l i i!:! ! } : : :i!:!:i :}:.i:::',:l|:ill`、
くく. , ,'.ニ,ニ{::;i:::il:::l:..::|.|:.! {!.l. !.|!l:.| |l : l|l :il .:l|::l}::l}:|li ll:}
\ 、,.'/ __ ,,.!::!::;|::ll|::|::::l l`トl、;l::!:|:l |l |:...;;i|l:::l|::;l|:;l|!:l|::|l}.l|.!ヽ
.,.',ゝ`ニ-‐ 7,{:::l::::ll|:l;:::! .N」⊥[_ト、リ !:::;;l}!_ノl.イ:;l|;ll}:l|l} l!.!| |
〈〈 〃/;ゝ{ヽ!{::|N. ,イ|!i;;::.| ` ノ:/ィiTl |:}:|!:!ノソ ノ.ノ
ヽヽ、 /' ///:l|:::::`::|li. ゞニ:ソ '´ li;ソ.'ノ:l|:il'i'" ,. '/
\_'/,:'://::::l|::i:::::|:|l: .:::::::. `'':::/:|l:ll|::!// / ̄ ̄ ̄ ̄ ̄ ̄
., ', i::://i::::::l|::l::::l|:l|i ` /:i:|!:ll|::| '´ .|
// {//l|:l::::i:l|;:|;:::l|i:l|i\ 〜 ,.イl!:l!:!:ll! l! < いやんえっち何見てんのよォー
.{ { //ゞi|;l|;::l;l|i:|;:::l||:l|i, ` 、 . i|! |:l|:|ノ:l|! }} | http://www.puchiwara.com/hacking/
ヽヽ/ ` !:lゞ`ゞl|ヽlゞゞ.. _ ..`i,´レ ' ノ 'レ }:ノ !' \______
,'\\ ,く<` ' ー- ‐ ;'ニヽ`ヽ 、/./ ヽヽ
{ { ', 〉 ,.' `丶、 `ー" ヽ: : llヽ ヽヽ
!. ! l/ 〃 \ .._ ,..ゝ、:ll::ト、 } }
l ! / ヽ'´,. -‐! ll::!::i / ./
.l ', /. ==- .. _ ヽ' ´: :!::ll:}:::l !.ノ
l/ /'´-― - .._` 、、 ::`、: :l::!!:!::::!
!'´ -‐ - 、 ` 、` 、.: ::`、:!ll:!:::::!
0373デフォルトの名無しさん
NGNGDelphiって、どう読むのですか?
やっぱ、「デルファイ」?
0374デフォルトの名無しさん
NGNG質問する前に自分で調べる能力が足りないという指摘が
昔 あったにも関わらず、今回も調べてないんですね。(w
0375デフォルトの名無しさん
NGNGあってるよん
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG調べているから
>やっぱ、「デルファイ」?
が出てきたと思うのだが、この考えは間違い?
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG殆どのマスコミはデルファイ・オートモーティブと表記しているぞ。
0380デフォルトの名無しさん
NGNG>>377だけど =>>373じゃないよ
もう数年Delphi
ただ>>374の解釈がちと早とちりではないかと思ったまで。
0381380
NGNG×もう数年Delphi
○もう数年Delphi使ってるのでんな初心者質問はしない。
0382デフォルトの名無しさん
NGNGデルファイ、シープラスプラスビルダー
0383デフォルトの名無しさん
NGNGDelphi6のShellTreeViewでselectしたアイテムの
パスを知るにはどうすればいいですか?
0384デフォルトの名無しさん
NGNGちゃんとカタカナで書いておかないと、取次ぎからの電話で大混乱が
おきるのですよ。
0385デフォルトの名無しさん
NGNGparentを再帰的に遡ってパスを取得する。
0386デフォルトの名無しさん
NGNGObjectPascalについてのいい本はありませんか?
レベルが低いんでポインタ辺りの解説から無いと駄目だと思っています。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG何か自動で調べてくれるようなのあります?
0389デフォルトの名無しさん
NGNGオフィシャルコースウェアをamazonで注文して来ました。
有難うございました。あと、オライリーのDELPHIリファレンスは無駄
でしょうか?なんか逆引きも無いしリファレンスとしては云々との
意見も書いてありましたが、初心者には難しいでしょうか、持ってい
る方のご意見が聞きたいです。
今、nrLaunchのようなランチャーソフトを作ろうと思っています。
このソフト、ホイールボタンをダブルクリック(どこでダブルクリックしても可)するとウィンドウが現れる仕組みなんですよね。
こういうのって、どうやったら実現できるでしょうか?
0391デフォルトの名無しさん
NGNGプログラム終了時にAllocMemCountあたりで調べる0ならリークなし
当然ながらWindowsのリソースやメモリマネージャ管轄外のリークは防げないので注意。
0392デフォルトの名無しさん
NGNG確か、コンポか何かを入れるだけでいいのがあったような記憶があるから
0393デフォルトの名無しさん
NGNGアイデアは SetWindowsHookEx(WH_MOUSE でフックしてしまう事かなと
中央ボタンのダブルクリックを受信する WM_MBUTTONDBLCLK というのがありますが
クライアント領域メッセージです。つまりどこでも受信するには全画面を覆わなければいけません
アクセラレータに、マウスダブルクリックが設定出来ればいいのかもしれないけどね
0394デフォルトの名無しさん
NGNGTCP/IPアプリとかGUIアプリ書けるんでしょうか?
始めようと思ってるのですが、
BorlandCコンパイラのフリー版はGUIアプリ書けなくて
だまされた、って感じだったので。とかいいつつけっこう使ってますが。
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNGAPI/DLLは呼び放題なので、どんな種類のWindowsアプリでもかけますよ
ただし、無償ですのでお勉強はそれなりにご自分でなさる必要がありますよ
たとえば標準で TClientSocket というコンポーネントはありますが、この説明は・・・
まあ 本体無償なんだから、参考書買って勉強するお金くらい出してみてはどう?
なお、BCC55なら、GUIアプリだって書けますよ。 かけなかったのは勉強不足のせいです。
Delphiはそれよりも楽に書けるというだけで、勉強不要で出来るものじゃないので勘違いしないでね
0397394
NGNG名前からしてラクそうじゃないですか〜!!
T(TCPっしょ?)とかClientとかついてるあたりが、ラクそう。
こーゆーファンクションってたいてい立ち読み目コピで済むから、イイ。(貧;
>>なお、BCC55なら、GUIアプリだって書けますよ。 かけなかったのは勉強不足のせいです。
396って相当のアピ師?弟子入りしたいっす。
0398デフォルトの名無しさん
NGNGあなたが勉強不足名だけかと。
0399デフォルトの名無しさん
NGNGTはTypeの略です。Delphiの流儀ではプレフィックスにTをつけるのです。
ちなみにTClientSocket使うよりIndy使う方がオススメです。
http://www.nevrona.com/Indy/
0400395
NGNGあれでGUIアプリ作ろうとすると発狂します。
おとなしくDelphi使いましょう >>394
0401デフォルトの名無しさん
NGNGdel6 pro でヘルプ解りにくいので・・・
0402デフォルトの名無しさん
NGNG>>401 モナジラ http://members.jcom.home.ne.jp/monazilla/document/indytips.html
0403デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=Indy+delphi+%83R%83%93%83%7C%81%5B%83l%83%93%83g
0404デフォルトの名無しさん
NGNGレスありがとうございます。
今度はそれらをキーワードに探してみます。
0405Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < んニャ〜、里谷・銅メダルオメデタイ
UU""" U U \_______________
アイコちゃんは残念だったかな。
procedure OnCommand(hwnd:HWND);stdcall;
var
NowEditingFileName: String;
pc: PChar;
begin
GetMem(pc, SizeOf(MAX_PATH));
Editor_Info(hwnd, EI_GET_FILE_NAMEA, Integer(pc));
MessageBox(0, pc, '', SW_SHOW);
NowEditingFileName := String(pc);
MessageBox(0, PChar(NowEditingFileName), '', SW_SHOW);
FreeMem(pc);
end;
久氏振りに質問っす。
上のコードはEmEditorのプラグ員ソースの一部で
EMEditorのAPIを使っています。
最初にEditor_Info(....Integer(pc));
の所では正しくファイル名が取得できているのに
(DelphiIDEでトレースして確認できる)
NowEditingFileNameに代入したとたん
文字列がヌル文字か何かでちぎれてしまうのですが
これを防ぐにはどうしたらいいのでしょうか。
例えば最初にMessageBoxで表示されるのは
"C:\Temp\あいうえお.txt"
なのに次にMessageBoxで表示されるのは
"C:\Temp\&"
となります。
C:\Temp\無題.txt
なんかは途中で変にならないので不思議です。
よろしくお願いします。
0406デフォルトの名無しさん
NGNGDelphiXって7.0までで8.0には未対応みたいですが、8.0環境で
使用可能なのでしょうか?
環境は以下の通りです。
Windows2000+DirectX8.0a+Delphi5.0
0407デフォルトの名無しさん
NGNGDelphiX自身は残念ながら8.0に対応していません。
しかしDirectXの性質上、8の環境でも7相当として普通に使えます。
当然、8.0で新設された機能はDelphiXから利用できません。
0408デフォルトの名無しさん
NGNGNowEditingFileName := String(pc);
これはダメだよ。やってはいけない型変換
NowEditingFileName :=pc;
と代入すれば、ヌルの付いた文字列として処理してくれるけど
こういうふうにやればいいんじゃないの?
var
NowEditingFileName: String;
s:string;
begin
SetLength(s,MAX_PATH));
Editor_Info(hwnd, EI_GET_FILE_NAMEA, Integer(PChar(pc)));
MessageBox(0, s, '', SW_SHOW);
NowEditingFileName := s;
と文字列で受けたらいいんじゃないの?
0409408
NGNG0410デフォルトの名無しさん
NGNG内部ではポインタの代入だけが行われて、
いざ使おうとしたときにコピーされるんだけど、
そのときにはすでに解放されてて中身は不定ってことなのか?
0411408
NGNGあ、ダメな理由かかなかったね
String 型 はサイズ+文字で構成されている
これをPCHARに型変換した場合、 文字の部分を指すように工夫されている。
つまりString型のポインタは、文字の位置を示していて、そのポインタ-4にサイズが入っている
PCHAR型をstring型に代入したら、暗黙の変換としてヌル終端文字列からのコピーが起きるからこれは問題ない。
しかし、PCHARをStringに型変換したら、PCHARにはサイズを示してる部分を持っていないからサイズが不定になる。
Stringはクラス型でかつプロパティみたないイメージで考えるといいと思う。
だから、C:\Temp\無題.txt が途中で変にならないんじゃなくて何文字で変になるかは判らないという事
0412390 ◆t8tNbYYk
NGNGレスありがとうございます。
SetWindowsHookExを色々と引いてありましたが、すいません、よく分かりません。
コールバック関数の意味は何とか理解できたのですが、その先がよく分かりません。
何か上手く説明してあるサイト等がありましたら、教えてくれれば助かります。
0413413
NGNG(Width - ClientWidth) div 2などの方法ではうまくいきません。
まして、(Height - ClientHeight)div 2 では、全く出来ませんし。
つまり、やりたいこととしては、
座標の指定を、デスクトップ全体で取得した座標を使って行いたいのです。
0414Delフサギコ ◆zE1iiRdQ
NGNG∧ ∧ サンクスコ
ミ,,゚Д゚彡
〜ミ,,,,uuミ
お見事に解決しました。
procedure OnCommand(hwnd:HWND);stdcall;
var
NowEditingFileName: String;
s:string;
begin
SetLength(s,MAX_PATH);
Editor_Info(hwnd, EI_GET_FILE_NAMEA, Integer(PChar(s)));
MessageBox(0, PChar(s), '', SW_SHOW);
NowEditingFileName := String(PChar(s));
MessageBox(0, PChar(NowEditingFileName), '', SW_SHOW);
end;
このコードでばっちり動作しました!!
ちゃんと文字列として場所を確保してPCHARで
渡してやらなければいけないんですね。
くわしいセツメイまで、ありがとうございます。
0415デフォルトの名無しさん
NGNG>つまり、やりたいこととしては、
>座標の指定を、デスクトップ全体で取得した座標を使って行いたいのです。
普通、こういううときはボーダーの太さを考慮するんじゃなくて
TControl.ClientToScreen() メソッドを使って変換します。逆変換は
TControl.ScreenToClient() メソッドです。どちらか/両方使えばやり
たいことができるんでは。
0417デフォルトの名無しさん
NGNGCells[1,1] とかできなくなってるんですけど、どういう理由でそうなっている
のでしょう?
0418417
NGNGフリーで出回っているExcelのOLE用のVCLでは、普通、Cells[1,1]
くらいできると思うのですが、本家のものはなぜそうなのか疑問です。
0419デフォルトの名無しさん
NGNG>バイトコードへのコンパイル時には Object 型は使えません
>Cannot use old style object types when compiling to byte code
>
>説明
>バイトコードへのコンパイルでは Object 型は不正です。
うぉぃ。ヘルプ見てたらバイトコード用コンパイラのエラーメッセージがのってるんすけど(藁
0420デフォルトの名無しさん
NGNGhttp://homepages.borland.com/dthorpe/products.html
の残骸だね
0421デフォルトの名無しさん
NGNGSelectとか中身の事はわかるのですが
それ以前の宣言とかがわかりません。教えてください。
0422デフォルトの名無しさん
NGNGまさか Personal とかいうなよ
0423デフォルトの名無しさん
NGNGボーランドのDelphi4
0424デフォルトの名無しさん
NGNGとりあえず(わかりづらくても)付属マニュアルの SQL 関連のところを
ざっと読め。
0425デフォルトの名無しさん
NGNGTDatabase で BDE 経由でサーバーにつなげておくことを忘れずに。
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNGたとえばただ単にbeginとendの間に
select〜
From〜
を指定すると思うのですが、それだけでは当然エラーが出てしまいます。
それ以前のDelphiにSQLを使うという宣言が必要だと思いますが、それがわかりません
どうぞ教えてください。
0428デフォルトの名無しさん
NGNG0429 ◆xdL3JlCE
NGNGアドベンチャーゲームのエンジンを作ってるのですが表示した文字が隠れると消えちゃいます。
原因はcanvasでTestOutしてるのだからだと思うんですが、ウィンドウが隠れたあとも文字を保持しておく
方法は無いでしょうか?
OnPaintでやれば良いんでしょうか?
パソコン初めて自体初心者なので分からないことが多いです。
すんません。
プログラム本体はこちらにあります
http://members.tripod.co.jp/xdL3JlCE/
こっちのスレにも出没します。
http://game.2ch.net/test/read.cgi/gamedev/1013170036/
0430デフォルトの名無しさん
NGNG持続的なイメージを作成したい場合には TImage を使います。
0431デフォルトの名無しさん
NGNG425 さんが書いてるように、TQueryのSQLプロパティに文字列として書きます
もしかしてDDLについてという事?
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/sql_delphi.html の24を参考に
Open または ExecSQL; です
0432デフォルトの名無しさん
NGNGQuery1.SQL.Add('SELECT * FROM 〜');
みたいな感じでよろしいのでしょうか?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435417
NGNGhttp://www.undu.com/Articles/010316c.html
0436デフォルトの名無しさん
NGNG「DELPHI 6 PROFESSIONAL 版およびDELPHI 6 ENTERPRISE 版に適用される追加条項
〜略〜...お客様が作成したソースコードやそのコンパイルしたコードの配布は,配布に対して
直接的にも間接的にも報酬を受け取らないこと,そのアプリケーションが個人用途で
あり商用ではないということ,この限りにおいて配布制限は受けません。...〜略〜」
と書かれていました。これって、Delphi製のシェアウェアは存在しないって事ですか?
なかったっけかな・・。
0437436
NGNG0438デフォルトの名無しさん
NGNGパソナル版のみぞな。
0440436
NGNG>439
あ、修正されてたんですね・・。こんな重要なこと間違えてるなんて・・。
疑問が解けました。ありがとうございました。
0442デフォルトの名無しさん
NGNGDelphiVCLの定数や列挙型の命名ってヤバく(ダサく)ないっすか?
clWhiteとか、psSoildとか。
普段からVCLに合わせてるもんだから、自分でつけるときもついそうやってしまうんだけれども。
みなさんどうやってます?
ダサくない代替案キボーン。
ごめん向こうのスレじゃ、まともなレスが得られそうに無いので、
こっちで話題振ってみました。
0443デフォルトの名無しさん
NGNG私は結構好きですが、なにか?
0444デフォルトの名無しさん
NGNG色の名前で(ダサく)ないかっこいい命名法の例を挙げよ!
命名法についての議論は、結局、たいした意味がありません。
0445デフォルトの名無しさん
NGNGアルファベット2文字で名前の衝突をほぼ避けられるんだから
これほどうまい話はないだろ。
ぶつかっちゃったらUnit名つければ回避できるし。
どうしても嫌ならC#流にClassName_EnumNameにすればいい。
0446442
NGNGTHogeMogeBarFooならhmbfってやっちゃうので・・・。
>>445
C#流ですか。参考にしてみます。
0447442
NGNGよく考えたら、Unit名つけりゃいいんすね・・・
0448デフォルトの名無しさん
NGNGどうでもいいんだけど…
hmbf
こうやって、つながりの無いアルファベットの羅列をつけるのは、
まさに2文字が限界だと思われますが。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGそこも早速参考にしました、
やはり最終的には自分でソースをきちんとするしかないようですね。
0451デフォルトの名無しさん
NGNGどうでもいいということは自分で納得のいく方法をとっておられるということだと
思うのですが、あなたはどうやっておられますか?
0452デフォルトの名無しさん
NGNGどうでもいいことを聞いてどうするつもりですか?
0453デフォルトの名無しさん
NGNGどうでもいいということではなく、
2文字のプレフィックスをつけるという命名規則が
十分広く知れ渡っているので
この規則を守るべきかどうかということについて
議論の余地が無いということです。
0454デフォルトの名無しさん
NGNG>十分広く知れ渡っているので
どうでもいい派としては、上記の根拠について示すことを要請したい。
オレははつみみです。
0455442=451
NGNGマジでどうでもいいことにしたいので、
2文字プレフィックスの有用性か
代替になるものがないかと悩んでます。
0456442=451
NGNG・VCLで使われている
・VCLに習ってDelphiユーザーの多くが使っている
だけで十分な理由かあ・・・
0457これ以降
NGNG議論することを禁じます。
http://community.borland.com/soapbox/techvoyage/article/1,1795,10280,00.html
0458デフォルトの名無しさん
NGNG>2文字プレフィックスの有用性か
>代替になるものがないかと悩んでます。
うーむ、こんなことに悩むひとがいるんですねぇ。
456 のとおりでいいんじゃないの。
442-ここまで のカキコみて、とっても有意義だったですか?
命名法の議論って、プログラミングなんてものがある以前から
それこそ太古の昔からされてきたけど、結局、........!?
なのよ。議論だけ熱くなって、結局、結論は本人が納得できれば
どうでもいい、ということになっているんですよね。
0459デフォルトの名無しさん
NGNGあっ、Clavert さんはそう思っているってことですね。それで何が言いたいの?
0460デフォルトの名無しさん
NGNGどーでもいい事ついでに俺も質問。
じさくクラスに、プロパティ類コピーの目的で
THoge.Assign(Source:THoge)
とか作るとするじゃない。
そうするとさ、Assignメソッドのなかで、少なくとも全部のプロパティを
コピーしなきゃならないでしょ。
あとでプロパティを増やしたりしたときに、Assignメソッド内に
そのプロパティをコピーする項目を増やすの、絶対忘れちゃうんだよね。
みんなはどうしてるのよ?
根性で思い出してるの?
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG馬鹿丸出しだな。
borland communityでコンセンサスの取れた規則ってことだよ。
0463デフォルトの名無しさん
NGNGアホ丸出しだな。権威主義者め。英語読めないヤツはどうするんだよ。
>borland communityでコンセンサスの取れた規則ってことだよ。
これの根拠を示してください。どこにコンセンサスが取れているんですか?
「規則」って、Pascal の文法のどこに書いてあるか教えてください。
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNGhttp://www.onionsoft.net/hsp/
0467デフォルトの名無しさん
NGNGあんたさぁ、
>DelphiVCLの定数や列挙型の命名ってヤバく(ダサく)ないっすか?
↑この文章書いたの誰だと思ってるの? 思い出した?
英語の文章読んでさぁ、「了解」というのはどうゆうことよ。
急にヤバく(ダサく)なくなったわけ?
0468442
NGNG後者も了解と言っただけで、ダサくなくなったとも言ってないですし。
うえーん、荒らすつもりはないんだよお。
0469デフォルトの名無しさん
NGNGDel房はDelphiの不備を指摘されると逆上するからね。
MLで質問しなかったのが残念でならん(藁
0470442
NGNG0471デフォルトの名無しさん
NGNGカラミついでにほんとに最後。
>了解と言っただけで、ダサくなくなったとも言ってないですし。
「了解」ということは、ダサいと思いつつ Calvert 氏の提案に
従うってこと?
もし、あの文章が日本語で Geocity かどこかの HP に山田太郎の
署名で書かれていたらどうでしたか?
あの命名法は、Delphi のローカルルールだね。Borland でも C++
ではちがうし、他の言語ではハンガリアン記法のほうが圧倒的に優勢
ですね。でも、張本人のMSのドキュメントでも破綻していて、笑わ
れているし、命名法の一般解というのはないみたいね。寄らば大樹の陰、
みたいに権威に従うのも安全かもね。でも、それが絶対ではないことも
お忘れなく。
0472デフォルトの名無しさん
NGNG0473442
NGNGあの提案自身に全面的に賛成できるわけではありません。
細かいところで自分のスタイルとは違っていますし。
迷っている、迷った部分に関しては参考にするっつーことで。
0474デフォルトの名無しさん
NGNGすこしは自重したらどうですか。
0475442
NGNG( )
/ ヽ
0476デフォルトの名無しさん
NGNG474が最初では?
別にここで話題にしてもおかしくはないのでは?
場所柄、ここよりずっと丁寧な言葉づかいですが、同様なことは
ML でも行われていますよ。457 の文書まで同じです。(URLはちと違うが)
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=056598
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG457 = 462 が、あの文書を金科玉条のごとく「コンセンサス」のある
規則などというもんだから、約1名が熱くなったみたいですね。ぜんぜん
コンセンサスなんかないのですね。MLの投稿者もそれぞれのスタイルを
表明しているだけですし。
まぁ、命名法(コーディング規則)の話題はこの辺でやめようや。
0479デフォルトの名無しさん
NGNGクリエイ恥部で独創性溢れる
コーディングルール撒き散らして
悦に入ってなさいってこった。
0480デフォルトの名無しさん
NGNGということで
0481デフォルトの名無しさん
NGNGフルスクリーン(解像度変更)にしたあと戻す処理が出来ません。(640x480)
何かうまくフルスクリーン(解像度変更)→復帰する方法無いでしょうか?
ChangeDisplaySettingsのAPIは使用してません。
またWindowsXPだと復帰の処理を書かなくてもプログラム終了時に勝手に解像度が復元するらしいです。
よい方法を教えて下さい。
ttp://www2s.biglobe.ne.jp/~mix/game_programing_display.htm
ここにあるDisplayコンポーネントを使ってもうまくいかないし、、
0482デフォルトの名無しさん
NGNG使えよ
0483デフォルトの名無しさん
NGNG解像度変更するのって、ノートや液晶じゃ汚くなるからイヤン
0484デフォルトの名無しさん
NGNG動作環境がFMVとか・・・(ぉぃ
0485デフォルトの名無しさん
NGNG0486481
NGNGスクリーンセーバって決まった訳じゃ無いです。
「みたいなの」です。
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGなぜ解像度を変更する必要があるのですか?
0489デフォルトの名無しさん
NGNGフォームの上のバーを消して最大化すれば?
それじゃあだめかな?
0490デフォルトの名無しさん
NGNG>>481もギコ猫のスレッド行ったら?
0491デフォルトの名無しさん
NGNG必死だな(藁
0492デフォルトの名無しさん
NGNGだから素直にDirextX使いなさい
0493デフォルトの名無しさん
NGNGデータ自体は加工しなくてもいいんだけど。
一応それっぽいのフリーで見つけたんだけど・・・
「ODBC access コンポーネント」ってやつ。
0494デフォルトの名無しさん
NGNGTDataSet派生って書いてあるからProじゃないと使えない雰囲気。
そもそもPro版のDBコンポ使えなかったらDelphiでDBの意味ないだろ。
あと業務で使ったらタイーホね
0495デフォルトの名無しさん
NGNGたとえばこの辺。
http://www.allroundautomations.nl/doa.html
パソナルで使えるかどーかはしらんが
TDataSet継承してるからだめかもしれんな。
海外のサイトさがせばVCL非依存のDBドライバあるかもね。
0496495
NGNG0497デフォルトの名無しさん
NGNG誰かよろしければ、ライセンスキーを教えてください。
どうも失礼します。
0498デフォルトの名無しさん
NGNG作者のページに行ったら、パソナル用のインストールファイルみたいなのが
あったですよ。
>DB ユニットに依存した部分を除去したファイルです。
>TDataSet 派生のコンポーネントはインストールされません。
だって・・・
じゃぁ何が残るんだろう・・・?
だいたい、78000円もだせないよなー
ただだから始めたのに・・・
>>495
それも、見てみたけど、どうやらパソナルでは無理みたいです。
もうちょっと探してみますね。レス感謝です。
0499デフォルトの名無しさん
NGNGDelphiスレで無理にDirectXを進めるのは強引だな
解像度変更はゲームだけとか言っちゃってるし、、、
0500デフォルトの名無しさん
NGNG>だいたい、78000円もだせないよなー
↑みたいな「煽ってくれ!」「叩いてくれ!」みたいなことは言わないように
すれ。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG忠告感謝。
2chなれしてないもんで(w
でも、なんだかんだ言っても教えてくれる人がいるもんな。
みんな、結構いい奴だよなー
そうそう、なんか、>>493で言っていた奴なんとかなりそうな予感ですわ。
もっと勉強して、わかるようになったら、プロでも買おうかな。
と、ボーランドの作戦に、まんまとひっかかってmill。
0503デフォルトの名無しさん
NGNG0504Delフサギコ ◆zE1iiRdQ
NGNGミ ミ < ユーザーが
ミ つ \_____
ミ @ ミ
'∪'''∪'
ピキューン + / ̄ ̄ ̄ ̄ ̄
+ ∧,,∧ < 増えている
ミ,゚Д゚ ,,ミ \_____
(( ⊂ . つ ))
+ ミ ミ
''とノ'' +
キュピィィィン + / ̄ ̄ ̄ ̄ ̄
∧,,∧ < らしい!
ミ,, ゚Д゚ミ . \_____
ミ つ つ ))
+ ミ ⊂.ミ
''∪'''' シュイショクデスシ
0505Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚ 彡< 先生!!DB接続の為にProを買うのは
__ミ ミ ミ \ シゴク真っ当だと思われ、だと思います。
\,,∪  ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||" イチブ デハ 設計時からテーブル参照できる
...|| ̄ ̄ ̄ ̄|| DelphiのDB機能は開発ツール中でも絶賛的評価なり。
0506デフォルトの名無しさん
NGNGかっかっちゃおうかな〜(ハァチョ
0507481
NGNG解像度変更の件ですが自分のPCがNT4の為DirectX使えません。
ChangeDisplaySettingsのAPI、DirectX以外の方法で今はフルスクリーンのみは出来る状態です。
もどす方法だけが分からないのでどうしたら良いのか、教えていただきたく思いました。
481の書き方が紛らわしかったのですがスクリーンセーバと決まったわけではありません。
0508デフォルトの名無しさん
NGNGそこまでやりたいなら このサイトをご覧・・・・
ttp://www.kt.rim.or.jp/~s-matsu/sub/prog/unskill018.html
0509デフォルトの名無しさん
NGNGなんどもすいませんが、どうして解像度を変更する必要があるのか
教えてくれませんか。それと、「ChangeDisplaySettingsのAPI」
を使わないのは、なにか問題があるからですか?
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGどうやってフルスクリーンにしたのか教えてください。戻す方法が分かるかも
しれませんので。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGアイコンやウインドウぐちゃぐちゃにされたくないしな。
強制終了してもまず元の解像度に戻ってくれるし。
そういやNT4ってDirectXだめだっけ?DirectX3まではOKじゃなかったか?
それなら解像度変更くらいできる。
0514513
NGNGusesにDirectDrawのヘッダつけといて。
FDirectDraw: IDirectDraw;
// 改造度を640x480x24に変更するとき
DirectDrawCreate(nil, FDirectDraw, nil);
FDirectDraw.SetCooperativeLevel(Handle, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN);
FDirectDraw.SetDisplayMode(640 480, 24);
// 元に戻すとき
FDirectDraw.RestoreDisplayMode; // これもいらないくらい
FDirectDraw := nil; // Delのバージョンによっては解放処理が違うので注意
0515
NGNGADO使いたいんだけど
どうすりゃいいの?
0516デフォルトの名無しさん
NGNG0517515
NGNGおかげさまで、取り込みはできましたが
DEL坊の私にはそっから先どうしたらいいのかさっぱりわかりません
用はローカルのMDBにつながりゃいいのですがどうしたらいいのでしょうか?
0518デフォルトの名無しさん
NGNGCoConnection.Createってやれば後はVBSとかと同じです。パラメタ省略したいときは
EmptyParamを渡せばよいです。
0519デフォルトの名無しさん
NGNGありがとうございます
やっとできました。
0520
NGNGテキストファイルだとうまくいくのですが・・・
どうしたらいいの?
0521デフォルトの名無しさん
NGNGデバッグしなさい。
0522デフォルトの名無しさん
NGNGQueryコンポーネントを用いてSQLを使っているんだけど、
オブジェクトインスペクターのSQLに
「select sum(明細金額) from 売上累積」
って入れ DataSource → DBEdit とやると上手く出るが。
コードにじかにSQLを書く場合、どのようにして「sum(明細金額)」を受ければいいのでしょうか?
色々調べたのですが・・・
0523デフォルトの名無しさん
NGNGQuery1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select 何とか');
Query1.Open;
だったと思う。
0524デフォルトの名無しさん
NGNGQuery1.Fields[0].AsInteger
でとれるでしょ。
0525デフォルトの名無しさん
NGNG書きこむコード挿入しなくても(例えば並び替えとかだけでも)
書き込み禁止がでてエラーになってしまいます
設定とかあるのでしょうか?
ヘルプ見ても載ってないし…
0526デフォルトの名無しさん
NGNGその SQL 文を見せてみなさい。
0527Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < しつもーそ
U ミ \____________
@ミ ミ
∪''∪
ShellTreeViewでRoot = rfDesktopのまま
最初からTreeを展開して、とあるパスを表示させたい時
って、どうやるのでしょうか?
おしえてくださいな。お願いします。
0528デフォルトの名無しさん
NGNG0529522
NGNGありがとうございます。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGVBでは出来たのですがDelphiでは出来るのかわかりません。
また出来るとしたらどのような圧縮形式で出来るのでしょうか?
0532デフォルトの名無しさん
NGNG使ったことないけどこれでできるんじゃない。
http://www.csdinc.co.jp/archiver/
0533デフォルトの名無しさん
NGNG自力で展開ルーチン組むかライブラリ使えば、
どんな圧縮形式も対応可能。
VBってそいういうの標準ライブラリレベルで楽に出来るの?
0534デフォルトの名無しさん
NGNGunlha32.dllとかunzip32.dll使え。
Delphi固有の話題じゃないからsage
0535デフォルトの名無しさん
NGNGそれっぽいAPIがあるかも。
0536Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ミ < >>530さんサンクスコ
ミ ミ \__
〜ミ,UU_ミ
ShellTreeViewのソースを修正するのはわかったけど
修正して、コンパイルが出来ないです。
VCLのサイコンパイルってどうやるんだっけか。
よろしかったら、教えてくんさい。
0537デフォルトの名無しさん
NGNGsum(明細金額) as MEISAIKINGAKU
FieldByName('MEISAIKINGAKU').AsInteger
でもいいかも・・・
0538デフォルトの名無しさん
NGNGShellTreeViewで、特定のフォルダをOPEN状態にするコード。
------------------------------------------------------
{フォーム上に ShellTreeView1 と、Edit1、Button1を配置する
Edit1 には 'C:\Windows' などと入力しておく。
ボタンを押すと、Edit1 で指定したフォルダ又はファイルのノードを
ShellTreeView1 中から検索し、展開する。
}
procedure OpenFolder( STreeView:TShellTreeView; APath:string; const ASetFocus:Boolean=True );
//パスの深さを \ の数で示す
function Depth( Path:string ) :Integer;
var
i:integer;
begin
result := 0;
Path := ExcludeTrailingPathDelimiter( Path );
for i:=1 to Length(Path) do
if (ByteType( Path,i) = mbSingleByte) and (Path[i] = '\') then
inc( Result );
end;
// アクセス可能なドライブかどうか
// http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=27
function IsDriveReady(drive : char) : boolean;
var
oldmode : word;
searchrec : tSearchRec;
begin
drive := upcase(drive);
oldmode := SetErrorMode(SEM_FAILCRITICALERRORS); (* ここと *)
result := DiskSize(ord(drive)-$40) <> -1;
{$IFDEF WIN32}
if result and (GetDriveType(pchar(drive+':\')) in [DRIVE_REMOTE, DRIVE_CDROM]) then begin
{$ELSE}
if result and (GetDriveType(ord(drive)-$41) = DRIVE_REMOTE) then begin
{$ENDIF}
result := FindFirst(drive+':\*.*',$3f, searchrec) = 0;
FindClose(searchrec);
end;
SetErrorMode(oldmode); (* ここね *)
end;
0539デフォルトの名無しさん
NGNGbegin
result := AnsiSameText( A, B );
end;
//指定されたフォルダを開く
function Open(const Node:TTreeNode):Boolean;
var
CurrentPath,d:string;
e:boolean;
i:Integer;
begin
result := False;
{ノードを選択する}
STreeView.Selected := Node;
d:= ExtractFileDrive(STreeView.SelectedFolder.PathName);
if (Length(d) > 0) and not IsDriveReady( d[1] ) then
Exit;
CurrentPath := STreeView.SelectedFolder.PathName;
{選択状態にあるファイルが検索目標と同一ならば正常終了。}
if SameFilename( CurrentPath, APath) then
begin
Node.Expand(False);
result := True;
Exit;
end;
{選択中のノードから見て、検索目標の相対パスが .. で始まるならばダメ}
if Copy( ExtractRelativePath( CurrentPath, APath ) , 1 ,2 ) = '..' then
begin
Exit;
end;
0540デフォルトの名無しさん
NGNGif Node.HasChildren then
begin
{検索目標の階層よりも自分の階層が等しいか、深い場合はダメ}
if Depth( CurrentPath ) >= Depth( APath )+1 then
Exit;
{ノードの展開状況を記録する}
e := Node.Expanded;
{ノードを展開し、子ノードを晒す}
Node.Expand(false);
{子ノードについて調べる}
for i:=0 to Node.Count-1 do
if Open( Node.Item[i] ) then
begin
result := True;
Exit;
end;
{元の展開状態に戻す}
Node.Expanded := e;
end;
end;
var
i:integer;
begin
with STreeView do
begin
Items.Beginupdate;
for i:=0 to Items.Count-1 do
if Open( Items[i] ) then Break;
if ASetFocus then
SetFocus;
Items.endupdate;
end;
end;
0541デフォルトの名無しさん
NGNGだれか原因をおしえてくださいいい
Delphi6Proをつかっていますが、コンポーネントを使おうとするとエラーが起きます。
http://delphi-area.fs-tools.de/pdl_downloads.php?file=14
からアーカイブをダウンロードし、インストールしたのですが、
コンパイルエラーがおきました。
ヘルプにある互換性のページ
>プロジェクト内の DsgnIntf への参照は,新しい Delphi 6 の名前 DesignIntf に
>変更する必要があります。また,uses 節に DesignEditors,VCLEditors,
>および RTLConsts を追加する必要もあります。
を参考に、
TFlatDesignRegister.pas の uses 節を修正しました。
コンポーネントは無事登録されたのですが、
オブジェクトインスペクタで、貼りつけたコンポーネントの
色関係のプロパティの色定数リストを表示させる(リストをスクロールさせる)と、
このコンポーネントで独自に追加したと思われる色定数について、
「***は数値ではありません」というエラーが表示されてしまいます。
どうすれば、ちゃんと使えるようになるでしょうか。
0542デフォルトの名無しさん
NGNGhttp://www2.to/source
0543デフォルトの名無しさん
NGNGそちらを使った方がよかろう。
0544デフォルトの名無しさん
NGNG再現しないんだけど、D6用のパッケージだよね?
0545デフォルトの名無しさん
NGNG544 さん, あとは任せたぁ。
0546541
NGNG0547デフォルトの名無しさん
NGNG0548541
NGNGえと、541に書いてある通りです。
例えば、TFlatScrollBar なり TFlatMemo なりをフォームに貼りつけて、
色関係のプロパティを弄りますね。最初オブジェクトインスペクタの
色定数リストには cl*** しか表示されていないと思うのです。
色定数リストの前半は cl*** という定数ですが、多分後半は
em*** という独自の定数になっていると思うのです。
で、このリストを下にスクロールさせると、やがて em*** がリストに
出てくるはずです。その em*** がリストに表示されようとした瞬間に、
どうもエラーがでるみたいです。
メッセージは、「em***は数値ではありません」です。
0549デフォルトの名無しさん
NGNGまだ完全にはD6対応になってないみたい。
もしかしたら、dfn.incの頭に{$DEFINE VER130}って加えてから、
パッケージを再構築すれば通るかも。
割とかっこいいコンポだね。紹介サンクス。
0551デフォルトの名無しさん
NGNGなぜか一部のログでつっかかってしまい、それ以降のログを取得してくれません。
ログ取得部分のソースはこんな感じです。
Fdir := 'D:\xxx\xxx\log\';
Fname := 'xxx.log';
month_log := TStringList.Create;
try
month_log.LoadFromFile(Fdir+Fname); //テキストファイル読み込み
except;
writeln('<html>'+ Fdir+Fname +'読み込み作業中にエラーが発生しました</html>');
month_log.Free;
end;
ログの突っかかる部分ですが、下記の2行目、「Mozilla 3.0 (Slurp cat・・」の3.0と(の間の半角スペースです。
,xxx.xxx.xxx.xxx, MSIE 5.01,Win98,2002/02/16,土曜日,14:56:47
,xxx.xxx.xxx.xxx,Netscape3.0,Mozilla 3.0 (Slurp cat; [email protected]; http: /www.inktomi.com slurp.html),2002/02/17,日曜日,06:57:05
,xxx.xxx.xxx.xxx, MSIE 5.5,Win2000,2002/02/17,日曜日,07:07:44
ログを突っかかる部分の半角スペースをエディタで書き直すと突っかかりは解消されるのですが・・・」
同じ半角スペースでもなぜ書き直すと大丈夫で元々のデータの場合はつっかかってしまうのでしょうか?
どなたかいい知恵を授けていただけたら幸いです。
0552522
NGNGありがとう。
こっちのやり方のほうが後々ソースを見たとき分かりが良いかな?
ただ、記述するとき。
「Query1.」と入力したとき「コード補完機能」の候補に、
「FieldByName」が出てこないのはなぜなんだろう?
0553デフォルトの名無しさん
NGNGバイナリエディタで該当部分を見てみたら?
実はLFコードとかで、表示の際半角スペースで代用されていただけかもしれないし。
0554デフォルトの名無しさん
NGNGうーん、おそらくそっち系の原因だと思います。
問題の部分を直すのではなく、ただ単にエディタで開いたログを中身の変更をせずに
上書き保存しただけでもつっかかり無く取得してくれるんで・・・
でもバイナリエディタで確認した時に、問題の部分もきっちり半角スペース(20)で
認識されているのはこれいかに(汗
0555デフォルトの名無しさん
NGNGっとと!よく見たら半角スペース(20)じゃなく00になってました。
・・・で、この00をdelphi上で20に変換する方法っていうのはどうやるのでしょうか?
そもそも00って文字上で言うところの何ですか?(厨房質問で申し訳ないですが・・)
0556デフォルトの名無しさん
NGNGwhile (Pos(#00, Str) > 0) do begin;
USER_AGENT[Pos(#00, Str)] := #20;
end;
こーすりゃいいだけですよね、失礼いたしました。
0557デフォルトの名無しさん
NGNGQueryコンポーネントでは無理なの?
0558デフォルトの名無しさん
NGNGできるよ
Query1.ExecSQL
0559デフォルトの名無しさん
NGNGDel6EntのDataSnap,WebSnap周り使ってる人いない?
いまSOAPで2層のDBアプリ作ろうと思ってるんだがぜんぜんうまくいかない。
(Oracle8i -> SOAP -> クライアントみたいな感じ)
sampleの中にはDCOMしかないし。
一応\WebServiceのなかに想像に近いやつがあったけどわけわかんないし。
素直にCORBAにしたほうがいいのかな〜。
どっか解説してるサイトとかないですかね?
ところで、BizSnapって言葉、さんざん宣伝してた割に
IDE上に出てこないのは気のせいか?
0560Delフサギコ ◆zE1iiRdQ
NGNG_______________
,∧,,∧ <
/,,ミ,,゚∀゚彡 \ ありがとうです
//\ ̄ ̄ ̄\ \
// ※.\___\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\\※ ※ ※ ※ ※ヽ 動作確認しました。
\`ー──────ヽ 微妙に動作が遅いきもしますが・・・・・
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>>543ソースを修正してもコンパイルできないのに
修正版をインスコするのできそうにないです。
0561559
NGNGhttp://www.drbob42.com/soap/soap42.htm
この辺が参考になりました。
サンプルくらい付けろ>某
0562557
NGNGQuery1.SQL.Add('(TEST1,TEST2)');
Query1.SQL.Add('values("マータリ","マータリ")');
Query1.ExecSQL;
上記だと上手くいくんだけど、
下記のようにパラメーターで追加しようとすると駄目。
何かよいアドバイスをお願いします。
Query1.SQL.Add('insert into データ.db');
Query1.SQL.Add('(TEST1,TEST2)');
Query1.SQL.Add('values(TEST1 =: GIKO1,TEST2 =: GIKO2)');
Query1.ParamByName('GIKO1').AsString := Edit1.Text;
Query1.ParamByName('GIKO2').AsString := Edit2.text;
Query1.ExecSQL;
0563デフォルトの名無しさん
NGNGじゃなくて
= :GIKO1
だろ
0564557
NGNGそうだった、でも、そこを直しても上手くいかない・・・
やっぱり「キーワードの使用が無効です キーワード:=」って言うエラーになる。
0565デフォルトの名無しさん
NGNGPASCAL 構文と SQL 構文がまざっているのかと。
0566557
NGNG紛れているとは?
色々いじっているが・・・
Delphiでデータベース(特にSQL)に詳しく書かれている、
お勧めのHP・書籍は無いですかね?
0567559
NGNG>>562
> Query1.SQL.Add('values(TEST1 =: GIKO1,TEST2 =: GIKO2)');
単に
Query1.SQL.Add('values(:GIKO1,:GIKO2)');
でいいんでない?
ParamByName以前にもともとのSQL文が間違ってるに100ユーロ
Query1.ExecSQLする前にQuery1.SQLをどっかに吐き出して内容確認してみては?
0568557
NGNGありがとう。
>Query1.SQL.Add('values(:GIKO1,:GIKO2)');
これで上手くいきました。
0569Delフサギコ ◆zE1iiRdQ
NGNG読むといいかも
\
 ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ο
♪ ∧,,∧゚ ♪
ミ,,゚Д゚彡 ♪
ミつ[|lllll]).
〜ミ ミ
U''U
Delphiデーターベースアプリケーション開発ガイド
0570デフォルトの名無しさん
NGNGhttp://community.borland.com/article/0,1410,28405,00.html
0571デフォルトの名無しさん
NGNGUpdate2 というのは Update1 を当てずとも素の状態から Update できるのでせうか?
Delphi5からのユーザなのですが、5はUpdate1までしか出ていないので分かりませんです(;´Д`)
つうかDel5のUpdate2もだせや(#゚Д゚)ゴルァ! >某陸
0572デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG普通はそういう風に作るものでしょ
0578デフォルトの名無しさん
NGNGバグがあるならレポートを。
時間はあるぞ。どどんがどん。
0579デフォルトの名無しさん
NGNGDEL4、BCB4の時は差分アップデートなので
#1を当てたあと#2を当てる必要があった。
これ、Borland式。
0581デフォルトの名無しさん
NGNG0582通りかかった初心者・・・
NGNGQuery3.SQL.Add('Select EXTRACT(Year from YMD),EXTRACT(Month from YMD),sum(Meisai)');
Query3.SQL.Add('From Data.db');
Query3.SQL.Add('GROUP BY EXTRACT(Year from YMD),EXTRACT(Month from YMD)');
Query3.Open;
上記を実行すると「この機能は使用できません。」って言うエラーが出るんだけど、
年・月 別の合計金額出したいんですが、何か良い方法無いですか?
それともSQLが根本的に間違っていますかね?
0583デフォルトの名無しさん
NGNGRequestLiveがTrueになっていたら「この機能は使用できません。」とかのエラーでるね。
原因がそれでないなら解らんな。SQLはあっていそうだしね。
0584通りかかった初心者・・・
NGNGありがとう。
調べてみたけど「RequestLive」はfalseでした。
0585デフォルトの名無しさん
NGNGD6ではXPに正式対応しないんじゃないの?
D7が出る方が速そうな気がするし、D7ってやっぱ今年でしょうか。
流石に毎年じゃ辛いんですけどねぇ。
0586デフォルトの名無しさん
NGNG売れてないのかなー?
(´∀`)<DBは何でしょう?
0588通りかかった初心者・・・
NGNGParadox 7 です。
ローカルSQLガイドに下記のように書いてあったんだけど、
「計算によって求められた値(計算フィールド)を基準に GROUP BY 節でグループ化を行うことはできません。」
これに当てはまっていると言う事なのかな?
0590通りかかった初心者・・・
NGNG調べてくれてありがとう。
こういう場合ってどうすればいいの?
自分的に考えたのは、
ワークを作り(年・月・詳細金額)を抜き出しコピー
それをグループ化
ほかに何か手間要らずの方法はないですかね?
0591デフォルトの名無しさん
NGNG住所録程度のソフトを作りたいのですが、
何か良い手はありませんでしょうか?
初心者なので出来れば優しくお願いしますー
0592デフォルトの名無しさん
NGNGD6にバージョンアップすると BDE無しに使えるMyBaseというのがあるそうです
0593591
NGNGバージョンを上げたいとは思っているのですが予算と
初心者なので新しい機能はまだまだ縁が無いので
ちょっと手が出ません。
0594デフォルトの名無しさん
NGNGやりかた
http://www.google.co.jp/search?q=cache:F5BKq5HU-0IC:61.121.66.222/~ytm/oldhome/Tips2.html+TDataSet&hl=ja&lr=lang_ja
0595デフォルトの名無しさん
NGNG勉強の為にDBを使うなら、ODBCかDel6にする。
勉強の為に作るけど、DBはいや。つー場合は、ファイルに適当に書き込む。
だれかに使ってもらう為に作るなら、素直にDel6を購入かファイルに適当に書き込む。
100件程度で、ちょっとした検索が付いたくらいの住所録ならファイルに書き込んでも
全然OKな気がする。
0596591
NGNGありがとうございます。 さっそく見てみました。
最初の説明で漏れていたのですが、作った物を
他所にも持って行きたいと思っていますので
ODBCの設定をいじる分は、すみません ちょっと外れです。
できたらCD-ROMに、プログラムとデータを入れて
そのまま実行できるような物をイメージしています。
(´∀`)<IB使用可ならVIEWを定義しgroup byで集計する
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGたまにATOK15W.IMEがアプリケーションエラーで落ちるんです
当然Delphiも落ちます
一緒にIE5.5も道連れにします
こんな症状、俺だけですか?
0600デフォルトの名無しさん
NGNGそれとも
Canvas.Brush.Handle:=GetStockObject(LTGRAY_BRUSH);
Canvas.Pen.Handle:=GetStockObject(BLACK_BRUSH);
こんなふうに書けばいいの? 一応動いてるみたいだけど
あるいはストックオブジェクトを無理に使う必要はない?
0601デフォルトの名無しさん
NGNGGDI オブジェクトは VCL レベルでキャッシュされているので、普通に使う場合には
何も気にすることは無い。
0602デフォルトの名無しさん
NGNGOS は?
XP/Pro + ATOK15 + D6 だけど問題ないな
0603デフォルトの名無しさん
NGNGSelect EXTRACT(Year from YMD) Y, EXTRACT(Month from YMD) M, Meisai
From Data.db
上記のSQLをエディタなどで作成して、dbファイルと同じフォルダに、
view1.sql というファイル名で保存する。(ファイル名は任意、拡張子は
sqlにすること)
これがParadox用のViewになるので、これに対して
Select Y, M, Sum(Meisai) from view1.sql
Group by Y, M
というSQLを発行すれば良い。
0604通りかかった初心者・・・
NGNGありがとうございます。
早速試してみます。
0607デフォルトの名無しさん
NGNG>iAtokも落ちるし
それは... ATOK 側の問題の気がするなぁ。
0608559
NGNGどもです
今はiAtok使わないようにしてるし
こまめに保存してるけど
落ちるときはF9押してアプリが動き出す瞬間みたいだから
デバッグモードの時のIMEの設定か初期化くさいです
でもいつもじゃない所がいやらしい
justのアフォ金返せ!!
0609デフォルトの名無しさん
NGNGhttp://www.justsystem.co.jp/
ここでどうぞ。
0610デフォルトの名無しさん
NGNGDel6を買うと簡単にBDEなしに移行できるものでしょうか?
0611デフォルトの名無しさん
NGNGMyBase/Midas はオンメモリデータベースだから、本質的にマルチユーザーには
対応していない。
非 BDE ってのを配布ファイル削減という意味で考えているのなら、ほとんどすべての
Windows に存在している ADO を使うことを考えるのも意味があると思う。
0612 610
NGNGレスありがとうございます。
プログラムは大した事ないのとLocal・シングルユーザー仕様です。
質問のポイントは、使用コンポーネントの若干の置き換えや設定の変更で
使えるなら休み明けにでもDel6を注文しようかと思ってます。
ADOについては、当方不勉強ゆえ敷居が高いです。
0613デフォルトの名無しさん
NGNG(´∀`)<D6のdbxpressを使ってます。 スタティックリンクが便利です〜
0615 610
NGNG(´∀`)<使えると思うよ〜
0617lily
NGNG伝票のような桁ごとに縦点滅線有り、カンマ有りの入力画面を提供したいと考えています。
で、Canvas とか Paint とかのメソッドを使って頑張ろうかと思っていたら
InplaceEdit には Canvas も Paint もありません。
どうすればよいでしょうか?
0618デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
CT:TCanvas;
DC:HDC;
begin
CT := TCanvas.Create;
DC := GetDC(Button1.Handle);
CT.Handle := DC;
CT.MoveTo(0,0);
CT.LineTo(Button1.Width,Button1.Height);
CT.Free;
end;
0619lily
NGNGでも描画のタイミング(Paint)はどうすれば良いですか。
0620デフォルトの名無しさん
NGNG描画のタイミング?
普通Gridで色々やりたい時はDrawCellでやっちゃうんじゃないの?
0621620
NGNG0622デフォルトの名無しさん
NGNG作成して、
function TCustomGrid.CreateEditor: TInplaceEdit;
を継承して自作のカスタムインプレースエディタを返すようにし、
カスタムインプレースエディタは、TInplaceEdit から継承すればよい。
TInplaceEdit は、T(Custom)MaskEdit から継承しているから、
実態は TEdit だ。
だから、TEdit に罫線を入れる方法を作れば問題は解決する。
0623通りかかった初心者・・・
NGNGGoogleで検索すると全部外国語のもの・・・
0624デフォルトの名無しさん
NGNGISXのヘルプじゃ足りない?
0625デフォルトの名無しさん
NGNGあそこまで単純なインターフェースで、何がわからないのか。
0626Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < わかってる人にはわかるが
U つ \使った事無い奴に分かるわけないです
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
最詳しいかわわからんですが
[Delphiデタベス開発者ガイド]本
[AcidFloor][Magic of Delphi]サイト
あたりが詳しいかとオモワレ
ほな。
0627デフォルトの名無しさん
NGNG---- (^_^)(^_^)(^_^) THE REAL PROGRAMMER (^_^)(^_^)(^_^) ----
0628デフォルトの名無しさん
NGNG使えばいいじゃん。って言うか、これから使うんでしょ?
ダイアログにも全てヘルプボタン付けてるし、ヘルプにも
ちゃんと入門やらシーケンスボタンやらが付いててかなり
丁寧に説明されている。
何度か作ってみれば自然と覚えられるはず。
0629デフォルトの名無しさん
NGNG間違ったからといって、ソースが消えるわけでもなく、
俺もやってみりゃいいだけだと思うけどなぁ。
出張してインストールするのだが1発勝負ってのは
無いだろし。
一応、依存関係とかあったら困るんで、俺はVirtualPC
で一回テストしていると逝ってみるテスト
0630デフォルトの名無しさん
NGNGおすすめの書籍がありますでしょうか?
0631デフォルトの名無しさん
NGNGhttp://www.cbook24.com/
こちらなら送料だけで返品可能
http://www.amazon.co.jp/
0632デフォルトの名無しさん
NGNGありがとうございます。
とりあえず、「基礎からわかる Delphi6」を買ってみようと思います。
Delphiを基礎からやりたいのですが、Web上はなかなかいいとこがなくて。
0633委員長 ◆ABoneCRY
NGNG私はDelphiではないですが、MLに入って、過去ログ検索サイトを
教えてもらうのもいいですよ。
ヘタな参考書より、過去ログを検索した方がズバリな事がかかれてたり
しますから。
0635Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < 基礎Del�Eはいいっすね
U つ∀ \たまたま立ち読みしてきたです
〜ミ ミ ┴
∪''∪
インスコシルドExのUIがD6前とD6とで変化しているなんて
しらなんだよ。
WebBroker入門とか
Webアプリデバッガとその他の形式との切り替え
なんかも載っていて俺も買いたくなったです。
0636デフォルトの名無しさん
NGNG> しらなんだよ。
おれもあれ見てかなりびびった。
相変わらずユーザーに優しくないな>InstallShield
0637デフォルトの名無しさん
NGNGいつまでも古いままの方がよいのか?
0638デフォルトの名無しさん
NGNGいや、msiはむしろ歓迎だが、D6のInstallShield使うと正規版ほしくなる罠
で、正規版買おうかと思ってるんだが、某Editionじゃなくても問題ないのか?
0639デフォルトの名無しさん
NGNGいいとこ、いっぱいあるけどなぁ?オレ、本買ったの1冊だけ。
あとはネットで十分だけど。
感謝してますよー>ネットでdelについて書いてる人
0640デフォルトの名無しさん
NGNG演算で描こうとしました。
OnPaintイベントで描けばいいやと単純に考えてました
ところが、画面に張ったコントロールが少し変化すると画面全体の再描画がおきてしまいます
その為に非常に重くなってしまいました。
描画が必要な場所だけを描くにはBeginPaint した時の TPaintStruct構造体が必要です
これはVCLソースを見ると スタック上に取られて読み出せないようです
といってもWMPaintはPrivateになってるので継承出来ませんよね?
それに、後から再利用しようと思ったので、フォームのOnPaintをフックするだけの
コンポーネントにするつもりでしたから WMPaintは目的に合いません
もしかして、サブクラスによるメッセージフックしかないですか?
0641デフォルトの名無しさん
NGNGDelとメッセージフックは非常に相性悪いよ。
フックのコールバック関数が破棄されたオブジェクトを参照したりとか。
ソースまだ見てないけど、OnPaintを呼び出してるメソッドはオーバーライド出来るんじゃないの?
0642640
NGNGBeginPaintは PaintHandler か WMPaintでされますDoubleBufferd=Trueなら WMPaintです
PaintHandler は protected ですが Virtualではありません
WMPaintはprivateですがメッセージハンドラなので 継承は出来ませんが置き換えは出来る筈です
ですから WMPaint相当のコードを書けばいいみたいではあるんですが・・・うーん
0643デフォルトの名無しさん
NGNGコンポを貼り付けて実現するなら サブクラスしかないと思うよ
とりあえずサブクラスコンポ作るなら2CH式規約を守ろう
http://piza2.2ch.net/tech/kako/999/999482946.html
------------- コピペ -------------------------------------------
935 名前:デフォルトの名無しさん 投稿日:01/09/21 10:39
再度 サブクラス解放についてのまとめ >>コンポーネント作家の方々へ
サブクラスを利用するコンポーネントは以下の手順で解放する事
var WM_DetachProc:Cardinal; をローカル変数として定義し
コンポーネントの初期化部で
initialization
WM_DetachProc := RegisterWindowMessage('WM_SubclassFreeNotify');
end.
とする。
サブクラス解放時にはこのメッセージIDで
WParam,LParam はユニークな値を入れて サブクラス先に送信する
それを受信したWindowProcでは、
この2つの値で送信者が自分かどうか判断し
自分でなければリンクを解放して下位にメッセージを送り
メッセージが帰って来たらリンクを再接続する
送信者が自分ならリンクの解放だけを行う
VCL上のサブクラス取り外し
WParam で selfが渡される WParam = LongInt(self)
LParamは無視してよい サンプルコード >>922
Win上のサブクラス取り外し
LParamでプロセスID
WParamはプロセス内ユニークな値(メソッドアドレス等それぞれのプロセスで管理)
注意: WM_DetachProc は定数ではないので case では使えない ifで判断する事
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNGこんなローカルルール守ってなんの意味がある?
誰も知りません
>Delとメッセージフックは非常に相性悪いよ。
特別に相性のいい開発環境なんてありません
0646デフォルトの名無しさん
NGNG>コンポーネントにするつもりでしたから WMPaintは目的に合いません
>もしかして、サブクラスによるメッセージフックしかないですか?
TLabel は自分を描画するタイミングを知っているし、TPaintBox には
OnPaint イベントがある。結局、TGraphicControl を継承すると、親
の WM_PAINT 相当のメッセージを受け取れるんじゃない?
0647デフォルトの名無しさん
NGNGTCanvas.ClipRect で取得できる
0648640
NGNGありがとうございます 過去ログ追いかけてサンプルコードも見つけました
これにも同じ方法が使われていますね
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1004530597_1/MyDraw.pas
>>644さん
WM_ERASEBKGND は明示的には送っていません
>>645さん
検索したけど他に具体的に提唱してる人もいないようですし、実際、複数のフックコンポを
使った時の解放問題はやっかいそうですから、使ってみようと思います
>>646さん
たとえばTLabelの文字を変更すると ラベルのあった文字の部分が無効になります
その部分だけ描画したいけど、その領域をVCL上で知る方法が無いので困っているのです
現状、全領域を描画するしかないので
>>647さん
ヘルプに書いてあるのを読むとそういうふうに読めるんですが Delphi5はそうなっていません
単にGetClipBoxを呼んでいるだけした。実験してもフォーム全体が得られるだけでした。
0649640
NGNGうーん 困った DoubleBufferd:=trueじゃないとチラツク場所があるんだよなあ
0650デフォルトの名無しさん
NGNGよーわからんがTImage張り付けちゃだめ?
再描画はTImageにまかせると。
0651640
NGNGTImage貼り付けるのも考えたのですが、フォームが最大化されると数Mになるんで
なんかそれだけでそれだけメモリ取るのもどうかなと・・・といってもDoubleBufferd:=Trueなんて
やってたら同じですね (^^;
DoubleBufferd:=Falseにして チラツキを減らすの探して
ControlStyle:=ControlStyle+[csOpaque];
というのを見つけました。
Form.Invalidateされるとダメだけど これでだいぶチラツキが減りました
0652640
NGNG0653デフォルトの名無しさん
NGNG「あれができない」「これができない」
と結構、困るみたいなので、ちゃんと勉強するなら、何か有料バージョンを買ったほうがいいのですか?
たとえばVBなら、ラーニングを買うとひどい目にあうので最初からプロフェッショナル買っとけ、みたいな。
0654デフォルトの名無しさん
NGNGラーニング「買う」ならプロを進める。
けど、Del6Personalはフリーだから、Personalに限界感じてから、
Pro以上に乗り換えても遅くないと思うよ。
0655デフォルトの名無しさん
NGNGとかしないでくれよ!頼むぜ。
つーか、アレはそんだけ出す価値があるのかなぁ?
いまいち、何が凄いのか分からん。
0656デフォルトの名無しさん
NGNGラーニングを買う以外にどうやって手に入れるのですか?
0657656
NGNG0658デフォルトの名無しさん
NGNGパーソナルって、商用アプリ作れないよね。
GPLにもできないよね。
0659デフォルトの名無しさん
NGNGお前何がしたいんだよ。
つかどうせ何もしたくない/できないんだろ。
0660デフォルトの名無しさん
NGNG商用アプリを作れないのは本当。
ソースコードだけのリリースをするなら、GPLでも大丈夫なのではないかと思うけど。ダメ?
0661デフォルトの名無しさん
NGNGあら不思議、安く見える(藁
つーか、買って欲しいならDMに値段書けよ>MS
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG何を言いたいのかわからないが、あるソースコードを GPL として公開することを
禁止するツール/開発環境ってあるのか? MS はやりそうだけど。
そこまでいったらエディタとかはどうなる?
GPL で公開する。ってことは要求されたらソースを公開しなきゃいけないってことで、
ふつーはめんどくさいからソースをつけて公開するのです。
「ソースをくっつけて配布する義務はありません。
0665デフォルトの名無しさん
NGNG「代価を受け取ってはならない」みたいなことを聞いたことがあります。
だから商用に限らず、シェアウェアも駄目です。
まあ、儲けたくなったら、その時にプロフェッショナル版に変えればいいこ
とになっているのですが。
逆に、GPL で提供することは問題ないみたいです。ただ、配布に際して代
価を受け取ってはならない、と。
#実費は問題ないようですが……
0666デフォルトの名無しさん
NGNGそれは GPL の話では?
0667デフォルトの名無しさん
NGNGGPL は販売に関して何も言わないよ。
ただし、購入者が自由に頒布するのを妨げることは出来ない(笑)
その縛りのせいで実際には商売にならないってだけ。
0668デフォルトの名無しさん
NGNG以下のようなコードで回転は成功するのですが、
Heightだけが有効で widthに設定した値は無視されるようです
function SetSizedFont(canvas:TCanvas;xsize,ysize,angle:integer):TObject;
var lf:LOGFONT;
var hFnt:HFont;
var fnt:TSaveFont;
begin
hFnt:=GetCurrentObject(canvas.Handle ,OBJ_FONT );
GetObject(hFnt,SizeOf(lf),@lf);
lf.lfWidth := xsize;
lf.lfHeight := ysize;
lf.lfEscapement := angle;
fnt:=TSaveFont.Create;
fnt.canvas:=canvas;
fnt.Font:= CreateFontIndirect(lf);
fnt.saveFont:= SelectObject(Canvas.Handle , fnt.Font);
Result:=fnt;
end;
////// デストラクタでフォントリソースの解放を復元をさせる///
type TSaveFont=class
public
canvas:TCanvas;
saveFont:HFont;
Font:HFont;
destructor Destroy; override;
end;
destructor TSaveFont.Destroy;
begin
SelectObject(Canvas.Handle , saveFont);DeleteObject(Font);
inherited;
end;
0669668
NGNG0670名無しヘタぐらま ◆B18Bks.Y
NGNG別なテーブルに追加する処理を書いているのですが,
ソース側にメモ型項目が含まれていると
Postを呼び出したところで帰らぬアプリになってしまいます.
Query_Dest.Append;
for iField := 0 to Query_Dest.Fields.Count - 1 do
try
Query_Dest.Fields.Fields[iField].Assign(
Query_Src.FieldByName(Query_Dest.Fields.Fields[iField].FieldName));
except
on EDataBaseError do
; // ソースにないフィールドを参照
end;
Query_Dest.Post; // ここで帰らぬアプリに…
以前は両テーブルのフィールド定義が(名前だけですが)同一だったので
for iField := 0 to aSrcDataSet.Fields.Count - 1 do
Query_Comp2002.Fields.Fields[iField].Assign(
aSrcDataSet.Fields.Fields[iField]);
こんな風にして,不具合も起きませんでした.
ちなみにDelphi5 (Update 1),テーブルはすべてdBASEです.
0671デフォルトの名無しさん
NGNG値をコピーする関数を作った方がいいように思う
つまり型が同じならそのままコピーし
型が違うなら文字列かVariantを経由してコピーするとか
0672Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < 久しぶりにDelコード書けてうれいいや
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
こんな定義を
type
TTextLineBreakStyle = (tlbsLF, tlbsCRLF);
マックも含めて
type
TTextLineBreakStyleMultiPlatform = TTextLineBreakStyle + (tlbsCR);
こんな風に定義したいんですが
列挙型の定義を足し算っつうのはどうすりゃいいでしょうか。
0673デフォルトの名無しさん
NGNGTTextLineBreakStyleMultiPlatform =
(Low(TTextLineBreakStyle)..High(TTextLineBreakStyle), tlbsCR);
でできないかな。
0674Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄
ミ ゚Д゚彡 < >>673サンクス
〃 ミ \_ でも出来ないみたい。
〜OUUづ
ところで、改行コードの相互変換関数を作りました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238
だけど、速さに自信がないので
どなたか高速化してくださいな。
ちょっとでかいサイズのStringから
1文字-例えば#13とかだけ
削除するのって、どうやって高速化すればいいんでしょ?
0675デフォルトの名無しさん
NGNG複数のテキストを1つのファイルに保存したい時は、どうすればいいですか?
1回1つにまとめて、読み込み時に、また分割でできるんでしょうが、
なんか、他に方法ないっすかねぇ???
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678675
NGNG正直、私へのレスだかもわかりませぬ・・・レス早すぎな気もするし、HELPみたら
俺へのレスな気も・・・
>>677
そうなんですけど、便利な関数とかないかなーって・・・
というか、二人様レス感謝なんですが、わかりませんごめんなさい・・・
めちゃくちゃ初心者なんです。
もうちょっと調べますです。
0679Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,ミ,,゚Д゚彡< TMemIniFile
UU""" U U \_______________
0680デフォルトの名無しさん
NGNGもう少し自分で考えなさい!
0681Delフサギコ
NGNG∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < 漏れは素人童貞ですた。
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄
0682Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ ・・・・・・・
ミ,, 彡
ミ ミ
ミ〜,, ミ
∪ ∪
∧,,∧ 怒られた…
,ミ ゚Д゚彡
ミ ∪
ミ〜,, ミ
∪ ∪
0683デフォルトの名無しさん
NGNGものすごく大きい文字列を変換する場合はメモリーが勿体ないから
最初に少し余裕取って、CRLF毎に余裕残を減らすとかすればいいけど
今時のパソコンならこれで十分だろう
function ChangeLineBreakes(const S: String; Style: TTextLineBreakStyleMultiPlatform): String;
const
CR =#$D; //#13
LF =#$A; //#10
crlf:array [TTextLineBreakStyleMultiPlatform] of String=(CR+LF,CR,LF);
var rp,wp,i:Integer;
repstr:string;
label putCRLF;
begin
repstr:=crlf[Style];
rp:=1;
wp:=1;
SetLength(Result,Length(S)*2);
for i:=1 to Length(S) do Result[i]:=#0;
while rp<=Length(S) do begin
case S[rp] of
CR: begin
if not (rp=Length(S)) then
if S[rp+1] =LF then inc(rp);
goto putCRLF;
end;
LF: begin
if not (rp=Length(S)) then
if S[rp+1] =CR then inc(rp);
putCRLF:
for i:=1 to Length(repstr) do Result[wp+i-1]:=repstr[i];
inc(wp,length(repstr));
end;
else begin Result[wp]:=S[rp];inc(wp);end;
end;
inc(rp);
end;
setLength(Result,wp-1);
end;
0684683
NGNGDelギコどこでこんな書き方覚えたんだ?
元のソースは BASIC使いのコードだぞ
0685デフォルトの名無しさん
NGNGフサギコは速度要求という話だったよね?
なら1文字づつ前進させるより、CR, LFを検索して、その前まではブロックコピーとか
したほうが速いかも。
(文字列全体に対して改行文字の割合が低い場合。一般的には当てはまる)
0686デフォルトの名無しさん
NGNGs1=CRLF+'あい'+CRLF+う'+CRLF+CRLF+'えお'+CRLF
s2=LF+'あい'+LF+う'+LF+LF+'えお'+LF
s3=CR+'あい'+CR+う'+CR+CR+'えお'+CR
s4=LF+CR+'あい'+LF+CR+う'+LF+CR+'えお'+CR+LF
ってやって相互に変換しろ。
0687デフォルトの名無しさん
NGNGそれから改行コード変換なんてフルスクラッチで書くな過去ログ漁れ。
0688デフォルトの名無しさん
NGNG0689688
NGNG上記URLの3に、>>685 な書き換えやってみたコードを貼った。
>>683 を書き換えていった結果なのだが、もう不要なlabel宣言が残ってた。
>>687 まあ、頭の体操でいいんじゃない?
0690688
NGNGちなみに最適化とともにコードを単純にするため、テストに現れない仕様変更をしてある。
「改行文字要素が続く間、最初の改行文字と一致する文字の回数だけ新しい改行を出力」
つまり
CR+LF+CR+LF とか LF+CR+LF+CR, CR+CR, LF+LF ならばいずれも改行を2個出力するが
CR+LF+LF というシーケンスが現れた場合、改行を一個しか出力しない。
普通は問題は無いと思うが、改行コードの種類を連続して混在させているソースを扱うのなら(笑)まずいかな。
まあこの部分は他の最適化と独立して調整可能だけどね。
0691下手人
NGNG|_|Д゚) .....
|文|⊂) 速度の話なのに、ベンチ幕すらやらないの
| ̄|∧|
0692683
NGNGでも、元のコードは ソートでいえば挿入ソートをしてるようなもの
ちょっとファイルサイズが大きくなるとファイルサイズの2乗で時間がかかってしまう
それと、考えずに作って不具合見つけては対症療法的に作ったような感じがしたもんだから
XPが好きなら、そういうやり方を排除しないと・・・みたいな
0693Delフサギコ ◆zE1iiRdQ
NGNGミ;゚Д゚彡 BASIC使いのコードとか言われた…
〜ミ,,,,uuミ
でもアリガ�dございます。
そうか。SetLengthで確保しておいて
S[X]で書き換えて最後にSetLength呼ぶと
速いのですね。そかそか。
よい勉強になりました。
>>686
テストもさらっと書き換え(追加し)ておくれYO
>>687
ログで見つからなかったよ?
ログ漁るのより、自分で作った方がマシな
事も多いから検索忘れてたけど。
…Cですか………なんかチョット…敬遠でして…
特に文字列扱いがムズすぎて…
>>688-690
4のコードはPCharとMoveがスゴイっすね
PCharの引き算してこんな事出来るんだ。
CR+LF+LFは改行コード二つがいいかしら。
ちょと改造してみるっす。
サンクスコ
∧ ∧
ミ,,。_。彡
〜ミ,,,,uuミ
>>692
対処療法ってわけではないのですが
そもそも、どこで時間がかかるかを
マッタク考慮していなかったものでして。
そのテのコードを書く経験がそんなにないんですな。俺。
>>691
どうやったらベンチできるかしら。
0694683
NGNG一文字先読みするテクニックを覚えると応用が広いよ
まず、 CR/LF/普通の文字の3つに分けて
表を作ってから
・CRがあれば次がLFなら読み飛ばす
・LFがあれば次がCRなら読み飛ばす
・CRかLFなら改行コードを吐き出す
・普通の文字ならその文字を吐き出す
と4つの条件を並べ書いて状態遷移で書き下す方式でやれば書くのも速くなるし
ベンチの方法は、単純にファイルを読んで改行形式を順に変換して元と一致するか比較して終了する
関数作って、その時間を測ればいいのでは?
0695名無しヘタぐらま ◆B18Bks.Y
NGNG遅レスながら原因?は別なところに….
社長がデータ作っているところで
私がリモートで書き込みしているのがまずかったらしいです.
データ自体も壊れていたのが発覚して気がつきました.
(同一タイムスタンプの実行ファイルでいきなり壊れたので)
アホな結末ですいませんです.
0696下手人
NGNG| ∪ |
| 〜 ../ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ∧ ∧ / 1マソ回ループして前後にGetTickCount
| i ,,゚Д゚) < って常套手段ぢゃないの?
U U \________
var
Tm:WORD;
TmStr:string;
FuncLoop:integer;
begin
Tm := GetTickCount();
for FuncLoop := 0 to 9999 do
begin
{処理}
end;
Tm := GetTickCount() - Tm;
TmStr := Format('%dmsだよもん',[tm]);
MessageBox(0,PChar(TmStr),'べんち幕',MB_OK);
0697デフォルトの名無しさん
NGNGってのが常套手段だ。GetTickCountは誤差大きすぎ。
0698688
NGNGもっと細かい、QueryPerformanceCounter もよく使うね。
最適化のために測るときは、実際に使いたい対象データの性質に合わせたデータを
用意してやらないと、見当違いな最適化する危険があるよね。
>688で書いたやつは、1行がある程度長いときに有利になるように書いた。
テキストファイルを扱うときみたいな。構造としてフォーカスしただけなので、
計測するときはさらに Move をやめて手でループした場合どうか、とか比較してみたり
する必要はあるね。
ちなみに、>683は、短い行が多いデータのときに強そう。
>>693
文字列の a := a + b 形式での順次追加は、大きな文字列相手にやると
ものすごいパフォーマンスヒットになる。Delphiだと安易にやると陥りやすいよね。
最大サイズがあらかじめ分かるのなら先に確保してしまうのは常套句。
分からなくても、別の文字列変数にある程度のサイズになるまで溜めるとかでも効く。
0699下手人
NGNG| 「高分解能パフォーマンスカウンタがある場合」って脅しにしか聞こえませんが
| 普通実装されてると期待して良いの?
| ってかコレ何の事言ってるのさ。マルチメディアタイマじゃ無いの?
\___________ ._________________
______ ∀ ∨
| ┷┳━ ∧,,∧,,,,,,,,,,,,,,,
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|. ┃ ミ ゚Д゚,,彡,,,,,,,, ゙〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄....┻ U U """"UU
0700デフォルトの名無しさん
NGNGクリックとドラッグがそれぞれ出来るようにしたいのですが、
OnMouseUp にクリックイベント内容を書き、
OnMouseDown に BeginDrag(False,4) とすると、
マウスボタンを押した瞬間に OnMouseUp が発生してしまいます。
どうすれば上手く行くでしょうか。
0701デフォルトの名無しさん
NGNG誤差を無くすための1万回ループでしょうが
1回ループのほうが何倍も誤差が大きい
そもそも分解能が高いからそっちのほうが良いだろうというのは単なる盲信
0702デフォルトの名無しさん
NGNGQueryPerformanceCounter なんて持ち出さなくても。
0703デフォルトの名無しさん
NGNG持ち出さなくてもっていうか、別にどれ使ったって大した手間かからないし。
なら一番細かいの使うのが調整しやすいかと。
>701
同意。
0704デフォルトの名無しさん
NGNGマルチタスクOSではその他色んな撹乱要因があるから
何回も手で再実行させたりとかして平均とらないとね。
DOSは測り易かった…
0705下手人
NGNGforよりwhileの方がコンパイル最適化されるよ
とか煽ってみるテスト
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄~.ミ ゚Д゚彡~~ ̄| < もう寝
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0706697
NGNG>見当違いな最適化する危険があるよね。
今回の改行コード変換ルーチンは
前段階として、文字列に対して末尾にしか
改行コードがないように整形・正規化しておくのが一番高速で実装も楽かもね。
>>699
PerformanceCounterは消費したCPUクロック/一秒あたりのクロックで計測する方法で、
今のCPUには必ずついてる機能。動作確認したOSは98/NT/2000/XP。
>>701
実開発ではベンチ専用プロジェクトを起こすことは稀で
# 他クラスに依存してるクラスの単体ベンチなんて
# メソッドひとつ呼ぶのも一苦労
実コード内で計測することが多いので
実行回数を指定することはほとんどないよ。
なので回数が少なくてもいいように最も精度の高いものを選ぶ。
VCみたいにまともなプロファイラついてる
処理系なら選びようがないけど。
>>704
もちろんアプリの種類にもよるけど
ホットスポットは数秒・数十秒消費していることが多いので
他プロセスなどの外部要因があまり大きな影響を及ぼしたことはないよ。
リアルタイムなアプリの場合はプロセスのプライオリティをあげて計測してる。
0707デフォルトの名無しさん
NGNGレス先の番号といいなんか文章変よ
0708デフォルトの名無しさん
NGNGPerformanceCounterの代わりにRDTSCを使えばいいと思う
RDTSCの使い方はWeb検索ですぐ見つかる
0709下手人
NGNG/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|[Delphi-ML:52426] Re: ボタンのドラッグとクリック
| でも見てくださいな>>700
\_______ _______
|/
☆彡 。 ∧,,∧
\ ミ・Д・ミ
⊂ ミつ
"ミ ;'ξ
し
0710683
NGNG1、 Length(S) は const S でも関数に展開される
だから一旦変数に代入して while ループ内の Length(S) を置換する方がいい
2、文字列への Moji[ i ]:= の代入は関数に置換されてしまう
高速化するなら文字列ではなく文字配列かポインタにするといい
ポインタの例は既にあるので、文字配列にする場合の例
type sarray=array[1..$10] of char; //気持ち悪いけどHighは無視されるからOK
var pD:^sarray; と文字配列のポインタと宣言
pD:=@Result[1]; として ループ中の result[wp] を pD^[ wp ] に置換
3、ループ内の for i:=1 to Length(repstr) do Result[wp+i-1]:=repstr[i]; は勿体ない
var repstr:array[0..1]of char; と文字配列にして
Result[wp ]:=repstr[0];
Result[wp+1]:=repstr[1];
inc(wp,repstrLen);
とする。 repstrLen=1の時は無駄なコピーだけど、比較して禁止するにもコードが必要
0711デフォルトの名無しさん
NGNGむしろキャッシュに入ったほうが実質的な速度計測には便利かもね。
周辺要因が「変化する」ことは計測をまどわすので不便だが
安定してくれるのならなんでもいいっちゃいい。
そしてキャッシュは性質上、2回目以降はずっと溜まってるわけなので
キャッシュに入った状態のほうが「安定している」。
(余分なディスクアクセスの時間まで計測してしまうこともないし)
forよりwhileのほうがってのも状況次第だな。
0712683
NGNGoctを準備してる部分がなんかもっさりしてるけど
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=7
0713683
NGNGoC:=char( ord(S[rp]) xor (ord(CR) XOR ord(LF)) );
とやれば octを作らなくてもいいんだ
0714デフォルトの名無しさん
NGNG…マジデスカ。最適化されると思って毎回Length呼んでたよ。鬱死
0715デフォルトの名無しさん
NGNG実際にはこの手の変換は1度限りしかしないのだから
データキャッシュに入らない状態でどれだけのパフォーマンスかを見た方がいい
それ以上に最適化しても無駄。
データバス速度はCPUの実行速度の数10分の1にしかすぎないから
0716デフォルトの名無しさん
NGNGまあ、それもどういう使われ方想定するかによるけど。
一連の流れの中で、「キャッシュ」という言葉が指してるものも複数登場しているようだなあ。
0717683
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=8
0718デフォルトの名無しさん
NGNGなんかインデント変。
>717
かなりごちゃごちゃしてきたね。
ところで、ポインタの大小関係見るのにcardinal castは不要でしょ。
0719688
NGNG>SetLength( Result, Length(S) * 2 );
この2が気に入らないな。速度とは関係ないけど。
SetLength( Result, Length(S) * Length(ReplaceTo) );
がいいかね。
0720Delフサギコ ◆zE1iiRdQ
NGNG| マターリの呪文 ビビデバビデブー♪
\___ _________
∨
♪ ∧,,∧ ♪
ミ,,゚Д゚彡 ♪
ミつ[|lllll]).
〜ミ ミ オレ モ ウプした。
U''U きっとソコソコ速い
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=10
>>719 メモリは対応しました。
やぱりブロックコピーしてる
むこうの>>3のコードが最速なんかな?
なんで>>3のコードの
const S: Stringの
sCurrent: PChar(S);
の終端が#0になるのか、わからんです。
自動でなるの?
0721デフォルトの名無しさん
NGNG自動でなる
0722デフォルトの名無しさん
NGNG>前段階として、文字列に対して末尾にしか
>改行コードがないように整形・正規化しておくのが一番高速で実装も楽かもね。
局所的にちまちま高速化するより、
こっちみたいに大域的な高速化を検討したほうがいいぞ>フサ&all
まさかテキスト全体を一つの文字列として
処理するなんてアフォなことやってないよな?
0723Delフサギコ ◆zE1iiRdQ
NGNG| ゴメン。意味わかんない>>722、サンクスコ>>721そなんだ。
\
 ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ο
♪ ∧,,∧゚ ♪
ミ,,゚Д゚彡 ♪
ミつ[|lllll]).
〜ミ ミ
U''U
0724デフォルトの名無しさん
NGNGここでいう正規化ってのはつまり、一行づつ呼ばれるようにすること?
今は普通、大抵のテキストはメモリに入りきってしまうし
まとめて一括でやってる方式のほうが速かったりしてね。
アフォとは言い切れないんではないか。
入力をstringとしている方式からメモリアドレスとサイズ与えるように変更することで
メモリマップトファイルから読ませたりとかね。
0725下手人
NGNG∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < で、結局どれが一番速いの?
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
0726Delフサギコ ◆zE1iiRdQ
NGNG___ ,,,,,,, _____
ミ。Д。彡
∨゙∨∪ エィ
||| || グチャ
,.__∩__
| ,.:. '.;§, |;
,・. ,.'|_@δ,_|,.': ノ;;つ \
.': ;,・∧,:;。д ミ ;;>,.': ;. ~
_と;・':ζ,,, 。,.':ξ_. A
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
0727Delフサギコ ◆zE1iiRdQ
NGNG\ テケテケ /
___.___. ∀  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
. .| ┷┳━ ∧,,∧,,,,,,,,,,,,,,,
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|... ┃ ミ゚Д゚,,彡,,,,,,,, ゙〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻ U U """"UU
∫ プハー
∧,,∧ ∬ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,-Д-ノ,っ━~ < ・・・
_と~,,, ~,,,ノ_. ∀ \_________
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
AA張りたかっただけとちゃうんかと、小一時間問い詰め......
>>スマソ下手人さん
で、一体誰が速度測ってくれるん?
0728デフォルトの名無しさん
NGNGたかだか一関数にツール並みの汎用性持たせるのは明らかに無駄って事だよ。
変換にこだわるのは変。ブロックコピーも無駄。
各行の頭と末尾(改行コード含まず)を順々に検索する機能だけつけりゃ十分。
後は外部にまかせる。
大体ほんとにこの関数が遅くて困ってる奴がいるのかどうかも謎。
それ以前にこの程度のコードすら満足に書けない厨房の
業務の宿題肩代わりしてやってる奴らもいみふめ。
と支離滅裂に書いてみる。
0729下手人
NGNG| バレタか |
|_______|
||∧,,∧
||,゚д゚,,;彡ベンチ ガンバッテネ>フサ
||⊂ ~ヽ
0730Delフサギコ ◆zE1iiRdQ
NGNG| ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| デンパか? .|
|_______|
∧,,∧||
ミ;,,゚д゚||
〃 ⊃||
業務とか、何言ってんの?
このお方....
もしかしてpcode氏の酒飲み毒舌だったりして。
0731デフォルトの名無しさん
NGNGコントロールがMinSize 以下になった場合にスナップされ、非表示状態になりますよね。
この、「スナップされた状態」で起動するようにしたいのです。
TForm.OnShow で Splitte.Left := 0 にしても上手くいかないし、
Splitte によってサイズ変更されるコントロールの width に 0 を
設定しても上手く行きません。どうすればよいですか。
0732デフォルトの名無しさん
NGNGポインタを進めた方がコードが分かりやすいと思うけどな。
0733口説いてみよー
NGNG俺とえっちしませんか?
0734デフォルトの名無しさん
NGNG突っ込みどころが違うだろ厨房君(w
0735683
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=11
結果はてまえみそですが >>717 が一番高速です
・・・まあ自分のコードが速くなるようにテストしたという見方もあるかもなので皆でテストしてみて
0736683
NGNG先読み・余分書きのテクニックを使うので、ポインタを使うとキャストしたり
abosoluteする必要があるので、余計に読みにくくなります
また、ポインタも配列も今は速度に差は殆どありません。
分岐とメモリへのアクセス回数を減らすのが一番高速になります
0737デフォルトの名無しさん
NGNGんなこたない。特にDelphiでは。
0739デフォルトの名無しさん
NGNG0740683
NGNG今時のCPUだとインデックス演算は並列に実行されるので、
実際にその効果が現れるようにするには
同時に加減算を並列でさせるような事をしないとオモテに現れない筈です。
普通の文字列処理で差を見せるのは逆に難しいでしょう
0741下手人
NGNGミ,,゚Д゚彡< スーパースケーラやパイプを意識するのって別の話題だと思いませんか
ミ,つ ~,つ \
〜ミ ミ
∪''∪
0742デフォルトの名無しさん
NGNGポインタだとレジスタ一つですむから 文字列操作をする場合で読み書きが
複数ある場合は ポインタの方がレジスタ使われて高速になる可能性高し
というか 自分だって >>717のコードでポインタアクセスしてるじゃないか
0743デフォルトの名無しさん
NGNGrp^ を S[rp] に rpを初期値1で終了条件 while rp<=LengthS do
とて実行させたら そっちが速かった・・・・ あれ?
0744デフォルトの名無しさん
NGNG結局配列かポインタかより、キャッシュとかメモリアライメントの方が実行時間に影響する
って事だな・・・・・
0745683
NGNG1割程度の改善はあんまり意味がないと思います。
改善するなら5割程度の効果があるかが目安だと思います
正直、最初のコード以外の差は最大で3倍なので 改行コード変換ルーチンと
してはどれを選んでも大差ないと思います。
最初のコードは 3Kで10倍 10Kで100倍も時間がかかりますから論外ですが
0746デフォルトの名無しさん
NGNGやめた方がいいんでないの?
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGSplitterで隠れるコントロール.Visible := false
で起動すればどうよ?
0749Delフサギコ ◆zE1iiRdQ
NGNG| こっちも手前味噌だゴルァ
\_ ________________
|/
∧,,∧
ミ,,゚Д゚ミy━~~
U ミ
〜ミ ミ
U''U
>>735
func2よりfunc9が遅いのはどうにも理解できん
と思ってしらべたら、俺のfunc9,func10は
わざわざ少メモリにするために改行コード数えてるのね。
そこが遅くなってる。
あっさりと、SetLengthに元文字列2倍確保と
#0で初期化コードを取り除いて計測したら
func10は相当速い。
func10を修正
//現在の文字列長と最高で改行の数だけバイト数増える分をメモリ確保
SourceLength := Length(S);
// ResultMaxLength := SourceLength+CountCRLF(S);
ResultMaxLength := SourceLength * 2;
SetLength(Result, ResultMaxLength);
PResultStr:=@Result[1];
// for j:=1 to ResultMaxLength do PResultStr^[j]:=#0;
FileSize=9639
レス 1 100.00% = 100 / 1.00
レス 2 5.90% = 100 / 16.96
レス 3 3.23% = 100 / 30.99
レス 7 3.15% = 100 / 31.76
レス 8 2.36% = 100 / 42.41
レス 9 3.60% = 100 / 27.78
レス10 1.41% = 100 / 71.09
FileSize=126311
レス 1 100.00% = 100 / 1.00
レス 2 0.21% = 100 / 484.40
レス 3 0.13% = 100 / 778.84
レス 7 0.12% = 100 / 859.28
レス 8 0.10% = 100 / 970.60
レス 9 0.15% = 100 / 675.93
レス10 0.05% = 100 / 1900.63
FileSize=455501
レス 1 100.00% = 100 / 1.00
レス 2 0.07% = 100 / 1419.33
レス 3 0.04% = 100 / 2377.14
レス 7 0.04% = 100 / 2468.09
レス 8 0.03% = 100 / 2925.36
レス 9 0.05% = 100 / 2011.05
レス10 0.02% = 100 / 5014.22
ただーし!
for i:=High(prog) downto Low(prog) do with prog[i] do begin
計測はレス10.9.8.7...の順で行ってるけど。(w
0751デフォルトの名無しさん
NGNGCだとstaticなデータにはポインタより配列が速かったけどローカル変数にはポインタの勝なんだけどなあ・・
0752デフォルトの名無しさん
NGNG400Kで5000倍って事は元のコード単に改行取るのに1分くらいかかってたんじゃないのか?
そりゃベーシッカー扱いされてもしょうがないぞ age
0753Delフサギコ ◆zE1iiRdQ
NGNG~━っミ ゚Д゚彡,, < 遅いコードを書いたら即ベーシッカー扱いかよ
∀._(,,,~ ,,,~⊃_ \_オメデテーナ_______________
━┳┷ |. ,(~ヽ,,,ミ.
┃...| ̄ ̄し'J.  ̄ ̄ ̄
┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄
そんな短絡思考してるからVBや.NETの人にDel厨扱いされるんじゃないの?
文字列のメモリ確保に関するオーバーヘッドの仕組みを
理解していないと、遅いコードを書く事があるってだけでしょ。
というか、元コードのソースぐらい一瞬で理解してよ。
AdjustLineBreakesでCRLFに変換してからCRかLFを削除しているだけじゃん。
その方式の、どこで遅くなっているかを知ってるなんて事は
タンナル1知識。Tipsだよ。
func9,10が速いのは、配列とポインタの区別じゃなくて
(って、モット早くなるかもね)
ループ中に判定する条件判断が俺のは
見ている文字と次の文字がCRなのかLFなのかで
func2の見ている文字と次の文字と次の文字が文字列の最終かどうか
を判断するコードとはIFの数が違うんでないのかな?
あと、誰も突っ込みいれないからアレなんだけど
> ただーし!
> for i:=High(prog) downto Low(prog) do with prog[i] do begin
> 計測はレス10.9.8.7...の順で行ってるけど。(w
フサのよくわからない所でキャッシュが効いているようなので
for i:=Low(prog) to High(prog) do with prog[i] do begin
とすると、最速はfunc8だね。
タンナル1知識とか言ってしまったけど
とりあえず、いろいろやって下さった方>おーる
∧,, ∧
ミ。_。彡 ペコッ
〜ミ,,,U U,,ミ
めちゃ勉強にナタ。アリガトウ。
0754Delフサギコ ◆zE1iiRdQ
NGNG~━っミ ゚Д゚彡,, < 遅いコードを書いたら即ベーシッカー扱いかよ
∀._(,,,~ ,,,~⊃_ \_オメデテーナ_______________
━┳┷ |. ,(~ヽ,,,ミ.
┃...| ̄ ̄し'J.  ̄ ̄ ̄
┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄
そんな短絡思考してるからVBや.NETの人にDel厨扱いされるんじゃないの?
文字列のメモリ確保に関するオーバーヘッドの仕組みを
理解していないと、遅いコードを書く事があるってだけでしょ。
というか、元コードのソースぐらい一瞬で理解してよ。
AdjustLineBreakesでCRLFに変換してからCRかLFを削除しているだけじゃん。
その方式の、どこで遅くなっているかを知ってるなんて事は
タンナル1知識。Tipsだよ。
func9,10が速いのは、配列とポインタの区別じゃなくて
(って、モット早くなるかもね)
ループ中に判定する条件判断が俺のは
見ている文字と次の文字がCRなのかLFなのかで
func2の見ている文字と次の文字と次の文字が文字列の最終かどうか
を判断するコードとはIFの数が違うんでないのかな?
あと、誰も突っ込みいれないからアレなんだけど
> ただーし!
> for i:=High(prog) downto Low(prog) do with prog[i] do begin
> 計測はレス10.9.8.7...の順で行ってるけど。(w
フサのよくわからない所でキャッシュが効いているようなので
for i:=Low(prog) to High(prog) do with prog[i] do begin
とすると、最速はfunc8だね。
タンナル1知識とか言ってしまったけど
とりあえず、いろいろやって下さった方>おーる
∧,, ∧
ミ。_。彡 ペコッ
〜ミ,,,U U,,ミ
めちゃ勉強にナタ。アリガトウ。
0755Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
ミ;゚Д゚彡< あり?
ミ⊃ ⊃ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪ 多重カキコスマソ
0756デフォルトの名無しさん
NGNGちょっと認識が変だぞ
遅かったのは文字列のメモリ確保に関するオーバヘッドじゃなくて
改行コードを見つける都度コピーした点だろうが!
コピーはサイズに比例する時間を消費する
だから改行数*文字列サイズ/2 の時間を食っていたのが根本的な原因
単にメモリ確保だけなら、サイズに比例する時間しか喰わないっての!
0757Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
_ ミ,,゚Д゚彡_< はぁ。。。
.=| |==U==U=| |= \
| |@ミ ミ .| |
| | ∪''∪ | |
| | | |
ピーコするときにメモリ確保するでしょ?
それにかかる消費時間が頭から抜けてた
って事を言いたいんだけなんだけど。
ジヅラの間違い指摘は
わざわざageて言うことなんか?
0758通りすがりの名無しさん
NGNGどうでもいいがどこにレス返してるんだ?
0759デフォルトの名無しさん
NGNGつーかネタは辞スレでやれ
0760Delフサギコ ◆zE1iiRdQ
NGNG┏━━━━━┯━━━━━
┃ |
┃ |
┃ ∩∩
┃ ∧ ∧
┃ ミ,,゚Д゚ミ
┃ ミ ミ ゴメンナチャイ
┃ ミ ミ
┃ ミ ミ
┃ ..U..U
┃
┃ 晒しage
文字列に対して何度もDelete処理がある場合は
バカ正直に何度もDeleteなんてせずに
大きめの値をSetLengthして中身書き換えて
大きさが決まったら
再度SetLengthする方が
全然速いって事ですね。これは結構大切やね。
…知らないだけで糞コードとかベーシッカーとは思わんが。
ここでも、しっかり語られてました。
http://hp.vector.co.jp/authors/VA015850/program/dtips11.html
http://hp.vector.co.jp/authors/VA015850/program/dtips21.html
読んでたけど身についてなかったのねん。
ところでリンク先のコード、日本語に対応してない
気がしるじゃが...
D6にはVB風にマルチバイト文字対応の
ReverseStringってのも標準で付属してて便利かも。
0761下手人
NGNG| アセンブラチューン キボン |
|_________|
. ∧∧ ||
( ゚д゚)||ハァハァ
/ づΦ
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG確かに日本語対応してないね。
日本語未対応と書いておこうか?(笑)
0764デフォルトの名無しさん
NGNGXP対応は、時期的に見てもUPDATE #?で対応して欲しいものだ。
0765デフォルトの名無しさん
NGNGhttp://community.borland.com/article/0,1410,28423,00.html
"We are planning to support the new ComCtrls in the next major release"
つーことで、完全サポートは Delphi7 以降。
上記の文章には、とりあえずサポートするための技術情報(へのリンク)
サポートしている 3rd party コンポーネントの紹介、
XP コントロールの非互換性の問題
などにふれている。
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768683
NGNGアセンブラでやる前に改善できるかどうか調べる必要があります
まず QueryPerformanceCounter の代わりに RDTSCで命令数を数えるようにします
function RDTSC:int64;
asm
DW $310F //RDTSC
end;
cnt0:= RDTSC;
delete(tests,1,1);
write( ( RDTSC-cnt1 ) div ( length(tests) ) );
のようにして 単なるコピーに必要な平均の命令サイクルを調べます。
結果は、現在のコードでも私のパソコンでは改善の余地は無いと出ました
0769デフォルトの名無しさん
NGNG実際にはおきません。各文字列毎に末尾に小さな余裕が残っていて(1〜3文字)
それを使い切るまではメモリ再確保はおきない。
再確保がおきても領域拡大ができる場合はその場で処理。
文字列毎の拡大用バッファを通常の物より大きめにとったライブラリを使うと
大規模文字列を扱うアプリでの高速化ができる。
0770デフォルトの名無しさん
NGNGC5 2000-3-24
D6 2001-7-25
C6 2002-3-19
D7は来年の8月前後か
0771770
NGNG0772デフォルトの名無しさん
NGNGD5 1999- 9-22
C5 2000- 3-24 : 184 日
K1 2001- 5-18 : 420 日
D6 2001- 7-25 : 68 日
K2 2001-12-12 : 140 日
C6 2002- 3-19 : 97 日
Kylix 1 が難産であったことがよくわかる。よくつぶれなかったな。
んで次は
K3 : 2002/8
で、その次が
D7 : 2002/11
遅れても今年末から来年頭かな
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG同一製品になるなら結構かかるんじゃないか?
0775Delフサギコ ◆zE1iiRdQ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡< SetLengthってWideStringに対して
UU""" U U \容量確保はどうするの?
10文字分のWideString領域確保の場合
SetLength(WideStr, 10);
が正しいか
SetLength(WideStr, sizeof(WideChar) * 10);
とするのが正しいか。どっちでしょうか。
多分前者だと思うのですが、よくわかりません。
ご存知でしたら教えてくださいな。
どっち指定してもエラーでないで終わることが多いので
デバグやりにくいーYO
0776デフォルトの名無しさん
NGNGつーか、なんでLength()で確認してみないんだ?
0777名無しヘタぐらま ◆B18Bks.Y
NGNG今調べたら前者みたい.
procedure TForm1.Button1Click(Sender: TObject);
var
ws: WideString;
begin
SetLength(ws, 10);
ShowMessageFmt('wsの長さは%dだぜ', [Length(ws)]);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ws: WideString;
begin
SetLength(ws, sizeof(WideChar) * 10);
ShowMessageFmt('wsの長さは%dだぜ', [Length(ws)]);
end;
前者は10,後者は20でした.
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGKylixもそーなんだが、Delphiの種類増やすよりも、1枚のCDへ
全部入れて欲しいよ。可能なら価格据置でさ。(藁)
銭かかってしょーがねぇ・・・。
Borlandが倒産する前にこっちが逝ってしまう。
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG奇数バージョンごとにアップデートで乗り切ってますが…
0782デフォルトの名無しさん
NGNG0783名無しヘタぐらま ◆B18Bks.Y
NGNGハードの種類が複数になったのでプロパティを追加して
そこを変更するだけでいいようにいいようにしようと考えました.
ハードの種類が増えても元のソースを一切書き換えなくてもいいように,
ハード固有を操るための部分の枠組みを抽象クラスにして,
個々のハードの制御はこの派生クラスで行うようにしました.
(TGraphicとTBitmap, TMetafileみたいなやつですね)
ハードの種類を切り替えるプロパティはクラス参照型にしており,
実際に動作しているのですが,
悩みの種はpublished型にしてもオブジェクトインスペクタに現れないのです.
どうやらクラス参照型をpublishedにすることはできないようです.
しかし,せっかくDelphiを使っているので設計時にも変更できるようにしたいのですが,
どうしたらよいでしょうか.
0784デフォルトの名無しさん
NGNGProに乗り換えた今、正直Personalは使えないっす(´д`)
昔はLearningだっけ?使ってたけどさ。
0785デフォルトの名無しさん
NGNGpublished
Hardware: THardware;
end;
THardware=class(TComponent)
end;
TMyHardware1=class(THardware)
end;
TMyHardware2=class(THardware)
end;
0786デフォルトの名無しさん
NGNG>(TGraphicとTBitmap, TMetafileみたいなやつですね)
TImage がどうやっているか見習ったら?
クラス型は published にできるよ
0787デフォルトの名無しさん
NGNGぜひ紹介してください。
0788デフォルトの名無しさん
NGNGMyBaseのくだらない使い方
MyBaseのいまいましい使い方
MyBaseの優しくて美しい使い方
0789デフォルトの名無しさん
NGNGMyBaseを256倍楽しむ本
間違いだらけのMyBase
MyBaseについて語ろうか(秋元康)
塀の中のMyBase
一杯のMyBase
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGMyBaseで嫌なことがあったの?
0792デフォルトの名無しさん
NGNGご想像通りペガサス級です。
0793デフォルトの名無しさん
NGNG前から探してるんだけどないんだよなー。
データベース全般に関してはDelフサがよく挙げる本
(データベース開発者なんちゃら)がいいと思う。
で、MyBaseに関してはそんなに面倒な話ではないと思うが。
XMLベースのParadoxだと思えばいいくらいなんでないかい?
イメージ的にはTDataSet + TStringListくらいかな?
0794デフォルトの名無しさん
NGNG0795名無しヘタぐらま ◆B18Bks.Y
NGNGクラス型(オブジェクト)ではなくクラス参照型のプロパティにしたかったのです.
確かに言語ガイドを見てもクラス参照型がpublishedプロパティにできるとは
書いていませんのでこれはあきらめて,
クラス参照の代わりにクラス名を文字列で持つようにしてみました.
これでうまくいきました.
新しく定義したクラスを書いているユニットをusesに入れなくてもよいので
かえって良くなった感じです.
0796デフォルトの名無しさん
NGNG珍妙なインタフェースだなぁ
ほんとにそんなことする必要あるの?
まあTTable.DataBaseNameがあるから
空前にして絶後な珍妙さではないが。
0797Delフサギコ ◆zE1iiRdQ
NGNGどうも、お久です。
とりあえず、クラス参照はだめなんでせうか?
http://www.wwlnk.com/boheme/delphi/tips/tec1290.htm
それにしても、そういう場合は
設計を見直して各機器のクラスを持たすのではなくて
TMyHardware1のインスタンスを持たすべきかと思われ。
DelphiのダイアログページもUMLのクラス図っぽいけど
クラスについて記述するのではなくて
インスタンスについて記述する方法だし、実際のプログラミングでは
そちらの方がよっぽど分かりやすいんじゃないかしら。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ 春ですなマターリ
ミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0798Delフサギコ ◆zE1iiRdQ
NGNGDelphiに取り込むのって
タイプライブラリの取り込みで
dclusr60.bplとかいうのを作ってみて
動作させてみたんですが
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < これでよかったのかな。
ミ つ日 \___________
〜ミ,,,,,, ,,ミ
EarlyBindingとかLateBindingとか
考えなくてもええんかしら?
0799デフォルトの名無しさん
NGNG>ハードの種類を切り替えるプロパティはクラス参照型にしており
こういう場合は、ハードの種類に対応した列挙型を定義して、
その型のプロパティーにすると思うんだが
0800787
NGNGレスありがとうございます。
でもMyBase関連本はやっぱり無いですか・・・
私の見方が悪いのか、マニュアルにもほとんど記述が無いし。
初心者なので、どうしたらいいのかさっぱりです。
他の方はどうされています? それとも使っては無いのでしょうか・・・
0801デフォルトの名無しさん
NGNG>>797 にあるように個々のハードウェアのインスタンスを参照するのが
もっともよくあるパターンだろうと思うよ
クラス参照を保持するということはハードウェア操作クラスである TMyCompo
がハードウェアクラスのインスタンスを自由に生成できるということだ
が、ハードウェアクラスのインスタンスを動的に多数生成する必要が本
当にあるのかどうかという点が重要かもね、ないと思うんだけど。
仮にあったとしても、ハードウェアクラスのインスタンスを生成する
ファクトリークラスのインスタンスを保持するようにすると良いので
はないかな。
0802デフォルトの名無しさん
NGNG起動時から、そっち側に固定する方法ってあるの?
0803デフォルトの名無しさん
NGNGIDEの話なら最大化しないで移動しとけば位置を記憶しておいてくれる。
フォームの話ならDefaultMonitor, Positionプロパティを指定。
0804デフォルトの名無しさん
NGNGいや駄目です。プライマリ側に固定されてしまいます。
なにかレジストリいじる方法でも良いから手が無いのでしょうかねー
0805名無しヘタぐらま ◆B18Bks.Y
NGNG大事なことを説明し忘れていたのですが
『一つのアプリで制御するハードは一つ』
『プログラム中でパラメータは常に一定』
なのです.
ハードといっても制御系のプログラムでは全然なくて
プロテクトキー(不正使用防止の装置)なのです.
もともと他の人が作ったコンポで主要アプリに使っているので
互換性を捨てるわけには行かず,
またコンポを呼び出す側でハードウェアクラスのインスタンスを作るコードを書くのは
びゅーりほーな解決策とは思えませんで.
で,私が書いたコードを詳しく書くと
・制御コンポのユニットにハードウェアクラス(参照)のリストがあります.
(クラス参照型プロパティにしていたときに使っていなかった(←アホ))
・ハードウェアクラスを追加した場合はこのリストにクラス参照を追加します.
・制御コンポのハードウェアを識別するプロパティ(文字列型)に代入すると
・もとのハードウェアオブジェクトがあれば破棄
・クラスのリストからこの名前のクラス参照を検索する.
・見つかったらそのクラス参照のCreateでハードウェアオブジェクトを生成
ということをやってます.
『オブジェクト指向における(中略)デザインパターン・改訂版』の
Factory Method パターンを読んでみたのですが,
なんとなく『factory methodをパラメータ化する』と次のSmalltalkでの実装例に
似ているような気がしないでもないです.
クラス名の代わりにクラス識別子(ハードウェア識別子)として
数値や文字列を使うようにすればもっとスマートになりそうです.
これなら同じハード用のクラスを別なクラスで差し替えたりもできますからね.
0806デフォルトの名無しさん
NGNG意味無いけど。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=13&fi=no
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG> mov ah,[ebx]
> cmp eax,$0a0d
これって巧い方法だけど、パーシャルレジスタストールとかにかかるんじゃなかったっけ?
0809デフォルトの名無しさん
NGNG∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< 人を小馬鹿にしてますね。
( ) \_____
| | |
(__)_)
0810806
NGNG試してないけど大して変わらんと思うよ。
>808
面倒だったからパイプラインとかストールは無視してたよ。
movzx ax,[ebx-1]
に書き換えればOKかな?
0811デフォルトの名無しさん
NGNGうーん ギコ猫の仕様とは一致しないようだね
速度も残念ながらの結果か
でもサイズだけはメリットがある
0812名無しヘタぐらま ◆B18Bks.Y
NGNGヽ(`Д´)ノ "サイショカラ ソウ セツメイシロ!" トイウコトデシタラ オワビシマス!!
( ) ウワァァン!!
/ ヽ
ソレトモ、 ベツノコト?
0813デフォルトの名無しさん
NGNG∧_∧ / ̄ ̄ ̄ ̄ ̄
( ・∀・)< オマエモナー
( ) \_____
| | |
(__)_)
0814806
NGNGギコ猫仕様って間違った改行コード(LFCR)も認識するということかな?
というわけで直して見たよ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&res=14
間違っていたらすまん。
0815デフォルトの名無しさん
NGNGBDEを使わずDBが組めるとの触れ込みでD6買ったけど
漏れもよく分からず困ってる。
誰か知らない?
0816デフォルトの名無しさん
NGNGDLL内でどう処理しょりしたものか・・・。
1)戻り値で返す
2)GetLastError の様なものを使う
3)DLL内でエラーメッセージを出し、EXEへは連絡しない。
等々
どんなのがいいのでしょうか?
0817デフォルトの名無しさん
NGNG1が無難では
0818デフォルトの名無しさん
NGNG行く、というパターンがあるよね。明らかに本来知りたいことを
一般化できなくて失敗した質問をしてしまったときと、
かなり意図的に回答者を誘導しようという意思が見え隠れしている
時もある
どちらも、質問の前提条件を小出しにすることには変わりなく、
結果的に回答者を小馬鹿にすることになる
こういうのを見ると、こいつには二度と回答を書くまい、と
思う
0819デフォルトの名無しさん
NGNGそんなにお作法ゴッコがしたいんならML逝け
0820デフォルトの名無しさん
NGNGおまえはあっち逝け
0821デフォルトの名無しさん
NGNGオレんとこへ来い。
0822デフォルトの名無しさん
NGNGうー3だけ、はイヤだが、設定によってはDLLからエラーダイアログとか
出してくれる、というのだと楽なこともある(例:GOGO.DLL)
2は結局ラッパ作ってしまうので面倒。1がイイ。
0823デフォルトの名無しさん
NGNG805は、回答者に、すまん、とか、ありがと、の一言を加える
べきだったとオモフ
一方的に、しかも長々と条件を追加してるだけだからなぁ
(しかも、自己解決してるみたいだし)
お作法ごっこじゃないぞ。匿名でも、どこかに最低まもるべき
ことがあると思うんだよ
0824デフォルトの名無しさん
NGNGアフォをアフォととがめる奴はより異常にアフォなんだよ
いちいちレス付けんなよ
つーか投げーんだよ
無視するか市ねヴォケの一行にしとけ
0825816
NGNGうーむ、
2)GetLastErrorなら、戻り値をTrue/Falseで比較できてわかりやすいんですよね。
でも、1)と同じで戻り値の定義が面倒・・・。
3)はエラーダイアログが金太郎飴化する危険性がある。
3)なら手っ取り早く詳しいエラーメッセージを出せるんですけどね・・・。
>>818
そういう場合は質問で返せばいい。
0827816
NGNGしかるべき時にEXE側でそのメッセージをダイアログで表示する。
がいいかな・・・。
う〜ん
0828デフォルトの名無しさん
NGNG3の問題点はユーザーに勝手にエラーを伝えてしまうこと。
呼び出し側でエラーを表示しないでリカバリ・終了しようと思っても
できなくなってしまい、使い方が限定されてしまう。
ライブラリはエラーを呼び出し側に伝えるだけで、
エラーの処理方法は(その都度)呼び出し側が決める。が鉄則。
例外処理機構もこれにのっとってるでしょ。
0829デフォルトの名無しさん
NGNG質問の意味が分からないので無視。
0830デフォルトの名無しさん
NGNG1)なんだけど、エラーが発生したとき返ってくるエラーコードから、
適当なエラーメッセージ文字列に変換する関数をDLLで用意されてると
助かるなぁ・・・
function ErrCodeToErrStr(err:Integer):PChar;
みたいなのね。
0831名無しヘタぐらま ◆B18Bks.Y
NGNGうう,そういえばお礼の言葉,何も書いてない.最低だよ(T_T.
今更ながら785さん786さん796さんDelフサギコさんありがとう.
809さんごめんなさい.
そして本来なら私が824さんのおっしゃるような仕打ちを受けてもおかしくないところを
私の失敗点を指摘してくださった818さんと823さん,ありがとう.
0832名無し~3.EXE
NGNGftp://ftp.borland.co.jp/pub/delphi/delphi6update2.exe
D6についてるIndy8はめっちゃバグ多くてアレなので,英語版ではUP2で
Indy9.02bに置き換えてるのに,日本語版ではしてくれないのね。
0833デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/delphi/readme_61.txt
↑このくらい自分で調べたら〜?
http://www.borland.co.jp/delphi/readme_62.txt
の間違い・・・
0838デフォルトの名無しさん
NGNGIndyは9でも日本語関係はほとんどテストしてないと思われ
あんまりソースが変わっていない
0839デフォルトの名無しさん
NGNGいま手元にDelないんで未確認だが
とりあえずサンプルついてたはずなんでそれを見てみれば程度わかる(と思う)
>>793にも書いたが、単独で使う分にはXMLフォーマットのParadox
ってくらいの操作感だった。
わかりやすいのはdbExpressでRDBMSに接続して、TSQLClientDataSetで
SaveToFile?してみるとか。
そのあとRDBMSと切り離してLoadFormFile?すると簡単にブリーフケースモデル
みたいなものが出来上がる。
前にTDataSet + TStringListって挙げたが、
CacheUpdateのローカルデータが保存可能なTDataSetってほうがわかりやすいかな。
使って見ればだいたいわかるYO!
0840833
NGNGもちろんそこは読んでますよ。知りたいのはその詳細。
UP1のときは D601FIXES.html に書いてあったけど、UP2にはそれがなかったので。
( readme_62.txt には D602FIXES.html に詳細が書いてあると記述されているのに )
0841デフォルトの名無しさん
NGNGしてない。してない。
自分で Indy インストールしたでしょ。
0842デフォルトの名無しさん
NGNGまたうん十メガダウンロードするわけにもいかないし。
Web で公開。ってところか。
0843デフォルトの名無しさん
NGNGとりあえず、ボーランドにクレームのメール送っときました。
0845デフォルトの名無しさん
NGNG特にRAD周りの比較お願い。
0846デフォルトの名無しさん
NGNGVisual Studio .net スレから拾ってみたよ
954 :神 :02/03/22 21:08
やっぱC#いいわ。
しかも冗談じゃなく、VBにどっぷり漬かった奴には理解できないと思った。
C++やったことあるなら楽勝。VBの経験もほんのちょっとあったら操作方法には馴染むからいいかもね。
24 :デフォルトの名無しさん :02/03/22 21:30
Windows2000で Delphi先にインストールしてて VS.NET 入れた人
Delphiの動きに支障は無かったですか?
56 :24 :02/03/22 23:26
>>54 ありがとう 大丈夫。インストール終ったみたい。
心配だったDelphiへの影響も今のところ出ていない。
C#は ホント 見た目Delphi+VBって感じでマニュアル見なくてもGUI部は触れるみたい
でもコンパイル速度滅茶苦茶速いというのは話半分だったみたい。
BCBよりは速いけどDelphiよりも速いとは思わないな
それとIDEから実行したらコントロールがひとつづつ表示されるのが見えるくらい遅い
まるでJAVAみたい。 直接実行したらそうでもない所みたら IDEが重すぎてスワップしまくりなんだろなあ
122 :デフォルトの名無しさん :02/03/23 13:42
なんだ C#って2Wayツールじゃないのかよ!
結局Delphiを真似てDelphiを越えてないじゃないか
0847845
NGNGありがと。
>BCBよりは速いけどDelphiよりも速いとは思わないな
コンパイル速度はこれで十分かも。
>なんだ C#って2Wayツールじゃないのかよ!
2Wayじゃないのは特許関連で縛りでも入ってるのかな。
でもあんまり重要でもないような。そうでもない?
0848デフォルトの名無しさん
NGNG>でもあんまり重要でもないような。そうでもない?
2Wayは特許だったかも
(普段あまりにも当たり前に使ってて
どの辺が2Wayなのか実は把握しきれてなかったりする・・・恥
コンポーネント名を変えると
ソースのイベントハンドラが自動的に書き換わるあたりかな?
VBはそれができてないはずだから)
DelがDBの中身を設計中も表示してくれるのは有難いと思うけど
C#はだめなのかな
0849Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,ミ;゚Д゚彡< ・・・・・
UU""" U U \_______________
俺は2Wayってのは
Button1をClipboardにコピしたら
テキストでペストできる機能の事とばかり思ってた
んだけど。間違ってたろうかしら。
0850デフォルトの名無しさん
NGNGおもっきり間違っています
0851デフォルトの名無しさん
NGNGいろいろやってみましたが、やっぱりダメです。
詳しく書くと、メニューウィンドやフォームはセカンダリ側に指定できるのだが
オブジェクトインスペクタなどは、欲しい位置に移動しても
コンパイル・実行し終了させると、プライマリー側に戻ってしまいます。
誰かマルチディスプレイ環境で使用してませんか?
0852デフォルトの名無しさん
NGNG--------------------------------------------------------------------------------
Delphiの統合開発環境には、迅速なアプリケーション開発を実現するビジュアル開発と、
きめ細かい処理を記述するためのソースコード開発を密接に連携させる2Way-Toolという
機能が組み込まれています。
2Way-Toolでは、ビジュアル環境で開発した内容をソースコードに展開するだけでなく、
ソースコードで入力したプログラムの内容をビジュアル開発で利用したり、
ビジュアル開発とソースコード開発の双方向でコンポーネントやフォームを
カットアンドペーストすることもできます。
2Way-Toolにより、開発者はいつでもビジュアル開発に対応するソースコードに
アクセスできるため、ビジュアル開発の制約について心配する必要はありません。
0853デフォルトの名無しさん
NGNGあるモードではMyLogに変更あり次第Memo1.Linesに同じ情報を書き込まないといけない。
毎回deep copyするのも無駄なのでMemo1.LinesのインスタンスをMyLogにしたい。
でもMyLogはMemo1などのコンポに依存したくない。(間接的にもMyLog := Memo1.Linesはしたくない)
こんなの無理?
0854デフォルトの名無しさん
NGNG知らんかった→テキストでペーストできる。
0855Delフサギコ ◆zE1iiRdQ
NGNG,,,,,,,,,,,,,∧,,∧ /ログ書き出し関数の引数をTStringsにして
〜′,,,,,,,ミ,,゚Д゚彡< MyLogを渡したりMemo1.Linesを渡したりして
UU""" U U \よし
0856名無しヘタぐらま ◆B18Bks.Y
NGNGメモコンポの代わりにリストビューコンポを使い,
オーナーデータ機能を使ったらうまくいくかも.
以下,MyLog が TForm1 のフィールド変数だという前提で
この内容をリストビューコンポに表示させるサンプルです.
(当方のDelphi5で動作確認しました)
リストビューコンポを置いてこれの
・OwnerData を True に
・ViewStyle を vsReport に
・ShowColumnHeaders を False に
またカラムエディタを起動して(リストビューコンポを右クリック→カラムの設定)
カラムを1個だけ追加します(カラムエディタの追加ボタン)
あとボタンを1個置いてください.
// リストビューコンポがある項目のデータを要求したときの応答
procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
begin
Item.Caption := MyLog[Item.Index];
end;
// MyLogの内容が変わったときの応答
procedure TForm1.MyLogChange(Sender: TObject);
begin
// リストビューに項目数を教える
ListView1.Items.count := MyLog.Count;
// 再描画命令
ListView1.Invalidate;
// 一番下の項目が見えるようにする.
if ListView1.VisibleRowCount < ListView1.Items.count then
ListView1.Items[ListView1.Items.count - 1].MakeVisible(True);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyLog := TStringList.Create;
MyLog.OnChange := MyLogChange;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MyLog.Free;
end;
// ボタンが押された→MyLogに項目を追加
procedure TForm1.Button1Click(Sender: TObject);
begin
MyLog.Add(FormatDateTime('hh:mm:ss', Now));
end;
まだ工夫の余地があると思いますが何かのヒントにでもなれば.
0857デフォルトの名無しさん
NGNG「デスクトップ位置の保存」(だっけ?)ではダメれすか。
0858デフォルトの名無しさん
NGNGはい、ダメです。
メニューウィンドウはいけますが、書いたようにオブジェクト…は元に戻ります。
0859初心者
NGNG0860デフォルトの名無しさん
NGNGproperty Zeikomi: Integer read GetZeikomi;
function foo.GetZeikomi: Integer;
begin
Result := Trunc( Zeinuki * 1.05 );
end;
みたいに直接値を持たずに他のプロパティから計算して求められる場合もあるし。
0861デフォルトの名無しさん
NGNGプロパティはそれ自体は値ではない。
変数・関数の代表・象徴(?)みたいなもの。
仮想変数とでも言うべきか。
0863デフォルトの名無しさん
NGNGキタ━━━━━━(゚∀゚)━━━━━━ !!
0864デフォルトの名無しさん
NGNGアドレスワスレタ━━━━━━(゚∀゚)━━━━━━ !!
0865デフォルトの名無しさん
NGNGStoredProcedureなら実行できるけど・・・・ なにか見落としているのかなぁ
0866デフォルトの名無しさん
NGNG振る舞い・構造に関するパターンのがよっぽど役に立つよ
0867デフォルトの名無しさん
NGNGとサンプルコードで雰囲気掴めるでしょ。
http://www.delphi-jedi.org/Jedi:VOYPATTERNS
0868デフォルトの名無しさん
NGNG列挙型の各タイプについて処理をしたい訳なのですよ。
で、ループで処理すると楽なので、型の最大値を整数型(ByteとかIntegerとか)で
手に入れる方法を教えてくださいな。
例えば>673あたりに出てくるTTextLineBreakStyleMultiPlatformを例にすると、
High(TTextLineBreakStyleMultiPlatform);
でもだめぽ、
High([Ord(tlbsmpCRLF)..Ord(tlbsmpLF)]);
でもだめぽ
ヘルプ見てもよくわ
頼みの綱のGoogleでもよくわ…
というわけでボス助けて!
0869デフォルトの名無しさん
NGNGOrd(High(TTextLineBreakStyleMultiPlatform))では?
0870デフォルトの名無しさん
NGNGいろいろ試してダメで、藁をもすがる思いでやったので…
>Ord(High(TTextLineBreakStyleMultiPlatform))では?
あれ、さっきそれでやったら型の互換性がないと怒られたんだけど、
今やったら成功した(;´Д`)
Typoだったのか…? 宇津氏
なにはともあれサンクスコ!
0871デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/delphi/del6up.html#del6up2
0872デフォルトの名無しさん
NGNG>※お詫び 本アップデートにて、修正点(英文)を記載したファイルがインストールされません。
>お手数ですが D602FIXES.html をご参照ください。また、Professional 版および Enterprise 版
>ではアップデートの際にソースコードの一部がインストールされません。この問題に対処する
>ため、delphi6update2.exe を実行後に、delphi6update2profix.exe または delphi6update2entfix.exe
>を実行してください。
だそうだ
0873デフォルトの名無しさん
NGNGうぉぉいまじかよthanx
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGFixの方はインストールのチェックしてないのか?
もしかして誰でもそーすもらえるのけ
0876Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ ∬ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,-Д-ノ,っ━~ < また、Updateの修正版か...
_と~,,, ~,,,ノ_. ∀ \_________
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
毎度のことなので、Updateが出ても
しばらくは様子見するのがいいのかな。
0877名無しヘタぐらま ◆B18Bks.Y
NGNG列挙型は数に変換しなくてもそのまま for 文で使えますよん.
var
e := TTextLineBreakStyleMultiPlatform;
で,
for e := Low(TTextLineBreakStyleMultiPlatform) to High(TTextLineBreakStyleMultiPlatform) do
または
for e := Low(e) to High(e) do
// 以下,蛇足.
type
TDayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
const
cDayOfWeekNames: array [TDayOfWeek] := (
'日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日');
procedure TForm1.Button1Click(Sender: TObject);
var
e: TDayOfWeek;
begin
// 各々の曜日について
for e := Low(TDayOfWeek) to High(TDayOfWeek) do
case e of
Sunday:
s := '日曜日に市場に出かけ 糸と麻を買ってきた';
Thursday:
s := '木曜にバラを買い,手紙を添えた';
else
s := format('%sは深夜まで働いてた', [cDayOfWeekNames[e]]);
end;
ShowMessage(s);
end;
end;
0878デフォルトの名無しさん
NGNGこ
の
ペ
|
ジ
は
最
新
の
J
a
v
a
S
c
r
i
p
t
を
使
え
る
ブ
ラ
ウ
ザ
で
ご
覧
下
さ
い
。
このページは最新の JavaScript を使えるブラウザでご覧下さい。
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGvar c:Char;
npos:Integer;
function getc:Char;
begin
pos:=npos;
if pos>length(str) then c:=#0 else begin c:=str[pos];npos:=pos+1;end;
Result:=c;
end;
var s:string;
procedure hex;
begin
s:='$';
if not (getc in ['0'..'9' , 'A'..'F' , 'a'..'f'] ) then abort;
repeat s:=s+c until not (getc in['0'..'9' , 'A'..'F' , 'a'..'f']);
val:=StrToInt(s);
end;
procedure bin;
var dt:Integer;
begin
dt:=0;
if not (getc in ['0'..'1' ] ) then abort;
repeat dt:=dt*2+(ord(c)-ord('0')); until not (getc in['0'..'1' ]);
val:=dt;
end;
label nxt;
begin
npos:=pos;
Result:=true;
try
case getc of
'0':case getc of
'X','x':hex;
'B','b':bin;
else goto nxt;//func(0);
end;
'$':hex;
'1'..'9': begin
nxt: s:=c;
while getc in['0'..'9'] do s:=s+c;
val:=StrToInt(s);
end;
else Result:=false;
end;
except Result:=false;end;
end;
0883882
NGNG数字フィールドを切り出すルーチンを作ってる所です
>>882 はその途中なんですが
目標仕様は
引数 str の posからの文字が数値なら帰り値=trueでvalで値を返す
またposは数値であった最後の文字の次の位置を示す
10進以外に
16進数 $FF 0xFF 0FFH
2進数 0b1010 1010B
というものなんですが、 $FF 0xFF 0b1010 プリフィックス式は対応してるのですが
0FFH 1010B のようなpostfixにも巧く対応させる良いアイデアが浮かびません
難しそうなのは 01B23H のような感じの場合なんです
0884デフォルトの名無しさん
NGNG0885882
NGNG0886デフォルトの名無しさん
NGNG0887882
NGNG1、 postfix式16進数かどうか調べる
2、 postfix式2進数かどうか調べる
3、>>882を
という方法でいけそう
なんか格好悪いけど これでいいや
0888デフォルトの名無しさん
NGNGまず、IntNumber() と言う、わけわからん名前を何とかしろ。
話はそれからだ。
0891Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧
,ミ ゚Д゚彡 ・・・・・アオラレマセンヨウニャ
ミ ∪
ミ〜,, ミ
∪ ∪
画像Aと画像Bとが≒かどうかを判定するルーチンって
みなさま、どないしてお書きなさるのでござましょう。
アイデアからして、サパーリなので、教えてクスコ
ちょっと考えたのは
画像からランダムに点を取得して
その色がほとんど近いものならば一致と判断して
点がいくつ一致するかで、大体AとBが似ていると
判断させるとかかな。
一応、画像A,Bは同じ大きさとして考えてます。
0892デフォルトの名無しさん
NGNG2つのTImageに表示させ、「同じ」「違う」のボタンをおいて、
ユーザに判断させる。
0893デフォルトの名無しさん
NGNGどのくらいいるのかなぁ?オレの知る中でフリーなのは一つしかないなぁ。
シェアならあるのかなぁ?)
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNGもうちょい真面目に。
ObjectBinaryToTextでテキストにして文字列比較。
遅いだろうけど。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG??
0898デフォルトの名無しさん
NGNG二つの画像は近いといえるの?
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG2つの画像の中の図形のずれが≒なのか、
2つの画像の色相や彩度などの違いが≒なのか、
それとも他の≒なのか。
つまり>>894に同意。
0901900
NGNG0902デフォルトの名無しさん
NGNG近ければ、近いと判断する。
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG|_|Д゚)ニューラルネットワーク 画像 判定
|文|⊂)モザイク 画像 判定
| ̄|∧|ガムバレ
0905デフォルトの名無しさん
NGNGたとえば、モンタージュと顔の写真を比較して、
同一人物かどうか調べるとか。
警察庁はそういうシステムつかってるのかな?
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGよく知らないけど。
0908デフォルトの名無しさん
NGNG人物の顔は特定の位置、目、鼻など決まった箇所で
点を取ってその点と点における距離の比率で割り出す方法が
どこぞの国では実用化されている
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/prog/1017676738/22-
0911デフォルトの名無しさん
NGNGちょっと諸先輩方にお尋ねしたいことがあります。
あるデータをリスト管理したいのですが、
管理方法がこれであってるかどうか分からないのでご教授願いたいです。
データ(この場合レコードになるかもしれませんが)とは、
複数のデータを一まとめにしたもので、型付きファイル(レコード)なのです。
自分の中で今のところ最善な(と思っている)のは、
データ一塊をクラスとして実装して、それをTObjectListクラス(?)で管理する方法なのですが、
この方法であっているのか、また、
他の方は同じ様な事をどのような形で管理されているのか知りたいです。
書籍やネットで、自分なりに頑張って調べたのですが、
やはり『これでOK』というやり方が分からなかったもので、
すいませんがよろしくお願いいたします。
環境:WindowsMe,Delphi 6 personal
至らない点があったら指摘もお願いします。
0912Delフサギコ ◆zE1iiRdQ
NGNG画像に変化があったら
ScreenShotを取ろうと思うの。
だってインストール時に
いろんな設定を覚えるために
いちいちボタン押してキャプチャするのが
面倒なので.
画像の違いによって比較するアプローチはいろいろ
あるみたいですね。
レスくれたかた、ありがとっす。
zzzZZZZ
∧,,∧ ゴメンとりあえず今日はもう
| ̄ ̄ミ,,-Д-ミ ̄| ねるです。
|\⌒⌒⌒⌒⌒⌒\
| \ \
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGTObjectListで問題無し。
0915911
NGNGおぉ!さっそくのレスさんくすです。
うぅん。TObjectListであってますか!
ふむふむ分かりました、早速その線で考えたいと思います。
ありがとうでした。
他にも意見があったらお願いします。
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNGまるでそれが存在しないかのように扱うようにしたいんですが、こういう場合
はメールソフトが違うと同じ方法ではダメですよね?
どうしたらいいでしょう?
0918デフォルトの名無しさん
NGNG全体的に文意がワケワカメなのでリテイク!
0919デフォルトの名無しさん
NGNG普通のメーラなら振り分けとかあるでしょ。
振り分けすらも無いメーラは使わなければいい。
それか、どうやっているかは分からんが、ノートンウンチウィルス2002は
メールの送受信を横取りしてウィルスのチェックをしている。
それと同じことをやればいいんじゃないのかな。
0920戸田
NGNG0921りんね
NGNG0922デフォルトの名無しさん
NGNGPOP3でヘッダの送信元見て削除できませんか?
過去ログからPOP3、ヘッダで検索してみてください。
外していたらゴメンなさい。m(_~_)m
---- (^_^)(^_^)(^_^) THE REAL PROGRAMMER (^_^)(^_^)(^_^) ----
At the beach, The Real Programmer is the one drawing flowcharts in the sand.
戸田 英夫 mailto:[email protected];[email protected]
0923デフォルトの名無しさん
NGNG不覚にもワロタ
しかし署名の丸ごとコピペはいかがなものか。
0924デフォルトの名無しさん
NGNGこんにちは、宮本です。
|
なお、高岡さんの言われているコンポーネントは、
別途にインストールが必要ですので、難しいでしょう。
これらのコンポーネントは、世界中のプログラマが
無償で開発している、プログラミング支援の一環です。
[Delphi:66177]
こんにちは、宮本です。
|
!! さすが中村さん、しかし、コンポーネント化
までするとは... (^^
Anan さん、良かったですね。
--
setup.exe をダブルクリックするだけでインストールできるコンポーネントを
紹介した場合は、「難しい」からダメで、自分でユニットの生成からインストー
ルまでしないといけない上に、低機能で誰もまだテストすらしてないコンポー
ネントを中村が書いたら「良かった」になるとはすごいね。
ところでオチスレはどうなったのよ?
0925デフォルトの名無しさん
NGNG2ちゃんねるにメールアドレスを
晒しちゃまずいんじゃ・・・。
スパムとかウィルスとか届かなきゃいいけど。
0926デフォルトの名無しさん
NGNG当人では?
0927デフォルトの名無しさん
NGNGあれが本人だったら名前を名無しじゃなくて、
実名にして欲しかったなとか思ったり。
0928Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡
UU"""" U U
彼は晒しageなキャラクタだよね。
>>924
禿同
さらに、
D&DコンポもIndyと同じように、VCLに取り込んで欲しい。
C#もD&D標準なんだし。
0929デフォルトの名無しさん
NGNG>彼は晒しageなキャラクタだよね。
しかし、くっだらない質問でも毎度毎度答えてあげる姿勢には感心するよ。
0930デフォルトの名無しさん
NGNGTListViewを使ってリスト表示したいんですが、
カラムは入れられてもアイテムを挿入できません。
ネットとか本で探したんですけどなかなかみつからなくて・・・
カラム数は3個で、簡単な文字列と数です。
ListView1 := TListView.Create(ListView1);
ListView1.Items.Add();
みたいなもので、これから先がわかりません。
参考になるページのURLだけでもかまいません。よろしくおながいします。
0931デフォルトの名無しさん
NGNGCaption := 'Caption';
SubItems.Add('SubItem1');
SubItems.Add('SubItem2');
end;
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGデバッガに入ってるやつ
やる気あんのかって感じだよ
0934パソナラー!
NGNG買った人はボーランドさんに文句言うナリ。
0935デフォルトの名無しさん
NGNGたしかに標準付属にしてほしいが、VCL の Drag and Dock と
OLE の Drag and Drop が誤用されて混乱の元にもなりかねんぞ。
VCL の Drag and Dock を OLE Drag and Drop ベースに書き
換えるのは無理があるだろうから難しいんじゃないかな。
Pro 版以上なら Option でセットアップできてもいいんじゃな
いかと思うが今でも2枚目のディスクに入ってるしな。
パーソナルにもプロ以降の2枚目のディスクの中身のHTMLだけ
を付属しておけばいいのにね。たいしたサイズじゃないだろうし。
そういえば、商品版のパーソナルには2枚目のディスクついて
るんですか?
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGVBやれば。
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGVBやれって。
0940デフォルトの名無しさん
NGNGなんで、あんな実装にしたのだろう。
0941デフォルトの名無しさん
NGNGVBやれってばよ!
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGVBやれ!
0944デフォルトの名無しさん
NGNGVBやれ!
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGTWinControl(Source).Handle
0947?
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG(゚ω゚) <そろそろ出番だな
/( )\
/'\
0950デフォルトの名無しさん
NGNG単にチミのスキルが足りないだけ(プ
0951ネタじゃないのよ
NGNG新規フォームにボタンを一個だけ配置してButton1Clickに
Close;
と書いただけなのに終了しなくなっちゃった。
昔はこれでプログラムが終了したんだけど今は何か余計な事を書かないといけなくなっちゃったの?
[エラー] Unit1.pas(30): 文が必要な場所に 'TButton' 型の式があります
と言われても昔はこのコードで通ったから良く分かんないっす。
誰かアドバイスください。
0952デフォルトの名無しさん
NGNG1から勉強し直してください。
0953デフォルトの名無しさん
NGNGここは性格異常者の隔離スレだから、こっちへ行きなさい。
http://pc.2ch.net/test/read.cgi/tech/1017803412/l50
0954ネタじゃないのよ
NGNGそんなこと言わんと教えてください。おながいします。
0955ネタじゃないのよ
NGNGありがとう。逝ってきます。
0956デフォルトの名無しさん
NGNGunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
end.
0957デフォルトの名無しさん
NGNG(゚ω゚) <そろそろ出番だな
/( )\
/'\
0958デフォルトの名無しさん
NGNGってのはどのようにすればいいのでしょか?
0959958
NGNGGetLocalTimeを使うと現在時刻が取れるのだけど15時から16時の間とかは
wHourを使ってきちんとif文で処理出来るのだけど15時半とかの場合はif文が
使えないっす。
0960デフォルトの名無しさん
NGNG"日付時刻ルーチン"でヘルプを検索しる!
0961デフォルトの名無しさん
NGNG>15時半とかの場合はif文が使えないっす。
って15時半から16時の間なら・・・っていう事が
if文で出来ないってことですか?
0962デフォルトの名無しさん
NGNG検索したけど使い方が分からんかった。
やり方教えてくれぃ。
0963デフォルトの名無しさん
NGNG行き違いになってましたすみません。
>って15時半から16時の間なら・・・っていう事が
>if文で出来ないってことですか?
はい。例えば
if Localtime.wHour>14
とすれば15時以降か以前かの判断が出来るのですけど、
この方法だと分単位の判断が出来ないので良い方法があればと思いまして。
まあ強引に入れ子にしてif文を並べれば出来ないこともないのですが、もっと
スマートな方法があるだろうと思いまして。
0964デフォルトの名無しさん
NGNGTDateTimeじゃ駄目ですか?
0965デフォルトの名無しさん
NGNG毎度どうも。
TDataTime型に現在の時刻を入れる方法あるのでしょうか?
0966デフォルトの名無しさん
NGNGあ、いや初レスです。
TDateTimeのメソッド一覧は見ました?
CurrentDate
CurrentTime
CurrentDateTime
辺りだと思います。
0967デフォルトの名無しさん
NGNGBCBでスマソですが、こんな感じでしょう。
if (TDateTime::CurrentTime() >= StrToTime("15:30:00") &&
TDateTime::CurrentTime() <= StrToTime("16:00:00"))
{
}
else
{
}
0968961
NGNG0969Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
ミ;゚Д゚彡< つくってみたけど
ミ つ�I) \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
なんか、
[Form1.Caption: '今は1:43:15なので2:00:00から3:00:00の間です']
こんなふうな意味わからん表示になるんだけど
なんでだろ〜〜なんでだろ〜〜(テツ&トモ)
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
StartTime, EndTime: TTime;
begin
for i:=0 to 23 do
begin
StartTime := EncodeTime(i , 0, 0, 0);
EndTime := EncodeTime(i+1, 0, 0, 0);
if (CompareTime(StartTime, Time) = GreaterThanValue)
and (CompareTime(Time, EndTime) = LessThanValue) then
begin
Form1.Caption :=
'今は'+TimeToStr(Time)+'なので'+
TimeToStr(StartTime)+'から'+
TimeToStr(EndTime)+'の間です';
Break;
end;
end;
end;
なんか、どこか間違ったかな?
D6UP1です。
0970デフォルトの名無しさん
NGNG× CompareTime(StartTime, Time)
○ CompareTime(Time, StartTime)
かな?
あと、iが23のとき、EncodeTime(i+1, 0, 0, 0); で例外が出るような。
またBCBで申し訳ないですが、
日付をまたぐ場合にも対応すると、
TDateTime dtStart = StrToTime("23:00:00");
TDateTime dtEnd = StrToTime("1:00:00");
TDateTime dtCurr = Time();
if (dtEnd < dtStart)
{
if (dtCurr < dtEnd)
dtCurr++;
dtEnd++;
}
if (dtCurr >= dtStart && dtCurr <= dtEnd)
Caption = "内";
else
Caption = "外";
です。
0971970
NGNGfunction Hoge: Boolean;
var
StartTime, EndTime, CurrTime: TDateTime;
begin
StartTime := StrToTime('23:00:00');
EndTime := StrToTime('1:00:00');
CurrTime := Time;
if (EndTime < StartTime) then
begin
EndTime := EndTime + 1;
if (CurrTime < EndTime) then CurrTime := CurrTime + 1;
end;
Result :=(CurrTime >= StartTime) and (CurrTime <= EndTime);
end;
0972Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < こうですね!
U ミ \____________
@ミ ミ
∪''∪
if (CompareTime(StartTime, Time) = LessThanValue)
and (CompareTime(Time, EndTime) = LessThanValue) then
そっかそっか。LessとかGreaterとかいうとついわけわかですね
MyCompareTime(StartTime , '<', Time)
とかで比較できたらいいかも。
あ。それって
TimeOf(StartTime) < TimeOf(Time) ってやればいいのか。
ちょっと勉強にナタ。ありがとうです>>970さん
0973970
NGNG私も今日はいい勉強になりました。
0974970
NGNGEndTime := EndTime + 1;
if (CurrTime < EndTime) then CurrTime := CurrTime + 1;
↓
if (CurrTime < EndTime) then CurrTime := CurrTime + 1;
EndTime := EndTime + 1;
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGです。971をベースにしてできました。ありがとうございました。
969でやろうとしたらCompareTimeとGreaterThanValueとLessThanValueが
未定義だ!と怒られちゃったので。(^^;
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG情報が集まっているところをご存知でしたら教えていただけないでしょうか
0979デフォルトの名無しさん
NGNGinterfaceを返す関数を呼び出したときに戻り値を受け取らなくても
コンパイラが勝手に一時オブジェクトを作って、スコープ脱出時にその開放をやってくれる機能を
うまく使って記述コードをすっきりさせる手法が紹介されてた。
C++っぽくておもしろいな。
function AutoFree(obj: TObject): Iなんたら;
ってのがあるとすると(Iなんたらはデストラクト時にobjをfreeしてくれるものがあるとする)、
begin
sl := TStringList.Create;
AutoFree(sl);
slを使った処理...
end;
みたいに、try-finallyを記述しなくても確実に開放できるんだな。
mutexとかの管理なんかも同じ調子ですっきりできそうだ。
バイナリのサイズはむしろ増えそうだが。
0980デフォルトの名無しさん
NGNGソースファイルが見つかりません。ExtCtrls.pas
とか表示されるんだけどこれって回避する方法ある?
0981デフォルトの名無しさん
NGNGパッチあてると治るらしいぜ。
オレはパソナルだから面倒でそのままだけど(ワラ
0982名無し~3.EXE
NGNGチェックを入れる。
0983ageだ
NGNG0984デフォルトの名無しさん
NGNGDelphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/l50
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG(゚ω゚) <それそれ出番だな
/( )\
/'\
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG<(゚ω゚) <うっ!
( )\
/'>
0997デフォルトの名無しさん
NGNG(゚ω゚)> <はっ!
/( )
<'\
0998デフォルトの名無しさん
NGNG<(゚ω゚)> <うっ!
( )
/'>
0999デフォルトの名無しさん
NGNG(゚ω゚)/ <はっ!
/( )
<'\
10001000
NGNG(゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
/( ) ( )ゝ
<'\ / >
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。