モナーの *やさしい* Delphi質問スレ Ver2
レス数が1000を超えています。これ以上書き込みはできません。
0001DELモナー
NGNGDELモナーがどんな厨房疑問でもやさしく答えます。
DELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
∧ ∧
( ´∀`)( )
00022
NGNG0003DELモナー
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1003113413/
0004デフォルトの名無しさん
NGNG最近あまり出てこないので、DELギコと間違われて刺されたのかと
思ってたよ。
0005デフォルトの名無しさん
NGNGアプリケーションの追加と削除にDelphiの項目が無く、アンインストーラーも見当たりません。
どうすればアンインストールアンインストール出来るのでしょうか
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGなんでD6は3つしかマウスに対応しないんだ?
エクスプローラーも対応しているのに
おせーて
0008デフォルトの名無しさん
NGNGそれも考えたのですが、それだとレジストリにゴミが残りませんか?
問題無いのならフォルダごと削除しますが・・・
0009デフォルトの名無しさん
NGNGDel6あるけど、
ない人もいるのか
0010デフォルトの名無しさん
NGNGフォルダごと削除して再インストール。そのあとアプリケーションの追加と削除からアンインストール。
やっぱりなかったら諦める。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG大至急、マジレス頼む!
0014デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?num=100&hl=ja&q=Delphi+%83R%83%93%83g%83%8D%81%5B%83%8B%94z%97%F1&lr=lang_ja
00155=8
NGNGアンインストール出来ました。ありがとうございました
>11-12
BolandのサイトからDLし、インストールキーを取得して
あとは画面の表記に従ってインストールしていきましたが・・・
0016デフォルトの名無しさん
NGNGどうもです。あせってると駄目だ。
ハマリ脱出!
0018デフォルトの名無しさん
NGNGなんというか、インストール/アンインストールはインストールシールド(と Windows Installer)の
管理する部分だから Delphi とは関係ない。
インストールしないでクラックしてバイナリを手に入れる位のスキルの持ち主なら
こんなタコな質問はしないだろうから、インストールユーザーとアンインストール時の
ユーザーが異なっている。ってくらいかな?
0019デフォルトの名無しさん
NGNGレジストリがインストール前に戻ってしまったとか。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022ド素人
NGNGバッチフィルを起動してもエラーでインストール出来ません。
どのようにすればインストール出来ますか?
0023Delフサギコ
NGNGミ,,゚Д゚彡 < 日経ソフトに書いてあったような...
(ミ ミ) \_
〜ミ ミ
∪''∪
0024ド素人
NGNG今月号ですか? だとしたら本屋に逝ってきます。
0025DEL初心者
NGNG例えば
var
Data : array of longint;
begin
Setlength(Data,100);
// 処理(ここで配列の数がかわる)
// ストリームに書き出し
Stream.Write(Data[0],SizeOf(Data[0])*Length(Data));
の様にやっても大丈夫でしょうか? HELP見たけどいまいちわかりません
よろしくお願いします。
002625
NGNG誤:// 処理(ここで配列の数がかわる)
正:// 処理(ここで配列の長さがかわる)
0027デフォルトの名無しさん
NGNG連続していると仮定していいはずです。
動的配列は参照カウンタ、長さ、実際の配列しか定義がないからです。
ObjectPascal言語ガイドのメモリ管理を参照してみてください。
0029ド素人
NGNG立ち読みしてきましたけど、インストールの方法は書いてなかったです(涙
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG日本語Updateを認識してくれないので。
こんなサイトを見つけた。手動で入れる方法について。
http://www.sakaki.keiaikai.or.jp/Library/webconv/compile.html
0032ド素人
NGNGおかげさまでインストール出来ました、ありがとうございました。\(^o^)/
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGWinHndd := FindWindow('TfrmChat', nil);
SetForegroundWindow(WinHndd);
EdtHndd := FindWindowEx(WinHndd, 0, 'TRichEdit', nil);
SendMessage(EdtHndd,WM_PASTE,0,0);
Ebtnn := FindWindowEx(WinHndd, 0, 'TButton', nil);
SendMessage(Getparent(Ebtnn),WM_COMMAND,1,(BN_CLICKED shl 16) + Ebtnn);
これで偽メッセンジャーからクリップボードの内容を送信できると
思うのですが実行しても送信できていませんわかりますでしょうか??
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGClientSocket と ServerSocket を使ってテスト通信ソフトをつくりましたが、
サーバからクライアントに送信すると、必ずエラーが発生してしまいます。
ソースコードを下に置いたので、エラー原因を教えていただけないでしょうか。
http://www.geocities.co.jp/SiliconValley-PaloAlto/4845/socket.zip
0039冒険開始1日目
NGNGActionManager コンポーネントてのはD6Personalでは使えないんですか?
それとも、アップデートすればイイだけのことですか?
0040デフォルトの名無しさん
NGNGデバッグを人にまかすな。ボケ!
0041デフォルトの名無しさん
NGNGこの程度のバグを取れないようでは困ると思うが...
バグは2カ所。
TForm1.socServerClientRead で,一つのイベントに対して
Socket.ReceiveText と (socServer.Socket).ReceiveText の2カ所で
文字列を取ろうとするから2回目でエラー。
TForm1.Button3Click で,EdtText.Text をクライアントに送り返すはずのコードが
なぜか ReceiveText を SendText しようとしている。何も受信していないだろ?
もし,周りにデバッグのうまい人がいたら頼み込んでデバッグの現場を見せてもらいなさい。
他人のデバッグ手法は見ていておもしろいぞ。
0042デフォルトの名無しさん
NGNG0043前スレではお世話になりました
NGNGお時間がございましたら答えてやってください。
1)
iniファイルにFont.Styleの値を保存しようと思うのですが、
これはWriteStringではダメなんでしょうか?
2)
メモ帳の「右端で折り返す」処理を実装しようと思い、
以下のようにCheckdで作成してみました。
procedure TForm1.TurnOnRight1Click(Sender: TObject);
begin
{[設定]-[右端で折り返す]}
// Checkedの反転&スクロールバーの処理
If TurnOnRight1.Checked Then
begin
Memo1.ScrollBars := ssBoth;
TurnOnRight1.Checked := False;
end
else
begin
Memo1.ScrollBars := ssVertical;
TurnOnRight1.Checked := True;
end;
end;
これ、使っている分にはちゃんと折り返されてるみたいなんですが、
こんなんでいいんでしょうか?(邪道っぽい気がするもんで)
宜しくお願いします(´∀`)ノ
0044デフォルトの名無しさん
NGNG1)だけ。
型が違うやん。
ini.WriteInteger(Section, Ident, Byte(Font.Style));
でどうよ?
0045前スレではお世話になりました
NGNGてっきり[fsBold]だからStringかと思ってたのですが…。
回答有難うございました(´∀`)
0046デフォルトの名無しさん
NGNGでは2)
TurnOnRight1.Checked := not TurnOnRight1.Checked;
Memo1.Wordwrap := TurnOnRight1.Checked;
if TurnOnRight1.Checked then
Memo1.ScrollBars := ssVertical
else
Memo1.ScrollBars := ssBoth;
0047DEL初心者
NGNG解決されているようですが… こんなんも出来ますよん
uses typInfo; // どっかにあるので探してね
//オブジェクトインスペクタ風味の書き出し
ini.WriteInteger(Section, Ident,GetSetProp(Self.Font,'Style',true));
0048デフォルトの名無しさん
NGNG004947
NGNGini.WriteInteger( は ini.WriteString( です。
逝ってきます
005238
NGNGほんとうにどうもありがとうございます。
なるほど、ReceiveTextのヘルプにもそう記述されていますね。
デバッグ手法を見たいのは山々なのですが、
私はアマチュアで、まわりにDelphiを使う人が一人もいないので
独学でやるしかないのです…
005338
NGNGローカルアドレス
ローカルホスト
リモートアドレス
リモートホスト
の違いを教えてくれませんか…
0054デフォルトの名無しさん
NGNGヘルプで「ソケットコンポーネント」を検索すると「ソケットコンポーネントの使い方」と
いうのが出てくるから、それを順に読め。
独学ならば、それこそ調べる癖をつけないと困るよ。
005538
NGNGどういう事なのでしょうか。目次は存在するし、コード編集ウィンドウ内の
キーワード上でF1するとちゃんと出てくるのですが。
Delphi6Pro + Win98SE です
0056デフォルトの名無しさん
NGNGもしかして。
ヘルプ→カスタマイズでOpenHelpを開いて、キーワードタブに登録してあるヘルプのうち
要らなさそうの消してみ。CLXリファレンスとか。
ここの容量がでかいとWin95系では表示されなくなるとかってのを聞いたことがある。
005738
NGNG>ローカルのクライアントまたはサーバーのソケットが使った
>アドレスとポート番号を確認するか,RemoteHost プロパティと
>RemotePort プロパティを使って,リモートのクライアントまたは
>サーバーのソケットが使ったアドレスとポート番号を確認できます。
つまり、Local は「自分」で、Remoteは「相手」ということ?
Host と Address プロパティは、IPアドレスに変換する必要があるかどうかですね。
Host にはドメイン名も指定できるが、それをIPアドレスに変換する手間がかかる。
一方、Address にはIPアドレスしか指定できないが、そのぶん早く接続できると。
005843
NGNG46さんのTurnOnRightの例を使わせて頂きました(´∀`)
47さんの例は今度ライブラリ?を集めた時に使ってみようと思いますー
で、申し訳ないのですが追加の質問を…。
上でiniファイルに保存したStyleの値を読もうとしているのですが、
Memo1.Font.Style := IniFile.ReadInteger('Font','Style',Byte(Memo1.Font.Style));
もしくは
Memo1.Font.Style := IniFile.ReadInteger('Font','Style',Memo1.Font.Style);
のように記述しても読んでくれません。
iniには
[Font]
Size=12
Color=-2147483640
Name=MS Sans Serif
CharSet=0
Style=0 ←
のように保存されているのでReadIntegerで大丈夫だとは思うのですが…。
(´・ω・`)ショボーン
005944
NGNGini.WriteInteger(Section, Ident, Byte(Font.Style));
の「Byte」の意味がわかってないね?
TFont.Styleのヘルプを見ると集合型だろ。これはIntegerと互換性がない。
だから無理矢理「これはByte型だ、Byte型と思い込め」とDelphiに教えてやってるんだよ。
だったら逆の場合も同じようにしてやらないといけない。
Integerで返ってきたものを「これはTFontStyles型だ、TFontStyles型と思い込め」とDelphiを
催眠術にかけてやればいい。
Memo1.Font.Style := TFontStyles(IniFile.ReadInteger('Font','Style',Byte(Memo1.Font.Style)));
0060デフォルトの名無しさん
NGNG006160
NGNG0063ひろゆきと愉快な信者達
NGNG28 名前:西村の同級生 投稿日: 2001/02/12(金) 10:08
中学の頃クラスでイタズラ電話や下駄箱の靴が紛失する事件が頻発したんだけど
その時、女子の間では「犯人西村」説が跋扈していた。
真相は藪の中だけど、実は私もそう思ってたうちの一人。
証拠もないのに疑いをかけるのは悪い事だと思うけど、西村にはそういう嫌疑を抱かせる
雰囲気があったのも事実。
52 :参加するカモさん :01/11/30 22:33
50を読んでも驚かないところが不思議
ふーんて感じ
そういうダーティーなところも含めてひろゆきカッコイイ
53 :参加するカモさん :01/12/01 05:08
オレも52と同様、1変人として素晴らしいと感じる。
我等変態をナメるな。
ひろゆき擁護者として、間違い無く彼が犯人だったと断言するぞ。
54 :参加するカモさん :01/12/01 16:47
堂々たる変人ぶりだ、、、
006543
NGNGさっそく試したところ、見事に反映しました!
もしかしたら一般的な技法なのかもしれませんが、
知らなかった分勉強になりました。>キャスト
ではしばらく他のデバッグ作業に戻ります…(;´Д`)
0066デフォルトの名無しさん
NGNGwebサイトの更新日を取得する方法がわかりません
HttpQueryInfoですか?
0067デフォルトの名無しさん
NGNG何を使ってんのか知らんけど、Headerに更新日情報は入ってるよ。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGされていたらメッセージを送るみたいなことをしたい
どうだろうか?
0072デフォルトの名無しさん
NGNGいいんじゃないでしょうか
0073sage
NGNGどうだろうか?
0074デフォルトの名無しさん
NGNGこれを使う。
http://www.koizuka.jp/wwwd/
0075デフォルトの名無しさん
NGNG0076吐駄
NGNGURL が長いが。
ttp://www.google.co.jp/search?q=%82%B1%82%A4%82%E2%82%C1%82%C4+HttpQueryInfo+%8C%9F%8D%F5%82%B5%82%EB&hl=ja&lr=
0077sage
NGNGどうだろうか?
0078デフォルトの名無しさん
NGNGどうだろうかはどうだろうか?
0079デフォルトの名無しさん
NGNGWWWDのようなソフトのコードを書いてタダでよこせという意味でいいですか?
>>67-69 は読まれましたか?
0080デフォルトの名無しさん
NGNGとあるアプリからサイトが更新されたどうかを確認して
されていたらメッセージを送るみたいなことをしたい
ソフトの紹介ではなくて方法をご教授して頂けませんか?
0082デフォルトの名無しさん
NGNG以前の更新日時との比較のしかたがわかりません
又は、上記のやり方以外で更新日時を取る方法はあるのでしょうか?
0083デフォルトの名無しさん
NGNG厨房質問にも限度がある
0085デフォルトの名無しさん
NGNG文字列で比較して1文字でも違っていたら更新されたってことにしとけ。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG>他のスレに書き込んで罵倒される前に、まずここで質問しよう。
と書いてあるのだが、肝心の*やさしい*DELモナーがいない(w
質問の仕方がなってない奴は叩かれる、典型例ですな。
いきなり>>82が書いてあればここまで罵倒されることもなかったのに。
0089デフォルトの名無しさん
NGNGしかし初代スレに比べて急に増えた気がするが。それも Delphi 系だけ。
某 ML でいじめられたから、とか
某広場でかまってもらえなくなったとか
某情報局でボロクソいわれたからとか
0090デフォルトの名無しさん
NGNG先輩にdelphiというものを8000円で買わされしかも1週間以内に
なんか作れといわれてしまいました
先輩はdelphiは本当は何万円もするぞと言ってましたが本当ですか?
どうしたらいいかわかりません
どうかみなさん助けてください
0091デフォルトの名無しさん
NGNGネタか?
Delphiを起動してヘルプメニューからバージョン情報を見る。
Professionalと書いてあったら6万8千円、Enterpriseと書いてあったら36万円。
Personalと書いてあったら0円。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG嘘です。
>なんか作れといわれてしまいました
↓きっとお役に立つでしょう。
http://www.monazilla.org/
0095某 ML より
NGNGそれから、別の話題ですが、先日2ちゃんねるのデルファイ初心者用の
掲示板を覗いてみたら、質問をされた方が「ヘルプを読め!」と怒られて
いるのを見てしまいました(笑)。ヘルプや過去ログという話はどこへ
いってもありますし、自助努力という姿勢も良いことだとは思うのですが、
学校で隣の席の友人に「ねえ、ねえ」と言って訊ねたりできるという
感じがあれば助かるなぁ・・と思っています。先生に聞きに行くよりも
手軽な感じです。
具体的には、
・「ヘルプを見なさい」「過去ログを見なさい」禁止の
・初心者同士の初心者同士による初心者同士のための
・休み時間のようなメーリングリスト。
を立ち上げようかなーどーしよーかなーと考えています。
みんなで「わからん、わからん」と言ってるような、
烏合の衆のようなMLです(笑)。
0096デフォルトの名無しさん
NGNGBorland Delphi 6 Personal \4,800 (無料版あり。違いは箱と紙のマニュアル)
Borland Delphi 6 Professional \68,000
Borland Delphi 6 Enterprise \360,000
0097デフォルトの名無しさん
NGNG1.プログラムの初心者
2.Delphiの初心者
がいるんだよね。で、両方とも初心者でくくっちゃうから混乱する。
2.にはプログラムの経験者も含まれるから、いきなりAPIの
話したりDBやWebの話したりとかする(でもDelphiは初心者)。
1.こそが本当の初心者だと思うんだけどね。
0098デフォルトの名無しさん
NGNGここに1週間で丁度出来そうな
ゲームのソースがあるから これをダウンして 作ったといいなさい
http://www5.tok2.com/home/luminel/
その後お礼をこのスレに書いてあげような
http://pc.2ch.net/test/read.cgi/tech/1010318049/
0099デフォルトの名無しさん
NGNGvar
iHoge: Integer;
iFoo: Integer;
case iHoge of
1: iFoo := iFoo + 10;
2: iFoo := iFoo + 20;
3: iFoo := iFoo + 30;
end;
var
sHoge: String;
iFoo: Integer;
case sHoge of
'hoge1': iFoo := iFoo + 10;
'hoge2': iFoo := iFoo + 20;
'hoge3': iFoo := iFoo + 30;
end;
文字列を使用した条件分岐は出来ないのですか?
0100デフォルトの名無しさん
NGNGcase セレクタ式 of
ケースリスト1: 文1;
...
ケースリストn: 文n;
end
セレクタ式には順序型の任意の式を使用できます。文字列型は無効です。
0101デフォルトの名無しさん
NGNGこれで一週間後の先輩どうにかなりそうです
0102デフォルトの名無しさん
NGNGsHoge: String;
iFoo: Integer;
begin
if sHoge = 'hoge1' then iFoo := iFoo + 10
else if sHoge = 'hoge2' then iFoo := iFoo + 20
else if sHoge = 'hoge3' then iFoo := iFoo + 30;
end;
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG010599
NGNGそうですか、ちょっと使いづらいですね
>>102
そうすれば良いのは解るのですが
ソースのわかりやすさを考えると
case sHoge of
'hoge1': iFoo := iFoo + 10;
'hoge2': iFoo := iFoo + 20;
'hoge3': iFoo := iFoo + 30;
end;
できると幸せだなぁと思ったんですが
010699
NGNGhttp://isweb30.infoseek.co.jp/computer/hotzonu/hotzonu2.html
ホットゾヌのスレッド一覧を提供している
コンポーネントみたいな物を作るのは難しいですか?
あまりプログラムは得意では有りませんが
ファイラーみたいな物が作りたいのですが
リスト形式でさらにファイルの属性によって色を変えたりしたいのです。
0107デフォルトの名無しさん
NGNGTListView もしくは TDrawGrid もちろん OwnerDraw で。
 ̄ ̄ ̄ ̄\/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧ ∧
( ´∀`)
( )
0108モザイク
NGNGここのサイトのモザイク処理で
var
X, Y, I, J: Integer;
xR, xG, xB, XX, YY: Integer;
Cnt, BlockW, BlockH: Integer;
pSrcCache: PCacheLines;
pSrcLine: PLine24;
begin〜〜
とありますがPCacheLinesって何でしょうか?当方D6です
0109デフォルトの名無しさん
NGNGBBS まで用意しているんだから作者に聞きなよぉ。
0110モザイク
NGNG0112モザイク
NGNGPCacheLines = ^TCacheLines;
自己解決。。。。あほや、自分。
0113デフォルトの名無しさん
NGNGそれとも手作業なの?
0114デフォルトの名無しさん
NGNG{ } か (* *) で囲んじゃダメ?
0115デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119ビクーリ!
NGNGビクーリ!でも、プロフィール無いから何歳か分からないYO!
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122ビクーリ!
NGNGヲッチャーなので、晒すようなことは出来ませぬ。
0123デフォルトの名無しさん
NGNGオナニーしてな。
0124はて?
NGNG0125無視しないで
NGNGどんな回答を期待しているのですか?
あなたが使える言語を例に教えて下さい。
VC++→Microsoftが売っているコンパイラー
と教えてくれれば、
Delphi→Borlandが売っているコンパイラー
と答えられます。
0126黙阿弥上人
NGNGネタじゃなかったのか?
まぁ、いいさ。 よろこんでもらえりゃ。
先輩にもヨロシクな。
(これが、もって回った皮肉なら、あっぱれ!みごとなり! と賞賛に
値する。複線の張りかたなど用意周到だ)
コレも人生。 合掌...
0127黙阿弥上人
NGNG「複線」→「伏線」ね。
(俺のせいじゃねぇ、IME...)
0128デフォルトの名無しさん
NGNGGExpertsで出来ますよ
0129デフォルトの名無しさん
NGNG処理系によってはできますね。
出来ないのはDelphiの言語仕様としか言えないです。
書きやすさに対して実行時のコストが高いからでしょう。
# それでもそんなに頻繁に使うものでもないでしょうから、
# あってもいいようなものです
ちなみにどうしてもやりたければ
文字列をキーとするハッシュに数字を割り当ててcase ofするのがよいかと。
0130Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < CaseStr構文でも導入してもらいたいかも
UU"""" U U \_______________
ナクテモイイケド
0131デフォルトの名無しさん
NGNG要らんでしょ?文字列を単純な数字列にする関数内関数を書いて
constで数字列と文字列を対応付ければ済むと思うが・・・・・
013243です
NGNG昨日の書き込みで書いた通りFont.Styleが反映したと思っていたのですが、
今日になって実行してみるとなぜかエラーが吐き出されてしまいました。
Memo1.Font.Style := TFontStyles(IniFile.ReadInteger('Font','Style',Byte(Memo1.Font.Style)));
[エラー] Unit1.pas(100): 正しくない型キャスト
>>59さんのアドバイスを参考にして記述したのですが、
どこかおかしな所などございますでしょうか?
ヘルプを見てみたら
TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);
TFontStyles = set of TFontStyle;
と言う記述があったのでここかと思われる場所に set of を記述してみたのですが、
これもダメなようで…。
ちなみに、当方Delphi6Personalです。
あと亀レスですが>>95のメーリングリストいいですね。(゚д゚)ウマー
013343です
NGNG0134デフォルトの名無しさん
NGNG立ち上がったら告知キボーン
013544
NGNGごめん。
Memo1.Font.Style := TFontStyles(Byte(IniFile.ReadInteger('Font','Style',Byte(Memo1.Font.Style))));
だった。申し訳ない。
013643です
NGNGと言うか、自分でもよくわからぬままiniを実装しようとしたのも反省しとります。
とりあえずキャストはしっかりと頭に叩き込んでおきます!
こちらも何度も申し訳ございませんでした。
013799
NGNGありがとう
ListItemにオブジェクトを関連づけるってイメージわかないんですが・・・
ListItemにクラスや配列を関連づけたりして
それに対応した処理をさせたりとかするんですか?
たとえばDBのレコードとかそういう物を関連づけたりする?
procedure TForm1.FormCreate(Sender: TObject);
var
Aho : String;
NewItem:TListItem;
begin
Aho := 'hogege';
NewItem := ListView1.Items.Add;
NewItem.Caption := 'なんとか';
NewItem.Data := @Aho; // データへの参照.
NewItem.SubItems.Add('hoge1);
end;
procedure TForm1.ListView1Click(Sender: TObject);
begin
end;
この場合のSenderってのは何が引数で渡されるのですか?
0138デフォルトの名無しさん
NGNGDelphi初心者が読んで使いやすいマニュアル本などあったら
教えてください。(みなさんが使っているお勧めの本など)
本当は自分で見て選びたいのですが本屋にあまり置いてなくて
中身が見れなくて不安です。よろしくお願いします。
経験言語はaccessとCOBOLです。
0139デフォルトの名無しさん
NGNG( ゚д゚)ポカーン
Delphi6 Personal は無料ですが?
0140Delフサギコ
NGNG ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
∧,,∧ (´´
\,,,,ミ,,゚Д゚彡 (´⌒(´
⊂,,,,,,,,,つつ.≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ
>>137
Senderにはイベントを呼び出したコントロールが入るので
この場合はListView1辺りが入っているでしょう。
Ahoという文字列のアドレスを渡すよりは
Stringをフィールドに持つTAhoクラスでも作って
それをDataプロパに登録する方がわかりやすいかと。
0141デフォルトの名無しさん
NGNGだったら私でもDelphi7作れますか?
0142デフォルトの名無しさん
NGNGまた、Delphiのフォームの使い方は特許になってるかもしれません。
世の中にはFreePascalというのがありますから、これを元にDelphi並の
ものをお考えになっては?
0143デフォルトの名無しさん
NGNGコンポーネントやライブラリをメモ帳で作成。
Delphi統合環境プログラムをメモ帳で作成し、コンパイル
Delphi統合環境の出来あがり。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGおまえら1時間以内になんか作れ
変な入れ知恵しやがって
0147デフォルトの名無しさん
NGNG説明不足ですいません。
客先の都合でDelphiで開発指示がきました。
正式受注後にpro版を買って貰えるのですが、それまでの勉強と
リファレンス的な使い方ができる本が欲しいと思ったので。。
(本は自費です)
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNGhttp://www.cbook24.com/bm_detail.asp?sku=99925917
0151デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4873110408/ref%3Dpd%5Fsim%5Fb%5Fdp%5F1%5F1/249-6318906-1305962
0152147
NGNGありがとうございます。
「基礎編」というトコにひかれてました。
やはり実際読んだ方のお勧めを聞きたかったもので。
他に候補として他にインプレ○・オライリ○があったのですが・・・
もし読んだ方いましたらお勧め度聞かせてください。
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG全部買って12万程度だよ 全部買ったら?
DelphiによるWindowsプログラミング入門 綿貫 啓一 (著) <1995/12/1< 日刊工業新聞社 :¥1,845
Delphiプログラミング大全 Programmer’s SELECTION ジェフ ダンテマン (著),<1995/12/1< 翔泳社 :¥5,631
Delphiパーフェクトマニュアル―ボーランド公式 チャールズ カルバート (著),<1996/3/1< インプレス :¥5,631
やさしいDelphi 村上 宣寛 (著) <1997/6/1< 日刊工業新聞社 :¥2,200
Delphiで作る高速CGI 田原 孝 (著) <1998/12/1< エーアイ出版 :¥3,200
ここまでできる Borland Delphi4パワーガイド 小出 俊夫 (著),<1999/4/1< 秀和システム :¥2,800
Delphi Win32 APIリファレンス Ascii books John Ayres (著), 光田 秀 (翻訳) <1999/5/1< アスキー :¥8,800
使いながら覚える Borland Delphi4プログラミング入門 やさしいWindowsプログラミング 竹田 英雄 (著) <1999/5/1< エーアイ出版 :¥2,500
Delphi 4プログラミングバイブル マルコ カントウ (著),<1999/6/1< インプレス :¥5,680
Borland Delphi4オフィシャルコースウェア クライアントサーバシステム構築編 Inprise公式コースウェアシリーズ 真木 保 (著) <1999/7/1< アスキー :¥5,200
DelphiでWindowsゲームを作ろう! 青山 学 (著) <1999/7/1< ピアソン・エデュケーション :¥3,400
Delphi4プログラミング技法〈Vol.2〉コンポーネントとDBの実践テクニック Borland Press ザビエル パチェコ (著),<1999/8/1< ピアソン・エデュケーション :¥5,700
これで完璧!Delphi5裏技170選 金井 利美男 (著) <1999/10/1< エーアイ出版 :¥2,800
基礎からわかるDelphi5 三原 幸一 (著) <1999/10/1< 秀和システム :¥2,400
Delphi Object Pascalリファレンスブック アンク (著) <1999/11/1< 技術評論社 :¥2,480
Delphi5実践データベースプログラミング―DBコンポーネントとQuickReportの活用 田中 和明 (著) <2000/6/1< カットシステム :¥3,800
Delphiデータベースアプリケーション開発ガイド―データベースフレームワークから帳票作成、Oracle8i入門まで 三原 幸一 (著) <2000/6/1< 秀和システム :¥2,800
Delphi & C++Builder即戦力コンポーネントライブラリ―Windowsプログラミングの効率アップ 中島 信行 (著) <2001/1/1< CQ出版 :¥3,000
Delphi Win32 Graphics APIリファレンス ジョン アイレス (著),<2001/3/1< アスキー :¥8,800
Delphiクイックリファレンス レイ リシュナー (著),<2001/5/1< オライリー・ジャパン :¥4,500
Delphi 魔法のTIPS 500 Programmer's Bible Series EXPERTGIG開発室 <2001/8/31< エキスパートギグ :¥8,500
Delphi6プログラミングテクニック裏技180選+新機能20選 金井 利美男 (著) <2001/9/1< エーアイ出版 :¥2,980
VBユーザーのためのDelphi6プログラミング 佐藤 親一 (著) <2001/12/1< オーム社 :¥2,600
Delphi DB&Webプログラミング 松浦 健一郎 (著), 司 ゆき (著) <2001/12/1< ソフトバンクパブリッシング :¥3,200
Borland Delphi 6オフィシャルコースウェア (応用編) Borland official courseware series 井上 勉 (著) <2002/1/1< アスキー :¥4,800
Borland Delphi 6オフィシャルコースウェア (基礎編) Borland official courseware series 服部 誠 (著) <2002/1/1< アスキー :¥2,800
Delphiゲームプログラミングのエッセンス 日高 徹 (著) <2002/1/1< ソフトバンクパブリッシング :¥3,400
0155デフォルトの名無しさん
NGNG>山本 秀樹 (著)
この本廃刊だけど良い本だと思ってるの自分だけかな?
0156デフォルトの名無しさん
NGNG良い本だと思うけど、 お勧め出来るかどうかはその人の経験とか色々で違うからな
0157デフォルトの名無しさん
NGNGこれ、Delphi1用。
続編がDelphi2.0J 32ビットパワープログラミング。
いい本だけど、枕になる可能性もある諸刃の剣。初心者にはお薦めできない。
それ以降のは邦訳は出てないけど、原書の方はあるらしい。
0158デフォルトの名無しさん
NGNGそもそも戻り値っていう概念が有るのだろうか・・・
0160Delフサギコ
NGNGミ ゚Д゚ミ < 何がいいたいん?>>158
(ミ ミつ)ビシッ\_________
〜ミ ミ
∪ ∪ カオアラッテ デナオセ
function AAA: Integer;
begin
Resutl := 666;
//AAA := 666;
end;
0161デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGCも古いですけど。
0164161
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGBorlandのサイトには複数行表示できる物が載っていますが、
WordWrapできる複数行 TStringGrid はどこかにないでしょうか。
今は TDrawGrid を継承して、自力で描画しています。ところが、
TStringGrid のように、各セルに文字列を関連付ける方法がわからなかったため、
OnDrawString というイベントを作って、その都度書きこむ文字列やフォントを
指定しています。
0167デフォルトの名無しさん
NGNG多子化Cの一年先輩だった気がする。
アセンブラマンセーのリッチーらにオモチャってコケにされたんだっけ?
0168Delphi初心者
NGNG疑問�@
type
TForm2 = class(TForm)
Button1: TButton;
この場合Button1はパブリッシュメンバーになるのですよね?
疑問�A
type
TMyClass = class(TObject)
0169168=Delphi初心者
NGNG疑問�A
type
TMyClass = class(TObject)
hoge : TList;
この場合hogeは何になるのでしょう?
{$M+}の時はバブリッシュ? それともいつでもパブリック?
特に問題は無いのですが気になって…
0170デフォルトの名無しさん
NGNG>OnDrawString というイベントを作って、その都度書きこむ文字列やフォントを
>指定しています。
そこまでできるならコンポーネントにできるだろうに。
抽象化能力が足りないのかな?でも自分で作って自分で使うのなら
それでも良いと思うよ。
0171デフォルトの名無しさん
NGNGタブを利用したプログラム(同じタブを沢山)で
オブジェクト(ボタンとかリストとか)を動的に作成したいのですが
その場合は
タブに含まれるオブジェクトを格納するクラスを作って
新しいタブを作るときに動的配列にそのクラスを生成すればいいのですか?
0172デフォルトの名無しさん
NGNG0173Delフサギコ
NGNGミ,,゚Д゚彡 < 今日は冷えるね
,;゙ ミ \_____________
ミ. ミ
/゛゛゛゛
>>168-169
�@publishというよりpublicですが
あまりButtonの属性は気にせずにどぞ。
DelphiIDEが管理する部分なので
自分でコード書くときはprivateとかpublicとか
に書くようにしませう。
�Aちゃんとprivateとかpublicのトコに移動
させて、くださいな。
publicとpublishってオブジェインスペクタに現れる
かどうかだけだからButtonやhogeは
public族生だと思われ。
0174168=Delphi初心者
NGNGあわわ、すみません とりあえずRTTIが有るのか調べてみます。
0175デフォルトの名無しさん
NGNG各オブジェクトのparentをTABページにすること。
0176168=Delphi初心者
NGNGすみません 寒い質問ばかりで…(汗
色々調べたのですがやはり{$M}に左右される様です。
{$M+}だとパブリッシュ で{$M-}でパブリックのようです。
>publicとpublishってオブジェインスペクタに現れる
>かどうかだけだからButtonやhogeは
>public族生だと思われ。
これはpublishedだとメンバが呼び出されていなくても
実行コードに埋め込まれる点を除いて同じようです。
#RTTIに載るメンバのコードは必ず実行コードに含まれるようです。
HELPには{$M-}の状態で{$M+}でコンパイルされたクラスの
派生クラス以外はPublishedメンバを作れませんと書いてあるし…
(Del5)
うーん TP3→TP5→Del1→Del5 と某社の使ってますが
HELPの難解度は変わりませんね(w
0177Delフサギコ
NGNGホントに気温が低いって言いたいだけです。
. ̄ ̄∨ ̄ ̄ ̄
. ∧,,∧ 質問内容はスッキシして
ミ ゚Д゚ ミ いいと思うです
(ミ ミ) というか、凄い事追求されてますのね。
〜ミ ミ
∪''∪ ゴメンヨ マギラワシイ コメントデ
俺の部屋、1Fなので
床下から冷えがね。結構、くるのよ
ああ、寒い寒いわ〜
0178名無しヘタぐらま ◆B18Bks.Y
NGNGボーランドのサイトにあるTipsってこれですよね.
http://www.borland.co.jp/tips/delphi/dh011/sgrid_1.html
ワードラップは壱カ所いぢるだけで出来ます.
Options := DT_EDITCONTROL;
これを
Options := DT_NOPREFIX or DT_WORDBRAK;
に変えればOK(のはず).
☆ ☆
DT_WORDBRAK がワードラップ指定で改行コードの処理もやってくれます.
DT_NOPREFIX はワードラップには全く関係ありませんが,
これを入れないとたとえば
"Tom&Jerry"は"TomJerry"となってJに下線がつきます(メニューの表示みたいになる).
DrawCellEx については詳しくはここをご覧になるとよいでしょう.
http://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_drawtextex.htm
ワードラップのほかに位置合わせもできるAPIなので覚えておいて損はないでしょう.
0179168=Delphi初心者
NGNGうう。。深読みしすぎました すみません(汗
ブランクが長かったのとWinベース(Del)になってからちゃんとクラス型のことを
調べずにやってたandちょっと暇が出来たので最上位クラスから見直そうかと思い
色々やってます。
ってか HELPを読み直すと「クラスメンバーの可視性」でちゃんと書いて有りました(鬱
でも「パブリッシュメンバー」の最後の説明はよくわからない(w
TP5やってたからなんとなくわかるけどDelからいきなり始めた人はOOPを覚えるの
大変じゃないのかな?OOP周りのHELPが殆ど無い&ボロボロのような気が…
俺がアフォなだけという可能性が高いですが(鬱
0180166
NGNGうう、わざわざありがとうございます。
でもごめんなさい、超重要なことを忘れてました。
どうして悩んでるかといえば、WORDWRAP 自体には、それほどの問題はないのです。
問題は、
「WordWrapされた文章が常に全部表示されるように、その行の Height を自動調整したい」
ことなんです。Drawイベント時に、その行に含まれるセルの中で、最も
Height を必要としているセルを割りだし、そのHeight値を得て、その行のHeightを設定しています。
でも、すごく処理が重くなってしまうのです。たまに再描画されないときもあるし、
最後の1行(セルの行ではなく、セルに含まれる文字列)が表示されないときもあるしで…
最終的に何がしたいのかというと、
(1) Gridコントロールの横幅にあわせ、一番右側のセル列の幅を自動調整する(横スクロールバーを出さないように)
(2) 各セルに表示された文字列を、セル内での横スクロールをしなくても読めるように、WordWrapしておく。
(3) 各セルに表示された文字列を、セル内での縦スクロールをしなくても読めるように、セルの高さを自動調整する。
(4) 各セルにフォント情報を埋め込めるようにする(Cells[x,y].Fontみたいに)
こういう事をしたいのです。
いや、「なら、つくれよ」といわれれば確かにその通りですし、
作ったのですが、どうにも効率が悪いような気がして…
018143です
NGNG今は参考書なども購入してなんとか調べつつ作っている状況でございます。
完成度はだいたい90%くらいでもうすぐ終わりそうなんですが、
結局今日も懲りずに質問に参った次第でして…。
最後にGUIアプリによくある「実行ファイルにファイルをドラッグ&ドロップすると
ファイルを読み込む」と言うのを実装しようと思ってます。
んで自分なりに調べた所、前にやってたVBだと
command.comから引数を取ってなんちゃら…と言うのがあったと思ったので、
Delphiでもそれを応用してみようと思ったのですが、
…いかんせんまだ初心者なんでどうにも調べようがなく…(;´Д`)
(Memoコンポーネントにドラッグ&ドロップするのは出来たんですが)
厨房的な質問ではございますが、ご教授頂ければ幸いです。
>>52さん
私も学校の課題で自分しか学んでないのでかなり孤独です。
VBに詳しい友達となんとか手取り足取りやってますが、
やっぱり噛み合わない部分も多かったりでいろいろ疲れますな(笑
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGName1 := ParamStr(1);
Name2 := Name1 + ' ' + ParamStr(2);
if FileExists( Name2 ) then FileName := Name2 else
if FileExists( Name1 ) then FileName := Name1 else
FileName := '';
とか?
0184デフォルトの名無しさん
NGNG>(4) 各セルにフォント情報を埋め込めるようにする(Cells[x,y].Fontみたいに)
StringGridならObjectsプロパティを利用するのがいいのだろうけど、DrawGridにはないのか・・・。
Grid系って妙に重いような気がするので、1から作っちゃった方がいいかもしれない。
昔、マインスイーパーをDrawGridで作ったらゲームにならなかったのでPaintBoxで
描画するように作り直した覚えがある。
0185デフォルトの名無しさん
NGNGフォームを継承するような場面で、そのユニットには.DFMを持たせずに
下位クラスの別.DFM で初期化させたい時とかには手動で書いたりしますけど
後、RTTIを使って 列挙型の文字列を取りたい時くらいかな
0186デフォルトの名無しさん
NGNG0187186
NGNG018843
NGNG沢山の回答ありがとうございます。
やはりParamStrを使うのですな。(182,183さん)
187さんのGetCommandLineと言うのも良さそうなので、
とりあえず自分なりに解釈して頑張ってみます…。
ハマったらまたお世話になるかもしれません(;´Д`)(ぉ
018943@ハマリ中
NGNGParam関数において、
ParamStr(0)が実行ファイルのパス、
ParamStr(1)がその後に続く値、
ParamStr(2)がその後…と言う感じに続くのであれば、
Windowsの[ファイル名を指定して実行]で行うコマンド…
つまりはメモ帳にパラメータを追加して実行するみたいに
notepad testfile.txt
↑ ↑
ParamStr(0) ParamStr(1)
と解釈して良いのでしょうか?
それだとParamStr(1)に対する処理を書けば良いのかな?
と思っているのですが…。
0190デフォルトの名無しさん
NGNGIDEの実行メニューの実行時引数に色々入れて試してみては?
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGなら
ParamStr(0) = c:\windows\notepad.exe のようにフルパス
ParamStr(1) = testfile.txt
ParamStr(2) = this is a pen.txt のように " は除かれる
019343@ハマリ中
NGNGでは、空白の入るファイル名に関して特に懸念することは無いのでしょうか?
0194デフォルトの名無しさん
NGNGためしにやってみれば判るが 複数ファイルを同時にD&Dしても自動的に""が付いて
Delphi側で除かれるから
019543@ハマリ中
NGNGしばらく作業してみます。
0196名無しヘタぐらま ◆B18Bks.Y
NGNG×→DrawCellEx
○→DrawTextEx
×→Options := DT_NOPREFIX or DT_WORDBRAK;
○→Options := DT_NOPREFIX or DT_WORDBREAK or DT_EDITCONTROL;
>>180
文字列グリッド(TStringGrid)で作ってみました.Delphi4以降専用です.
(セルごとのフォント指定は実装していません)
フォームに文字列グリッドを貼り,グリッドのAlignプロパティをalClientにして,
フォームのOnCreate,OnResize,グリッドのOnDrawCellイベントハンドラ
およびUpdateCellHeightsメソッドを以下のように書きます.
const
cDefaultDrawTextOptions = DT_NOPREFIX or DT_WORDBREAK or DT_EDITCONTROL;
procedure TForm1.FormCreate(Sender: TObject);
var
aRow, aCol: integer;
begin
for aRow := 0 to StringGrid1.RowCount - 1 do
if not (aRow in [1, 4]) then
for aCol := 0 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[aCol, aRow] := format('This cell is %s 行 %s 列', [
StringOfChar('R', aRow), StringOfChar('C', aCol)]);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
// グリッドのセルの幅の変更…(1)
StringGrid1.DefaultColWidth :=
StringGrid1.ClientWidth div StringGrid1.ColCount - StringGrid1.GridLineWidth;
// グリッドのセルの高さの変更…(3)
UpdateCellHeights;
end;
(つづく)
0197名無しヘタぐらま ◆B18Bks.Y
NGNGprocedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
StringGrid1.Canvas.FillRect(Rect);
// ワードラップして描画…(2)
DrawText(StringGrid1.Canvas.Handle, PChar(StringGrid1.Cells[ACol, ARow]),
-1, Rect, cDefaultDrawTextOptions);
end;
// グリッドのセルの高さの変更…(3)
// フォントやセルの文字列を変えたときにはこのメソッドを実行してください.
procedure TForm1.UpdateCellHeights;
var
aRow, aCol, MaxHeight, aHeight, MinHeight: integer;
aRect: TRect;
begin
MinHeight := StringGrid1.Canvas.TextHeight('gM');
for aRow := 0 to StringGrid1.RowCount - 1 do
begin
MaxHeight := MinHeight;
for aCol := 0 to StringGrid1.ColCount - 1 do
begin
aRect := Bounds(0, 0, StringGrid1.ColWidths[aCol], 1);
// ワードラップして描画したときの高さを求める
aHeight := DrawText(StringGrid1.Canvas.Handle,
PChar(StringGrid1.Cells[aCol, aRow]), -1,
aRect, DT_CALCRECT or cDefaultDrawTextOptions);
if aHeight > MaxHeight then
MaxHeight := aHeight;
end;
StringGrid1.RowHeights[aRow] := MaxHeight;
end;
end;
0198デフォルトの名無しさん
NGNG音が出ない形で表示されちゃうんだけど、
これはなぜでしょう?
一応、検索してみたけどヒットしないみたい…。
0199198
NGNG普通に表示されます。不思議…?
0200デフォルトの名無しさん
NGNG直接レジストリを見に行かないとできないんでしょうか?
0201誰か教えてくれよぉ〜
NGNGとケチつけやがった、そこで、ActiveX版も作ってやろうとした、
ActiveXなんて初めての挑戦だったのだが、Borlandのホームページ見ると
VCLコンポから簡単にActiveXが作れるような事が書いてあった。で、
新規作成の所でActiveXコントロールを選択しても、VCLの欄に俺のコンポが
出てこないのだがなぜ?(他のは出てくるし、俺のもEditから派生させた
のは出てる)非ビジュアルコンポってActiveXにできないのか?
0202デフォルトの名無しさん
NGNG継承元をTComponentからTWinControlかTCustomControlに
0203誰か教えてくれよぉ〜
NGNGやぱし、そーなの?助かったよ、ありがと。これでAccess野郎も喜ぶだろう。
でも、継承元がTComponentなコンポはなぜ出てこないの?継承元が単純すぎるから?
0204デフォルトの名無しさん
NGNGクライアントがサーバに接続している際、クライアントプログラムを一方的に強制終了すると、サーバ側ではエラーにならず、切断イベントが発生していました。が、
自作サーバクラス内に TServerSocket を組み込んで使用したところ、
クライアント側が強制終了するとエラーが発生するようになってしまいました。どこがいけないのでしょう?
type
TReportEvent = procedure (Sender:TObject; AText:string) of object;
TChatServer = class( TComponent )
private
{ サーバソケット }
Server: TServerSocket;
FOnReport:TReportEvent;
procedure SetPort(const Value: Integer);
protected
{ TServerSocketのイベントに関連付けるイベント手続き }
procedure OnClientConnect(Sender:TObject;Socket: TCustomWinSocket); virtual;
procedure OnClientDisconnect(Sender:TObject;Socket: TCustomWinSocket); virtual;
procedure OnClientError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);virtual;
{ ステータスやログ等を出力 }
procedure Report(AText:string);
public
constructor Create( AComponent: TComponent ); override;
destructor Destroy; override;
procedure Open;
procedure Close;
property Port:Integer write SetPort;
published
property OnReport:TReportEvent read FOnReport write FOnReport;
end;
const
SocketErrorMessage:array [TErrorEvent] of string = (
{eeGeneral} 'ソケットは,どのカテゴリにも属さないエラーメッセージを受け取った',
{eeSend} 'ソケット接続に書き込もうとしたときにエラーが発生した',
{eeReceive} 'ソケット接続から読み出そうとしたときにエラーが発生した',
{eeConnect} '接続要求が完了できなかった',
{eeDisconnect} '接続を閉じようとしたときにエラーが発生した',
{eeAccept} 'クライアント接続要求を受け付けようとしたときに問題が発生した',
{eeLookup} 'LOCKUP ERROR'
);
0205デフォルトの名無しさん
NGNG{ TChatServer }
procedure TChatServer.Close;
begin
Server.Close;
end;
constructor TChatServer.Create(AComponent: TComponent);
begin
inherited;
{ Server の生成と設定 }
Server := TServerSocket.Create( Self );
Server.ServerType := stNonBlocking;
{ イベントの関連付け }
Server.OnClientConnect := Self.OnClientConnect;
Server.OnClientDisconnect := Self.OnClientDisconnect;
Server.OnClientError := Self.OnClientError;
end;
destructor TChatServer.Destroy;
begin
Server.Free;
inherited;
end;
0206デフォルトの名無しさん
NGNGprocedure TChatServer.OnClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Self.Report('[接続] /アドレス:'+Socket.RemoteAddress);
end;
{ クライアントが切断した際に発生(TServerSocketに関連付けられるイベント) }
procedure TChatServer.OnClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Self.Report('[切断] /アドレス:'+ Socket.RemoteAddress );
end;
procedure TChatServer.Open;
begin
Self.Server.Open;
end;
procedure TChatServer.Report(AText: string);
begin
if Assigned( Self.OnReport ) then
Self.OnReport( Self, AText );
end;
procedure TChatServer.SetPort(const Value: Integer);
begin
Server.Port := Value;
end;
procedure TChatServer.OnClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
Self.Report( '[エラー] '+ SocketErrorMessage[ ErrorEvent ] );
end;
0207デフォルトの名無しさん
NGNGちょっと漠然としてる感じがします。
1.「サーバ側ではエラーにならず、切断イベントが発生していました」というのは
どういう条件だったんですか?
2.どんなエラーが発生するんですか?
3.エラーをトラップして切断イベントの代わりにはできないんですか?
0208デフォルトの名無しさん
NGNGFormよりForm内のコンポーネントが大きい場合にす小ロールバーが出ますよね。
そのスクロールバーのサイズってどう取得すれば良いんでしょうか?
ButtonSizeもSizeも0なので困っています。
後、タスクバーのWindowクラス名ってなんになるんでしょうか?
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGTMemoでファイルから読み込み表示するときに、
特定キーワードのみ文字色を変えたいのですが、
どうすればよいでしょうか。ヒントだけでも教えてください。
0211デフォルトの名無しさん
NGNGシェアウエアとかのエディターコンポを使うのが簡単なように思うんですが?
0212デフォルトの名無しさん
NGNGTRichEdit使えば。
0213デフォルトの名無しさん
NGNG俺はTEditor使いだが。
0214デフォルトの名無しさん
NGNGあと(いつか)できたらソース付きで公開したいので、
シェアウェアとかフリーウェアを使わないでやりたいと思ってます
0215デフォルトの名無しさん
NGNG自分でビュアー作った方がマシなくらい難しい
0216デフォルトの名無しさん
NGNGと、言うかテキストボックスってオーナードローできるの?
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGエディタ部分が分離可能な設計にしましょう
CLXベースで一から自作するんならそうでなくてもいいが。
0219ねこま
NGNGGetSystemMetrics ?
0220デフォルトの名無しさん
NGNG試してみます。
0221デフォルトの名無しさん
NGNGできました。助かりました。
0222デフォルトの名無しさん
NGNGfunction TTestOCX.REC(var fpRec:WideString):Integer;
begin
fpRec:='2ちゃんねる';
result:=0;
end;
-------------- vb -----------------
dim tmp_rec as string
dim rc as integer
rc=TestOCX.rec(tmp_rec) <--- tmp_recの中身は空になってる
0223デフォルトの名無しさん
NGNGええとど忘れした・・・とにかく VBから読める使える型にしてやっておくれ
0225224
NGNGスレ汚しスマソです・・・
0227198
NGNGどなたかTWebBrowserでobjectタグのメディアプレーヤ埋め込み型で
音が出ないことについて知ってる人はいないですかね?
自分だけなのかな?
TWebBrowserでは音声不可になる…ってことはあり得るのかな?
0228名無し
NGNGhHWND := FindWindow('TMainForm', nil);
hHWND := FindWindowEx(hHWND, 0, 'TPanel', nil);
hHWND := FindWindowEx(hHWND, 0, 'TPanel', nil);
hHWND := FindWindowEx(hHWND, 0, 'TTabControl', nil);
としたところ、0が返ってきてしまい上手くいきません。
どこらへんがマズイでしょうか?
メインフォームにパネルが幾つか貼ってあり、その中の一つにまたパネルが貼ってあり、
そのパネルにタブコントロールが貼ってあるという状況です。
0229デフォルトの名無しさん
NGNGActiveXでVBに渡すなら、WideStringじゃなくて普通にStringでいいだろ
0230ねこま
NGNG0231198
NGNGおっ!レスあるとウレシイですねー。
えーと、「音声のみ」不可となって表示されるんですよ。
動画(メディアプレーヤ自体も)は出るんです。
が、「音出ないよ」のマークになっちゃってるんですよねー?
もちろん、その動画(mpeg)は音あるし、IEで見るとちゃんと
音出るんです。不思議…??
0232222
NGNG>>223 VBで使える文字列の型がいまだに探し出せません(;;)
>>229 ocxの場合、DELPHIのStringは駄目だと思いますが、WideStringだから
駄目ってのはアリですか?単にプロパティで設定された条件により文字列を
返したいだけなのですが・・・。
0233貧乏人
NGNGすごく短命でしたな。それほど浸透してない(?)ってことだろうか?
あの4800円くらいするデカイ本を本屋で見た。デカかった・・・。
欲しかったけど、高いなー。基礎編の方は割と必要なさげだった。
アレはエロゲーパッケージに通ずるデカさだ(藁
0234デフォルトの名無しさん
NGNG> どこらへんがマズイでしょうか?
たぶん、複数のパネルのうち TTabControl がのっかっているのと
ちがうのが最初に見つかるためでしょう。
以下の FindClassInChilds( ) 関数では、直接の子のほかに
孫、ひ孫...も検索して、指定のクラス名のウィンドウハンドルを
返します。見つからなかったらゼロを返します。
type
pFindData = ^TFindData;
TFindData = record
ClassName:string;
FindHandle:HWND;
end;
function GetClassNameString(hWindow:HWND):string;
var
p:PChar;
ret:integer;
begin
GetMem(p,100);
ret := GetClassName(hWindow,p,100);
SetString(result,p,ret);
FreeMem(p);
end;
function EnumCldProc(hWindow:HWND;Data:LParam):Boolean; stdcall;
begin
result := true;
if GetClassNameString(hWindow) = pFindData(Data)^.ClassName then
begin
pFindData(Data)^.FindHandle := hWindow;
result := false;
end;
end;
function FindClassInChilds(hParent:HWND;ClassName:string):HWND;
var
FindData:TFindData;
begin
FindData.ClassName := ClassName;
FindData.FindHandle := 0;
EnumChildWindows(hParent,@EnumCldProc,integer(@FindData));
result := FindData.FindHandle;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hParent:HWND;
begin
hParent := FindWindow('TMainForm', nil);
Label1.Caption := IntToStr(FindClassInChilds(hParent,'TTabControl'));
end;
0235誰か教えとくれぇ〜
NGNGVCLからActiveXを作成したのであれば、自動で変換できなかった部分もある
かもしれない、もう一度ActiveX変換後のソースを眺めてみれ。
と、人の蝿おってる場合じゃない、折れもActiveXに挑戦中(^^;
折れが作った非ビジュアルActiveXだが、貼り付けた時にアイコンが表示さ
れないのだが、何処にアイコンを設定すりゃいいのさ、誰か知ってる?
0236171
NGNGほかの人はどうやっているのか気になったんです
ただDelphiでのクラスの作り方がよく解らなかったんで
クラス化するのは後にすることにしました。
今はタブ、ツリー、リスト、スプリッターの動的配列を確保して
インスタンスを生成してます
>>175
Borlandのページにタブとボタンを動的生成するページが有ったんで参考にしました。
取りあえず動作するようになり前に進みました。
今困ってるのは新規タブを作成した場合
一番左はしに出来てしまうのです。
右側に作りたい場合などはどうすればいいのか解る方がいたら
アドバイス欲しいです。
0237デフォルトの名無しさん
NGNG//メニューのフォント
var
lf: LOGFONT;
nm: NONCLIENTMETRICS;
begin
nm.cbSize := sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @nm, 0);
lf := nm.lfMenuFont;
//
lf.lfFaceName//フォント名
lf.lfHeight//フォント高さ
lf.lfWeight//700以上でBold
lf.lfItalic//1の場合はitalic
0238デフォルトの名無しさん
NGNG最後だけ0を返すの?
0239デフォルトの名無しさん
NGNGString でデータがある時は ByteType を使って if 文を簡略化してますが、
文字コードしか無い場合には、すべて if 文で総当りしてコンバートするくらいしか
方法を思いつきません。その手しか無いのでしょうか???
もっと賢いやり方があるような気はしているのですが・・・・・
0240239
NGNG1バイト文字と2バイト文字が混ざっていますが
2バイト文字の方は英数字記号ひらカナなどの
合計500文字程度なので、少々おバカで無駄の多いコードでも
何とかなりそうではあるのですが・・・
0241ムッチムチの名無しさん
NGNGIEを取り込んで、ボタンでIE上のフォームに記入するのはどのようにすればいいでしょうか?
パスワードとかIDとかを自動入力させるみたいな・・・
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG素直に既存のライブラリ(jconvert.pasとか)を使うわけにはいかないの?
0244 ◆iWks40y.
NGNGDelphi6.0PersonalとDelphi2.0を使っています。
ユーザーがキーボードを入力したのを、感知するにはどうしたらいいでしょうか?
フォーム上でなら感知することは出来ますが、フォームが非アクティブになると、
感知できません。TForm.OnMessageでも反応しないようです…。
どうかよろしくお願いします。
0245デフォルトの名無しさん
NGNGpちゃん?
0247デフォルトの名無しさん
NGNGそこで以下の関数を作ったのですが、3階層目あたりの
サブメニューになると、正確な値が取得できず困っています。
{ フォーム AForm からのメニュー AMenu の相対座標を得る }
function GetMenuRect(AForm:TForm;AMenu:TMenuItem):TRect;
function ShiftRect(ARect:TRect;dx,dy:integer):TRect;
begin
Result:=Rect( ARect.Left+dx, ARect.Top+dy, ARect.Right+dx, ARect.Bottom+dy );
end;
var
DRect: TRect;
IMenu: TMenuItem;
begin
{ その位置のスクリーンでの座標取得 }
GetMenuItemRect( AForm.Handle, AMenu.Parent.Handle, AMenu.MenuIndex, Result );
{ フォームからの相対座標に変換 }
Result:=ShiftRect( Result, -AForm.Left, -AForm.Top-24 );
IMenu:=AMenu.Parent;
while IMenu.Parent is TMenuItem do
begin
{ その位置のスクリーンでの座標取得 }
GetMenuItemRect( AForm.Handle, IMenu.Parent.Handle, IMenu.MenuIndex, DRect );
{ フォームからの相対座標に変換 }
DRect := ShiftRect( DRect, -AForm.Left, -AForm.Top-24 );
Result := ShiftRect( Result, DRect.Left, DRect.Top );
IMenu := IMenu.Parent;
end;
end;
0248デフォルトの名無しさん
NGNGそのクラスの先頭ポインタはどこにあるのですか?
Bレジスタかと思っていたのだけれどはっきりしない。
0249239
NGNGなんと!こんな素晴らしいものが!
これで十分。全然オッケィです。
この前検索した時は見つけられなくて・・・
情報サンクスでした!
0250デフォルトの名無しさん
NGNGおっしゃる通りでした、有難うございました。
但し、私も非ビジュアルActiveXだが、貼り付けた時にアイコンが表示さ
れないです、非ビジュアルなocxだからそんなものなのではないでしょうか?
0251
NGNGSendMessage(Form1.Handle,WM_KEYDOWN,VK_F3,0);
上手くいかないんですが・・・
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG超初心者にお勧めの本ってありますか?
おすすめのサイトなんかもあったら教えてください。
0255書けませんよ。。。
NGNG0256デフォルトの名無しさん
NGNG実用に耐えるのはプロフェッショナル版。
0257デフォルトの名無しさん
NGNGダウンロードできるんですか?
それじゃあ製品版の意味ってなんなんでしょうね…
0258デフォルトの名無しさん
NGNGメディア、言語リファレンス本代。
5000前後でしょ。
それから、ダウソが面倒ならC魔蛾のCDに付いてるYO!
0259デフォルトの名無しさん
NGNGPersonalならCDが付属する入門書を購入するという手も有りますよ。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4002-5.html
なんか「オフィシャル」って名が付いてるから良いかも。
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG誰それ?
0263デフォルトの名無しさん
NGNG見てきめれば?
0264デフォルトの名無しさん
NGNGCマガジン だYO!
1000円くらいするかな。
買う前にその月のCD-ROM内容確認してNE!
0266デフォルトの名無しさん
NGNGうそ、、、もしかして僻地にお住まい?
0267デフォルトの名無しさん
NGNG僻地… まぁ確かに田舎ですね。30分くらい歩かないと本屋ないですし…
0268↑
NGNG>>266
ですね…
0269デフォルトの名無しさん
NGNG学生さんなら時間があるだろうから最寄の電脳街へ行ってみるといいよ
0270デフォルトの名無しさん
NGNG今、ネットで検索して調べたんですが難しそうな内容ですね…
これ買って読んでいけるかものすごく心配です。
プログラム初心者の自分でも大丈夫なんでしょうか?
0271デフォルトの名無しさん
NGNG参考書は別に買ったほうがいいでしょう
(Cマガも読んで無駄にはならないと思うけど)
0272デフォルトの名無しさん
NGNGプロレベルになってコードが大きくなっても読みやすいし。
とりあえず、ダウソか安い本かで始めちゃえば。
0273デフォルトの名無しさん
NGNGCマガ買ってDelphi手に入れたいと思います。
これからDelphiの世界に足踏み入れますので、よろしくお願いします!
0274259
NGNG本屋で見かけたら買おうかなとは思って居るのですが、
見かけないので内容はよく分かりません。
私は、「基礎から分かるDelphi5」を買って勉強しました。
今、家にある雑誌を確認したところ、「日経ソフトウェア」の
一月号にDelphi6を収録したCDがついていましたよ。
0275231
NGNG付録目当てにCマガ買うのはもったいないな…
と思ってたらテックウィンに付いてたのでラッキーでした まる。
あいやー、まだ問題が解決出来ない…(TT。なぜなんだー。
誰かTWebBrowserで作ったブラウザで「objectタグ」のビデオ、
音が出るぞ!って人いませんかね?うーむ。検索もしてるのだが、
うまくヒットさせられない…。潮時かな、ここでは…。
0276デフォルトの名無しさん
NGNGありがとうございます。日経ソフトウェアというのも実は恥ずかしながら聞いたことないです…
今度書店で「基礎から分かるDelphi5」を見てみたいと思います。
>>275
CマガジンってC言語なんかの雑誌なんですか?プログラムの総合誌かと思いました。
0277デフォルトの名無しさん
NGNG変わった。
ぼろくそいう人も多いけど、存在は知っておいても損はない。
0278デフォルトの名無しさん
NGNG元々は「C言語の雑誌」だったけど今は「プログラムの総合誌」になったらしいね
0279275
NGNGです(^^;。
0281デフォルトの名無しさん
NGNGなんとなく意味をくんで欲しかったのだが、
こー書けば理解して頂けるでしょうか?
var
wfHWND:HWND;
begin
wfHWND:=FindWindow('xxxxxxxx',nil);
if (wfHWND <> 0) then
begin
SetForegroundWindow(wfHWND);
keybd_event(VK_F3,0,0,0);
end;
0284281
NGNGSystemParametersInfo 使ったらSetForegroundWindow 出来そうだが
0285281
NGNG0286デフォルトの名無しさん
NGNGって何なのですか?
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGこれもだめぽ?
0290デフォルトの名無しさん
NGNG0291253
NGNGここを読んでね。Cだけど参考になるよ。
必ずウィンドウをフォアグラウンドまたはアクティブにするには?
http://techtips.belution.com/ja/vc/0012/
029290
NGNGこんどはちゃんと作ってこいと言われてしまい何を作って良いかわかりません
みなさんどうかお知恵をお貸しください
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGワラタ
0296デフォルトの名無しさん
NGNG029743@ハマリ中
NGNGドラッグ&ドロップの件で土日を使って試行錯誤してみたのですが、
今ひとつ理解できない部分があり困っております。
(1)
project.dprにParamStr関数を使用した命令を記述して
ドラッグ&ドロップの処理をしようと思い、以下のように記述しました。
// -------------------
// project1.dpr (参考:ttp://www.w-frontier.com/tips.html)
// -------------------
program Project1;
uses
Forms,Windows,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {FrmAbout};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Lite';
Application.HelpFile := 'C:\Program Files\Borland\Delphi6\Projects\20020117\readme.html';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TFrmAbout, FrmAbout);
Application.Run;
Form1.DDFileOpen(ParamStr(1));
end.
(続く)
029843@ハマリ中
NGNGtype
TForm1 = class(TForm)
Memo1: TMemo;
StatusBar1: TStatusBar;
…
procedure DDFileOpen(Sender:TObject; var DFName: string);
private
{ Private 宣言 }
FName:string;
DFName:string;
{$R *.dfm}
…
procedure DDFileOpen(Sender:TObject; var DFName: string);
begin
{D&Dによるファイルのオープン}
// テキストが変更されていた場合
if Memo1.Modified then
case MessageDlg(ExtractFileName(FName)+'は変更されています。'+Chr(13)+Chr(13)+'保存しますか?',mtWarning,mbYesNoCancel,0) of
mrYes:Save1Click(Sender);
mrCancel:Exit;
end;
// [開く]の処理
begin
FName:=DFName;
Memo1.Lines.LoadFromFile(FName);
Form1.Caption:=Application.Title+' - '+FName;
end;
end;
などと書いてみたのですが、どうも上手く起動しない…と言うか、
これもしかして僕が全く見当違いな事やってたりしますか?
とりあえず自前でファイルを開く関数を作ろう(DDFileOpen)と思って作ってみたのですが。
「関数の勉強しろ(,,゚Д゚)ゴルァ!」と言われそうですが、
現在関数についていろいろ調べている最中です。
明らかに勘違いしている場所など指摘して頂ければ幸いでございます。
0299デフォルトの名無しさん
NGNGApplication.Run はメインフォームが閉じるまで帰ってこない。
030043@ハマリ中
NGNGでは、CreateFormのすぐ後に記述してみます。
$R *.res}
begin
Application.Initialize;
Application.Title := 'Lite';
Application.HelpFile := 'C:\Program Files\Borland\Delphi6\Projects\20020117\readme.html';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TFrmAbout, FrmAbout);
Form1.DDFileOpen(ParamStr(1));
Application.Run;
end.
0301デフォルトの名無しさん
NGNG>などと書いてみたのですが、どうも上手く起動しない…と言うか、
そもそもコンパイルできなでしょ? 関数の宣言と実装がことなり、
また、呼び出し時のパラメータも間違ってるよ。
TForm1 の OnCreate() イベントハンドラで
if Length(ParamStr(1)) then
Memo1.Lines.LoadFromFile(ParamStr(1));
というところから始めて下さい。
0302デフォルトの名無しさん
NGNG実のところそうとも限らんかったはず。
例外発生時なんかRunから戻ってきたような気が。
気のせいとか記憶違いだったらスマソ。
>>301
TForm1のOnCreateかOnShowイベントに書いてみたら?
0303デフォルトの名無しさん
NGNGグーグルしたらまだ現役でびっくり ttp://www.mado.info/
0304301
NGNG訂正 if Length(ParamStr(1)) > 1 then
030643
NGNG>そもそもコンパイルできないでしょ?
はい、出来ませんでした(汗
>TForm1 の OnCreate() イベントハンドラで〜
早速参考にさせて頂いたのですが、見事に出来ました。
あれだけ試行錯誤したのが…。
CとVBを少ししかかじった事しかなくて
自前の関数と言うのは少し無理があったかもしれません…。
次のアプリを作る際には勉強しておきたいものです。
ともあれ、色々とアドバイス有難うございました(´∀`)
あともう少し付け加えたいしたい機能があるので(と言っても簡単なものですが)
すべて実装して完成した際にもう一度ここに戻ってきたいと思います。
では、改めてありがとうございました。
0307デフォルトの名無しさん
NGNG実装部の
procedure DDFileOpen(Sender:TObject; var DFName: string);
は確かに手続きだけど、ホントはメソッドにしたかったんだね
procedure TForm1.DDFileOpen(Sender:TObject; var DFName: string);
とクラス名を付けてやる事
それから上のForm1でのメソッド定義部はpublishに書いてあるけどpublicに移した方がいい
0308デフォルトの名無しさん
NGNG検索すればサンプルが見つかるので
そういうのを見て定義、実装の仕方を
参考にすると良いと思われ。
D&Dのやり方なんか定番なんだし・・・
そうすればぐいぐい実力アップだよ!
031043
NGNGお察しの通りでございます。
ただVBの知識だけで作ったのでだいぶボロボロです(笑
クラス名が必要なのですか…よく叩き込んでおきます。
宣言の場所も…あぁ覚える事が多いw
今度時間が空いたときにじっくり取り組んでみますね。
>>308さん
助言ありがとうございますー。
とりあえず自分的には一通り検索をかけてみて、
どうしてもダメな場合に書き込むようにしております。
プロの皆さんから見れば他愛も無い質問だと思うのですが…
なかなか自分の思っているような解説をしているページを
探すのは難しいです(;´Д`)
ゆっくりではございますが、よく噛み砕きながらやりたいと思っております。
>>309さん
どもです。正直嬉しいです(*´∀`)
今回の学校の課題(卒業制作です)でDelphiは僕一人だけなので、
わざと自分を追い詰める感じでプログラミングしております。
今週末に提出なんでそれまで頑張ります!
では、また制作に戻ります。
0311デフォルトの名無しさん
NGNGメソッドの場合は場合は、そのクラスに宣言を書く。
そこで Ctrl+Shift+C を押すとそのメソッドの雛型ができる。便利だよ。
Personal版だと出来るかどうか知らないけど。
0312デフォルトの名無しさん
NGNG参考、関連リンクがあって便利だったんだけど
このスレにはないな・・・
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGコードエクスプローラの機能らしくて、perだとできないぽ。
0315TIcon
NGNGIcon.Handle := ExtractIcon(HInstance,PChar(FileName),0);
にて取得したTIconオブジェクトの以下の症状で悩んでます。
1.アイコン取得後は256カラー(?)で表示されるが ファイルに保存後読み込むと
色が変わる(16色かな?)
2.一部のアプリケーションのアイコンを取得後保存しようとすると
「ビットマップイメージが不正です」とエラーが出る。
以上なにか解決の手がかりなりそうな情報は無いでしょうか?
グーグルで検索したのですがなかなか情報が見つかりませんでした…
0316デフォルトの名無しさん
NGNGさんくす。perはダメですか。
この辺もperに解放しないとなぁ・・・>某島
0317デフォルトの名無しさん
NGNG凹んだボーダースタイルのパネル上に、ボタンを配置して使っています。
Panel.BevelOuter:=bvLowered;
Button.Parent:=Panel;
Button.Top:=1;
Button.Left:=1;
Button.Width:=Panel.Width-2;
Button.Height:=Panel.Height-2;
このようにすると、丁度フラットボタンに
枠がついたように見えます。
これを TFlatButton としてコンポーネントにしたいのですが、
どのようなコードを書けば良いのでしょうか。
PanelにButtonが「含まれている状態」とはいえ、これはあくまでも
Buttonなので…
これはButtonではなくPanelと見なされてしまうのでしょうか。
0318昔はグレーゾーン(レ○タル屋)だったくせに
NGNG遅レスだが、なっつかしーなー(藁
なーんか、やってたなー。そーいえば。あのころはプログラミング
「なんだそりゃ」と思っていたけど。なにやら「早い早いィィッ!」
みたいな宣伝やってましたなぁ。思い出した。思い出した。
誰か使ってるヤツいんのかねー(藁
0319318
NGNG「プログラミング」は余計だす。トホホ。
0320デフォルトの名無しさん
NGNGTIconは16色以外非対応。48x48とかも非対応。
全部自分で管理するしかなかばってん
0321デフォルトの名無しさん
NGNG0322315
NGNGやっぱそうなんですか、なんとなく思っていたのですが
読み込み&描画が上手くいったのでそのまま保存して
やってました。
とりあえずTBitMapに変換してやります。
ちなみに保存時エラーになるのはかちゅ〜しゃを起動する
Kage.exeのICONです(w
0323デフォルトの名無しさん
NGNG以下にあるフリーソフトみたいなことがしたいのですが
ttp://members.jcom.home.ne.jp/shinonon/gabaquit.html
0325デフォルトの名無しさん
NGNGTIconって、256色に対応したんじゃなかったっけ?
保存は知らんが。
0326デフォルトの名無しさん
NGNG・DelphiでDirectXを扱うことは可能か?
・可能なら単純なDirecxtXスクリーンセーバー程度の物なら、DelとVCどっちが開発楽?
0327デフォルトの名無しさん
NGNG>・DelphiでDirectXを扱うことは可能か?
可能。探せばunitが見つかる。
クラスライブラリもいくつかある。
>・可能なら単純なDirecxtXスクリーンセーバー程度の物なら、DelとVCどっちが開発楽?
GUI作らなきゃわざわざDel選択するメリットなし。
0328デフォルトの名無しさん
NGNGVC使えるなら、VC使っとけ。頭にDirectと付く類のは、その方が楽だ。
0329デフォルトの名無しさん
NGNGコンポーネント自作するだけの能力があるならメリット無い事もないだろけど
それはには先にDirectXが使える事が条件なわけで、
それが使えない人の場合は、サンプルがそのままコンパイル出来るVCが
楽という結論だな
0330デフォルトの名無しさん
NGNGフォームに貼りつけようとすると、
「コントロール””は親ウィンドウを持っていません」
といわれますが、どういうことですか?
0332デフォルトの名無しさん
NGNG資料の多さを考えると、VCでしょうな。
俺はそれでもDelphiでやってるけど
0333デフォルトの名無しさん
NGNG未だ持って分からんことがあるので質問。
TFormのプロパティのデフォルト値なんですが、
AutoScroll := True
ShowHint := False
の2つのプロパティは何故デフォルトでこの値なんでしょうか?
自分にはこの2つは逆の方がよい気がしますが…
特にHintは未設定でも問題ないわけですし、
ユーザに優しいUI考えたらTrueの方がよい気がします。
いや「某陸がそう設定したから」「お前だけ」「変えれば済む話」
とか言われればそれまでなんですが、ずっと気になってまして。
0334デフォルトの名無しさん
NGNG俺もHintプロパティ設定したのに、ツールチップ出てこねーじゃん、
と最初の頃ちょっと困りました。
確かに一度知ってしまえばたいしたことないんですが。
0335(′∀`)
NGNG右クリックして[リポジトリに追加]。適当な名前とか付けて登録。
2.ツールバーの[ツール]-[リポジトリ]で今登録したフォームを
選び、[フォームの新規作成時に使用]にチェックする。
0336なゆなゆ
NGNGすごく不思議。。。
0337インディアソポーカ
NGNGそれにしてもCマガって難しいですね…
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGだから立場が違えば逆だってば。
とかいいつつ最近はBuilderもいいかなって・・・思ってる。鬱。
0341デフォルトの名無しさん
NGNGBCBで大型コードコンパイルすると鬱。
ヘッダーファイルってのも時代遅れナ気が。
だって、コード小さくても展開されるし。
0342339
NGNG0343名無し
NGNG自分としてはBuilderも使ってみたいと思ってるんですが、
学生には少々値段高くて手が出しづらいです。
コンパイラは使ってますけどね。
Delphiは無償版を使ってます。
0344339
NGNGすいません…。無償版のリンク貼って貰えます?
使ってみたいかも…。
0345デフォルトの名無しさん
NGNG爆速のコンパイルは何ものにも代え難い。
0346339
NGNG今日から使ってみます。皆さんの仲間になるかもです。。。
0347デフォルトの名無しさん
NGNGクソ!何人の犠牲をだせば気が済むんだ!
おまえらRuby仕え!!!
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGそんなに Ruby 使いたかったら、Apollo でも使ったら?
http://www.users.yun.co.jp/~moriq/apollo/
Ruby でデータベース処理もできるしねぇ。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG[offset]: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------------------------------------------------------------------------
00000000: 97 E9 96 D8 00 88 C9 8F 57 89 40 00 90 58 00 鈴木.伊集院.森.
例えばこんな感じで文字列の長さは不定なので$00なら終わりと判定してます。
また、文字列の数も不定なのでひとつのString変数を使いまわしてTMemoなどに
渡しているのですが、どうもケツにゴミがついてしまいます。
m:TmemoryStream;
s:String;
b:Byte;
c:Char;
i:Integer;
for i:=1 to 終わり値 do
begin
m.Read(b, sizeof(b));
c:=Chr(b);
s[i]:=c;
end;
大体こういう流れなのですが、String変数を初期化(?)しなければ
ならないような気がしつつも方法がわかりません。
こういう場合は普通こうやるんだよ、みたいな
セオリー的な方法があったら教えてください。
0352デフォルトの名無しさん
NGNGSetLengthを調べてみ。
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGの方がいいんじゃないの?
m.Read(c, SizeOf(c));
でもよさそうだし。
0355デフォルトの名無しさん
NGNG>353
ああ、こんなのがあったのですね
早速SetLength使ってみます、どうもありがとう!
>354
すみません、説明を割愛したのですが一旦バイト単位で
データを取得する必要があって、351みたいにしてました。
その処理を別で済ませれば354の方が簡単なんですよね。
ちょっと考え直してみます。助言ありがとう!
0356デフォルトの名無しさん
NGNGお前面白い、テンプレとして使わせもらうよ(w
0357デフォルトの名無しさん
NGNGSetLength(s,終わり値+1);
m.Read(pChar(s)^ ,終わり値);
s:=pChar(s);
0358デフォルトの名無しさん
NGNGデータベースのテーブルにデータを追加する際に、
レコードのキーを MAX + 1 で取得したいのですが、
簡単な方法はありますか?
0359デフォルトの名無しさん
NGNGPQコンポ使うのとODBC経由で作るのとどっちがいいと思いますか?
自分的には、ODBCの方がいいような気がするのですが、レスポンス
テストしたらPQコンポも捨てがたい・・・。
そーいや、最近のKylix等でのMySQL関連の動向等をみても、
今後は、DelphiにおいてもBDEの幻想は崩れたのでしょうか・・・。
0360デフォルトの名無しさん
NGNGFindFirst('C:\*',faDirectory,SearchRec);
としてみたところ、なぜか全てのファイルが取得されてしまったのですが、何が悪いんでしょうか?
0361デフォルトの名無しさん
NGNGAPIの仕様です。取得したファイルから自力でディレクトリだけを抽出しないといけません。
0362デフォルトの名無しさん
NGNGDLL内でグローバル変数を使って処理しようとしてるからだろうと思うが、
結局、DLL内で定義されたグローバル変数は、どの段階で破棄されてるの?
呼ばれた関数が終了した時?(1つのDLLに複数関数がある)
呼んだプログラムが終了した時?
それとも、明示的に破棄するような処理が必要?
0363デルファイで遊ぼう
NGNG0364
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1006602102/973
0365デフォルトの名無しさん
NGNGThis function searches for files by name only; it cannot be used for attribute-based searches.
日本語版に頼ってるとたまに落とし穴にはまります
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG普段使ってるのはPlatformSDKのヘルプだけど、日本語で持ってるのはVS6についてたやつだから……
(もう一回見直してみたけど書いてないし…)
0368?切望?
NGNGの復刊へむけて投票よろしくお願いしまーす >ALL
http://www.fukkan.com/vote.php3?no=4407
0369デフォルトの名無しさん
NGNG大抵の人向こうも見てるから意味ないってーの(それがマルチポストって言うやつだよ・・・
0370デフォルトの名無しさん
NGNG確かにBDEはびみょーに使いづらい感があるが、まあ妥当なところだと思ってる。
dbExpressって接続エンジン + ClientDataSet(?)だから扱い的にはBDEとそう大差はない。
0371デフォルトの名無しさん
NGNGやり方は大きく分けて2通り
1.データベースに任せる
�@Accessならオートナンバー
�AParadoxならカウンタ型
�BOracleならCREATE SEQUENCEを使う
2.プログラムで処理する
�@起動時に最大値を変数へ読み込んでおいて
レコード作成時に加算してゆく
�A毎回SQL等で最大値を所得する
単にユニークなインデックスが欲しいだけなら
データベースに任せたほうが確実
0372デフォルトの名無しさん
NGNGどんなAPIを使えばよいですか?
0373デフォルトの名無しさん
NGNGEnumWindows
0374372
NGNG0375373
NGNGとりあえずEnumWindowsの使い方。コールバック関数という奴だ。
(ListBox1とButton1を用意しる!)
function EnumWindowProc(Handle:hwnd; lParam:Integer):Bool; stdcall;
var
szTitle:array[0..255] of char;
begin
If GetWindowText(Handle, szTitle,255 ) > 0 then Form1.ListBox1.Items.Add(szTitle);
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
EnumWindows(@EnumWindowProc, 0);
end;
0376372
NGNGあと、起動したアプリのある場所を割り出したいんですが、
そんな事は出来ますか?
0377not 373
NGNG位置というのがEXEのフルパスなら
→http://www.microsoft.com/japan/support/kb/articles/JP175/0/30.asp
そのまんまウィンドウ位置なら
→GetWindowRect API
0378372
NGNGそれです。ありがとうございました。
0379デフォルトの名無しさん
NGNG>>370
しかし、現実問題としてBDEの優位性は損なわれつつあるのも事実だろう、
359が書いたようにPgSQL等を使う場合、ODBCを経由させてBDE接続させる
意味は希薄になる、しかもDBGrid等の既存コンポが使えない事でのデメ
リットは、プログラム次第で補えるだろう、捨てがたい機能としては、
グリッドに対する更新処理とキャッシュアップデート機能だが、これを
実務で活かす事は難しいと感じる、俺は、PQコンポーネントの優位性の
方が高いと感じる。
0380370
NGNGいまの仕事Oracle8iでやってるがDelのTransactionの扱いがいまいち不透明なんで
(Edit,Post/StartTransaction,Commit)CacheUpdate使ってます。
多少レスポンス悪くなるが、こっちのほうがわかりやすい。
ISAM感覚で使えるし。
あと、TClientDataSetってxmlでデータ吐き出せるからけっこう便利だNE!
おれがいまやってる仕事では低速回線(56kとか)でDB鯖と接続とかするから
そういう環境ではCacheUpdateは結構役に立つ。
ついでにDB鯖と切り離した場合(モバイルとか)も想定してるんで、
そうなるとClientDataSetつかうとかなり楽ちんですな。
0381379
NGNGそう言えば、ParadoxはまだDel6に付いてるけど、あれ使ってる人いるのか?
Borlandは将来的には、今のParadoxの用途にMySQL辺りを据えたいと
思っているのかと感じたこともあったが、ノートPCが普及すると、
持ち出し時にDBを切り離す使い方ではなく、レプリケートしたりして
持ち歩く事が多いんじゃないの?(まぁ、携帯も常時接続的に使える
時代だから、そっちで対応するのかもしれんが)
デスクトップレベルでもOracleとか使うのが常識なのかな?
0382デフォルトの名無しさん
NGNGDelphi(Pascal)のソースからJavaのソースを生成できますか?
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGDelのDBコンポーネントの機能を一番やりたい放題に使えるのはParadox
(Oracle等単方向のデータセットには色々制約がある)
俺はローカルデータベースとしては良く使うよ
DBLookupComboBoxとかも何の工夫もせずにリアルタイムで動作するし
(さすがにC/Sは無理があるのでOracleとかになるけど
場合によっては併用も考える)
0385デフォルトの名無しさん
NGNGこれをやってみたが
EnumWindows(@enumWindowProc,0);
のところで 変数が必要です というエラーが出る・・・なにか足りない??
0386デフォルトの名無しさん
NGNGι/ヽ.∧__ ∧ヽ╋ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ιノ ノ ( ・∀・) ┃< 1000ゲットして幸せになろう。
ιノノ ノ⊂ __ † つ \_______________
ιノノノ /|__二二|. ┃
ιノ /_(__)_)┃
0387デフォルトの名無しさん
NGNGDelphi用のパーサー書いて、Javaソースにコンバートするアプリ書けば出来るけれど、
VCLのことを考えると頭が痛い
0388382
NGNG(誰か作らないかなぁ、需要あると思うけど・・・)
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGひょっとしたら、EnumWindowProcをTForm1のメソッドとして作っていない?
独立した関数として作らないとうまくいかないよ。
0391悪いけど
NGNG0393デフォルトの名無しさん
NGNGDelphi J-code
compiling Delphi source code into a different machine code format - Java byte code.
0395デフォルトの名無しさん
NGNGアレについてるパッチは今、ボーランドのHPにアップされてる
ヤツと同じかなぁ?
なんで20メガもあるんだろう?
0396デフォルトの名無しさん
NGNGヘルプでメソッドでも引いてみな
0397デフォルトの名無しさん
NGNG以下の2つの処理で重さが全然違ってしまいます。
処理1)
for i := 0 to 〜
Canvas.Pen.Color := clRed;
Canvas.PolyLine( 〜
Canvas.Pen.Color := clBlack;
Canvas.PolyLine( 〜
end;
処理2)
Canvas.Pen.Color := clRed;
for i := 0 to 〜
Canvas.PolyLine( 〜
end;
Canvas.Pen.Color := clBlack;
for i := 0 to 〜
Canvas.PolyLine( 〜
end;
描画している線の数は同じでも処理1の方がはるかに重い。
単にColorプロパティを変更するのがそんなに重いとも思えない。
Windows上での描画システムを根本的に理解できてないのでしょうか?
0398デフォルトの名無しさん
NGNGそうです
0399デフォルトの名無しさん
NGNGですから Pen.Color:= も内部ではいちいち CloseObjectしてCreatePen SelectObjectしてるかと
試しに、ペンを2つ先に用意しておいて ペンごと交換してみては?
0400デフォルトの名無しさん
NGNG0401397
NGNGhttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl2.htm
このサイトとかを読んでボンヤリとですが、わかってきました。
TPenはGDIオブジェクトって奴で限られたリソースであって、
Canvasごとにインスタンスを持っているわけでなく、
リソースマネージャで管理され、いろんなとこと共有していると。
だからPenのプロパティをセットすると、いちいちリソースマネージャに共有できそうなPenがすでに存在するかどうか
いちいち問い合わせにいっちまうので、重くなってしまう。
こんなかんじの理解であってるかな?
つまり漏れがした質問はWindowsの問題であって、
このスレで聞く事ではないってことですな。スマソ、逝ってきます。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG完全に間違い。GDI 処理が遅いんであって、それを極力回避するためのメカニズムが
リソースマネージャ。
ループ回数を100として、処理1だと毎回色を変えて描画。200回色を変えなきゃいけない。
処理2だと色の変更はわずか2回。
0404デフォルトの名無しさん
NGNGメニューを追加しようとして、FormにMainMenuを配置し、テンプレート
のファイルメニューを選んだところでとりあえずコンパイルしたんです
がなぜかメニューが表示されないんです。他にしなくてはならないこ
とって、ありましたっけ?
0405デフォルトの名無しさん
NGNG0406390
NGNG単純にやるとTPen.Colorだけを変更したつもりでも実際には Windowsに対して
CloseObject(Handle) -> CreatePen ->SelectObject
と3つのAPIが呼ばれてしまいます。APIコールはそれだけで重い処理なので
リソースマネージャを使ってそれを軽減する為にハッシュで検索する処理が入っ
ています。
速度を追求しなければいけないなら
ペンを先に2つ用意しておいて SelectObjectだけですむようにした方が速いです
しかしそれよりも同じ色は連続して描画するとか APIコールを減らす為に
Canvas.PolyLine よりもAPIのPolyPolylineを使うとかの工夫が必要です
しかしそういう事をする場合は、それを隠蔽するように上手に組んで下さい
でなければ 速度を追求する事が必要かどうか考えなおした方がいいでしょう
0407デフォルトの名無しさん
NGNGですよね。なんでかなぁ。
0408404
NGNG0409デフォルトの名無しさん
NGNG1側の項目をテキストに表示させるにはどうすればよいのでしょうか?
ここまで作ってみました(以下
地区マスタ(1側)
顧客マスタ(多側)
1.顧客マスタの入力画面に、Queryで地区マスタと顧客マスタの結合したSQLを設定
2.初期表示状態では、きちんと地区に該当する項目がテキストに表示される
3.地区コードを変更しても、テキストに該当する項目が反映されない
SQLを設定しておけば、自動的に1側の参照項目は表示されると思うのですが
コードで書かないとダメなのでしょうか?
よろしくお願いします。
0410デフォルトの名無しさん
NGNGまたはTTableを使う。
0411デフォルトの名無しさん
NGNG0412411
NGNGアボーンで見たらすごいことに…。
0413デフォルトの名無しさん
NGNGうんこはどうやってサポートできますか?
0414デフォルトの名無しさん
NGNG面白いと思ったわけだ、君は。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG内容をソートしたいのですが、SQL解析してORDER BY句を入れる以外に方法ありますか?
0417デフォルトの名無しさん
NGNG寝なさい
0418デフォルトの名無しさん
NGNGそーゆーことをするためのローカルデータベースなのだが、近頃は嫌われることが多いようだ。
クライアントデータセット/Midas/Mybase を使う方法もある。
ただ、こったことをすればするほど、データ更新時の作業が面倒なことになるので
気をつけて。表示と更新を異なる画面にするのが楽チンかな。
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG僕がサポートするよ。もぐもぐもぐ。
0421デフォルトの名無しさん
NGNGプログラマの都合で使い勝手を悪くするのはいかがなものかと
0422デフォルトの名無しさん
NGNG1、form1のボタンにa:=yes;って書いてform2のedit1にedit1.text:=a;みたいな感じでやりたい時は
どのようにやればいいのでしょうか?
2、button1,button2とedit1をform1に配置。
button1を押した時にa:='yes!'
button2を押した時にa:='no!'
ってedit1のtextに入れたいんですが、button1,button2両方にedit1.text:=aって入れないと
上手くいきません。
edit1にedit1.text:=aって書くだけじゃ駄目なもんなんでしょうか?
解りづらくて申し訳ないです。ご教授お願いします。
0423デフォルトの名無しさん
NGNG変数に入れただけで何で関係ないコントロールの値まで変わるんだよw
0424423
NGNG1
「uses Unit2;」を追加
Form2.Edit1.Text := 'yes';
2
Edit1.Text := 'yes!';
Edit1.Text := 'no!';
aはString変数でしょ?
変数に値入れても"使わなきゃ"入ったまんまよ?
0425デフォルトの名無しさん
NGNG自分がやらなきゃ誰もやってくれないよ。
0426デフォルトの名無しさん
NGNGあ!ありがとうございます!
1番わっかりました!感動です!HP色々見ても、意味不明だったんで・・・
ちょっと近道しすぎですね。(汗
2番なんですが、a:='yes!'で変数に入れます。そのままじゃ意味ないって事はわかるんですが、
そのaをedit1のtextに入れたい場合はどうすればいいのかと・・・・
var s:string;
s:='yes!!';
edit1.text:=s;
buttonに書けば出来るんですが、editではこれじゃ駄目なんですか?
イベントがないから???
一応やってみましたが、駄目でした。
>>425
あ、もちろんやってみましたよ。で、駄目なんで出来ないのかなぁと気になったので・・・
私の書いたの見るとやって無いように見えますね。すいませんです。
0427デフォルトの名無しさん
NGNG意味不明。
とりあえず付属のsample見て出直せ。
一応レスしとくが、
イベントドリブンだからイベントが発生しなければ(そのイベントの)コードは実行されない。
edit1.text := sをbutton1のOnClickイベントの間に書けば医院で内科医?
0428デフォルトの名無しさん
NGNGそうじゃなくて
>変数に値入れても"使わなきゃ"入ったまんまよ?
という話。
0429デフォルトの名無しさん
NGNGおまえ、他所のDelphi板でもイベントのことで聞いてただろ?
0430409
NGNG>再問い合わせ
>またはTTableを使う。
TTableで>>409の動作を実現するには
どうすればよいのでしょうか?
質問ばかりですいません・・・
0431Delフサギコ
NGNG小学校の文章問題みたく
文章の意味が通じないのですが
単にローカル変数以外の変数を使いたいって事?
,,,,,,,,,,,,,∧,,∧ /
〜′,,,,,,,ミ,,゚Д゚彡 < あってるかな。
UU""" U U \
Form1 = class...
private
FStr: String;
public
end;
procedure Button1クリック
begin
FStr := '逝ってよし';
end;
procedure Button2クリック
begin
Edit1.text := FStr;
end;
procedure Button3クリック
begin
Edit2.Text := FStr;
end;
0432デフォルトの名無しさん
NGNGもしかして2番はこういう事をしたいのかな?
TForm1 = class(TForm)
|略
private
procedure SetEditStr(const Value: string);
public
property EditStr : string write SetEditStr;
end;
|略
implementation
|略
procedure TForm1.SetEditStr(const Value: string);
begin
Edit1.Text := Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EditStr := 'yes!';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
EditStr := 'no!';
end;
違うか…
ところでDelフサギコさんは見かけますがモナーさんは居ないのですか?
0433デフォルトの名無しさん
NGNG>>1
>DELモナは時に私であり、時には別の人。
あなたがやってもいいです。
0434432
NGNG>>433
>あなたがやってもいいです。
DelはWinがわからんので無理かな 現役の頃はTP3〜5なので…(鬱
Pasはカセットテープに入ってた頃からっす(w
0435デフォルトの名無しさん
NGNG0436435
NGNG0437デフォルトの名無しさん
NGNGTTableの項目エディタで新規作成−参照項目でOK
0438デフォルトの名無しさん
NGNGよくDirectXとかでやってるやつです。
0439デフォルトの名無しさん
NGNGDirectX 使えば?
Windows の通常の API では画面解像度の変更はできないから、ビデオドライバ依存、
または DirectX API を使うしかない。
0440デフォルトの名無しさん
NGNGこの瞬間ChangeDisplaySettingsはAPIではなくなったようです
この瞬間ChangeDisplaySettingsはAPIではなくなったようです
この瞬間ChangeDisplaySettingsはAPIではなくなったようです
この瞬間ChangeDisplaySettingsはAPIではなくなったようです
この瞬間ChangeDisplaySettingsはAPIではなくなったようです
0441デフォルトの名無しさん
NGNG確実に他のウインドウ巻き込んでリサイズするので、
ちゃんとウインドウを元に戻してくれる手法を確立しない限りは使用しないで欲しい。
ゲームで使うのはもっての他。
OpenGL系で多くてこまる・・・
ただし、DirectXの場合でもタイミングによっては、
他のウインドウ巻き込むので注意されたし。
0442デフォルトの名無しさん
NGNGアイコンが640x480にちっちゃくなっちゃうあれか。
まあしゃあ無いんじゃ無い?
0444デフォルトの名無しさん
NGNGアイコンもそうだけど現在開いているウインドウね。
0445デフォルトの名無しさん
NGNGTWebBrowserを含んだTTabSheetを作りたいと思い、
なんとなく下記のようにしてみたところ
[エラー] Unit1.pas(43): 読み込み専用プロパティに書き込むことはできません
と言われてしまいます。
どうやってparentを指定すればいいのでしょうか?
procedure TForm1.FileNewExecute(Sender: TObject);
var
NewTabSheet:TTabSheet;
begin
NewTabSheet := TTabSheet.Create(Self);
NewTabSheet.PageControl := PageControl1;
NewTabSheet.Caption := 'Page' + IntToStr(PageControl1.PageCount);
with TWebBrowser.Create(NewTabSheet) do
begin
Parent := NewTabSheet; //この行がエラー
Align := alClient;
end;
NewTabSheet.Show;
end;
0446デフォルトの名無しさん
NGNGtype
TRec = record
aaa:char;
bbb:char;
end;
<その後>
var
wRec:TRec;
wStr:String;
begin
wStr:='12';
wRec:=wStr; <---- これ駄目でしょ?
VBだと簡単なのだが、Delphiだと出来ない?
0447432
NGNGtype
TRec = packed record
case boolean of
false : (aaa,bbb : char);
true : (str : array[0..1] of char);
end;
procedure hoge;
var
Rec : TRec;
begin
Rec.str := '12';
:
packed 忘れないでね
0448432
NGNG0449432
NGNGtype
PRec = ^TRec;
TRec = packed record
aaa,bbb : char;
end;
procedure TForm1.SetEditStr(const Value: string);
var
Rec : PRec;
A : string;
begin
A := 'HOGE';
Rec := @A[1];
ShowMessage(Rec.aaa);
やっぱりpacked忘れないでね(詳しくはHELPを
0450デフォルトの名無しさん
NGNGそれって代入になってないんだけど、>>446的にはどうなんだろ?
0451446
NGNG>>446 でやりたかったのは、代入した後で
wRec.aaa とか wRec.bbbが使いたいんですよ。
本当は、構造体の中は2つだけじゃなくてもっと複雑なんです。
0452デフォルトの名無しさん
NGNGやりたいこともっと具体的に書いた方が良いかと。
0453デフォルトの名無しさん
NGNG>>427
わけのわからん、質問にレス感謝です!
でも、私のやりたい事はそうじゃないんです・・・
>>429
いや、まったく。初めてこの板に書き込みしましたが?
>>431
そうですね、自分の解らない事、伝えるって難しいです。
それは、知っておりました。
でも、わざわざレス感謝です。
>>432
ビンゴ!!!!!!!
そうです!そうしたかったのです!
あ〜すごくすっきりしました!ありがとうございます!!
いやぁ俺プログラム勉強する前に、日本語勉強するべきですね。
難解な文章を読み取ってくれてうれしいです(汗
でも、こうゆうのって、どう書いて説明すれば、いいんでしょう?
いつもは、ネットで検索かけてなんとかするんですが、今回はお手上げでした。
レスくれた皆様ありがとうございました。
0454446
NGNGRec := @A[1];
の所でエラーになってコンパイル出来ません、
(が必要な場所に:=があるとかって怒られてます。(T_T)
0455446
NGNG本当に、ありがとうございました、出来ました!
当然ですが、僕が間違ってました。
Rec : PRec;
の所が、
Rec : TRec;
になってました。m(..)m
その後、HELPとか見て勉強したのですが、これって文字列の位置
つまり、文字列の格納してあるアドレスをポインタで渡してるって
事ですか?この方法で他の型の違う物でも無理やりバッファとか
に押し込んでおくとかも出来るのでしょうね、凄い。
実は、先月までVB厨房だったのですが、正月からVB捨てて
Delphiを勉強しているアホです。また質問するかもしれませんが、
よろしくお願いします。
0456デフォルトの名無しさん
NGNGRec := PRec(@A[1])ならいけるはず。
にしても汚いコードだ。
素直に添え字かPChar使えよ。
0458446
NGNGそれは、もしも将来に型の仕様が変化した場合の為ですか?
やりたかったのは、StringListに溜まっている固定長のデータから
数十種類ある構造体へ振り分けてデータを分離して保存する為に
Copyで区切るよりも判り易いかな?と思っての事でした。
とりあえず、切り出しには成功したのですが、添え字を使っては
切り出しみたいな事は面倒になりますよね?
0459デフォルトの名無しさん
NGNG先日、ノートパスコンを買ったらWindowsXPHomeが入っていたのですが、
Delphi6でデバッグをしているときに、マウスクリックが5分後くらいに反応するくらい
重くなる場合があります。
メモリは512MBです。ステップ実行時によくおきます。
同じプログラムをデスクトップパスコン(Windows2000)でステップ実行しても全然OKです。
XPじゃダメなの?XPプロ版ならOKなの?
0460デフォルトの名無しさん
NGNG起きる人と起きない人がいるようです。
私は XPPRO を常用して問題起きていませんが、会社の XPHome でも問題が
起きませんでした。
システムの復元が ON になっていると、よけいな物を保存するので OFF にした方が
よい。という話を聞いたことがあります。確かめてみては?
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGWinCEやPalmへは移植されないのか?
特に今後WinCEはクライアントの主力になるのだろう、移植とまで
は行かなくてもクロスコンパイルが出来れば良いと考えるがどうか。
0464デフォルトの名無しさん
NGNGPalm は CPU パワーの問題。
CE はプラットフォームの寿命の問題から開発元の MS 以外ではサポートしづらいだろうよ。
0465デフォルトの名無しさん
NGNG0466462
NGNG出ないのは至極当たり前なのかな?
オレの環境だけってこたー無いよね?ね?
0467デフォルトの名無しさん
NGNG0468462
NGNGマジ?
0469462
NGNG98以上だとメニューでるとか…。なんてこたーない?
なんか妙なこと聞いてる気がして赤面してしまふ。
0470デフォルトの名無しさん
NGNG0471462
NGNGいや、最終的にはソレだとは思ってるんだけど、もしも!
「オレ以外の環境ではメニュー出るのにpopup実装しちゃったら!?」
愉快なことになりそうだったから(汗
0472462
NGNG「popup実装してみましょう」みたいなページがあった。
よーするに、出ないんだね。richeditでは。
0473デフォルトの名無しさん
NGNGAPI名だけでもいいので教えてください…
0475デフォルトの名無しさん
NGNGTOleControl(WebBrowser).Parent := NewTabSheet;
0476デフォルトの名無しさん
NGNGレスありがとです。
今日試してみます。
0477445
NGNGうまくいきました!
ありがとうございます!
0478476
NGNGシステムの復元をOFFにしたのですが、やはり固まります。
と、思ったら、Borlandのサイトに書いてありました。。。
どうやら、互換モードで動かすとOKらしいです。
今、見つけたばかりだから、まだ試してないけど。
http://www.borland.co.jp/delphi/devsupport/d6issues.html
0479デフォルトの名無しさん
NGNGプログラムの挙動が予想していたものと異なるので
ブレークポイントを設定し、ステップ実行したところ、
以下のようになりました。
http://www.geocities.co.jp/SiliconValley-PaloAlto/4845/delphi_nazo.png
つまり、
if ( A = False) and B then ...
と書いていて、A が False , B が True になっているにもかかわらず
if 文の中身が実行されなかったのです。
なぜ??
コンパイルされていないのかとおもい、念ののため再構築しましたが
結果は同じでした。どなたか、原因を教えてください。
0480デフォルトの名無しさん
NGNGところが、
if A = False then
if B then ...
とやったら、ちゃんと実行されました。(??)
そのあと if (A = False) and B then に戻してみたら、また
おかしくなりました。 ???
0481デフォルトの名無しさん
NGNG最適化がらみじゃない?
IDEで変数の中身をみてもそれが正しくないことがあるから
OutputDebugString 関数でログ出してみたら。
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGif ((A = False) and B) then
0484デフォルトの名無しさん
NGNG実際の値を出力して確認する
・本当に同じ条件で、>480のような状態でちゃんと実行されるならば
CPUウインドウでアセンブラレベルで見る
0485484
NGNG自分もよくはまりました。特にwith文の中などはよく間違えますね。
0486Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < 再現性のあるコード掲載しる
UU""" U U \_______________
・本当に同じ条件で、>480のような状態でちゃんと実行されるならば
CPUウインドウでアセンブラレベルで見る
が確実。
Player.Unfinish がメンバー変数ではなく関数呼び出しを伴うプロパティ
の場合、関数呼び出しによる副作用の問題もあり得るから(デフォルトでは
副作用が起きる評価は抑止するようになっているが)再確認を。
0488デフォルトの名無しさん
NGNG再現性のあるコードは、なにぶんソースコードが入り組んでいるので、
単純化するのに時間がかかりそうです。今はトータルで4000行程度です。多分。
ご指摘の通り、Player.Unfinish は内部で GetUnfinish メソッドを呼び出しています。そういえば、ヘルプで関数呼び出しの副作用について呼んだような気がするのですが、どこに書いてあったか忘れてしまいました…
0489名無しヘタぐらま ◆B18Bks.Y
NGNGこれは『ショートサーキット評価』と呼ばれるものです.
(A and B)がTrue(真)かFalse(偽<ぎ>)かを求める場合,
AがFalseならBがTrueであろうがFalseであろうが
(A and B)はFalseになります.
また,(A or B)でAがTrueだった場合は必ず(A or B)はTrueになります.
つまり,両方を調べなくても全体の結果がわかってしまう場合があるわけです.
Aの結果によってBを調べなくても全体の結果がわかってしまう場合に
Bを調べないやり方が『ショートサーキット評価』です.
Delphiのコンパイラはデフォルトで『ショートサーキット評価』を使うので
>479の例ではBの中の関数は呼び出されなかったわけです.
『ショートサーキット評価』を使いたくない場合は
『プロジェクトオプション』ダイアログの『コンパイラ』ページ,『文法オプション』の枠にある
『完全な論理評価(B)』チェックボックスをオンにします.
詳しくはDelphiのヘルプでキーワード『ショートサーキット』で検索してみてください.
0490デフォルトの名無しさん
NGNG論理式の評価結果が真なのに IF 文のなかに入っていかない(ようにみえる)
ということを問題にしているの。
0491デフォルトの名無しさん
NGNGおかしい部分の CPU 逆アセンブル結果だけでも貼れない?
0492デフォルトの名無しさん
NGNGあと、Delphi のバージョン。
0493Delフサギコ
NGNGミ,,゚Д゚ミ < が怪しいとは折れも思ってる
ミ ミ \
〜ミ,UU_ミ IFの所で勘違いしてるだけちゃう?
>再現性のあるコードは、なにぶんソースコードが入り組んでいるので、
>単純化するのに時間がかかりそうです。
怪しいなあ。
アセンブラみるとか言う前にコーディング全般を
見直した方がいいかも。
0495デフォルトの名無しさん
NGNGGetUnfinish で再帰してない?
0496デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNGTChatClient を Create して、Test メソッドを実行してみてください。
そして、Testメソッド内の
if (Player.Unfinish = False) and UMsg then
にブレークポイントを設定して、値をみてみてください。
Player.Unfinish は False しか返さず、UMsg も必ず True になりますが、
IF 文は実行されませんです。
-----------------------------------------------------------
type
TPlayer = class
private
function GetUnfinish:Boolean;
public
property Unfinish:Boolean read GetUnfinish;
end;
TChatClient = class( TComponent )
protected
procedure Report(Player:TPlayer; Attr:Integer);
public
procedure Test;
end;
implementation
function TPlayer.GetUnfinish: Boolean;
begin
Result := False; { Falseしか返さない }
end;
procedure TChatClient.Test;
var
P:TPlayer;
begin
P := TPlayer.Create;
Report( P, 2 );
end;
procedure TChatClient.Report(Player:TPlayer; Attr:Integer);
var
UMsg:Boolean;
begin
UMsg := Boolean( Attr and 2 ); { UMsg は Ture になるはず。 }
Showmessage( Inttostr( Ord(UMsg) ) );
{ ここでおかしくなる }
if (Player.Unfinish = False) and UMsg then
begin
ShowMessage('B');
end;
ShowMessage('C');
end;
0499デフォルトの名無しさん
NGNGunit Test;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls,Dialogs;
type
TFileSelBtn=class(TButton)
private
FOpenDialog:TOpenDialog;
protected
public
constructor Create(AOwnder:TComponent);override;
procedure Click;override;
published
property OpenDialog:TOpenDialog read FOpenDialog write FOpenDialog;
end;
implementation//------------------------------------
constructor TFileSelBtn.Create(AOwnder: TComponent);
begin
inherited;
FOpenDialog := TOpenDialog.Create(Self);
end;
procedure TFileSelBtn.Click;
begin
inherited;
FOpenDialog.Execute;
end;
end.
しかし、OpenDialogにプロパティをセットしても、実行時に反映されず、
プロパティの値もセーブできない。何が不足しているかおしえてきぼんぬ。
0500デフォルトの名無しさん
NGNG>499
FOpenDialogを自分でCreateする必要はない。っつーかしちゃダメ。
Clickイベントの所は
if Assigned(FOpenDialog) then FOpenDialog.Execute;
のようにする。
0501デフォルトの名無しさん
NGNGUMsg := Boolean(Attr and 2);
で、UMsgがFalseになる。これって正しい挙動なの?非0はTrueなのかと思ってた。
D6PersonalをDLしたばかりの超が付く初心者の俺には分からんヽ(;´Д`)ノ
因みに、UMsg := Boolean(Attr and 1);だと、if文の中身が実行される。
0502501@超初心者
NGNGReport(Player, 1)で呼び出してたのが原因だった。
1 and 2が0になるのは当たり前だヽ(;´Д`)ノ
と言うわけで、D6Personalでは再現しないです>>498
0503498
NGNG0504501@超初心者
NGNGChatClient.testを呼ぶと確かにif文の中に入っていかないです。
Player.Unfinish = falseだしUMsgはTrueなのに、何故?不思議・・・・・
0505デフォルトの名無しさん
NGNGのキャストが原因。
言語ガイドによると、Booleanは0がFalseで1がTrueだから、2は範囲外。
0がFalseで非0がTrueになるByteBoolでキャストすると正常に動作する。
これがバグか仕様かということだが、俺には判断できない。
Booleanに入る数値がいつかのバージョンで変わったことがあったような。
VB?に合わすとかなんとか。
微妙なバグだよ。うん。
大本をたどると C と VB とで論理偽の値が異なることが問題だったんだな。
OLE Automation 関係で VB 流儀が Windows に大量に流れ込んだ時点でいろんな
ところに破綻が起きた。MS-C / MFC にも影響がでている。
0507Delフサギコ
NGNGUMsg := Boolean( Attr and 2 );
こんなコードを自分で書くことは”絶対”ないので
すごく読みにくく感じるのですが
これって、いったい何がしたいのですか?
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ ハテ?
ミ,, ゚Д゚彡
〃つl⌒|⌒l
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
ビットが1か0かを調べるには
なんか他に方法があったような気が…
0508501@超初心者
NGNGえーと、分かったです。
if (Player.Unfinish = False) and UMsg thenの場合
Call Player.Unfinish
test al, al //Player.Unfinish = Falseの比較をしてるです。
setz al //必ずTrueになるから、最適化されたのかな?だとしたらtest al, alは無駄なような?
test al, bl //blはUMsgだから、文字通りPlayer.UnfinishとUMsgをandしてるらしい<オイ!
結果は0になるので、if文の中に入れないですよ(´д`;)
if (Player.Unfinish = False) and (UMsg) thenとしてやれば
test al, al
jnz //if文の外へ
test bl, bl
jz //if文の外へ
となり、OKでした。
UMsg := Boolean(UMsg and 2)してもUMsgの中身が2のままなのが妙に不思議な気もしますが・・・・・
0509498
NGNGいぜんはそんなに嫌味じゃなかったような。
それはいいとして、
Boolean は非ゼロでもTrueとみなされないのですね。
というか実行時エラーオプションで
範囲チェックを有効にしているので、そういうのはエラーになると
安心していました。
以後気をつけます。
どうもお騒がせしました。
0510505
NGNGふぉろーさんくす。
OLE Automationか。すっかり忘れてた。
>>507
俺なら
UMsg := (Attr and 2) <> 0;
かな。キャストしなくても論理値になるし。
>>509
ギコ系だからそんなもんでしょ(w
0511498
NGNGUMsg := Attr and 2 <> 0
と書くことにします。
0512デフォルトの名無しさん
NGNG>範囲チェック 配列と文字列の添字が範囲内にあるかどうかを検査する。
0513501@超初心者
NGNG試してみたけど、Booleanは非ゼロをTrueと評価してるように見える。
そもそも、(Player.Unfinish = False) and UMsgは
Boolean(Player.Unfinish = False) and Boolean(UMsg)と
見なすのが唯一の解釈で、Player.Unfinish and UMsgとは見なせない。
だって、UMsgはBoolean型だからTrue、False以外の値を持ち得ないのだから
それに、UMsgがTrue&Flase以外の値(この場合2)を持ち得るとすれば
Boolean型と非Boolean型のandってことになるから、コンパイルが通るのは
おかしいと思うんだけど、どうかな?
function A:boolean;
begin result:=false;
end;
var B:boolean;
begin
B:= Boolean( 2 );
if (A=false) and B then
caption:='OK';
end;
コンパイル結果
mov bl,$02
call A
test al,al
setz al
test al,bl
jz +$0c
mov edx,$00450324
mov eax,esi
call TControl.SetText
>>513 あくまでも、Boolean型なのに無理やり型変換したのがバグの原因です
型変換は、その型を安全に変換してくれる訳ではありません
型変換を使う時はそのチェックは自分ですべきです
0515Delフサギコ
NGNGインデントは全角スペースで。
|,,∧
|Д゚彡 ジー
⊂ミ
| ,;゙ 時々マターリが不足して
|´ カラダヂウ イヤミン に満たされたり…
きっとあれですね。月に一度やってくるというアレ
フサならxバイト目のビット
を調べる関数を作ってしまうかな。
0000 0000 0000 0010
と and とって<>0
って何を表して…るんだ??
論理演算苦手なの。。。
ああ、きっとまた「おまえほんとにプログラマか?」
とか言われちゃう
0517デフォルトの名無しさん
NGNG狼男?娘男?
0518デフォルトの名無しさん
NGNG引用がちょっとズレているような?
513 は不満を表明しているようには見えんが。ただ、議論は
間違っているが。
0519デフォルトの名無しさん
NGNGA, B: Boolean; A := Boolean(2); B := Boolean(4);とした時
if A thenはTrueとなり、if B thenもTrueとなるが
if A and B thenはFalseになり、if (A) and (B) thenはTrueになる。
対処はいくらでも可能だから、これをもってデルファイは云々と
言うつもりは全然ないけど、なんか美しくない。
>ByteBool 型,LongBool 型,または WordBool 型の値は,
>順序値が非ゼロの場合に True と見なされます。
>Boolean が期待される状況でこれらの値が使用された場合,
>コンパイラは順序値が非ゼロの値を自動的に True に変換します。
ここだけ読むと 常に0か0でないかで区別してるように見えますね
だから if A then ・・ という処理は Aが0でなければ実行されると思います
しかし、
>変数を論理型に型キャストしても結果は保証されません
という文もあります。これは論理演算を使う場合にはダメだよという意味と思いますよ
また、論理型は順序型の一つです ですから LOW(boolean)〜High(boolean)の
範囲になければいけません。
0521デフォルトの名無しさん
NGNGDelphiのバグにしたいようなので。
それではAPIの呼び出しとか 他の言語と通信するのが不便だから
単独で条件分岐した場合は 0かそうじゃないかになるようにしたんじゃないかな
でもこれ気を付けないといけないな 特にAPI呼び出しとかでは論理演算使わないようにしないと
0523デフォルトの名無しさん
NGNGDelphiであろうとなかろうと、処理系よりも先に自分で書いたコードを疑うべき
ではないかと思っているだけ。
0524519
NGNG省略せず、if (A = True) and (B = True) thenとすれば、特に意識する
必要はないと思う。
勿論、if (A) and (B) thenでも構わないけど、省略はせず多少回りくどい
くらいの方がパスカルらしいかも?
0525デフォルトの名無しさん
NGNG案外 、
if (A <>False) and (B <>False) then
じゃないとダメだったりして
0526デフォルトの名無しさん
NGNG0527519
NGNGオイオイ、見えてねーな。もう誰もそんな話はしてないだろ?
例えば、Boolean型を引数に取るライブラリを組むとして、渡されたBooleanが
整数型をキャストしたものでないとは限らないだろ?
だから、ライブラリ内でif boolean and boolean thenを使う時は、()で囲むか
省略せず(boolean = True)しといた方が安全だというお話、OK?
0528デフォルトの名無しさん
NGNGif ( 1000-999-1 ) then
が行儀良いと思わんがのぅ
0529デフォルトの名無しさん
NGNGBoolean 型で渡されたっていうんなら Boolean 型でしかないからそれがどのような形で作られたかを気にする必要はないだろ。
今回は Boolean 型を作るときに Int 型を無理に Boolean 型にキャストするという非合法なことして自分のミスでバグったんだろ。
だからその関数が本当に Boolean 型で返ってくるんなら (boolean = True) なんて無駄なことをする必要はかけらもない。
要するに
UMsg := Boolean( Attr and 2 ); { UMsg は Ture になるはず。 }
の "なるはず" に問題があったって話じゃないか。
本人も UMsg := (Attr and 2) <> 0;) とすべきだといってただろ。
520 だって
>また、論理型は順序型の一つです ですから LOW(boolean)〜High(boolean)の
>範囲になければいけません
といってるだろ。
要するに 整数型 を 論理値型 に強制キャストするのが悪いっつーの。
C言語や Basic では論理値型として明示的に整数を使ってるけど Derlphi はそうじゃない。
>Object Pascal では論理型の式を整数や実数と等価に見なすことはできません。
とヘルプにもかかれているだろ。
Delphi は整数型と論理型を明確に区別してんだよ。
他言語と似たようなもんだと勘違いしてとろいこといってんじゃないよ。
0530デフォルトの名無しさん
NGNG行儀も何も非合法だってば。
Boolean のヘルプの下のほうの例にちゃんと書いてある。
例では X という整数変数を使ってるけど即値だって条件は同じ。
0531デフォルトの名無しさん
NGNGたまたまうまくいっていると合法を勘違いしないで欲しいね。
0532デフォルトの名無しさん
NGNGたとえば
C側: void foo(BOOL bFlag);
Delphi側: procedure foo(bFlag: Boolean);
のように宣言して、foo(True); を呼び出すと、foo には -1 が渡される。
Cの方では if (bFlag == TRUE) なんて判定してたから、
常にFALSEの方の処理しか実行されなかった。
DLLには手が加えられなかったから、仕方なく Boolean を Integer に
変えて対処したよ。
そんなわけで>524よ、Trueと比較するのはやめとけ。
0533デフォルトの名無しさん
NGNG論理型のヘルプを見る限りではそういった用途には Boolean ではなく ByteBool,WordBool,LongBool あたりを使うらしい。
> ほかの言語や Windows 環境との互換性を提供するために用意されています。
とも書かれてるしな。
0534デフォルトの名無しさん
NGNG個人的には、C の Bool がゼロ、非ゼロでキャスト可能なのより、
Delphi の Pascal の Boolean のほうが論理値という意味で純粋
なので好きです。でも、APIとの関連などで、どうしても代入しなけれ
ばならない時は、必ず、(式)<>0 の形で、論理値にしてから
代入すべきだと思っています。
Boolean に型キャストで代入するな!、ということで。
今回のことで自戒もこめて。
それから、if 文などの論理式のなかで Boolen 型の変数と
true または false を比較するのは二重に論理式を評価しているので
混乱するばかりか、冗長でもあると思います。
0535デフォルトの名無しさん
NGNGC++Builderのexeをスタートアップに登録して
起動時にある処理を行いたいのですがその時フォームを非表示
にして処理を行いたいのです。
で,下記の様に記述するとフォームを非表示にできる事は
解ったのですが最初の処理をどこに記述したら良いかよく
解らないのです。
VBの場合だとSub Main()ルーチンに記述するのですが・・・
Formのshowイベントとかはまずいし・・・・・・
参考になる物があったら教えて下さい(T__T)
Application->ShowMainForm = false;
0536デフォルトの名無しさん
NGNGCTRL+F12 を押して、アプリ名と同じユニットを探して下さい
そのファイルの
Application->Run();
の前に入れると良いでしょう。
それから Builderスレは
http://pc.2ch.net/test/read.cgi/tech/997074601/
0538デフォルトの名無しさん
NGNGそもそも、フォームが必要ないならフォームを使わなければいいだけだろ。
なんで、非表示にする必要あるんだ?スレ違いだし。
0539デフォルトの名無しさん
NGNGWinMain
0540459
NGNGもうだめぽ。。
0541デフォルトの名無しさん
NGNGByteBool, WordBool, LongBoolはTrue = -1, False = 0
とどこかのDelphi本で読んだような気がする。
0542498
NGNGくっそー、おもしれーネタだったのに乗り遅れた(涙)
かなり遅レスだが・・・俺にも言わせてくれ〜!
そんな変な書き方がどーしてもしたいのならば、
> UMsg := Boolean( Attr and 2 ); { UMsg は Ture になるはず。 }
ここを
UMsg := (Attr=2);
こーだ。(w;
0543542
NGNG自作自演じゃねーよ、コピペミスってただけだい!
0544デフォルトの名無しさん
NGNG正解。で VB 由来の値。-1 は正確には全ビット1が立った値です。
Windows そのものを作っている C では False = 0 で,それ以外の値は全部 True。
C には論理型は組込型としては存在しないことに注意。
MS-C/Visual-C では Version4 の時に VB-Bool とのすりあわせが行われたようだ。
ちょっと細かい時期まではわからない。
C++ には言語仕様に論理型が加わり,当然 ANSI-C++ としては C の論理型を踏襲したため
bool と BOOL の二種類の「論理型」が存在する。
bool
http://www.microsoft.com/JAPAN/developer/library/vccore/_langref_bool.htm
BOOL
(みつからん)
0546デフォルトの名無しさん
NGNG>>544
ByteBool, WordBool, LongBool は
Ord(False) = 0
Ord(True) <> 0
と定義されてる。
-1 とは限らない。
-1 が True であるのは確かだが。
0547デフォルトの名無しさん
NGNGザクっと読んでみたが
1.if A and B then
2.if (A) and (B) then
の違いが理解できてる奴は半分くらいしかいないな。
これが理解できないと、本質的な問題は理解できないだろ。
0548デフォルトの名無しさん
NGNGそういう煽りはマ板で。
0549デフォルトの名無しさん
NGNG( ,,)┌─┴┴─┐
/ つ 釣り禁止
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0550デフォルトの名無しさん
NGNG教えて下さい!
0551デフォルトの名無しさん
NGNGprogram bool;
{$APPTYPE CONSOLE}
procedure CheckBoolean(a: Boolean);
begin
if (a = true) then
Write(True)
else if (a = false) then
Write(False)
else
Write('out of boolean range.');
end;
const
Ints: array [0..5] of Integer = (-1000, -1, 0, 1, 2, 1000);
var
i: Integer;
a, b: Boolean;
begin
for i := Low(Ints) to High(Ints) do begin
Write(Ints[i]);
Write(', ');
a := Boolean(Ints[i]);
if a then
Write(True)
else
Write(False);
Write(', ');
if (a) then
Write(True)
else
Write(False);
Write(', ');
CheckBoolean(a);
Writeln;
{
// 場合によってはランタイムエラー
a := Boolean(Ints[i]);
Writeln(a);
}
end;
Writeln;
a := Boolean(2); Write('a = '); CheckBoolean(a); Writeln;
b := Boolean(4); Write('b = '); CheckBoolean(b); Writeln;
Write('a and b = ', (a and b)); Writeln;
Write('(a) and (b) = ', ((a) and (b))); Writeln;
Write('CheckBoolean(a and b) = '); CheckBoolean(b); Writeln;
Write('CheckBoolean((a) and (b)) = '); CheckBoolean(b); Writeln;
end.
0552デフォルトの名無しさん
NGNG-1000, TRUE, TRUE, out of boolean range.
-1, TRUE, TRUE, out of boolean range.
0, FALSE, FALSE, FALSE
1, TRUE, TRUE, TRUE
2, TRUE, TRUE, out of boolean range.
1000, TRUE, TRUE, out of boolean range.
a = out of boolean range.
b = out of boolean range.
a and b = FALSE
(a) and (b) = TRUE
CheckBoolean(a and b) = out of boolean range.
CheckBoolean((a) and (b)) = out of boolean range.
0553デフォルトの名無しさん
NGNGDelphiは隠しちゃってるからいざ問題に遭遇するとあわてちゃうね。
0554デフォルトの名無しさん
NGNGWrite(True)
else if (a = false) then
Write(False)
else
Write('out of boolean range.');
これがおもしろいところで、論理型も単なる順序型の1つつーことで。
0555デフォルトの名無しさん
NGNGal = A; bl = B
if A and B then
{ if (A and A) = 0 then A = 1 else A = 0}
test al, al
setz al
{ if (A and B) = 0 then False else True}
test al, bl
jz False
if (A) and (B) then
{ if (A and A) = 0 then False }
test al, al
jz False
{ if (B and B) = 0 then False }
test bl, bl
jz False
A := Boolean(2); B := True;
1.if A and B then True else False;
2.if B and A then True else False;
さて、1.と2.の結果はどうなるでしょう?(w
0556555
NGNG○:{ if (A and A) = 0 then A := 0 else A := 1 }
0557デフォルトの名無しさん
NGNGもしくは警告を出すとか。
「警告 順序型の範囲を越える可能性があります。」
構文チェッカー、だれかツクッテヨ
いや、まじで。コンパイラで拾えないエラーや、バグの原因にありがちな
書き方を警告してくれるという。
0558デフォルトの名無しさん
NGNG型変換はアプリレベルではむやみにやらないというので良いのでは?
String<-PCHAR のおかげで型変換のクセがついてしまってるのが元凶でCスタイルの侵食かもね
0559デフォルトの名無しさん
NGNG「型変換」って何?
ヘルプでは「型変換ルーチン」とかあって、Rect() とか StrToInt() とか
あるが。
> String<-PCHAR のおかげで型変換のクセがついてしまってるのが元凶
これの「型変換」ってどうするの? 矢印の向きが逆では?
型キャストと「型変換」は別な概念では?
0560デフォルトの名無しさん
NGNG「あなたにはこれは使いこなせません」という警告が出たりして
0561デフォルトの名無しさん
NGNGってエラーメッセージを出してほしいもんだ。
0562デフォルトの名無しさん
NGNG「警告 あなたのコードはいたるところでエラーになる可能性があります。」
0563デフォルトの名無しさん
NGNG> 型変換はアプリレベルではむやみにやらないというので良いのでは?
型変換が型キャストのことだとすると、型キャストなしではOOPの
多態性を利用できませんが、どうしましょう?
ちゃんと意味のある型キャストは、アプリレベルで利用しても何の害
もありません。むしろ有用な場合が多いです。
「むやみ」というのが「意味も分からず」ということでしたら、
そのとおりだと思うんですが。
0564デフォルトの名無しさん
NGNG>型変換が型キャストのことだとすると、型キャストなしではOOPの
>多態性を利用できませんが、どうしましょう?
そんなことはないだろう。
まぁ、型キャストは使ったほうが便利ではあるが、多態性の利用に
とって必須ではないよ。
0565563
NGNG>>564
>まぁ、型キャストは使ったほうが便利ではあるが、多態性の利用に
>とって必須ではないよ。
そうですかぁ、上位クラスへの代入互換性も型キャストの一種という
ことではだめですか?
0566デフォルトの名無しさん
NGNGどうしたら良いでしょうか?
現在、TTimer(Interval=1)と、GetCursorPosを組み合わせているのですが、
どうもしっくり来ません。
0567デフォルトの名無しさん
NGNGキャストだろ? で、564は使い分けてるけど、565はどっちも同じモノとして
見たいと。
0568デフォルトの名無しさん
NGNG何がしっくりこないのですか?
0569デフォルトの名無しさん
NGNGフックかSetCaptureだな。
常にマウスの動きを監視したいならフック、
TScrollBarみたいに限られた時間だけ監視するならSetCapture。
0570566
NGNGタイマーを使うと重くなりそうだし、また、必要以上にちらつくからです。
正しくない感じもしますし。
>>569
フックをするにはどうすればいいでしょうか?
フックプロシージャのインストールの仕方や、コールバック関数の書き方がよく分かりません。
もし宜しければ教えてくれませんか?
0571デフォルトの名無しさん
NGNGD&Dを実現する程度の事なら SetCaptureで間に合いますよ
0573デフォルトの名無しさん
NGNGそうじゃなくて、なんのためにマウスの動きを記録して、どうするわけ?
俺はそんなアプリなんて書かないから、目的がわからん。
だから目的がわかれば別解も出てくるんじゃないの?
ついでに言うと
>フックプロシージャのインストールの仕方や、コールバック関数の書き方がよく分かりません。
というのは自分なりに調査した結果だろうから、例えば「〜のページを見て書いて
みたけど〜の所がわからないので教えろ」とか書けば誰か教えてくれると思う。
0574571
NGNGhttp://www.vector.co.jp/magazine/spotlight/001011/sl00101115.html
だとしたら、 SetWindowsHookEx をMSDNで検索してみたらいい
全アプリに対するフックをかけるにはDLLを作らないとダメだよと思うよ
0575デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm
まずはこれをDelphiに移植してみては?
0576デフォルトの名無しさん
NGNGhttp://www2.biglobe.ne.jp/~sakai/usehook.htm
このページって有名なところ?俺も今勉強中なんだけど、超分かり易いよ。
0577デフォルトの名無しさん
NGNGprocedure OnTerminate(Sender:TObject) を持たせて、
それを property OnTerminate に代入することはできないのでしょうか。
TForm などではオブジェクトインスペクタを使って、同一クラス内で
プロパティと同名のプロシージャを設定できるようですが。
というか、こういうときは同じ名前を使うわないほうがいいんでしょうか。
また、汎用の関数を作るとき、処理に時間がかかりそうな場合は最初からTThreadを
継承して作るべきですか?
0578Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / KJHookってのがあったような。
ミ,,゚Д゚彡< Wired
ミつ つ \ http://www.asahi-net.or.jp/~nk2w-ishr/programs.htm
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U ここのサンプルを試してみるのはいいとおもう
動かし方にコツが合ったと思うので
うごかなかったらカキコしてください。
>>576
作者はもう放棄しているみたいだけどDelphi創世記くらいから有名みたいだよ
0579Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < ちょっと意味がわからんですが
U U \
〜ミ ミ
∪∪
procedure DoTerminateとか
procedure Terminateとか名付けるものではないかと...
プロパティと同名の手続きは設定できないのでは?
>また、汎用の関数を作るとき、処理に時間がかかりそうな場合は最初からTThreadを
>継承して作るべきですか?
知らない。
0580577
NGNGはい、設定できないと思うんですが、オブジェクトインスペクタで Form1 とかのイベントを
いじると OnClick イベントに OnClick プロシージャが設定できたりするので聞いてみました。
Do を付けたりするのが一般的ならそちらにしようと思います。
0581デフォルトの名無しさん
NGNGTThread に限らず、「継承してぶち込む」って考え方は間違っているので考え直しなさい。
単独テストをしておいてスレッド関連以外のバグをつぶしておいてから、
TThread から「呼び出す」
もちろん呼び出す関数自体はスレッドから呼び出されることを考慮して作るんだよ。
グローバル変数なんかはつかってはいけない。
0582577
NGNGすみません、質問が言葉足らずでした。
処理に時間のかかる関数をTThreadから呼び出した場合、Terminate しても
その関数からすぐに抜けることができないのでちょっと困るような気がします。
(アプリケーションごと終了するときなど、結果が出ていなくても中断しなければいけない時がある)
それで、その関数を作り直して TThread にしたほうがいいかな、と思ったんです。
0583Delフサギコ ◆zE1iiRdQ
NGNGミ ゚Д゚彡 予想してプログラミングヲ
〜ミ,,,,uuミ
ループとかでフラグ見て途中停止処理を入れましょう
スレッドハ中々難しいんですよね
サブフォルダまでファイル名列挙とか、
誰かスレッドを使って実現したクラス持ってないかしら。
0584デフォルトの名無しさん
NGNG固有のスレッドにしたからといって、好きなときに止められるわけではないが。
スレッドは同時に複数実行できるってことでしかないのだよ。
0585デフォルトの名無しさん
NGNG気持ちは凄いわかる。
俺もその辺の理想的な回答を知りたいと思ってるけど
多分、理想的な回答はないんだと思う。
いっそ時間の掛かる処理は全部COMにしてみっか?
とか真面目に思ってるんだけど・・・・・
デバッグが超面倒なんで挫折気味ヽ(;´Д`)ノ ムツカシー
0586デフォルトの名無しさん
NGNGそれがいやなら、ちゃんと自分から終了しにいくようなコードを作らないと。
スレッドにしようが外部プロセスの COM にしようが、後始末の問題は残るし。
例外をうまく使えば、多重ループの奥の奥から一気に終了させることができるから
そちらを考えた方が良いよ。l
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGそうすれば、特定のクラスなどに依存しない、汎用ルーチンができると。
type
//中断すべきならばTrueを返すような関数
TCheckFunc = function of TObject;
EHalt = Expression?;(例外のスペル忘れた…
function Proc(Param1,Param2,..; CheckFunc:TCheckFunc=nil):Boolean;
begin
try
処理内容。
事あるごとに if CheckFunc then raise EHalt; と書いておく。
extract
on EHalt do 強制終了時の処理;
end;
end;
0590589
NGNGif Assigned(CheckFunc) and CheckFunc then raise EHalt;
0591デフォルトの名無しさん
NGNGで、[処理内容]を実行中はどうやって CheckFunc の内容を変更するの?
やはり別スレッドで、ということですか?
0592デフォルトの名無しさん
NGNG> if Assigned(CheckFunc) and CheckFunc then raise EHalt;
関数の宣言をみると、Boolean を返してないようだが?
of TObject って何?
0593デフォルトの名無しさん
NGNGです。of object は、TCheckFunc はルーチンではなくメソッドだってこと。
[処理内容]部分には、長くても数秒ですむような(いや、短いほどいいんだけど、そうするとオーバーヘッドで余計処理時間が長くなるし)
コードを書いておく。たとえば、ディレクトリ一覧をつくるのであれば、
function Proc(Root:string; Files:TStrings; CheckFunc:TCheckFunc=nil):Boolean;
begin
try
Rootに含まれる最初のファイルを探す.
Files.Add( Root );
while まだ次のファイルがあれば do begin
if ファイルがディレクトリであれば then
Proc(ディレクトリ名, CheckFunc)
else
Files.Add( ファイル名 );
if Assigned(CheckFunc) and CheckFunc then
raise EHalt;
end;
extract
on EHalt do 強制終了時の処理;
end;
end;
ていう感じで…
0594デフォルトの名無しさん
NGNGfunction Proc(Root:string; Files:TStrings; CheckFunc:TCheckFunc=nil):Boolean;
begin
Result := False;
try
FindFirst(...); //Rootに含まれる最初のファイルを探す.
Files.Add( Root );
while まだ次のファイルがあれば do begin
if ファイルがディレクトリであれば then begin
if Proc(ディレクトリ名, CheckFunc) then
raise EHalt;
end
else
Files.Add( ファイル名 );
if Assigned(CheckFunc) and CheckFunc then
raise EHalt;
end;
extract
on EHalt do 強制終了時の処理;
Exit; //EHalt が発動されたら、結果をTrueにすることなく抜け出る
end;
Result := True;
end;
0595591,592
NGNG初めて見たもんで。
594 で処理を実行している間、どうやって CheckFunc が false
を返すようにするのかが分かりません。別スレッドでもない限り
ボタンを押すこともできないし、Timer メッセージも処理されな
いし。
0596591,592
NGNG0597デフォルトの名無しさん
NGNG>594 で処理を実行している間、どうやって CheckFunc が false
>を返すようにするのか
それは、中止ボタン等に
DoStop := True とかいておいて、
function TForm.CheckFunc:Boolean;
begin
Application.ProcessMessage;
Result := DoStop;
end;
とかやっておけばよいのでわ。
0598591,592
NGNGなるほど、了解しました。ご教示ありがとう。
ボタンを押せるのは、CheckFunc で
Application.ProcessMessage;
を実行しているからですね。ふーむ、だとすると、
594 の Proc()の中の while ループに
Application.ProcessMessage;
を置いておいて、CheckFunc をわたす代わりに Boolean 型のフィールド変数を
参照するのと同じですね。関数を渡すことの利点について教えて下さい。
0599591,592
NGNG0600デフォルトの名無しさん
NGNGそれは、たんにルーチンを一般化するってだけ。
たとえば、関数内で直接 Boolean変数を参照すると、
グローバル変数の参照になっちゃうでしょ。
例に出したディレクトリ検索ルーチンみたなものを
自作ライブラリなんかに入れたときに困ることがあるし。
それに、中断機能を使わない場合なんかに、グローバル変数だけ
残るのもなんか汚いし。使う必要が内場合でも気持ち良く出来るように、
関数を指定しなくても良いようにしてあるという…
function Proc(....; CheckFunc:TCheckFunc=nil):...
の =nil のぶぶん。
0601デフォルトの名無しさん
NGNG有識者の意見キボン
0602デフォルトの名無しさん
NGNG禿同。
ライブラリにすることを考えると、極力グローバル変数は使わない方向に行きますね。
0603591,592
NGNG>たとえば、関数内で直接 Boolean変数を参照すると、
>グローバル変数の参照になっちゃうでしょ。
いや、関数内で何かのクラスのメソッドを参照するのと、
そのクラスの Boolean 型のフィールド変数を参照するのと
は同じではありませんか。597では変数 DoStop を使って
いるので結局同じではありませんか。
でも、関数のほうが一般化できる分だけ有利ですね。確かに。
必要ないときは Application.ProcessMessages; を実行しな
くて済む分だけでも、関数を渡した方がよいですね。
ありがとうございました。
0604デフォルトの名無しさん
NGNG「フィールド」は、あくまでも「ある特定のクラスに属する変数」
でしょ。「特定のクラス」。例に出した Proc 関数は、
特定のクラスに依存しないルーチンであってメソッドということ。
あるルーチンがフィールド変数を直接参照していると、そのルーチンを利用するためには、たとえ全く使わなくてもそのルーチンが「必要とする」クラスを生成しないといけないでしょ。
「特定のクラスの、特定のフィールド変数」を利用するのではなく、
あくまでも「只のメソッド」を利用することによって、それがいかなるクラスに属する物であれ、引数が無く、Booleanを返すものであればなんでも指定できることになる。 …と思う。
0605デフォルトの名無しさん
NGNG× 特定のクラスに依存しないルーチンであってメソッドということ。
○ 特定のクラスに依存しないルーチンであるということ。
0606591,592
NGNGおや、そうですか。
関数を渡す代わりに、Boolean型の変数を var 渡しにしても
同じではないですか? メソッドだって、「あるクラスに属する
関数」じゃないですか?
Proc を別ユニットに作成したとしても var StopFlag:Boolean
のパラメータでどうして特定のクラスに依存することになるのですか?
0607デフォルトの名無しさん
NGNGたとえば、あるルーチンが「内部でクラス THoge のフィールドを参照しています」
というのであれば、それを使う時は必ず THoge を利用しないと
いけないじゃない。「あるクラス」はあくまでも単なるクラス
であって、特定の THoge とかを指すのではないという
意味だったんだけど…
というか、 var 指定ってそう言う使い方が出来るのか。いや、
考えてみればそうだな。ごめん、全く思いつかなかった。
確かにそのほうがよいね。
0608591,592
NGNG>確かにそのほうがよいね。
いや、603で書きましたように、最初の通り、関数(メソッドでもよい)
渡しの方が汎用性があってよいと思います。APIのコールバック関数み
たいにライブラリ関数のユーザが自由にコードを書ける、という意味で。
おつきあい、ありがとうございました。
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNG「クラスを獲得」ってどういう意味?
WinSight じゃなぜだめなの?
WinSightはProfessional以上にしかないので
http://www.vector.co.jp/soft/dl/win95/prog/s0067974.html
とりあえずこれでやってみます
0612Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ ∬ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ノ,っ━~ < 今日も寒いやね。
_と~,,, ~,,,ノ_. ∀ \_________
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
よくわからんですが、Application.ProcessMessageを
呼ぶタイミングと同じタイミングで
イベントをよんで、ライブラリを使う側から
Applicaion.ProcessMessageを呼んだり
他の処理させたり、ストップ命令出したりすると
よいと思われ。
ま、関数渡しと変わらんけど、イベントの方が
より柔軟では?
って、同じ事逝ってるか…
procedure TFom1.AruEvent(var Stop: Boolean);
begin
if AruJyoken then
Stop := True
else
Stop := False;
end;
0613デフォルトの名無しさん
NGNG>同じ事逝ってるか…
同じだと思います。イベントハンドラは単なるメソッドですからね。
0614デフォルトの名無しさん
NGNGどうでもいいけど、フサギコさん、トリップ使うようになってから
スキル落ちてないですか?
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG解像度(画面の領域)を変えるにはどうすればいいでしか?
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNGありがとうDELモナ
漏れには分からないモナ
0619デフォルトの名無しさん
NGNG617のAPIで確かにできるけど
うまく逝かない場合があって
ttp://www.kt.rim.or.jp/~s-matsu/sub/prog/unskill018.html
のように結構面倒。
ここまでするかどうかは場合によるだろうが
0620ボソッ
NGNG0621デフォルトの名無しさん
NGNGそうだね。きれいな中断方法教えてください。
0622sage
NGNGだるいんで
function TForm1.NullCheckFunc:Boolean;
begin
Result := False;
end;
if CheckFunc then ...
0623デフォルトの名無しさん
NGNG逝ってくる
0624デフォルトの名無しさん
NGNGじさくクラスに、プロパティ類コピーの目的で
THoge.Assign(Source:THoge)
とか作るとするじゃない。
そうするとさ、Assignメソッドのなかで、少なくとも全部のプロパティを
コピーしなきゃならないでしょ。
あとでプロパティを増やしたりしたときに、Assignメソッド内に
そのプロパティをコピーする項目を増やすの、絶対忘れちゃうんだよね。
みんなはどうしてるの?
根性で思い出してるの?
0625( ´∀`)
NGNGSortだけだったっけ。
0626エフェドリンながヰ
NGNG__,,,-‐――‐-、__ ヽ、
__=ニ-―''''"""゙゙`‐-、_`ヽ、 ヽ.
__,/ ,.--ヾ/''''''"'''"''ー、、ヽ、ヽ、 ヽ.
/ / / ミ `ヽヽ i
/ / i / ヾ__ヽヽ |
/ / ,| | __L i | |
/ /| |ヽ | ,,,,-∠''''"" ミ i| |
{ | { |-+ヽ,,,,,,, ,,illニ-==三`゙`‐---+ | |
|| i |┼'"三三ヽ ;/(ソ::ノ T´ ヽ-、.| |
ヽ ヽー'"(ソ:)` ! ‐‐-‐'´ ∧`}| .|
.| ``''"´ / ヽ. { !| .|
.i < '´/ | ||
! ヽ ` ○ | ||
ハ. _,=--- / | |.|
.| ヽ. `'''''''´ / | | | | |
| | ヽ ,. ' / .| .| || || |
.| | / ヽ ,/ / | | || || |
| | / `_t‐‐‐'"´,.----―''''''7 | || || |
.| | / / <"ヽj / __. /┐| || || |
./ // /,.-‐ゝ->‐/-‐ヽ__/‐‐‐/ ヽ|_ || |.| |
./ // //,.-〈 〈‐、 \--/ ``ー、!_|
0627デフォルトの名無しさん
NGNGPublished だけなら実行時型情報で列挙してコピーするなんて出来るかもしれないけど
nameとか コピーしちゃいけないのって出てくるから難しいかもね
0628デフォルトの名無しさん
NGNGこれって、どうやるの?
0629デフォルトの名無しさん
NGNGhttp://www.borland.com/about/press/2002/net_platform.html
0630デフォルトの名無しさん
NGNG旧世代Windows向けの究極の開発ツールとして「Borland C#」出してホスィ
Nativeなやつね
0631デフォルトの名無しさん
NGNG現状はお約束通りの方法↓
function _GridTo:String;
var
X,Y:Integer;
begin
Result:='';
with Grid do
for Y:=0 to RowCount -1 do
begin
for X := 0 to ColCount-2 do Result := Result + Cells[X,Y] + #$9;
Result := Result + Cells[X,ColCount-1] + #$D#$A
end;
end;
でやっているのだが、500行以上になると遅くてヽ(`Д´)ノゴルァ!な状態。
スピードアップ改善策を練っているのだが、速度改善のコツがあったら教えてきぼんぬ。
0632デフォルトの名無しさん
NGNG最大の容量が16MBまでだったり、複数のTMemoryStreamの合計が最大32MBまで
だったりの制限なんてあるのでしょうか??どうもバグを発見できなくて…
0633デフォルトの名無しさん
NGNGソースみるよろし
0634デフォルトの名無しさん
NGNG自分で書いたソースの方は何度も見直しているのですが
疑わしい箇所を発見できなくて、もしかしてTMemoryStreamに
そういう制限があるのならこの挙動も納得できる、
っていう仮説を立ててみたのですが、そんな制限は無いのでしょうか?
0635デフォルトの名無しさん
NGNG48MB扱うサンプル書いてみたら?
0636デフォルトの名無しさん
NGNGTStrings.Assignで一行(or一列)まとめて取り出したら?
0637デフォルトの名無しさん
NGNGwith TMemoryStream.Create do
begin
WriteComponent(Source);
Seek(0,0);
ReadComponent(Self);
Free;
end;
とか。でも>>627のいうとおりややこしい部分もあるかも。
0638デフォルトの名無しさん
NGNGWeb 上のどこからのコピペコードだが
uses TypInfo;
procedure GetPublishedProperties(comp: TComponent; lst: TStrings);
var
Props: PPropList;
TypeData: PTypeData;
i: Integer;
begin
TypeData := GetTypeData(comp.ClassInfo);
if (TypeData = nil) or (TypeData^.PropCount = 0) then Exit;
GetMem(Props, TypeData^.PropCount * sizeof(Pointer));
try
GetPropInfos(comp.ClassInfo, Props);
for i := 0 to TypeData^.PropCount-1 do
begin
with Props^[i]^ do
lst.Add(Name);
end;
finally
FreeMem(Props);
end;
end;
0639632
NGNGただ単に最初にSetSizeで48MBなり64MBなり設定して確保しておくだけで
問題がクリアしました。今までSetSizeしなくても動的に確保してくれて
いたのでほとんど疑っていなかったのですがこれで前に進める〜
泣きそうでしたよマジで。SetSizeしなかった理由は、Sizeを参照して
現在のサイズを調べてたからなんです。この辺は複数メモリストリームを
用意して解決できそうです。回答してくれた方ありがとう!
0640デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA015850/program/dtips21.html
を参考に。
>for X := 0 to ColCount-2 do Result := Result + Cells[X,Y] + #$9;
>Result := Result + Cells[X,ColCount-1] + #$D#$A
ここがバッファリングなしで単純に足し算しているので改善の余地あり。
0641Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < WriteCompoもどぞ
U つ∀ \____________
〜ミ ミ
∪''∪ MidNightはワインでも・
var
MemStream: TMemoryStream;
NameBuffer1, NameBuffer2: String;
begin
MemStream := TMemoryStream.Create;
try
NameBuffer1 := Compo1.Name;
NameBuffer2 := Compo2.Name;
Compo1.Name := 'XX';
MemStream.WriteComponent(Compo1);
Compo1.Name := NameBuffer1;
MemStream.Position := 0;
MemStream.ReadComponent(Compo2);
Compo2.Name := NameBuffer2;
finally
MemStream.Free;
end;
こんなんで動くかしら?
0642デフォルトの名無しさん
NGNG初めて使ってみたけど半分くらいにはなるのな。
どーもアングラなニホヒがして使っていいものやら困る(^^;。
ボーランドさんが正式に採用して、自動的にUPXの圧縮当てるとか
するのはどーか(藁
0643お腹いっぱい
NGNG0644Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < 昨日のノミの腰のビルーを飲んだ
ミ つ日 \___________
〜ミ,,,,,, ,,ミ
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Σミ゚Д゚,,彡 < どえらいマズイ
ミ つ日 \___________
〜ミ,,,,,, ,,ミ ペッペっ
(実話)
そんな話題>>Exeのサイズ
実行時パケージ使いなさい
0645デフォルトの名無しさん
NGNGあろうと思われるプログラムを起動すると起動できない
事があるのですが、これって定説?おれだけ?
例えば、WinXP上でD6あげてて ギコナビあげた時とか。
0646デフォルトの名無しさん
NGNGその辺解説してるページ知らんべか?
0647ななしっす
NGNG0648Delフサギコ ◆zE1iiRdQ
NGNG______
| カコログ |
| 四露死苦 |
|______|
∧,,∧..||
ミ,,トДダ||
ミ づΦ
〜ミ ミ MLの・・…・・
U''''.U
0649636
NGNG気になって試してみた。500x600のGridでAssignするとかなり遅くなった。5秒ぐらい。
681のコードで試してみたら文字列作成に850msぐらい。そんなに遅いか?
641のtipsで多少速くなるかも。
ただ、Memo1.Lines.Add(s);したら返ってこなくなったので、
前後の処理に時間がかかってると思われる。
ClipBoead.AsText := s;
は一瞬で終った。メモリ256MB,セレ400
0650646
NGNG0651デフォルトの名無しさん
NGNG同じアイコンなんだろう?」って思ったりしてたのだが、アレって
VC?で作るとデフォルトであーなるんでしょ?
H○Pのは「スープに湯気」のアイコンとか…。
どうして自分で作らんのだろうか…。でも、delphiの「柱に緑丸にイナズマ」
ってゆーワケワカメなヤツのまんまって見たこと無い。見たこと有る人いますか?
0652デフォルトの名無しさん
NGNGフリーでも沢山みてるけど?
俺も気分が乗らないような仕事の時はアイコンまで作らない。
0654デフォルトの名無しさん
NGNG0655636
NGNGD3 あれが一番かっこよかった
0657デフォルトの名無しさん
NGNGそれともアテネ神殿か。
※知ってるとは思うけど、「デルファイ」はギリシャの古都の名前。
0658デフォルトの名無しさん
NGNG2重起動防止のコードをコピペして使ってるいつがいるに十票。
Mutexにどのアプリケーションも同じサンプルの文字列を渡してるに違いない。
0659デフォルトの名無しさん
NGNG激しく同意。
Delphi5でアイコン周りにガクーっときた。
ドット絵マンセー
0661デフォルトの名無しさん
NGNGあ〜、Mutexじゃないけど、それでトラブったことあるよ。
俺の場合、システムフック用のDLLで、他で使ってる文字列を
そのまま使ってファイルマップしてた。
なぜクラッシュするのか原因が分からなくて悩みまくったよ(w
教訓:CreateFileMappingの後は要GetLastError!
0662デフォルトの名無しさん
NGNGひどいや!ギコナビのmutex名は「gikoNaviInstance」だよ。
0663デフォルトの名無しさん
NGNG本気で調べてみようと思いますが。
0664デフォルトの名無しさん
NGNGどうやってインストールするんですか?
0665デフォルトの名無しさん
NGNGhttp://delphi-area.fs-tools.de/pdl_downloads.php?file=14
からアーカイブをダウンロードし、インストールしたのですが、
コンパイルエラーがおきました。
ヘルプにある互換性のページ
>プロジェクト内の DsgnIntf への参照は,新しい Delphi 6 の名前 DesignIntf に
>変更する必要があります。また,uses 節に DesignEditors,VCLEditors,
>および RTLConsts を追加する必要もあります。
を参考に、
TFlatDesignRegister.pas の uses 節を修正しました。
コンポーネントは無事登録されたのですが、
オブジェクトインスペクタで、貼りつけたコンポーネントの
色関係のプロパティの色定数リストを表示させる(リストをスクロールさせる)と、
このコンポーネントで独自に追加したと思われる色定数について、
「***は数値ではありません」というエラーが表示されてしまいます。
どうすれば、ちゃんと使えるようになるでしょうか。
0666デフォルトの名無しさん
NGNGDelphi 6 なら普通に開いてインストールできるよ。
0667デフォルトの名無しさん
NGNG警告を発してくれるようなコンパイラオプションがあったとおもうのですが、
みつけられません。なんというオプションか教えてくださいませんか。
0668デフォルトの名無しさん
NGNG0669667
NGNGでも推奨さてないみたいですね…
>$X 指令は,下位互換性を提供します。Delphi のアプリケーション
>を記述するときは,{$X-} モードを使用してはなりません。
0670デフォルトの名無しさん
NGNGvarによる参照引数は使用してよし、それとも駄目?
C++には参照があるけど、Cにはないから駄目かな?とか思ったんだけど・・・・・
0671傍観者
NGNG0672解脱者
NGNG心の眼で見るのだ。さすれば何もかも分かる。
0673傍観者
NGNGハァ?
0674先行者
NGNGバーカ
0675デフォルトの名無しさん
NGNG0676傍観者
NGNGredirect
0677傍観者
NGNG0678デフォルトの名無しさん
NGNG0679マジレスきぼんぬさん
NGNGlist.Delete(位置); <--- 指定した位置の文字列を削除
ここまでは分かります。位置の指定がわかりません。
0680ビクーリ!
NGNGHotkeyちゃんったら、自分のページでレスを
載せてるようだけど、承諾してんのかな。
つーか、デスクトップの一部分拡大ってよくあるヤツをシェアウェアに
しちゃったYO!
0681傍観者
NGNGDelphi - ML の I wish List で話題になりましたよ。調べてないのは678では?
0682馬鹿にマジレス
NGNG↑ここで聞いてる馬鹿が「調べた」って言えるとは驚いた。
0683傍観者
NGNG0684デフォルトの名無しさん
NGNG最初がゼロ、次が1、ウーム、なぜヘルプを読まないのか不思議です。
0685デフォルトの名無しさん
NGNG0686ビクーリ!
NGNG誰か金払うとでも思ってんのかなぁ?人に聞きまくってシェアか…。
0687デフォルトの名無しさん
NGNGから相殺しましたとかって言って銭払ってもらえないが知ってるか?
結局、その小銭はベクタの懐に入るってすんぽうさ。
ベクタも昔はクズが詰まったCDを送ってくれてたけど、
最近はそれも止めたしフリーソフト作ってる人間からすれば
メリット無くなったな、googleの恩恵か、自分とこのホームページ
で公開してても結構人来るし、よくよく考えたら、別に使ってもら
わなくてもいいんだよなぁ。
0688デフォルトの名無しさん
NGNGうちじゃ、そのようです。
0689683は結局何が言いたいんだ?
NGNGまぁまぁ。気持ちは分からんでもないけど。つーか、シェアウェア作る人の
気持ちが分からん。いや、「有益で利用する価値があって金払いたくなるほど
素晴らしいソフト」の作者はいいんだ。
そーじゃない人っているじゃん。「そのソフトでいくらもらったんだ、今までに」
って聞いてみたくなる人ってさ。不思議だなぁ、っていつも思うよ。
500円くらいの「フリーでいくらでも同じ(それ以上)のがあるよ」って
ヤツ、公開してるのってよくあるけど、金払う人がいるとするなら、その人の
気持ちも分からん。
0690デフォルトの名無しさん
NGNGまあね、でも、初心者とかが騙されるんだよ。
ネット詐欺の一種だと思われ(w
0691デフォルトの名無しさん
NGNGttp://www.geocities.co.jp/SiliconValley/3765/
↑もう随分昔の話だけど
こんな明らかに妖しい有料登録に金払って登録したDQNもいるのよ。
0692デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
TListView には OnInfoTip イベントがありますが、TTreeView には
そういったものが見あたりません。
いろいろと調べてみたのですが、分かりませんでした。
ご存じの方いましたら教えてください。
0694デフォルトの名無しさん
NGNG下を見るなよ。DQNなんてリアル世界でいくらでもいるだろ。
0695デフォルトの名無しさん
NGNGおいらの環境じゃ再現しませんでしたyo
0696デフォルトの名無しさん
NGNGそりゃ、あれだろ、UNICODE用の文字列関数があるって事だろ、
厳密には対応したってより、変換関数を取って付けたってだけ
では?
折れが思うには UNICODEよりも何よりも.Net戦略に騙されて
駄目にならなきゃいいと願うばかりだ。
Delphiは、今のままでもいいと思うが、MSDN又は、同規模の
情報を付けて欲しいなぁ、結局、MSDNも買うんだよなぁ。
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGそうなんだよなあ(笑
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デルファイの名無しさん
NGNG知らないですか?
検索したけど、なかなかヒットせなんだ。
0702699
NGNGマジ?
0703デフォルトの名無しさん
NGNGなにが知りたい?
0704デフォルトの名無しさん
NGNG誰が見てもわかるウソ
0705デフォルトの名無しさん
NGNGヒントとしてはVBマガジンより少し少ないとお考え下さい。
0706デルファイの名無しさん
NGNG命令っちゅーか、とりあえず、いろいろ。ヘルプもなんか、うまくヒット
せなんだ。「こうこうこーゆーことするとこーなる」って感じに書いてない
気がする。
0707デフォルトの名無しさん
NGNGメールを読まない読者数を考えると、6000 ± 1000 くらいと見るのが妥当ではないか?
0708デフォルトの名無しさん
NGNGアセンブラそのものの説明がほしいの?
だとすると、ちょっと大変だな。
0709デルファイの名無しさん
NGNGでっかー…。むかーしアセンブラかじった位だから、「そこはかとなく」は
分かるんだが…。とりあえず、「delphiの」は、どんなんかな?と…。
特に変わらん?
0710デフォルトの名無しさん
NGNG変数領域の確保はpascalでやって、そのシンボルをそのまま使える。
その代わりマクロは少なめ。
って感じかなあ
0711デルファイの名無しさん
NGNGダスかぁ。どもありがとダス。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG相互参照するようなコンポーネントの場合、どのように実装するのが
一番スマートですか。例えば、
データベースを表わすコンポーネントが1つに対して、それを
表示・操作するコンポーネントが複数あるとします。
表示・操作コンポーネントは、プロパティ DataBaseComp で
データベースコンポーネントを指定するとします。そうすることで、
操作コンポーネントでデータベースを変更したいときは、
自身の DataBaseComp プロパティにアクセスすれば良いことになります。
問題は、その逆なんです。
データベースが変更された際に、表示・操作コンポーネントに
そのことを通知して、画面を更新したいのですが、データベースと
表示・操作コンポーネントの関係はあくまでも一方通行です。
現在は、表示・操作コンポーネントに Update メソッドを用いて、
データベースの OnChanged イベント内で、
全ての表示・操作コンポーネントの Update メソッドを
呼び出しているのですが、どうにも不自然な感じがします。
表示・操作コンポーネント → データベース
のアクセスは、プロパティを使えばいいだけなのに、
データベース → 表示・操作コンポーネント
のアクセスは、そのためのコードを毎回記述しなければならないなんて…
どうすればスマートにいきますか?
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGAccessをつなげてTTableやTQueryで表示させると
Accessでルックアップで入力した個所は1、2、3みたいな感じで数字で出てしまうのですが
そのままルックアップで指定したデータを出せないのでしょうか?
一応リレーションシップも繋がっています
0716デフォルトの名無しさん
NGNGまあアドホックだけどCM_DATABASECHANGEDを定義して、
wParamにデータベースコンポのアドレスでも入れて、
MainForm.Broadcastするとか。
データベース操作/表示コントロールはwParamが自分の
属するデータベースコンポか調べて、更新するの。
0717Delフサギコ ◆zE1iiRdQ
NGNG/:\._____\ />>713
|: ̄\ ミ,,゚Д゚ミ < VCLでは普通にプロパティで
|: :|: ̄U U ̄:| \相互参照しているような.
TreeViewとTreeNodeとか。
DataBaseCompoにリストで表示操作コンポを
登録するというスタイルはダメかしら?
0718デフォルトの名無しさん
NGNG「表示・操作コンポーネントリスト」プロパティと、
「コンポーネントリストに登録」メソッドを用意し、
表示・操作コンポーネントの DataBaseComp プロパティで
procedure THoge.SetDataBaseComp(Value:TDataBaseComponent);
begin
FDataBaseComp := Value;
Value.コンポーネントリストに登録メソッド( Self );
end;
のようにするという意味でしょうか。
なるほど、ためしてみます。
…というか、デザインパターンつかうと
こんなに説明というか、楽になるんですね…
(手元にデザインパターンの本があって良かった…)
0719名無しさんです
NGNGちょっろっとコントロールを貼ってコンパイルしただけで
500kbになったのですが、もう少しダイエットは出来ない
ものですか?
VBなら40kbくらいで済みそうなのですが。ランタイムって
イヤだったけど、サイズを考えるとデメリットばかりでも
ないですね。でもコンパイル早くて「あれ?反応しない」と
思って何度も実行してしまった。
0721デフォルトの名無しさん
NGNGランタイムの分を足したら40kbじゃ済まないだろ
0722デフォルトの名無しさん
NGNGDelでもランタイムは使えるよん。プロジェクト→オプション→パッケージ
→実行時パッケージを使って構築する にチェックでGO
0723719
NGNGでもランタイムってほぼ共通(ほぼでもないか)だから、VB6の
ランタイム最新版フルパック一つ入れておけば済むかな、その
サイズで済む、と。ま、ランタイムはかなりウザイ要素なのだが。
0725Delフサギコ ◆zE1iiRdQ
NGNGTDataBaseComp.CommandList(i) で操作コンポにアクセスして
TDataBaseComp.CommandSet(命令の種類)で
コマンドを生成してリストに登録するとか。。
____
/...... .. .../
||::: ∧,,∧ TCompo派生というわけにはいかんけど
|: ̄\ ミ,, ゚Д゚ミ
|: :|: ̄U U ̄:|
|: :|: .:|
>>719
VB使っているとどうしてもそう思うけど
VBはランタイムが元々ごっそりOSに入っているんだYO
0726デフォルトの名無しさん
NGNGまた、既存のモノを使わずに1から組んでいけばサイズをおさえることもできます。
この辺もさんざん話したね。
0727719
NGNG当方win98無印なので標準ではVB5しか入ってナイッす。あと、
ツリ^ビューやツールバーなんか使っちゃうと標準では済まなく
なってしまうし…。サポートはいつもランタイムのことがほとんど
っす。
>>726
イチから?過去ログに答えがありそうですね。見てきます。
0728デフォルトの名無しさん
NGNG>>727
小さいexeがどーたらこーたらってのでも検索してみれ。
0729Delフサギコ ◆zE1iiRdQ
NGNGほんとにそうだろうかと、小一時間・・・・
∧,,∧ 乗りかかった船で
ミ,,゚Д゚彡 いろいろ評価してミソが
ミつ[|lllll]). よろしいかと。
〜ミ ミ
U''U
日Del振のリンクの最後みてみー
http://hp.vector.co.jp/authors/VA009712/take/delphi/dellink.htm
"イチから組む"という方法は並の人間には難しく
人造人間にしかでけない技なので
http://halbow.cool.ne.jp/top.html
ここみて、5分程度であきらめよう
0730デフォルトの名無しさん
NGNGttp://halbow.cool.ne.jp/top.html
ttp://www.vector.co.jp/soft/win95/prog/se076841.html
ここまでやるんだったらC++と・・・
という話になる、と。
0731719
NGNGスマソ。今日始めてこのスレ見たんだわ。今過去ログ漁ってます。
>>729
>ttp://halbow.cool.ne.jp/top.html
ここ今日見た(ワラ)。サッパリでしたわ。
>>もしそれやっちゃうとDelに移行するメリットが 無くなってしまう(笑)。
>ほんとにそうだろうかと、小一時間・・・・
実はちと気に入ったコンポーネントを落としてきたんですわ。で、
ちょっろっとコーティングしてみたんですが、これがイイ!
他人のコンポーネントに頼るのは厨なのかどうかはまだDel始めた
ばかりでわからないけど、かなりの魅力を感じた。
>>730
>ここまでやるんだったらC++と・・・
ん〜、まだ始めたばかりだからなんとも…。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGまたプログラミングにおける欠点でもある。
用は使いよう
0734デフォルトの名無しさん
NGNGハァ?
0735Delフサギコ ◆zE1iiRdQ
NGNG>ばかりでわからないけど、かなりの魅力を感じた。
クラスライブラリ使いを
∧,,∧ /厨だと言いたい人には言わせておく。
ミ ゚Д゚ミ <
(ミ ミつ)ビシッ\だけど、生産性は負けない
〜ミ ミ それがDel使い
∪ ∪
---- (^_^)(^_^)(^_^) THE REAL CHU-BOU (^_^)(^_^)(^_^) ----
海岸では、実際のプログラマが砂の中のフローチャートを引くプログラマです。
∧,,∧ イミワカンネー
ミ゚Д゚彡 Delフサギコ mailto:[email protected]
0736デフォルトの名無しさん
NGNG0737Delフサギコ ◆zE1iiRdQ
NGNGチガウ
∧,,∧l||l マチガワレタ
;゙⌒ヽ彡
〜ミ___ミ
''" ""''"" "''
クワッ
∧,,∧l||l 毒舌ですか...?
;;゙ミ゚Д゚彡
〜ミ___ミ
''" ""''"" "''
0738デフォルトの名無しさん
NGNGDelphiで下記のように設定しても、表示はされるがSQLとしては何もおこりません
どこか間違っているのでしょうか?
begin
Database1.AliasName := 'ABC; // ODBCのデータソース名
Database1.DatabaseName := 'Aテーブル'; // DBのエイリアス
Database1.LoginPrompt := False; // DBのログインダイアログを抑制
Table1.DatabaseName := 'Aテーブル';
Table1.TableName := 'Aテーブル'; // MDB内に作ったテーブル名称
DataSource1.DataSet := Table1; // TTableコンポーネントを指定
DBGrid1.DataSource := DataSource1; // TDataSourceコンポーネントを指定
Query1.DataSource := DataSource1;
Query1.SQL.Add('SELECT *');
Query1.SQL.Add('FROM Aテーブル');
Query1.SQL.Add('ORDER BY タイトル DESC');
Database1.Open;
Table1.Open;
Query1.Open;
end;
0739デフォルトの名無しさん
NGNGつてい理解できません、なんかポインタとか詳しく書いてある本あり
ませんか?
0740デフォルトの名無しさん
NGNGP-Code = 玄ちゃん説は?
どちらも酒飲みだし。
0741デフォルトの名無しさん
NGNGPASCAL では C のような、物理アドレスに密接に関連した「ポインタ」は扱いません。
ほかのオブジェクトに対する参照としてのポインタとなります。当然配列とは何の関係も
ありません。
しかし、実装としては物理アドレス値を使っていますからメモリ空間の直接参照もできます。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGアホ。レベルが違う
0744Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < つまり、ポインタわからんでもヨシと
(ミ ミ) \_
〜ミ ミ
∪''∪ …ホントカ?
引数のvar渡しと
クラスの参照がわかればいいとおもうけどね
0745デフォルトの名無しさん
NGNGいや、他のオブジェクトを参照する「何か」といったポインタがないと
ツリー構造すら満足に作れなくなるから、ポインタは知っておかなきゃいけない。
「Java にはポインタがない」伝説と似た部分あり。
歴史的経緯で Java ほどポインタ否定にはなっていないが。
もちろん、厳密には C/C++ でも規格書にはポインタが物理アドレスを示して
いる保証などないんだけどね。
0746デフォルトの名無しさん
NGNG以下2点を簡潔に述べよ。
・どこに何が表示されたのか。
・SQLとして、どのようなことが起きることを期待していたのか。
あと、ほとんどのプロパティを実行時に設定しているが、オブジェクトインスペクタからの
設定に何か問題でも?
0747デフォルトの名無しさん
NGNGDataSouce2 を追加して、まんなかへんを
DataSource1.DataSet := Table1;
Query1.DataSource := DataSource1;
DataSource2.DataSet := Query1;
DBGrid1.DataSource := DataSource2;
0748デフォルトの名無しさん
NGNG>---- (^_^)(^_^)(^_^) THE REAL CHU-BOU (^_^)(^_^)(^_^) ----
>海岸では、実際のプログラマが砂の中のフローチャートを引くプログラマです。
「真のプログラマとは、海辺で砂にフローチャートを描くようなプログラマのことである」
賛成できません。ちょっとこわいかもね。
0749真のプログラマとは
NGNG0750真のプログラマとは
NGNGvar
programmer:Real
のことである
0751真のプログラマとは
NGNG0752デフォルトの名無しさん
NGNGフックすることはできますか?
0753デフォルトの名無しさん
NGNG多分、できない。つーか、DLLを使いたくない理由が分からない。
なんだか難しそうとか思ってるなら、実際は難しくないから、とりあえずやってみれ。
本当はVC使った方が簡単なんだけどね・・・・・
0754デフォルトの名無しさん
NGNGShareMemoryの話?だったらレジストリ渡しで初期化するという手も。
0755デフォルトの名無しさん
NGNGconst
programmer:Boolean=True;
0757デフォルトの名無しさん
NGNGbegin
if programmer and skill then
Result := True
else
Result := False;
end;
var
programmer: boolean;
skill: integer;
begin
{ snip }
check(programmer, boolean(skill)); //False;
check(programmer, skill > 0); //True;
0758デフォルトの名無しさん
NGNG会社のDEL4 (NT)で、カラーパレットから色を作るとザラザラした色ができます。
ピンクを作ればピンクの小さい四角と白の小さい四角、といった感じで。
一方、自宅(windows98) DEL4で同じ色を作るときれいなムラのない色が作れます。
ザラザラにならないためにはどうすればよいのでしょうか。
激しく厨房で自分でも恥ずかしいのですが、よろしくお願いします。
0759デフォルトの名無しさん
NGNG+ + +
+
. / ̄\ +. ∧_∧アハハハ +
ノリカエセヨー( ´∀`) (´∀` )
(つ つ (つ つ■
. + ( ヽノ ( ヽノ +
し(_) し(_)
0760デフォルトの名無しさん
NGNGそりゃ、NTの方のPCの色数とWin98の色数が違うだけだろ、
Windowsの画面のプロパティで設定して下さい。
0761デフォルトの名無しさん
NGNGそれは早く返した方がいい
彼のアイデンティティだし
0762デフォルトの名無しさん
NGNGワラタ
0763デフォルトの名無しさん
NGNGDelphi6のShellTreeViewでマウスダウンしたディレクトリの
フルパスを知るにはどうすればいいですか?
0764デフォルトの名無しさん
NGNG手っ取り早くやるなら
コソーリShellListViewを配置してShellTreeViewと同調させて
ShellListView.Folder[0]を見るとか。
0765デフォルトの名無しさん
NGNG(*゚ー゚)レスありがとう。
でもダメでした。\マウスダウソ のフルパスがしりたいのに
\マウスダウソの下にディレクトリがあるとそれも取ってきちゃう
C:\マウスダウソ\hogehoge
0766デフォルトの名無しさん
NGNGDelphiの\Help\Examplesに入っているプログラムは
日本語表示させると文字化けするんです。
日本語表示させるにはどうしたらいいのですか?
0767デフォルトの名無しさん
NGNG何が「日本語表示」なの?何を表示させたいワケ?
0768デフォルトの名無しさん
NGNGあんまり細かいところを気にするな。
0769デフォルトの名無しさん
NGNGDelphiでテーブルやクエリを使用して実行したら
データベースへのログインというダイアログが出てしまいますが
出ない事ようにできないのですか?
0770Delフサギコ ◆zE1iiRdQ
NGNGTDatabase.Paramsの値を
SERVER NAME=なんちゃらサーバー
USER NAME=ほにゃららユーザー
PASSWORD=ちょめちょめパスワド
にすると
____∧ ∧_ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
___ミ,,゚Д゚ミ< で、パスワード聞かれなくなる!
__ ミ ⊃ つ \______________
_〜ミ,, ,,〃
_ ∪ ∪
---- (^_^)(^_^)(^_^) THE REAL CHU-BOU (^_^)(^_^)(^_^) ----
真のプログラマは今時フローチャートなんて書かない。
∧,,∧ フツー カカネーダロ
ミ゚Д゚彡 Delフサギコ mailto:[email protected]
>>748さんサンクスコ
0771Delフサギコ ◆zE1iiRdQ
NGNGhttp://www.borland.co.jp/tips/cbuilder/cb002/cb_2.html
http://www.wwlnk.com/boheme/delphi/dbtips/css0110.htm
∧,,∧ ──────
ミ゚Д゚,,彡 < いちお、URL
⊂⊂ ミ──────
ヾ ,,ミ〜 ────
し じ ─────
0772デフォルトの名無しさん
NGNGthanks
0774デフォルトの名無しさん
NGNGわかっていると思うが、ユーザー名/パスワードがベタテキストでフォームに埋め込まれるので
パスワードつけた意味がなくなります。
0775デフォルトの名無しさん
NGNGツリーに登録されている関数名や変数は如何したら取り出せますか。
0776デフォルトの名無しさん
NGNG>パスワードつけた意味がなくなります。
よい子は文字列を分散させておいて実行時に組み立てて代入します
もっとよい子は乱数などで暗号化しておきます
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGできます。
0779デフォルトの名無しさん
NGNGprocedure TForm1.Button1Clien(Sender: TObject);
var button: TButton;
begin
button := TButton.Create(Self); // 必須
button.Parent := Self; // 必須
button.OnClick := Button1Click; // ボタンが押された場合のイベントハンドラ登録
... // その他座標・サイズ・キャプション等設定
end;
0780デフォルトの名無しさん
NGNG俺もそれやりたい。
TVS_INFOTIPをスタイルに加えて、TVN_GETINFOTIPメッセージを
捕まえればいいのかと思ったけど、どうもうまくいかない。
誰か知ってたら教えてください・・・
0781デフォルトの名無しさん
NGNGスクロールバーがでるくらいに幅を狭めては?
で、自動的に項目ごとに異なる文字列が出てくるが。
それとは別の話?
0782デフォルトの名無しさん
NGNGコードエクスプローラの情報を取り出したいのです。
0783デフォルトの名無しさん
NGNGなんで〜?Demoの中のvirtuallistviewやShellCtrlsなら問題ないのに…。
const
EnumOption = SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN;
var
Desktop, Bitbucket, Folder: IShellFolder;
ID, Item, It: PItemIDList;
Malloc: IMalloc;
Enum: IEnumIDList;
Got: DWORD;
Menu: IContextMenu;
Arg: TCMInvokeCommandInfo;
PMenu: HMENU;
begin
SHGetMalloc(Malloc);
SHGetDesktopFolder(Desktop);
SHGetSpecialFolderLocation(0, CSIDL_BITBUCKET, ID);
Desktop.BindToObject(ID, nil, IID_IShellFolder, Bitbucket);
Folder := Bitbucket;
It := nil;
Folder.EnumObjects(0, EnumOption, Enum);
while Enum.Next(1, Item, Got) = S_OK do
begin
if It = nil then It := CopyPIDLs(Malloc, Item);
Malloc.Free(Item);
end;
Malloc.Free(ID);
if It <> nil then
begin
Folder.GetUIObjectOf(0, 1, It, IContextMenu, nil, Menu);
PMenu := CreatePopupMenu;
Menu.QueryContextMenu(PMenu, 0, 1, 100, CMF_NORMAL);
DestroyMenu(PMenu);
FillChar(Arg, SizeOf(Arg), 0);
Arg.cbSize := SizeOf(Arg);
Arg.nShow := SW_SHOW;
Arg.lpVerb := Pointer(19); //'properties';
Menu.InvokeCommand(Arg);
Malloc.Free(It);
end;
end.
0784783
NGNGなおさら謎だ〜!
( 何で思いついたかというと、
コントロールパネルの中の「フォント」を扱う時
先に「タスク」をやっとくと上手くいったことが… )
0785デフォルトの名無しさん
NGNG具体的にどんなことをしたの?
0786デフォルトの名無しさん
NGNGタスクスケジューラのスケジュールの列挙っちゅーことかな?
漏れは>783じゃないから分からないけど…
0787デフォルトの名無しさん
NGNGテーブルの内容を横向きの棒グラフで表示したいのですが、
どなたか方法を教えてください。
0788デフォルトの名無しさん
NGNGDelphi6では失敗します。IBTableに仕様の変更があったのでしょうか?
0789デフォルトの名無しさん
NGNGLocateは怪しそうなので相当関数を作ってつかってる
0790デフォルトの名無しさん
NGNGカラムのwidth設定をいじりたいんですが、
カラムの境界線をダブルクリックしたときに発生するイベントはあるんでしょうか?
0791788
NGNGRESありがとうございます。
でもソース見る根性無かったので、いろいろ試してみた結果、
日付フィールドの扱いが5と6で異なっていたみたいです。
5は日付形式で渡してOKだったのですが、6は文字列に直してやらないと
ダメでした。
0792780
NGNGいや、見えない部分を補完するあれではなくて、
項目ごとにTextプロパティとは別にヒントを表示したいのです。
たとえばIrvineなんかでは、そういう処理をしているとおもうのですが、
どうやっているんでしょう。
0793デフォルトの名無しさん
NGNGCtl3D:=Falseしても何も変化がありませんが、こんなもの?
他と違和感があるので、是非ともフラットにしたいのですが
回避策ありませんか?
0794デフォルトの名無しさん
NGNGの使い勝手(速度や使いやすさ)レポートきぼんぬ。
0795デフォルトの名無しさん
NGNGBevelKind
0796デフォルトの名無しさん
NGNGUpdatesPending: キャッシュバッファに未適用のレコードが入っているかどうか調べる
ってものが欲しい。何かで代用は出来ないものでしょうか?
それとも派生コンポつくって解決できるんですか?
0798783
NGNGコントロールパネルと、その下のタスクの中の列挙です。
自分以外の環境ではどうなるか気になる所です。
( そういえばタスクスケジューラをサービスごと切っていた記憶も…
0799デフォルトの名無しさん
NGNG「ViXの作者がUPXでXPのなんたらかんたらで使うのやめた」って
吹聴してまわってるヤツいないか?
他の掲示板でまるまる同じレス見たよーな気がするんだが気のせいか?
0800800
NGNG0801茶碗
NGNG質問です。
例えば
FormにRichEditとButtonとPopUpMenuがあります。
PopUpMenuにコピー、切り取りなどを適当に用意して
RichEdit1にPopUpMenuを関連付けてButtonのプロシージャで
for int1 := 0 to 10000 do begin
RichEdit1.Lines.Add(inttostr(int1));
RichEdit1.SetFocus;
application.ProcessMessages;
end;
等としたらずらーっと表示されていきます。
その処理中にRichEditで右クリックしPopUpMenuを
表示した場合ずらーっが止まってしまいます。
これを止まらずに行う方法は無いでしょうか。
0802デフォルトの名無しさん
NGNGすまんのぅ。意味が分からんのじゃ。
0803茶碗
NGNG0804素数2
NGNG一時的に削除したらどうだろうか・・・役にたたんなこの情報
0805デフォルトの名無しさん
NGNG大麻やれ。
0806茶碗
NGNG>804
どうもありがとうございます。
>805
タイマーですか?
やりたい事は長い処理中にログみたいなのを表示したくて
PopUpMenuやMainMenuが表示されると処理が止まってしまう
のを何とかしたいのです。
Threadなどを使ってみたのですがどの部分をスレッドかすれば
良いかと思いやってみましたが上手く行きませんでした。
上手く言えないのですが例えば
Iriaでダウンロード中にログが表示されますが
その時にPopUpMenuが表示させたりMainMenuを表示させても
ログが流れて行きます。
そう言う事をやりたいのですが。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG右クリックを検知して自作のもんを出すとか…。
なーんて知ったかぶったりして。
0809デフォルトの名無しさん
NGNG0810茶碗
NGNGそれだとずらーっは大丈夫なんでしょうか。
やってみます。
>809
そうなんですか、あれはどうやってるんでしょうか。
簡単であれば教えて貰えませんか?
0811デフォルトの名無しさん
NGNGログの表示はレスポンス(反応)に対して文字が書き込まれるのであって
単純にループで回すような仕組みではないと・・・
0812デフォルトの名無しさん
NGNGていうか何でマニュアル付いてないんだ…
0813デフォルトの名無しさん
NGNGHelpついてるぞ?
0814デフォルトの名無しさん
NGNGつまり、それを表示した窓のメッセージを止めてしまいます。
これはメッセージを止めるのであってスレッドを止めるのではないことに注意。
だから、タイマーを使うと、タイマーは隠れた別の窓を使いますからそれとは
別のタイミングで動かせます
0815デフォルトの名無しさん
NGNG顕微鏡で細胞分裂を観察しているのですがdelphiで録画と画像処理をやろうと思います。
カメラから画像を取り込むためのライブラリはございますでしょうか?
ご指導のほどよろしくお願いいたします。
0816デフォルトの名無しさん
NGNGあとは好きなようにってのは駄目なの?
0817デフォルトの名無しさん
NGNGコレ使えば?
http://www.clavis.ne.jp/~listcam/index_j.ssi
0818デフォルトの名無しさん
NGNGここで聞いても無駄。技量のあるやつなんかイネーヨ(ワラ
VB使え!
0819デフォルトの名無しさん
NGNG要らない情報が詳しくて、必要な情報が足りていない。
0820デフォルトの名無しさん
NGNGHelpの場所はどこですか?
・IDEでTClientSocketにカーソルを合わせてF1
・VCLリファレンスヘルプでキーワード検索
・VCLリファレンスヘルプの目次から「オブジェクト・コンポーネント(アルファベット順)」→「TC」
以上のどれでやっても出てこないんですが…俺の環境がどっかおかしいんでしょうか。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG簡単な方法って有りますか?
0823デフォルトの名無しさん
NGNGこれと同じ物を実行時に複製したいよ。
Panelの上じゃなくて、全てを個別に作成するしかないかな?
結構数がある上に、後々変更とかで楽がしたいんでPanelの
コピーでオブジェクトが作成できれば楽かと思っているのだが
どーすりゃいいモナー。
0824デフォルトの名無しさん
NGNGhttp://www.hpsozai.com/up/ap.cgi?get=2002212214830.jpg
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGいッいつの間に!こんな機能が!
恥ずかしながら全く知りませんでした。(汗)
0827デフォルトの名無しさん
NGNGフォームデザイナでパネルを選択してCtrl+Insしてコピー。その後親となるコントロールをクリックしてShift+Insで貼り付けでコピーできる。
TFrameとの違いは手軽に使えることと、一方を修正しても他方に反映されないこと。
0828デフォルトの名無しさん
NGNG>>832の逝っている事と少し違うような気がするけど
それってデザインでの話しでしょ、832は実行時って書いてるようだが
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGTFrame のインスタンスを実行時に動的に複製すればいいのでは?
0831デフォルトの名無しさん
NGNG>816-819 頭の足りない者は無理して答えなくても結構。
0832茶碗
NGNG>814
出来ました。ありがとうございました。
0833デフォルトの名無しさん
NGNG最初からついてないんですか…残念。
0834デフォルトの名無しさん
NGNGFrameねぇ、便利なんだけどWin9xだと使えないかもよ?
リソース食いまくるからね、まあ、激しく使わなきゃ大丈夫か。
20個固定だが、その辺りはなんとかしてくれ、
取りあえずこんな感じでどお?
// Frame2を新規フレームとして作成しておいて、
// Form1 に ScrollBox1を張る。
var
Frame: array[1..20] of TFrame2;
・
・
・
procedure TForm1.FormCreate(Sender: TObject);
var
idx:Integer;
begin
for idx:=1 to 20 do
begin
Frame[idx]:=TFrame2.Create(Self);
Frame[idx].Parent:=Self.ScrollBox1;
Frame[idx].Name:='iFrame'+IntToStr(idx);
Frame[idx].AutoSize:=True;
Frame[idx].Top:=(Frame[idx].Height*(idx-1));
end;
end;
0835823
NGNGしかし、なぜフレーム使うとリソースが足りなくなるのかわかりませんが、
もしかして、フレームって貼り付ける度にフォーム生成してるのと同じ?
便利なんで、色々なフォームの共通点をフレームにしちゃおうかと思って
いたのですが、止めた方がいいでしょうか。
0836デフォルトの名無しさん
NGNG0837719
NGNGフォームを追加してちょろっと手を加えて、その時は普通に
動いていたのですが、Delphiを閉じてからしばらくしてまた
立ち上げたら
「[致命的なエラー]Project1dpr(7)ファイル'AFEdit.dcu'が見つかりません」
と出て実行できなくなりました。
AFEeditは追加したコンポーネントです。閉じる前までは
正常に起動できていたのですが…。原因と対策を教えて
ください。
0838デフォルトの名無しさん
NGNG色clInfoText、clInfoBkは「Win95、NT4.0のみ」となっているのですが、
これ以外のOSの場合はどのように指定すればいいのでしょうか?
一応私の環境(Win98SE)では、clInfoText、clInfoBkで指定しても
反映されるのですが、Me、2k、XPなどはどうなんでしょう?
0839名無しヘタぐらま ◆B18Bks.Y
NGNG内部構造はわからないけど
リソースメーターとにらめっこしながら
フレームを使う場合と使わない場合で実験してみてはどうでしょうか.
あんまり人気のないフレームですが(笑)
余計な作業は減るしコードはシンプルになるしで
個人的にはかなりお世話になっています.
>>838
私が仕事で使ってるXPは大丈夫でした.
たーぶーん,同じでよいと思うのですが.
そちらのDelphiのバージョンがわかりませんが,
Delpht 5の場合はWin98登場の頃だったためかWin98の対応がなく,
(Windows の英語ヘルプもWin95/NT4.0時代のものです)
またWindowsでは将来の互換性が保証されているわけではないので
『のみ』という表記になったものと思われます.
(Delphi6でも同じ表記ならボーランドの手抜き?)
ちなみに clInfoText と clInfoBk は
Delphi 5 ではGraphic.pasで以下のように記述されています.
> clInfoText = TColor(COLOR_INFOTEXT or $80000000);
> clInfoBk = TColor(COLOR_INFOBK or $80000000);
COLOR_INFOTEXT と COLOR_INFOBK はWindows API の
GetSystemColor でツールチップのそれぞれ文字色,背景色を得るために使う定数ですが
ttp://www.microsoft.com/JAPAN/developer/library/jpsetupf/_win32_getsyscolor.htm
ここを見る限りWin95/NT4.0以後の変更については何も書かれていないので
おそらく大丈夫ではないかと.
0840838
NGNGレスありがとうございます。VCLリファレンスはDelphi6のものです。
clGradientActiveCaption、clGradientInactiveCaptionは、
「Win98とWin2k」になっているので、Delphi5と同じということは
無いと思いますが、やはり手抜きなんでしょうか。
私のはDelphi6PersonalなのでGraphic.pasついてません。(^^;
XPでもOKということは、気にしなくてもよさそうですね。
ありがとうございました。
0841昼寝
NGNGDelphiに触れて1週間未満の初心者ですが宜しくお願いします。
TTableコンポーネントのキャッシュアップデートを使用して
C/S環境のシステムを構築しようと思うのですが
画面に表示されたデータを、
他のユーザーがレコードを変更した場合、
ApplyUpdates
CommitUpdates
を実行すると例外エラーが発生します。
どのようにすれば良いのでしょうか?
0842デフォルトの名無しさん
NGNGC/SでTTableは使わないほうがいいよ。
TQueryを使ったほうが良い。
0843昼寝
NGNGTTableは、どういった理由で使わない方が良いのでしょうか?
TQueryだと、841の様なエラーは発生しませんか?
質問ばかりで、すいません
0844デフォルトの名無しさん
NGNGSQLでないと柔軟にデータを取り出せないと思われるのでQueryをすすめています。
ちなみにCashedUpdatesプロパティはTrueになってますか?
TQueryなら Cachedupdates := True; RequestLive := True;にしなきゃダメだよ。
0845デフォルトの名無しさん
NGNGと書いてありましたね。
そりゃ他のユーザーが変更したあとに新しくFetchしないでApplyかけたらエラーがかえってきますよ。
私なら行ロックをかけて変更不可にしますがどうでしょう?
0846デフォルトの名無しさん
NGNGBeforeEditで SELECT HOGE FROM HOGE_TABLE WHERE〜〜 FOR UPDATE NOWAIT;
をかけてエラーが帰ってきたらロックされてますとか出した方がユーザーも納得するでしょう。
他の人ならどうするかわかりませんが・・・。
0847昼寝
NGNGすいません、レコードのロックはかけたくないので、
例外エラーが発生したら、
「既に他のユーザーに変更されています、上書きしますか?」
「既に他のユーザーに削除されています、更新は行えません」
といったメッセージを表示し、処理を中断したいのですが、
どうすれば良いのでしょうか?
TQueryの件、ありがとうございました。
データトラフィックという説明で理解できました。
0848デフォルトの名無しさん
NGNGそのまま上書きはどうすれば良いのか・・・・。申し訳ないですが解りません。
0849デフォルトの名無しさん
NGNG漏れ、DBサパーリだけど。
例外をtry..exceptでキャプチャ、except節で
if ExceptObjectがその手の物であれば then
begin
メッセージを表示;
Exit;
end;
else //そうでなければ
Raise;
てのはどうよ?
漏れだったらとりあえずこういう風に組んでみる。
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGヘルプにあるとおりに、 FileWrite(FileHandle, AString, Length(AString));
してみるも、変なバイナリを吐かれました。
FileWrite(FileHandle, PChar(AString)^, Length(AString)); でうまくいくようです。
何が起きているのかは想像できますが、何故そうなるのかがわかりません。
FileWriteの引数 Buffer が型無しなので、何を期待されているのか不明ですし、
そもそもどうしてヘルプにある書き方でうまくいかないのでしょうか?
また、Stringにヌルを含むバイト列を代入する方法もわかりません。
StrLCopyではヌル文字が見つかった時点で止まってしまいます。
MemCpy相当品、或いは任意のメモリ領域を参照させる方法はないですか?
まだ使い始めたばかりだからそう思うのかもしれませんが、
Delphiの文字列は相当に使いにくいような気がします。
文字列は任意のメモリ領域(倍取れる)であるとして、任意の文字(ヌル文字や
改行等)をデリミタとして扱うほうがわかりやすい思うんですがねぇ……
0852デフォルトの名無しさん
NGNGぐぁ…訂正
(倍取れる) -> (バイト列)
倍取れるって……鬱死
0853デフォルトの名無しさん
NGNGC を覚えているのなら C を使い続けた方がよいのでは?
0854デフォルトの名無しさん
NGNG悪いこと言わないからC++Builder使え
0855デフォルトの名無しさん
NGNG本を購入しようと思うのですが、
基礎からわかるDelphi6
http://www.cbook24.com/bm_detail.asp?sku=99926228
と
Borland Delphi6 オフィシャルコースウェア 基礎編
http://www.cbook24.com/bm_detail.asp?sku=99925917
ではどっちをやったほうがいいのでしょうか?
あまりプログラミングの経験が無いのですが。
0856デフォルトの名無しさん
NGNGいや、VCLは使いたいんですよ。
ポトペタで簡単にUIを作れる魅力は捨てがたいです。
フリーなBCB(IDEつき)ってありましたっけ?
0857Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < よくわからですが
U つ∀ \____________
〜ミ ミ
∪''∪ MidNightはワインでも・
>>FileWrite(FileHandle, AString, Length(AString));
それ使った記憶がないので知らん
>>MemCpy相当品
TMemoryStreamとかかな?
どういう処理させているんだろうか。
>>デリミタとして
・・・・・・
>854-855
胴衣
>>855
基礎からは、比較はともかく、いい本だと思われ。
オフィサルは読み物として面白さがない教科書的ぽっさを感じて
フサは立ち読みだけでイッパイイッパイです。
0858デフォルトの名無しさん
NGNG漏れが立ち読みした感じだとどっちも悪い本じゃないので、
書店へ行ってみて、わかりやすそうだと思ったほうを買えばいいと思うよ。
ただどっちも基本的なことしか書いてないけど。
0860851
NGNG>856 自分す。
>857
>>>FileWrite(FileHandle, AString, Length(AString));
>それ使った記憶がないので知らん
えと……これってファイル入出力の最も基本的なやつじゃないんですか?
んじゃ、 FileStream.Write(AString, Length(AString)); でもいいんですが。
今試したところ、同様の結果になりました。
>>>MemCpy相当品
>TMemoryStreamとかかな?
>どういう処理させているんだろうか。
単に Buffer : array[0..x] of Byte を
SetLength(AString, SizeOf(Buffer)); して
StrLCopy(AString, Buffer, SizeOf(Buffer)); したいだけなんですが。
これだと Bufferにヌルあるとそれ以降コピーされないんですよね。
(ヘルプ見ずに書いているので引数に間違いなどあるやも知れず、為念)
これを全部コピー(或いは参照)させたいわけですよ。
要は単に0を含むバイナリをStringにぶち込みたいだけなんですが。
こういう使い方をするべきではないのかな?
0861デフォルトの名無しさん
NGNG「基礎からわかるDelphi6」って5との違いはどれくらいなんでしょうか?
それなりに内容が違うなら購入しようと思っているのですが、
本屋で見かけないので比較も出来ず、取り寄せてもらって
内容がほぼ一緒だと悲しいですし…
0862デフォルトの名無しさん
NGNG0863Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ ∬ / もっとも基本的な奴は
ミ,,゚Д゚ノ,っ━~ < ラップされたリッチライブラリに
_と~,,, ~,,,ノ_. ∀ \ 及ぶべくもないから
.ミ,,,/~), .| ┷┳━ あまり使わないという罠
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
文字列IOならTStringListとか
MonaUtilsの関数を使うだけなんだけど…
Delファの文字列は#0で変な処理を
起こす部分がイパイですから、塗る文字含むのを使う場合は
文字列として扱っちゃダメダメ
そもそも、バイナリをどうして文字列に入れる必要が?
バイナリ系は
苦手分野なので他の方にまかせるです
>>861
確か内容は8割方同じです。サンプルで作るものが違ってたかな。
基礎D5をクリアしたなら、違う本にステップアップするよろし
0864del6無料から始めた男
NGNGその後で本買うといいと思うな。個人的に。オレ、そうしたし。
オフィシャルの応用コースしか、本は買ってないよ。
0865デフォルトの名無しさん
NGNGDelphi6使ってんだから、昔みたいに文字列を動的配列みたいに使うのはやめようよ。
>FileWrite(FileHandle, AString, Length(AString));
AStringはCみたいに配列の先頭ささないから駄目ですよ。
何でも渡せるからつい渡しちゃんのはわかるけれど。
FileWrite(FileHandle, AString[1], Length(AString));
でだめですか?
そういや、FileWriteって使ったこと無いなあ。
FileOpenのヘルプ見ても推奨されないみたいなことかいてあるし、
大抵はStream使うのでは?
0866デフォルトの名無しさん
NGNGいいすぎた。
AssignFileとかBlockWriteかなと。
0867851
NGNGおお、これこそ求めていたもののようです。
ありがとうございます。
……しかし、これ、ヘルプに載ってないのね。
>863
>文字列IOならTStringListとか
>MonaUtilsの関数を使うだけなんだけど…
>
>Delファの文字列は#0で変な処理を
>起こす部分がイパイですから、塗る文字含むのを使う場合は
>文字列として扱っちゃダメダメ
そうでしたか、勉強になります。
>そもそも、バイナリをどうして文字列に入れる必要が?
TIdCoderが引数としてStringを要求するから
TIdHTTPがHTTP BodyをStringで返すから。
>865 >866
どうもです。
調べてみます。
0868851
NGNG上の書き込みの通り私も初心者なんですが、
「基礎からわかるDelphi4」を持ってます。
2つも前のバージョンですけど、私にはこれで十分でした。
Delphiは昔から完成度が高かったのか、今のバージョンと
あまり変わりがないように見えます。(この本を見る限りでは)
なので、この本の5も6も大して違いはないのでは?
この本には基本的なコンポーネントのさわりしか書いてないし、
実際にそのコンポを使うときはヘルプを見ますからね。
基本的なコンポの紹介とチュートリアルしては役立つと思いますよ。
それよりもObject Pascalの文法的な部分が少なすぎる気がします。
他の言語をかじった事があるなら話は別ですが、プログラミングの
初心者にはわかりにくいのではないかと。
それよりも 「Borland Delphi6 オフィシャルコースウェア 基礎編」
の方が良さそうに思えます。
5分程立ち読みした程度の感想ですが。
値段はどちらも大して変わりませんしね。
0869851
NGNGちょい加筆修正。
>この本には基本的なコンポーネントのさわりしか書いてないし、
もちろん簡単なアプリの組み方や、IDE(開発環境)の使い方、
DataBaseの作り方まで書いてあるのでこの一文は訂正します。
この辺は自分にとっても役に立ちました。
ただまぁ、言いたいことは
>それよりもObject Pascalの文法的な部分が少なすぎる気がします。
これに尽きるということで。
0870デフォルトの名無しさん
NGNG作りましょう!
あと、はなっからVCLがシステムにインストールされてる環境にするように
ビルゲイツに頼みましょう!
0871デフォルトの名無しさん
NGNG今押し入れです。
personalでじゅうぶんでした。
0872デフォルトの名無しさん
NGNGわからない人は読んでもわからんし、かといって中道的ナチュラルネタをやる訳でもなし。
なんつーかこう。。。
0873デフォルトの名無しさん
NGNGCopyMemoryはWinAPIだーよ
0874デフォルトの名無しさん
NGNGPersonal使うならProつかっとけって
0875三村
NGNG押し入れかよ!
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG死ぬほど検索して質問してるのだろうな?
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG死ぬほど検索して質問してるのだろうな?
0880三村2
NGNG死ぬほどかよ!
つーか、ひつけーよ!
0881三村2
NGNGつーか、887かよ、877だろ!
0882デフォルトの名無しさん
NGNGとりあえず、クリップボード経由版
procedure TForm1.Button1Click(Sender: TObject);
var
hEdit:HWND;
begin
hEdit := GetWindow(FindWindow('Notepad',nil),GW_CHILD);
if hEdit = 0 then exit;
SendMessage(hEdit,EM_SETSEL,0,-1);
SendMessage(hEdit,WM_COPY,0,0);
SendMessage(hEdit,EM_SETSEL,0,0);
Memo1.Clear;
Memo1.PasteFromClipboard;
end;
0883デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
hEdit:HWND;
len:integer;
s:string;
begin
hEdit := GetWindow(FindWindow('Notepad',nil),GW_CHILD);
if hEdit = 0 then exit;
len := SendMessage(hEdit,WM_GETTEXTLENGTH,0,0);
SetLength(s,len+1);
SendMessage(hEdit,WM_GETTEXT,len+1,LPARAM(PChar(s)));
Memo1.Text := s;
end;
0884デフォルトの名無しさん
NGNGもう解決しているかもしれませんが
文字列は、「参照カウンタ、長さ、内容」を保持したメモリーブロックへのポインタで
実装されているので、データそのものの先頭へのポインタは
PChar(AString) か @AString[1]で取れます。
で、参照渡しの場合は、
PChar(AString)^ か、(@AString[1])^ = AString[1] となります。
AStringへのバイナリーデータ設定は、
SetString(AString, 先頭へのポインタ, 長さ) が便利です。
>>863で書かれているように、SysUtilsの文字列関数は
内部でWindowsAPI(C文字列を扱う)を使ってますので#0で誤動作します。
(しかしCompareStringみたいに明示的に長さを渡せるものはOK)
Systemの文字列関数(Pos, Delete, Insertなど)は
純正Pascal関数なので#0を含んでいても正常動作します。
0885851
NGNGCopyMemory(PChar(AString), @Source[0], Length(Sourch));
CopyMemory(@AString[1], @Source[0], Length(Sourch));
で望みどおりの結果が得られました。
IOの場合も同様に、但しアドレスではなく実体を渡すと。
なんで実体なのかさっぱりわからないけれど、これはきっとC++の
参照渡しみたいなものなんだろーなということで納得。
結局Stringに任意の場所を参照させる方法はわかりませんでしたが、
Stringの参照先を書き換えることはできるようなのでよしとします。
みなさん、どうもありがとうございました。
それからいろいろ試した結果、
DynamicArray := @StaticArray[0] とすると
@StaticArray = @StaticArray[0]
@DynamicArray <> @DynamicArray[0] = @StaticArray[0]
@aString <> @aString[1] = Pointer(aString)
だったんですね。
Stringが1originなのはShortStringとの互換のためですか。
いやはや、この辺はCと同じと思っていたので嵌りました。
それにしても動的配列まで参照カウントつきだったとは驚きでした。
配列については組み込みでauto_ptrが用意されてるわけですな。
メモリリークの心配もなく、Shallow Copyできて万々歳と。
……いや、ちょっとまて、それはいいとしても、(標準で)Deep Copy
‘できない’動的配列てなんかおかしくないですか?
普通Deep Copyする手段を用意した上で、デフォをShallow Copyにするものでは。
このへんどういうつもりなんでしょうかね?
>865
>Delphi6使ってんだから、昔みたいに文字列を動的配列みたいに使うのはやめようよ。
昔は文字列が動的配列の代わりだったんですか?
遅延書き込みつきでさらに高機能なんだし、いいじゃないですか。
あ…それだと今度はポインタ的な使い方ができないのか。
いや、それよりも文字列と配列(というかコンテナ)を区別する理由ってなんでしょう?
(> 863 の理由ならまぁ納得ですが)
文字列といっても単なるバイト列、一種の動的配列じゃないですか。
親子関係にあるべきとまでは言わないけど、操作はできるだけ互換にして欲しいな。
0886851
NGNGあ、どうもすみません。
新着がないか確認するべきでしたね。
>883 の通り解決済みですが、自分の考えに間違いが
なかったとわかったので安心できました。
> >>863で書かれているように、SysUtilsの文字列関数は
> 内部でWindowsAPI(C文字列を扱う)を使ってますので#0で誤動作します。
> (しかしCompareStringみたいに明示的に長さを渡せるものはOK)
> Systemの文字列関数(Pos, Delete, Insertなど)は
> 純正Pascal関数なので#0を含んでいても正常動作します。
なるほど、そうですか。
参考になりました。
どうもありがとうございます。
0887851
NGNG訂正するまでもないかもですが
> >883 の通り解決済み
は
> >885 ですね
0888デフォルトの名無しさん
NGNG0889865
NGNG>昔は文字列が動的配列の代わりだったんですか?
そういう風に使ってる人がいたということで。
俺はC見たいにメモリ確保、解放してやってたけど。
今なら、array of byteのstring文字列実装とほぼ同じの動的配列があるんで・・・。
0890デフォルトの名無しさん
NGNGここは、「なんだ、しつこいかよ!」と書くべきだろ。
しかも、888かよ!
0891デフォルトの名無しさん
NGNGApplyUpdatesで例外エラーが発生した場合、
exceptの処理が実行されずに、システムのエラーメッセージが表示されます。
以下、ソース抜粋
dbs.StartTransaction;
try
tbl.ApplyUpdates;
dbs.Commit;
except
dbs.Rollback;
end;
tbl.CommitUpdates;
どうすれば、システムのエラーメッセージを表示させずに、
例外を処理することができるのでしょうか?
0892名無しヘタぐらま ◆B18Bks.Y
NGNGすでに解決済みのようですが,
Move(Source[0], AString[1], Length(AString));
という手もありますです.
Moveは標準手続きです.
#私がかつて作った汎用リストクラスは1個の文字列をバッファにしていました(笑).
>>888
お江戸の方なのでしょう.
0893デフォルトの名無しさん
NGNG>>そもそも、バイナリをどうして文字列に入れる必要が?
>TIdCoderが引数としてStringを要求するから
>TIdHTTPがHTTP BodyをStringで返すから。
TIdCoder はよく知らんけど、TIdHTTP の場合は Stream で Body を返す
Method もきちんと用意されてるよん。String で返すシリーズは返ってくるのが
String で処理できるデータだとわかってる場合に使おうね。
0894783
NGNG正常にごみ箱の「中身」のプロパティが出せる環境の人いらっしゃいますか?
(VCLも使わない)
当方Windows2000SP2, IE5.5なのですが、結構怪しい環境なので、
この動作が、一般的に起こり得るのか、うちの環境が変なのか知りたいのです。
あれから試したかぎり、
・コントロールパネルのフォントのFORPARSINGで得られるディレクトリ
・コントロールパネルの管理ツールのFORPARSINGで得られるディレクトリ
・コントロールパネルのネットワークの中身
・ごみ箱の中身のプロパティ
が、事前に、コントロールパネルの中のタスクを調べておかないと変になります。
さらにタスクを調べるのはスレッド毎に必要なようです。
0895851
NGNG> Move(Source[0], AString[1], Length(AString));
>
> という手もありますです.
> Moveは標準手続きです.
……こ、これはまた、ずいぶんとストレートなお名前ですな。
ということは、Copy やら Fill なんてのも…あった。
いや、お恥ずかしい、探し方が全く足りなかったようで、海よりも深く反省。
あまりに安直なので逆に考えもしなかったというか、StrCopyにつられて
MemXXだとかMemoryXXXなんてのばかり探してました。
やっぱりこの手の処理が標準で用意されていないわけなかったですね。
>889
メモリ転送の方法がわかった以上、最早配列の仕様に何の文句もありません。
が、Stringを動的配列の代わりにするべきではないというのはやっぱりわからないです。
遅延評価が必要かどうかで使い分ければいいのでは?
配列として扱う分にはどちらも同じように扱えるようだし。
>893
> TIdCoder はよく知らんけど、TIdHTTP の場合は Stream で Body を返す
> Method もきちんと用意されてるよん。String で返すシリーズは返ってくるのが
> String で処理できるデータだとわかってる場合に使おうね。
そうはいっても、ダウンロードしてみるまで中身がTextかどうかわからないですよ。
Content Typeをみて判断しろってことですかね。
というか、TIdCoderに至っては、Hash値がStringで返されるんですが。
これはTIdCoderの仕様が悪い?
0896デフォルトの名無しさん
NGNG>そうはいっても、ダウンロードしてみるまで中身がTextかどうかわからないですよ。
>Content Typeをみて判断しろってことですかね。
いや、だから >>893にも書いたように、中身が Textかどうかわからない場合は Stream
で Body を返す Method を使えばいいんじゃないかな?
戻り値の型が String なんだから NULL混じりのバイナリを扱えないというのは
当たり前の話だよね。
0897三村
NGNG0898デフォルトの名無しさん
NGNGみたいな感じをしたいのですが、この時に文字列として存在して
いるフォーム名も指定できる方法ありますか?
StringListにフォームの名称を入れておいて、その中に該当する
EditがあればStringListをグリグリして値をぶち込みたいです。
0899デフォルトの名無しさん
NGNGLength(StringList.Text)
よりコストパフォーマンスの良い取得方法ないですかねぇ…
それっぽいメソッドもないし、ググルで検索しても無駄な物ばかり引っかかる…
検索とコーディングに疲れたので質問して寝ますスマソ
>>898
いまいちやりたいことが飲み込めん…
Screen.Formsは使えないかな?
0900Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < TCompoのメソドだから…
ミ つ日 \ 各FormのFindCompoを
〜ミ,,,,,, ,,ミ 呼ぶのヨロシ。
Length(StringList.Text)
素直がよろしいのでパフォはあきらめたら?
っていうか、遅いのか?その程度の処理が?
>それっぽいメソッドもないし、
どうせそれっぽいメソドあっても
「よりコストパフォのよい取得方法は?」
っつう、質問が出てくるだけじゃないかしら?
0901デフォルトの名無しさん
NGNG900ゲットオメコォ!
0902Delフサギコ ◆zE1iiRdQ
NGNGΣミ゚Д゚,,彡
⊂ ⊂ミ
⊂゙゙ 〃
/(/″
0903デフォルトの名無しさん
NGNG丁寧なレスどうもありがとう!!
できるかできないかだけ教えてもらえさえすれば、
あとは自分で調べようと思ってたのだけど。
感動した!あんたいい人だ。
0904デフォルトの名無しさん
NGNGD相談を追い抜く勢いだな、そのうち、こっちがメインになるのか?(w;
0905デフォルトの名無しさん
NGNGかった少し試してみたが、知ってる人がいるか知らんが、
MS-Accessのサブフォームと似た物なのかなと感じたのだが、
Frameを使ってる人は何に使っているのだ?
当然だが、FrameにはOnCreateイベントなんかもないし、
結構使い方が限定されそうだが、やはり、コンポーネント風に
使えるPanelって感じの使い方なのだろうか。
0906デフォルトの名無しさん
NGNGたとえばページコントロール使ってプロパティシートみたいなのを作る時、
Frameを使うとそれぞれのページの中身を独立したモジュールとして
作れるので気持ちイイ、とか。
0907デフォルトの名無しさん
NGNGメインフォームにコードが集中しないように、適当な単位で Frame に分割
してる。例えば 3-Pane型のアプリなんかはそれぞれの Pane を個別の
Frame で実装して、メインフォームに乗っけてる形。
コードの見通しがよくなるんで、俺的には手放せない機能だな。
>当然だが、FrameにはOnCreateイベントなんかもないし、
コンストラクタで代用してる。(それはそれでいろいろ注意が必要だったり
するわけなんだけど)
0908ねこま
NGNGこれでいかがか?
n := 0;
for i:=0 to strlist.Count-1 do
begin
Inc(n, Length(strlist[i]));
end;
0909デフォルトの名無しさん
NGNG結果は Length(StringList.Text) と同じですか?
0910デフォルトの名無しさん
NGNG複雑な画面になればなるほど、Frameで別のフォームに
してしまうと確かに、見通しはよくなるな
あと、繰り返しとか必要な処理を >>834 のように書けば、
昔よく言われてた、Delphiに配列が無いから云々も
かなり楽に扱えるようになるな、Frameの中のオブジェクト
名は同じnameが使えるわけだし
しかし、うちの会社では、俺以外は誰もFrame使ってない、
D4->D6にアップグレードしたから、誰も存在自体を知ら
ないのだろうか・・・・
0911デフォルトの名無しさん
NGNG0912ねこま
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGでも、カラの行ってCountに含まれたっけ?
(´∀`)<ApplyUpdatesの返値をチェックしたらどうだろ?
んで、raise EDatabaseError.Create('もうだめぽ')
0916lily
NGNGDeilphi で 旧文化オリエントの作った DenpyoMan に負けないコントロールを作りたいと思いますが
どのように始めればいいか分かりません。Grid から始めればいいんでしょうか?
APIはどのあたりを勉強すると良いですか?
質問ばっかりでスミマセンがお願いします。
0917783
NGNG0918デフォルトの名無しさん
NGNGMSecsToTimeStampとか使えない・・・?
Pro版買うしかないのか・・・
0920デフォルトの名無しさん
NGNGコンポーネントを作った事がなければ、最初はラベルを継承して影
をつけたり、TEditを継承して数値入力コンポを作ったりして組み方を
学んでからの方が良いのでは?
実際には、StringGridを継承して作れば良いのだろうがコンポ以前に、
StringGridにコンボボックスを描くやり方とかを先に勉強した方が良い
と思われる。それに特殊なAPIなんかは使わなくても出来ると思うが。
0921デフォルトの名無しさん
NGNGApplyUpdatesでキャッシュをDBに反映させる際、
レコードのキーが重複している場合に、システムが応答不能になります。
tryで例外をキャッチできていないようなのですが、
ApplyUpdatesでキー重複が発生した場合は、
どのようにエラーを取得すればよいのでしょうか?
(´∀`)<>>915と被るかな? ApplyUpdatesの返値を調べて
raise EDatabaseError.Create('うわ〜ん')でexcept部へ跳ぶ。
詳しいエラーの内容が必要ならOnReconcileError イベントハンドラ
(TCustomClientDataSet)でエラーの調査&処理するのはどうかな?
0923921
NGNGすいません、ApplyUpdatesの返り値は
どうやって調べたらよいのでしょうか?
rslt := cds.ApplyUpdates(-1)等でrsltをチェック
するのは駄目かなぁ?
0925923
NGNGApplyUpdatesに引数設定や、戻り値の取得を行おうとすると
コンパイルエラーが出ました。
私はTQueryのApplyUpdatesを実行してますけど
これがいけないのでしょうか・・・
0926lily
NGNGあーなるほど。数値入力Editを作っておいて
StringGridの中に書いてみるってことですか。
やってみよ。
0927ああ
NGNGデータベースグリッド使用しているのですが、
その際、すべてのプロパティをセットして実行しようとしたら
「データソース1、データ間の循環参照は許されません」
が出てしまいます。どうぞ教えてください
0928デフォルトの名無しさん
NGNG0929ああ
NGNG「データソース1、データ間の循環参照」の意味が
いまいちわかりづらいのですが
(´∀`)<TClientDataSetかと思ったらTQueryでしたか、、、ごめんなさい。
僕のところのTQuery.ApplyUpdatesはキー違反で例外出します。
Delphiのバージョンは6です。 構成はTQuery+TUpdateSQLですか?
>>927
(´∀`)<もう少し情報が必要かも。TTable/TQueryのDataSourceはmaster-detailで
使わないのであれば指定しなくて良いらしいですよ?
0931925
NGNG>TClientDataSetかと思ったらTQueryでしたか、、、ごめんなさい。
私のミスですので、こっちの方が、ごめんなさいです。
念のため、
TBDEClientDataSetで試しましたけど、ApplyUpdatesで
応答不能になりました。
TBDEClientDataSetは、
◆10000jpさんが使われているTClientDataSetとは別物ですよね
Delphi6 Pro版でも使えますか?
0932925
NGNG>Delphiのバージョンは6です。 構成はTQuery+TUpdateSQLですか?
はい、Delphi6 Proで、TQuery+TUpdateSQLを使ってます。
ApplyUpdatesでキー重複の場合はシステムの応答がなくなりました。
とりあえず、教えていただいた
TClientDataSetを使おうと思うのですが、
TBDEClientDataSetで大丈夫ですか?
0933デフォルトの名無しさん
NGNGTable1.MasterSource := DataSource1;
DataSource1.DataSet :=Table1;
ってやると、Table1 のマスターテーブルが自分自身になるので実行時エラーとなる。
オブジェクトインスペクターから設定する場合には、選択肢に出てこないからもともと
設定できないんだが。
これでわかるかな?
(´∀`)<TBDEClientDataSetはコード見れば解るけど危険な爆薬の香りです。
僕は、ClientDataSet+Providerの方が安心かなぁ。偉そうですみません>ボーランド様
でもTQuery+TUpdateSQL でもちゃんと動きましたよ。ApplyUpdate周辺の
コード晒しできます?
0935ああ
NGNGやはりDataSourceをはずしたらエラーはなくなりました
ありがとうございました
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGどうして個々で聞くの?
0938デフォルトの名無しさん
NGNG誤爆?
(´∀`)<あ、もしかして、、、重複キーのエラーダイアログがフォーム
の後ろに出ているという事は無いですよね? IDEでのデバッグ中
にはフォーカスが狂うこともしばしばあります。僕だけかもしれませんが、、、
一度IDEデバッガを切って実行してみては?
0940932
NGNG>でもTQuery+TUpdateSQL でもちゃんと動きましたよ。
ということは、私のコーディングか、プロパティ設定が
悪いのでしょうね・・・
>ApplyUpdate周辺のコード晒しできます?
はい、大丈夫です。(以下、コマンドボタンのクリック時イベント)
procedure TfrmInput.btnUpdateClick(Sender: TObject);
var
intAppliUpdates : integer;
begin
dmdDb.dbsOffice.StartTransaction;
try
intAppliUpdates := dmdDb.qryTokuisaki.ApplyUpdates(-1);
if intAppliUpdates <> 0 then
raise EDatabaseError.Create('うわ〜ん');
dmdDb.dbsOffice.Commit;
except
dmdDb.dbsOffice.Rollback;
ShowMessage('err');
end;
end;
dmdDb = データモジュール
dbsOffice = TDataBase
qryTokuisaki = TQuery(TUpdateSQL設定済み)
データベースは、Access97のMDBを使用しています。
>>939
>一度IDEデバッガを切って実行してみては?
素人質問ですいません
[ツール]-[デバッガオプション]-[言語固有の例外]
Delphi以外の例外で停止のチェックをOffにすればいいですか?
(´∀`)< exceptでは on e: EDatabaseError でキャッチしてあげて
ShowMessage(e.Message);しRollbackした後、変更分を
キャンセルして、データベースと再同期をとった方が良いですよ。
0943940
NGNG了解です。
それと、
IDEデバッガを切って実行してみましたけど、
システムは応答なしのままでした。
TQuery + TUpdateSQL の組み合わせでApplyUpdates(引数指定できない)
で試してみました。
キーはフォームに張ったDBEditコントロールに手入力しているのですが、
重複しない値であれば、正常に動作しています。
0944親切な人
NGNGヤフーオークションで、幻の人気商品、発見!!!
今は無き「コピーガードキャンセラー」↓
http://page.auctions.yahoo.co.jp/jp/auction/42757955
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
(´∀`)<自分のTQuery+TUpdateQueryだとこんな感じでやってます。
IDEでもデバッガ外してもちゃんとrollbackします。
Access固有のバグなのかなぁ? ODBCじゃないよね?
それでは、皆さんおやすみなさい。
procedure TForm1.Button1Click(Sender: TObject);
begin
Database1.StartTransaction;
try
Query1.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
end;
Query1.CancelUpdates;
end;
0946デフォルトの名無しさん
NGNGTpointを整数型に変換できますか?
0947デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNGTPointは無関係。ヘルプとサンプル見てみなよ。
0950デフォルトの名無しさん
NGNG0951946
NGNGそうですか、もう少しヘルプを見てみます。
>>950
なんかそう言われると、やり方自体間違ってるかもと思うように
なってきた。
VBから移行してきたばかりでまだ良くわかってないのです。
とりあえずVB6で使ってたInstr関数の変わりでPosを使って
みたのですが…。Delで文字列検索の定番みたいなのが
あればヒントだけでも教えてもらえると助かります。
0952デフォルトの名無しさん
NGNGI : Integer;
S : string;
begin
S := 'あいうえおABC1234.';
I := Pos( 'ABC', S );
ShowMessage( 'ABC は'+ IntToStr(I)+'文字目にあります');
end;
とか。
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGそろそろ次スレを
0955デフォルトの名無しさん
NGNGTextPos と StrPos みたいに分けてほしいなァ
AnsiCompareText と AnsiCompareStr,
AnsiSameText と AnsiSameText みたいに。
ついでに
AnsiReplaceText と AnsiReplaceStr も。
0956デフォルトの名無しさん
NGNGじゃ、君が立てておくれ。
0957943
NGNGODBC接続してました・・・ すいません
BDEだと教えていただいた通りの動作ができました。
ODBCだと、こういう動作があるのですね。
動作的な違いは無いのかと思ってました。
>それでは、皆さんおやすみなさい。
親切に答えて頂いてありがとうございました。
m(__)m ぺこり おやすみなさい
0959デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1014474727/
0960デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1014474727/
0961ヲッチャー
NGNGちょっとヒドイぞ。どうせ2ちゃんねらーだろ?
0962デフォルトの名無しさん
NGNGわけのわからない書き込みで新スレを汚さないでください。
0963ヲッチャー
NGNGはい。分かりました。
(´∀`)<ODBCドライバのバグですかね〜
ともあれ動くようになって良かったですね〜
0966デフォルトの名無しさん
NGNG止まっちゃいます。
「プロジェクト aaa.exeがEconvertErrorクラスの例外を生成しました。
""は整数ではありません'」
て出ます。
ウインドーの右上の×は押しても平気ですが、それ以外は全部ダメみたいです。
何の処理も記述してないボタンでも、押すと固まります。
他のspineditをいじっても固まります。
何故か実行ファイルそのもの(aaa.exe)を実行すると固まらないんですが・・。
"spineditに整数が入力されてないときに他のボタンを押すと、
変数の値(整数)をspineditに代入する" って形にしたいんですが・・・。
その処理をボタンに記述しても、押すと処理を開始する前に固まります。
一応2ちゃんねる検索とBorland Maniacs とDelphi Maling list でも検索しましたが全然ダメでした・・。
回避方法分かる方、どうかお願いします。
使ってる言語はDelphi6のpersonalです。
0967デフォルトの名無しさん
NGNG気にせずそのままF9で続行するか、前もって
[ツール]-[デバッガオプション]-[言語固有の例外]-[Delphi言語の例外で停止]
のチェックを外しておく。
例外をキャッチするようにしていても、上のチェックが付いていると
デバッガで停止させられるのはDelphiの仕様。
漏れはウザいから、Valueプロパティを自前のやつに置き換えた
コンポーネントを作ったけどな。
0968966
NGNGありがとうございました!!解決できました。
0969DELモナー
NGNG∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< まだ書き込めるみたいだから
( ) | 書いておくよ。
| | | \_____________
(__)_)
次の次のスレが立っています。こちらへどうぞ。
モナーの *やさしい* Delphi質問スレ Ver4
http://pc.2ch.net/test/read.cgi/tech/1016467137/
0970デフォルトの名無しさん
NGNG( ´∀`)< Delモナーは
( ) | 普通のモナーとは
| | | | 微妙に違うモナ
(__)_) \_____
0971デフォルトの名無しさん
NGNG( ´♥`)
( ) |
| | | |
(__)_) \_____
0972デフォルトの名無しさん
NGNG( ´♣`)
( ) |
| | | |
(__)_) \_____
0973春だから…
NGNG∧_∧ / ̄ ̄ ̄ ̄ ̄
( ♥♥♥)<無意味age♥
( ) |
| | | |
(__)_) \_____
0974デフォルトの名無しさん
NGNG0975Delモナー ◆fPymXWHY
NGNG新スレ
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412/
0976Delモナー ◆fPymXWHY
NGNG0977Delモナー ◆fPymXWHY
NGNG新スレへどうぞ。
0978Delモナー ◆fPymXWHY
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1016467137/
0979デフォルトの名無しさん
NGNGttp://members.jcom.home.ne.jp/monazilla/document/index.html
0980デフォルトの名無しさん
NGNG0981誤爆
NGNGバカテレ朝!!
無能テレ朝!!
0982Delモナー ◆fPymXWHY
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1014474727/
0983Delモナー ◆fPymXWHY
NGNGhttp://pc.2ch.net/tech/kako/1003/10031/1003113413.html
ageないよう注意。
0984Delモナー ◆fPymXWHY
NGNG一番上が新しいスレです。書き込みは新しいスレに。
○ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
Delphi や Borland に関する話題、雑談や質問をしながらマターリくつろごうや
�A http://pc.2ch.net/test/read.cgi/tech/1013298748/
�@ http://pc.2ch.net/test/read.cgi/tech/1003664165/
( ゚Д゚)ノ Delギコ猫のプログラミング相談室
DelphiやBorlandに関する雑談や質問しながらみなーで、くつろごうや
part4 http://pc.2ch.net/tech/kako/1002/10024/1002469894.html
part3 http://piza2.2ch.net/tech/kako/1001/10010/1001039863.html
part2 http://pc.2ch.net/tech/kako/999/999482946.html
part1 http://piza2.2ch.net/tech/kako/997/997348797.html
0985Delモナー ◆fPymXWHY
NGNGDelphi関連のTips Q&A はこちらです。
その3 http://pc.2ch.net/test/read.cgi/tech/1010153466/
その2 http://pc.2ch.net/tech/kako/995/995950803.html
その1 (逝ってしまったようです)
0986Delモナー ◆fPymXWHY
NGNGどのスレッドに質問したらいいか、わからないときはここで質問してみよう。(略)
第12刷 http://pc.2ch.net/test/read.cgi/tech/1016631412/
第11刷 http://pc.2ch.net/test/read.cgi/tech/1014478527/ (HTML化待ち)
第A刷 http://pc.2ch.net/test/read.cgi/tech/1012536901/ (HTML化待ち)
第9刷 http://pc.2ch.net/test/read.cgi/tech/1010673275/
第8刷 http://pc.2ch.net/test/read.cgi/tech/1008908052/ (HTML化待ち)
第6刷 http://pc.2ch.net/tech/kako/1004/10041/1004183881.html
第5刷 http://pc.2ch.net/tech/kako/1001/10019/1001998049.html
第4刷 http://pc.2ch.net/tech/kako/998/998403891.html
第3刷 http://piza2.2ch.net/tech/kako/993/993933402.html
第2刷 http://piza.2ch.net/tech/kako/990/990082077.html
第1刷 http://piza.2ch.net/tech/kako/975/975576060.html
0987Delモナー ◆fPymXWHY
NGNGコンソールのみ。GUI は扱いません。
http://pc.2ch.net/test/read.cgi/tech/1009903617/
0988Delモナー ◆fPymXWHY
NGNG2 http://pc.2ch.net/test/read.cgi/tech/988815580/
1 (行方不明)
0989Delモナー ◆fPymXWHY
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1009080085/
0990Delモナー ◆fPymXWHY
NGNGdelphi自身もdelphi?てか、今delphiやってる人へ希望を与えてやって下さい。
http://pc.2ch.net/test/read.cgi/tech/990056026/
0991Delモナー ◆fPymXWHY
NGNG○公式サイト
http://www.borland.co.jp/delphi/
0992Delモナー ◆fPymXWHY
NGNG無料でダウンロードできる。持っていない人はこれを機にやってみよう。
ダウンロードするファイルはは59MBあり、またサーバーが重いので注意。
使用者登録が必要。
http://www.borland.co.jp/delphi/personal/
0993Delモナー ◆fPymXWHY
NGNG最新のアップデートは次の通り。
Personal: Update Pack 2 (2002/3/19)
Professional, Enterprise: Update Pack 2 + 追加アップデート (2002/3/29)
http://www.borland.co.jp/delphi/del6up.html
0994Delモナー ◆fPymXWHY
NGNGここに貼っておきました。
どんどん追加して構いません。
こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0995Delモナー ◆fPymXWHY
NGNG○ここはDelphiのプログラミングに関する質問スレです。
スレ違いの質問は罵倒されるので、ほかのスレを探してください。
○厨房並みの初心者の質問はOKですが、厨房は質問するな。
○まずは自分で調べてみよう。回答にGoogleの検索結果を貼られないように。
Google http://www.google.com/intl/ja/
2ちゃんねる検索 http://2ken.net/
Delphi-ML検索 http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi
0996Delモナー ◆fPymXWHY
NGNGこのスレのソース置き場を作ってみました。
このスレに載せきれないソースはここへどうぞ。
○3000行までOKです。
○ソース書き込み時は等幅に設定してください。インデントが使えます。
○激しく長いソースは、同時にソースファイルを添付しておくと(゚Д゚)ウマーです。
○置くのはソースでなくても構いません。
ファイルのアップローダーとしてもどうぞ。
こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1017673221
0997Delモナー ◆fPymXWHY
NGNG0998Delモナー ◆fPymXWHY
NGNG0999Delモナー ◆fPymXWHY
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。