モナーの *やさしい* Delphi質問スレ Ver.14
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
( ) .| Delモナーは時に私であり、時には別の人。
| | | | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
(__)_) \_________________________
前スレ
フサギコの *やさしい* Delphi質問スレ Ver.13
http://pc2.2ch.net/test/read.cgi/tech/1048589518/
何で俺生きてるんだろ。。。
がんばれ
モナーに戻ってめでたしめでたし。
6 :
デフォルトの名無しさん :03/04/13 12:57
今からプログラミングを始めるにはDelphiとC#どちらがよいでしょうか? いろいろ調べているとC#のほうが将来性がありそうな気がしていますが。
>いろいろ調べていると 適当に2chのスレを読むと。に訂正してくれ。
>>6 お前には将来性無いからどれ選んでも大差ねえよ。
結局MSとBorのどちらを信じるかに帰着するので、 不毛な論争に巻き込まれたく無ければ2chで聞かない方がいいでしょう
何に対する将来性を考えるかによって変わるんじゃないかな? ソフトで食っていくのか、大学で研究に没頭するのか。趣味のアマグラマなのか。 ただし、未来が分かる人は(おそらく)どこにもいませんからそんなことで悩んでいる暇があったら プログラムの一つでも作りましょう。 職業プログラマを目指すのであれば、言語に左右されない基礎を学ぶのが先だと思いますよ。
DELPHIでボタンを作るとWin98系のボタンになっちゃうよね。ちゃんとXPぽいのは出せないの?
>>12 Delphiじゃなくてもデフォルトではそうなります。
そしてDelphiはXPVisualStyleを使ったアプリケーションを作成できます。
14 :
デフォルトの名無しさん :03/04/13 15:53
DELモナーさんに質問です! 最近あなたを見かけないのですが、今どこで何をされているんでしょうか?
Delモナーとは一人のことを指すのではありません。 Delphian達の優しき心こそがDelモナーなのです。 ほら、あなたの中の人もDelモナーですよ。
中の人などいない!
Delフサギコって死滅しちゃうの?
死滅ってDELPHIするの?
ListViewを検索するのは ListView1.FindCaption(0,Edit1.Text,True,True,False) のようにすればいいですよね? これはItemのCaptionをもとに検索されますよね。 SubItem[0]をもとに検索するにはどうすればいいですか?
CustomSort
>>21 すみません、サンプル書いていただけませんか?
SubItem[0]のTextが 'あ' から始まるItemを
選択するというのをお願いします。
var
i : Integer;
li : TListItem;
begin
i := 0;
while i < ListView1.Items.Count do
begin
li := ???
という感じでどうすればいいか分からなくなってしまいました。
あつかましくてすみません。
どうぞよろしくおねがいします。
while I<ListView1.Items.Count do begin if ListView1.Items.Item[I].SubItems.Strings[0]='aaaaaaa' then begin //みつかった Break; end; Inc(I); end;
24 :
デフォルトの名無しさん :03/04/13 21:08
FormatDateTimeで、曜日を 'Sun' 'Mon' とアルファベットで出力させたいのですがヘルプの書式にのってません どうしたらよいでしょうか?
> 結局MSとBorのどちらを信じるかに帰着するので、 > 不毛な論争に巻き込まれたく無ければ2chで聞かない方がいいでしょう MSを信じなかったらKylixしか選択肢がなくなってしまうのだが。
25は一つを信じるともう他は全く信用しなくなる信者タイプ。
イラク戦争でアメリカ非難するとイラク擁護とすぐ決め付ける 奴らに似てるね。
なるほど、信者タイプと決め付けているわけだ。
>>23 if ListView1.Items.Item[I].SubItems.Strings[0]='aaaaaaa' then
は、Item[I]のSubItems[0]のテキストの最初の文字が'aaaaaaa'の時
という意味ですよね?
そう解釈して
ボタン1のOnCkickイベントで
while i < ListView1.Items.Count do
begin
if ListView1.Items.Item[i].SubItems.Strings[0] = Edit2.Text then
begin
Edit1.Text := IntToStr(i);
Break;
end;
Inc(i);
end;
と書いてもEdit1には何も表示されません。
最終的に、見つかった時における i で
ListView1.Items.Item[i]を選択した状態にしたいのですが
ちゃんとEdit2にはListViewのItemsのSubitemsの最初の文字にしています。
どうかアドバイス下さい。
物分りが悪くてすみません。
まあ、MSが死滅したら、Windowsで動いてるDelphiも死滅するだろうね。
そうするとKylixにシフトするわけだな。
いつになったらシフトするのだろう。
33 :
Delモナー :03/04/13 22:34
Delモナーからの質問です。 趣味で遊ぶだけなら、Microsoft Visual Basic(TM)とデルパイのどちらがいいのでしょうか?
はい次の方どうぞ〜
>>33 遊ぶだけならデルパイでいいよ。
タダだし。
36 :
デフォルトの名無しさん :03/04/13 22:52
Kylixが普及しない理由ってなんだろ? MSのせい? Linuxのせい? Kylixのせい?
DelphiにはVBのビジュアルベーシッ君のようなキャラクターはいないのですか?
ビジュアルベーシッ君(?)ように勝手に自分で作って 「これがDelphiのキャラクターだ!」って言えば?
>>6 プログラミングを覚えることが大事
プログラミングの技術や能力は
使う言語が変わったら無意味になるような物ではありません.
>>37 ビジュアル系のべーしっ君か….あの漫画,
今でも続いていたらDelphiをもじったキャラも出てきたんだろうなぁ.
しかし近藤マシン語臣みたいないい名前が浮かばない….
>>29 実行時に仕様通り動かない場合、ステップ実行すれば原因はおのずとわかる。
ブレークポイントをかけるなりして、不具合個所を見つけ出す癖をつけましょう。
考えられる原因
一.文字列と文字の混同( TStrings の解説を読みましょう)。
その条件の場合、subitems.strings[0] と Edit2.text の
"文字列"が一致した場合のみ、ヒットするようです。
if ListView1.Items.Item[i].SubItems.Strings[0] = Edit2.Text then
の代りに、
if Pos(Edit2.Text,ListView1.Items.Item[i].SubItems.Strings[0]) = 1 then
でも置けば、当座の用はしのげるかと。
1文字目であったのが幸いし、2 Byte も 1 Byte も関係無いようですので。
>>37 某雑誌であらいぐまパスカルと言う生物がいた。
Del厨がキャラクターです
image.pictureに読み込んであるビットマップの明度を変えたいのですが、 「順番にピクセルの色情報にアクセスして、値を変えて戻す」しか方法は無いのでしょうか?
44 :
デフォルトの名無しさん :03/04/14 02:19
なんで「.Free」のように開放するんですか?
開放しないと暴れ出すからです。 エバ1号機が良い例です。 詳しくはアカギリツコ博士に聞くと良いでしょう。
46 :
デフォルトの名無しさん :03/04/14 02:36
真面目に聞いてるんだからちゃんと答えてくれないと起こるよ?
じゃあなんで.freeで開放するという話を知りたいの?
48 :
デフォルトの名無しさん :03/04/14 02:53
気になって夜も寝れないから
今まではVB使ってたんですか?
オナニーにつかったティッシュ置いてても部屋の幅取ってムダだから freeしてゴミ箱に捨てる
今まではHSPを使ってました。いいから早く教えてくださいよ
set obj=Nothing
>今まではHSPを使ってました。いいから早く教えてくださいよ ........。
何ですか?HSPからDELPHIに移行するのはだめなんですか?うん?
本当はネタなんだろ?
取りあえずCの本を参考にして勉強でもしとけ。
classの解説をしてる本ならどれにでも載ってそうな話なんだがな<Freeで解放
無料が大好きだからです
安物買いの銭失い。
HSPとVBから違う言語に移行する場合、手首を豪快に切った後自力で生き延びる程の苦しみと努力が伴います。
♥
test
♥♣♦♠
65 :
デフォルトの名無しさん :03/04/14 07:26
Direct3Dを使わないで テクスチャ付きポリゴンをTBitmapにScanLineで高速に描く方法を伝授希望!
ハードウェアサポートを使わずに。ということ? TBitmap に書く時間より、テクスチュア付きポリゴンのレンダリングのほうが時間がかかると思うぞ。
ハードでなくソフトで。
>>65 1.Direct3Dを使わないで
OpenGL
2.TBitmapにScanLineで
TBitmapで高速は不可能
69 :
デフォルトの名無しさん :03/04/14 11:22
TRichEditでは「文字などを選択したときの色」は TRichEdit.ColorのRGB反転した色になっちゃうんですが、 この「文字などを選択したときの色」を変えるか指定する方法を教えてください。 背景色との相性が悪すぎで困ってます。 どうかよろしくお願いします。
71 :
デフォルトの名無しさん :03/04/14 13:51
ファイルストリームのReadComponentでstringgridを読み込むと TInplaceEditが見つかりません。と表示されてエラーになるのですが どうしたら回避できますか?
72 :
デフォルトの名無しさん :03/04/14 13:59
マウス操作のフックについて質問があります。 DLLでフィルタ関数をインストールしてシステム全体をフックする処理で、 DLL内で、APIから渡されたメッセージをアプリケーションに送ったあと、 CallNextHookExで次のフックに渡しているところを、 DLLから受け取ったメッセージをアプリケーション内で条件分岐で処理したあとに 次のフックにメッセージを渡すかどうか決定したいのですが、どのようにすればいいのでしょうか? DLL内で条件処理までやってしまった方がいいのですか? 色々調べると、フックのときはなるたけ、DLL内の処理はシンプルにすべきとあるのですが。 用途は、左ボタンを押している状態で右クリックされたら、ファイルを起動するという様な処理をいくつか実現したいのですが。 (Orchisとかで実装されてる様な機能) メッセージは次のフックへ垂れ流しでも悪くはないのですが、アプリケーションでなんらか処理したあとに 本来の右クリックの機能が実行されるとあまりうまくないので、条件わけしたいということです。 よろしくお願いします。
自作(TStringGrid からの継承含む)の stringgrid ? それとも TStringFrid そのもの? 実行時パッケージを使うようにして再コンパイルしなおすを結果は変わりますか?
>>72 そこまでできるなら、実験して御覧なさいな。
人に聞くより結果を出したほうが早い。
それに処理内容によるから正解は無いよ。
>>74-75 一応実装して試しては見たのですが、(不具合無く動作してます)
セオリーのようなものがあれば聞いておきたいなと思いまして。
処理的にまずいことしてる気がしてならなかったので。
別に重くなるようなこともないので、DLL内で処理したものでしばらく使ってみて
様子をみますです。
ありがとうございました。
>>73 TStringGridそのものです。
実行時パッケージというのは初心者故よく分かりません。
78 :
デフォルトの名無しさん :03/04/14 15:42
WideStringをファイルに保存するのに一番簡単な方法は何ですか?
>>70 もう少し詳しくお願いします。
TWinControlのことですか?
変なWindowsテーマにしてるんじゃないの? 普通は白黒反転でしょ
>普通は白黒反転でしょ えーと。 その例だと、背景色が白だと選択箇所は黒になるじゃないですか、 その黒色を任意の色に変える方法がわからないのです。 TMemoならWindowsテーマの「選択項目」の色になるのですが TRichEditの場合はRGBが逆転した色(青なら黄に、緑なら桃色に)になっちゃうんです。 みなさんhtmlエディタもどきとか作るときにはRichEditなんか使わないですか?
TStringListのIndexOfメソッドですが、 アルファベットの大文字、小文字は区別しないんでしょうか? (Del5での確認では区別しない様子) この辺の仕様はヘルプのどこ見ればいいでしょうか?
>>83 >この辺の仕様はヘルプのどこ見ればいいでしょうか?
TStringList.IndexOfに書いてありますよ
D6以降ではCaseSensitiveプロパティがあるよん
これしか書いてないです.. 説明 IndexOf メソッドを呼び出すと, S パラメータで指定する文字列の最初のインデックスを取得できます。 IndexOf は文字列の 0 ベースインデックスを返します。 このため,S がリストの最初の文字列に一致する場合に IndexOf は 0 を返し, S が 2 番目の文字列の場合に IndexOf は 1 を返し,という対応になります。 また,文字列が文字列リストにない場合は,IndexOf は -1 を返します。
>>86 スマソ。D6で新しく加わってたのね。勉強不足でした。
IndexOf メソッドを呼び出すと,S に一致する文字列が最初に登場する位置の添字を取得できます。
文字列は,S と同一の場合は完全一致で,CaseSensitive プロパティが False の場合には大文字と小文字の区別のみが S と異なります。
とのこと。でもこれはD6のヘルプに載ってたことだからD5でも使えるかどうか・・
>>57 なんで教えてくれないの?classはやっぱ機密情報なの?
88.Free
>>69 TRichEditの反転色の変更ですが、なんとも難しいです。
TRichEditはW32.RichEditを内包していて
文字色変更 EM_SETCHARFORMAT
背景色変更 EM_SETBKGNDCOLOR
で行えますがそれぞれの反転色の指定は分からないです。存在しないのかもしれません。
TMemoはW32.Editを内包しているためTRichEditと挙動が異なるのでしょう。
W32APIスレに行くともっと情報が得られると思います。役立たずですみません。
http://pc2.2ch.net/test/read.cgi/tech/1047819779/
>>82 じゃあ、相性の良くなる色を選べば?
っていうか、背景を青とか緑にしない方がいい。
ユーザーが他人ならば、迷惑この上ないです。
>>91 目に優しい配色に設定するつもりが、反転色の制約を回避するべく妥協色を選び、
気がついたら自分ののデスクトップを珍妙奇天烈な色設定にしたことがありますよ。
(結局標準に戻しましたが。)
自由に変更するテクニックが存在するなら私も興味あります。選択はユーザーに
任せればいいわけですし。
93 :
デフォルトの名無しさん :03/04/14 19:29
>>89 なるほど。よくわかったよ( ´,_ゝ )プッ
>>40 ありがとうございます。
ついにできました!!
ほんとうに感謝です。
ありがとうございました(^o^)丿
無視されても調べずもう一度きくやつは 真性教えて君。
>>88 ほんとに誰も答えてないな
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
デストラクタDestroyは参照するインスタンスがnilだとエラーになるので
Freeの使用が推薦されている
なおCustomFormとその派生クラスでは
フォームのイベントキューにあるメッセージを処理し終わってから開放するために
Releaseの使用が推薦されている
(ReleaseはキューにCM_RELEASEを送って
そのメッセージを処理する形でFreeを呼び出す仕組みになっている)
97 :
真性教えて君 :03/04/14 21:04
>>96 (´・∀ `)ヘ-。よくわかんないけど分かったよ。ありがとう
>デストラクタDestroyは参照するインスタンスがnilだとエラーになるので ニルポ
99 :
真性教えて君 :03/04/14 21:06
>>98 何?ニルポって何?彼の言ったことは嘘だったの??うん?
>>98 ( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 /
何?何でお前らたちだけで楽しそうにやってるの?俺も混ぜろよ( ゚д゚)ポカーン
ニルポでも殴るのかよっ!
こないだ「にるぽ」って書いたら 「がんばれ」って言われた
105 :
デフォルトの名無しさん :03/04/14 21:36
Windowsコンポーネントください
( ・∀・) | |
と ) | | ガ ガ ガッ
Y /ノ 人人人
/ ) < >__ΛΛΛ∩
_/し' //. V`Д´)´)´)/
(_フ彡 / / / ←
>>102-104
ListViewのScrollBarを縦方向のみの表示したいのですが どうすればできるのでしょうか?
前スレでDelphi用のAPIリファレンスが欲しいと言ってた者ですが、 とりあえず大学の図書館から「win32APIリファレンス」っていう お高いリファレンス借りて来ますた。Delphi用じゃないですが、 とりあえずこれで勉強してみます。
>>90 解説ありがとうございます。
やっぱり簡単にはいかないみたいですね・・。
>>91 もちろん自分用に作ってます。
背景を濃い色とかの落ち着く色にすればするほど
反転色がケバケバしくなるんですよ。
とりあえず今は中くらいの色で妥協しました。
110 :
デフォルトの名無しさん :03/04/14 22:12
ActionListコンポで、Actionを設定すると Captionまで変わってしまうのですが、こうならないようにするにはどうすればいいですか?
IMEの単語/用語設定画面の 読みを入力するEditのように、 ひらがなを入力するとEnterを押さずに ひらがながEditに入力されていくようにするには どのようにすればいいのですか? 分かりにくい説明ですみません。 どうかよろしくお願いします。
解決しました
113 :
デフォルトの名無しさん :03/04/14 22:40
自作アプリから他のアプリを操作するにはどうすればいいのでしょうか? 例えば自作アプリからWinampでmp3を再生、停止させたり…など。
>>113 色々です。基本的にあるプロセスは他のプロセスから保護されるものという
(オブジェクト指向と根は同じ)考え方基づき、やり方は幾つかの上策と
その他の下策に分けられます。
一番の上策は、操作される側のアプリが操作する側にインターフェースを公開して
あることです。winampやirvine、office製品群、ieなどが当てはまります。
ActiveXの取り込みでexeやtlbが取り込めるタイプがこれです。
>>113 FindWindowEx等でWinamp内のボタンのハンドルを取得します。
あとはSendMessageでクリックBM_CLICKを投げるなどをすると良いのではないでしょうか。
>>111 Edit等にキーが送られた時に自分でIMEにそのキーを送り、即座に入力させるというのはどうでしょうか。
>>116 すみませんもう少し詳しくお願いします。
無能なので理解できませんでした
すみません<(__)>
118 :
デフォルトの名無しさん :03/04/14 23:09
今、Delphi6で作ってるんですが、 これを7でコンパイルしたときに自動的にXPヴィジュアルに対応するのでしょうか? それともコンポーネントを入れ替えなきゃ駄目なのですか? 今使ってるコンポーネントは6に最初から入ってたやつだけです
Edit1KeyPress 母音が押されたときにVK_RETURN で似たようなことは出来そう
>>65 Bmp.PolyMap(MapBmp, [Point( x1,y1),... ] );
Form1とForm2があるとして、Form2がアクティブの際は (Form2が閉じられるまでは)Form1へフォーカスを 移せないようにするにはどうすればいいのですか?
Form2.ShowModal;
Form2.Free
Delphiの先生方 どうかお力をお貸しください DBGridで縦・横のスクロールを 表示するレコードに関係なく常に表示無しにしたいのですが 何かよい方法はありませんでしょうか?
>>122 勉強になりました。頑張ってやってみます
>>126 DBGridを継承して、ScrollBarsにssNoneを入れる。
>>128 DBGridを継承したコンポを
作れということでしょうか?
ちなみに
TGridchan = class of TCustomGrid
TGridchan(DBGrid1).ScrollBars := ssNone;
は試しましたがだめでした
> DBGridを継承したコンポを > 作れということでしょうか? そう。
>>113 昨日はいい加減なことを言ってすみませんでした。
winampはタイプライブラリを公開していないようです。私の勘違いでした、すみません。
そのかわり、winampは外部からメッセージを送信することで操作できます。
詳細は公式サイトからsdkを落としてください。frontend.hに纏まっています。
>>120 begin
if LabeledEdit1.OnKeyPress(A) then
begin
VK_RETURN
end;
end;
とするとAは未定義だよと怒られます…。
まず、母音vowelというものはヘルプに載っていませんでしたので。
Key関係のイベントはサッパリ分かりません…。
ASCIIとかなんだとか。
どうか助けてください。
Aを何とかけばいいのですか?
キーボードのAキーを押した時というふうにしたいです。
'A' じゃダメなの?
Delphiの印刷ツールってなにがいいですか? 教えてください。
TPrinter
誰か
>>71 にもこたえてちょうだい。(´・ω・`) ショボンヌ
∧_∧
(´・ω・`) ショボンヌ
( )
| | | |
(__)_)
TInplaceEditが無くなっちゃったみたいだから探そうぜ!
138 :
デフォルトの名無しさん :03/04/15 13:11
タブ区切りのテキストをCSVに変えるにはどうすればよいのでしょうか
FormCreateあたりでRegisterClass(TInplaceEdit);ってやればよいのでは。 但しグリッドの内容は保存されない罠。
>138 CommaText
>>133 Edit内でAが押された場合にメッセージが出る
procedure TForm1.Edit1Change(Sender: TObject);
begin
if GetKeyState(Ord('A')) < 0 then begin
ShowMessage('Edit1の中でAを押したね?');
end;
end;
これをShowMessageじゃなくてRETURNキー(変換確定)押させるようにすれば、
Aで「あ」に。A以前にKが押されてたら自動的に「か」になる仕組みになるかと思ったけど、
Ord('A')じゃ、「あ」とは別ものみたいで、ひらがなが押された時ってのはよくわかんない。
(゚Д゚) 誰もカキコしてないぞゴルァ
('A')ゴルァ
145 :
デフォルトの名無しさん :03/04/15 20:38
>>133 無理でした(;´Д⊂)
>>142 詳しいレスほんとうに感謝です。
ありがとうございます。
ひらがな入力のときにAキーを押しても反応しないですね…
お手上げですね。
あきらめます…。
また勉強してると閃くかもしれませんし
何がスーパーだ。アメリカめ。
こんなのアンフェアだよ。
TRONまんせー! 俺は今から超漢字を使うぞ。
携帯の発達はトロンのおかげだったのか。
俺も超漢字使うよ。
技術者の鏡だな。
153 :
デフォルトの名無しさん :03/04/15 21:57
感動した!!
コンピューターはいつまでやっても飽きない! 俺史に残る名言だぞ。
仲間タン見てたぜ プ━( ´,_ゝ`)━( ´,_ゝ)━( ´,_)━( ´,)━( )━m9( ゚,_ゝ゚)プッ!!
官僚の選択は正しい! トロン使ったら貿易摩擦で大変です。 代償に農産物自由化を強く迫られ。 米農家が死滅しますよ。
>米農家が死滅しますよ。 どうでもいい。PCあれば毎食パンでも良いよ。
ヲタの匂いがする( ´ゝ`)プーン
きみたちは農家を守ろうという気持ちはないのですか? アメリカOSを輸入してあげるくらい、いいじゃないですか!
Delphiに関税でもかけるか
163 :
Delしぃ :03/04/16 00:35
雑談は他のところでやってるくれる?
目がトロン
パトロン
バビロン
167 :
デフォルトの名無しさん :03/04/16 16:13
型付定数でのコンパイラ指令の{$J}って、コードのどこに記述すればいいのでしょうか? 色々な所に記述しているのですが、エラーになります。
+/-を付けてないとか
ありがとうございました。できました。 +とか-とかあったのですね。
170 :
デフォルトの名無しさん :03/04/16 18:57
TLabelとTImageを持ったクラスを作るにはどうすれば良いですか?
そのままじゃん・・・
TYourClass = class public property Label: TLavel read FLabel; property Image: TImage read FImage; end
プロパティ使うことすら気付きませんでした…。 ありがとうございました。
174 :
デフォルトの名無しさん :03/04/17 00:23
HPのデータダウンロードしたいのだけれど どうすればよい? エクセルのWEBクエリみたいなやつ
ちょっと前に multipart/form-data でアップする方法について質問したのですが、
アップできません。。。 何が原因なのでしょうか?
http://forgamedev.zombie.jp/uploader/up5/upload.php エラーは出ません。
リロードしただけのようです。
S := 'POST /uploader/up5/upload.php?MAX_FILE_SIZE=1048576&pass=a&com=test HTTP/1.0' + #13#10;
S := S + 'Host: forgamedev.zombie.jp' + #13#10;
S := S + 'Accept-Language: jp , en' + #13#10;
S := S + 'Content-type: multipart/form-data, boundary=ABCD0123' + #13#10;
S := S + #13#10;
S := S + '--ABCD0123' + #13#10;
S := S + 'content-disposition: form-data; name="upfile"; filename="test.txt"' + #13#10;
S := S + 'Content-Type: text/plain' + #13#10;
S := S + #13#10;
S := S + 'testdesu' + #13#10;
S := S + '--ABCD0123--' + #13#10;
S := S + #13#10;
スレッドのExecuteで、
Stream := TWinSocketStream.Create(FClientSocket.Socket, 6000);
try
Stream.Write(S[1], Length(S));
while Stream.WaitForData(Stream.TimeOut) do
...
とやっています。
177 :
デフォルトの名無しさん :03/04/17 02:03
パーソナル版でシェアウェア公開してて逮捕された人いますか?
さぁね。 刑事罰ではなく某が親告しなければ成り立たない親告罪だし。 ただ、ばれたときにどれだけの非難が集まるかを考えるべき。 逮捕以外にも、責任を問われる形は多数あることを忘れずに。 なお、パーソナルで作ったかどうかは簡単にチェックできますよ。
え?Personal版でシェア作ったらいけないの? 今おもいっきりPersonal版で作ってるよ…
割れもののエンタなら大丈夫だな
Borland Delphi 7 Studio Enterprise 希望小売価格 360,000円(税別) 買えるか(怒) 6のPersonalはシェアだめなんですよね? それならば 7のPersonalでもだめなのですか?
2ch の書き込みを真に受けるなよ... 気にするなら Borland にメール出してみなさい。それが唯一の解決方法。
183 :
デフォルトの名無しさん :03/04/17 11:13
>>181 7のパソナルも駄目だよ
定価10000円だけどね
184 :
動画直リン :03/04/17 11:14
徹底の間違いでしょ。
撤回されたのはProのアカデミック版でしょ。 Personalでシェアウェア作っちゃダメでしょ。
189 :
デフォルトの名無しさん :03/04/17 18:28
だめだよ。都合よく解釈したら。
Del スレを age 荒らししてる .NET 厨がおる…
じゃー7のProfessionalはシェアつくってもいいんだよね?
193 :
デフォルトの名無しさん :03/04/17 20:02
6持ってるけど、7を買う価値はあるの?
Personalはシェアだめなのか… 危なかった。 今週中にVectorに登録しようとしてたとこだ。 あきらめてフリーにするか… シェアで稼いで大学の授業料を稼ごうと思ったのだが
>>194 大学の授業料が浮くくらい稼げそうなソフトなら
Proを買っても元がとれるでしょ
>>194 そんなたいそうなソフトじゃないんです…
シェアにしてもとりあえずは500円にしようと思っていました。
この次は気合の入ったちょっとしたソフトを
作ろうと思っていました。
MXで割れ物とかは嫌ですし
力作ソフトを作れそうになったときになるまで
お金貯めることにします。
カンパウェアなら商用じゃないと言い張れるんじゃないかな。
198 :
デフォルトの名無しさん :03/04/17 20:32
Delphi 6.0 PersonalをVBみたいにMDIにしたいのだが、どうすれば良いのだろう・・・
あのさ、俺ってこう見えても短気だから、早く答えてくれないと怒るよ?え?
193 ↑あなたはどう見えますか?
205 :
デフォルトの名無しさん :03/04/17 22:59
>>193 の場合は買う必要なし。
6も、持ってるだけじゃだめだ。
TOpenDialog(やTSaveDialog) で開くダイアログのフォーム名は何なのでしょう? Wnd := FindWindow('TForm1', nil); if Wnd = GetForegroundWindow then Exit; というような処理をしたいのです。
207 :
デフォルトの名無しさん :03/04/17 23:05
Delphi.NETよりSideWinder(Borland製C# IDE)が先に出るんだって。 C#死滅よりDelphi死滅の方が現実味を帯びてきたね。
208 :
デフォルトの名無しさん :03/04/17 23:07
海外の比較的マイナーな文学作品を翻訳出版する 小さな出版社がある。そして文学ファンはこういった出版社を 潰さないため、今後も翻訳を続けてもらうために 1人で同じ本を2・3冊買うことが良くある。 我々もこういう時だからこそDelphi7を買って ボーランドを支えるべきなんじゃないだろうか。 Delphi7の売り上げはDelphi8以降の開発資金となるし、 ボーランドジャパンの今後に大きな影響をもたらすだろう。 Delphi7の出来のみを云々するのは あまりにも近視眼的ではないだろうか?
もう怒った。本当に怒った。ウィニーで7を落としてやるよヽ( `Д´)ノウワァァァァン
210 :
デフォルトの名無しさん :03/04/17 23:40
TStringList内に複数ある文字列の位置をそれぞれ取得したいと考えています。 例えば 123 456 78 912 とTStringListにある場合、「12」が二つありますよね。 それぞれの「12」の位置を得たいのですが… どういった書き方をすればいいのか、ご教授お願いします。
Delphi3を使ってシェア作ればいいよ。
>>210 ループ回して、AnsiPos()でチェックするんじゃだめ?
for i:=0 to (sl.Count-1) do
begin
j:=AnsiPos('12',sl.Strings[i]);
if j <> 0 then
begin
{'12'がありました}
end;
end;
パーソナルでシェアウェアを作るスレ
>for i:=0 to (sl.Count-1) do 括弧悪い
つーか、シェアウェア買う気持ちが分からん。 500円ならいいって思っちゃうのかなぁ?
つーか、普通フリーを使うからね。 シェアで儲かるのは市販レベルのみ。
>>216 んだ。
「儲かってる」レベルなのは、ほんの一握りだと思う。
でも500円とかそーゆーのでも金払う人がいることに納得がいかない。
かの有名なCompJapanとか(藁
まぁ、直接関係無いのでこの辺で…。
218 :
デフォルトの名無しさん :03/04/18 00:46
シェア料金って、そのソフトに対して払うものなの? 俺は、恵まれてなさそうな境遇の子供への義援金だと思って払ってたよ
______
/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / - - |
||| (5 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃─┃| < こんなサイトを見つけた
|| | | | \ ┃ ┃/ \ 正直、スマンカッタ
| || | |  ̄ \_________
http://freeweb2.kakiko.com/mona/
>>219 るるせーーー氏ねええええええええ!!!!!!!!!!!!
>>212 さん、ありがとうございます。
そのコードで12があった場合位置をShowMessageさせるようにしてみたのですが
どうも挙動がおかしい気がします。
AnsiPos()で取得した位置をShowMessageさせるようにしてみたんですが
「1」と「2」が返ってきます。実際は一行目と四行目にあるのに…どこか間違っている点があれば
引き続き教えていただきたいのですが…
AnsiPoS で取得できる数値は、"文字列内"の"指定文字列"の位置です。 TStringList 内の該当項目を列挙したいなら、ループ変数を返すべきでしょう。 210の >それぞれの「12」の位置を得たいのですが… を読んだ人間の殆どは、"文字列内の位置"を取得したいのだ、と読解したと思われます。 TStringList 配列内の該当項目の Index を得たいと言う風には、解釈しかねたはずです。
寝ちゃったかな? よーするに「i」を得たかったワケだ。
224 :
デフォルトの名無しさん :03/04/18 03:47
>>210 よくありそうなアルゴリズム。がんばれ。
今考えたらCompJapanも一応効果がある場合もあったんだな
226 :
デフォルトの名無しさん :03/04/18 08:39
Application.ProcessMessage()というのは、APIでいうと何なのでしょうか? 特殊な仕組みで実現してるのでしょうか?
227 :
デフォルトの名無しさん :03/04/18 08:48
>>212 それはデータ量の2乗に比例するアルゴリズムだから、サイズが判ってる時以外は、使っちゃダメ。
そんなの使ってると、VB屋って呼ばれちゃう。
>>210 まず、StringList にある Objects に自分の番号振ってから ソートさせた後
連続する2行が一致するかどうか調べます。
見つかったら Objects から下の番号を報告します
>>227 同じデータがある行を調べたい。ってわけじゃないと思うけど…
>>210 は、ある特定のデータを含む行のリストアップをしたいのでは?
それなら、
>>212 の方法でもデータ量に正比例しかしないし、
例題みたいに、一部に含まれる、なんてのはソートじゃ見つからないんじゃ
>>214 ワラタ(w
昔TStringListを処理するルーチン書いたときオレもそう思ったもんだ。
今ではもう慣れたけどな
>>226 キューにたまってるメッセージを処理するので
基本的にメッセージループと同じでし
(中でApplication.Runと同じメソッドを呼び出してまふ)
結局、おなじみの
PeekMessage、TranslateMessage、DispatchMessage
が出てきまふ
>>227 それって重複する文字列を調べる方法じゃない?
バイト配列を TBits に展開したいのですが、良いアルゴリズムはないでしょうか。 Procedure Bit(Bytes : Byte; Index : Integer;var bits:tbits); var i,o:Byte; begin for i := 0 to 7 do begin o := ((Bytes shr (7 - i)) shl 7); bits[i + Index] := Boolean(o); end; end; Procedure Main; var i:integer; begin for i := 0 to (high(Bytedata) -1) do bit(Bytedata[i],i * 8,bits); end; 何度かの改良の後、こんな感じで回してるのですが、Athlon 1.4GHzのマシンでも、 600 KB のバイト配列を展開するのに、 100 ms ほどかかってしまいます。 もっとマシな方法を使ってる方いましたら、ご教授ください。
>>232 それはさすがにasm文で書くべきでしょ
>600 KB のバイト配列を展開するのに、 100 ms ほどかかってしまいます。 これが本当にボトルネックになっているのか甚だ疑問だけど 速くしたいのならやはり自分で最適なTBitsもどきを書けばいいよ。
235 :
デフォルトの名無しさん :03/04/18 11:55
単純なプログラムでもコンパイルすると400KBを超えてしまいますね
はいはい。.NET と同じにしたければ4Kバイトくらいになるし。 再配布ファイルは .NET の 1/10 くらいだし。 設計時と実行時に分かれていない .NET のライブラリよりは幾分マシ。
>>235 ファイルサイズに不満があるなら実行時パッケージを使えば
VC++やVBのように配布サイズを小さくできる
(OSに入ってるわけじゃないからそのためのDLLを別に配布する必要がある
古いVC++やVBで作られたアプリもXPなんかにはDLLが入ってないから似たような状況になるけど)
VCLを必要としないなら、昔ながらのSDKスタイルで書くことだってできる
238 :
デフォルトの名無しさん :03/04/18 12:16
>>232 パフォーマンスが希望ならコピーしない事だ。
だから、バイト配列をbit単位アクセスする関数を作って
カッコウ良くしたいならクラスでラップしなさい。
239 :
動画直リン :03/04/18 12:25
>>232 - Procedure Bit を呼び出すオーバーヘッドを潰す
- わざわざシフト演算でビット位置計算しない
としてみたらどうでしょう?
プロジェクトファイル名とは違う名前でコンパイルすることは出来ないんですか?
>>242 どういう目的で?
どうしても別の名前にしたいのなら
コンパイルした後で名前を変えればいいじゃん
245 :
デフォルトの名無しさん :03/04/18 15:06
ワードやペイントなどでは プリンタの種類によって選べる用紙サイズを取得していますよね? これをデルファイでやるにはどうすれば良いのでしょう? DMPAPER_A3 = 8; { A3 297 x 420 mm } これでは指定できないですよね。
>>245 EnumForms
「やさしいスレ」の範囲じゃないだろうけど
オペラのお気に入りをエクスポートして自作ソフトにインポートしようとしているのですが オペラからエクスポートされたファイルは 名前の、漢字部分だけが意味のわからない文字列になっています。 あの漢字部分はどういう処理をしたら元の名前に戻るのでしょうか?
>>246 レスありがとうございます。
やっぱりAPIになっちゃうんですね。
>>247 オペラなど知らん!
とりあえずそのお気に入りファイルをまるごとアップしなさい!
話はそれからだ!
しました。 では、話をどうぞ。
メールチェックソフトを作りたいのですが メールサーバーに問い合わせるように するには、やはり自分でややこしいスクリプトを 書かなければなりませんか? 便利なコンポーネントはないでしょうか? Delphi 7 Professionalを使っています。 宝の持ち腐りをしていて 使ってやりたいので。
>>252 やあ!Indyって使ったことあるかい?
254 :
デフォルトの名無しさん :03/04/18 23:21
StringとPCharには互換がありませんと言われました。 StringをPCharに変換する方法を教えてください。
PChar(String)
DirectXやる場合どのコンポーネントがいいの? 色々あるから迷う。 全種類インストールしても不具合とか起きない?
>>252 FastNetでも可。
とりあえず、「SMTP」と「POP3」の言葉の意味を調べることだな。
>>253 >>257 Indy知りませんでした。
ほんとうにProfessionalは猫に小判ですね。
がんばってシンプルすぎるくらいの
軽いメールチェッカーを作ります。
ありがとうございました。
>>252 Indyって、Personalでも無料でDLして使えるよね。
>>225 プラシーボ効果は範疇に入れてはいけません。
>>258 Indy知らないって?DELPHIやらなくていいよ?ていうかやるな
263 :
デフォルトの名無しさん :03/04/19 00:58
OpenDialogというコンポがありますが、Buttonを押したらOpenDialogがShowするようにするにはどうすればいいのでしょうか?
(´-`)。o ○ (
>>263 にどんなレスが来るのかなぁ…)
procedure TForm1.Button1Click(Sender: TObject); begin OpenDialog1.Execute; end;
>>265 見事に出来ました。ありがとうございました!
267 :
デフォルトの名無しさん :03/04/19 01:14
263死ねx99
いや、死なんでもいいとは思うが…。 ヘルプ、読まないのかなぁ? ま、ネタじゃないとして。 いっくら「やさしい」とはいえ限度っちゅーもんがあると思うが…。
Explorerの右クリックメニューに自分のアプリを追加する方法をご存知のかた教えてください ポインタだけでもいいですので。
>>267 お前が死ね。誰もお前なんて必要としてないんだよ!種の存続のためにも死ね!!
formをアニメーションで閉じたり・開く設定教えて下さい。
273 :
デフォルトの名無しさん :03/04/19 01:55
色の重ね方ですが、Pen.ModeがpmMergeのときに、たとえば color:=64;{$00000040}とcolor:=63;{$0000003F}をLineToなどで重ねると 127になりますが、color:=64;とcolor:=65;を重ねても65にしかなりません。 129{$00000081}にする方法はないのでしょうか? ピクセルごとにシコシコと足し算するしかないのでしょうか。
AnimateWindow(Handle, 1000, AW_BLEND or AW_HIDE); Close();
>>273 本当にそういう仕様でいいの?
127と129を足して256になったら
色相が全然変わってしかもほとんど真っ黒になるけど
そういう仕様はほとんど誰も使いたがらないだろうから
想定してないと思うよ、VCLというよりOSそのものが
各色255{FF}を越えたらFFで止まるのが望ましいです。 やはり自分で工夫するしかない、ということでしょうか。
>>276 特殊な用途らしいですね
それなら自分でなんとかするしかないでしょう
ばんばりませう
わかりました。ありがとうございます。 頑張ってみます。
>>279 別に叩くワケでも煽りでもあげあしとりでも無いんだが、
それだけのレスってどーなの?
やり方は教えてあげないの?
>>280 DelphiのIDEでコンポーネントぺたぺた置いて遊んだ経験があるならそれは十分な情報だと思うが。
それ未満の人はDelphiに限らずプログラム全般において才能はないだろう。
282 :
デフォルトの名無しさん :03/04/19 08:34
DelphiはVC++とかより、簡単で習得しやすい?
>>282 クラスライブラリはVCLの方がすっきりしてると思いますな。
言語習得の容易さに関してはあまり差はない。
>>282 Delphiはすべてにおいて最強です。
あなたもすぐに始めましょう。
世間から置いていかれますよ。
煽りとかでなくて、率直に聞きたいのですが、 Delphiって将来性ないのですか? 消えていく運命なのですか? なんか他のスレ見てて心配になったもので、、、
>>285 まぁ、あまり先行きは明るくないですな。
しかし、Delphiから得られ、他の言語を使用する際にも役立つものは数多くあります。
これはVBにはないDelphiのメリットといえるでしょう。
最終的には他の言語に移行する前提で勉強してみるのも良いでしょう。
287 :
デフォルトの名無しさん :03/04/19 08:39
最初はVC#ライクに標準コントロールだけで一応組める?
>>285 これから時代は.NETになりますが、
大丈夫です。Delphiは.NETも完全サポートです。
>>287 >最初はVC#ライクに標準コントロールだけで一応組める?
それになんの意味があるか知らんが組める。
> しかし、Delphiから得られ、他の言語を使用する際にも役立つものは数多くあります。 なんですか。それ?
>>286 Delphi使いはVBに対抗意識を燃やしているというのは本当みたいですね。
なんか朝からチャット状態だね
DelphiスレでVBって言葉を出すと荒れるよ。
295 :
デフォルトの名無しさん :03/04/19 08:45
自作コントロール作るのは難しい? Professionalである程度はできる? Enterpriseは高い。
>>295 Personalでも何不自由なくできますが。
ソース無いのに?
自作コントロール作るのは難しいですが、楽しい難しさなんでガンバッテね。
300 :
デフォルトの名無しさん :03/04/19 08:48
俺、趣味でVBしてるんだけど、自作コントロールが作れないので Delphiに移行しようかなとおもって。
>>300 もしかしてActiveXのこと言ってます?
>俺、趣味でVBしてるんだけど、自作コントロールが作れないので VBのCCEとかってコントロール作れなかったっけか?
>>296 データベース関連は全滅。
しかもシェアウェア作れない。
制限ありまくり。
>>300 VBでコントロール作れないならDelphiでも無理でしょ。
>データベース関連は全滅。 別にラッパーがないだけで。 >しかもシェアウェア作れない。 コストなしで金とろうとするよなと。 >制限ありまくり。 データベースを使用 or 金を取る がfalseになるソフトウェアはごまんとあるが。
306 :
デフォルトの名無しさん :03/04/19 08:54
VB.NETとより優れてる点教えてくれ。
>>300 プロジェクトにユーザーコントロールを追加してください。
これだけで自作コントロールになります。
ActiveXコントロールにしたいときは、新しいプロジェクトか、
プロジェクトの追加でActiveX コントロールを選択するだけです。
できることは一緒なんだからわざわざC#を避けてVB.NET使う理由がないからなぁ・・・。
以上
時折くだら過ぎるリア房の質問だがHSPで音楽が再生できない・・・何故だ・・・。
314 :
デフォルトの名無しさん :03/04/19 08:58
>301 VC++とかでしかDLL作ってVBと連動させることはできるらしいが、 VC++習得するのめんどいので。 Delphiの方が楽ならそっちしようかなと思って。
>>314 取りあえず絶対的な知識レベルの低さを感じるので離すのが面倒。
316 :
デフォルトの名無しさん :03/04/19 09:00
C#は楽? らくちんした〜い。
317 :
デフォルトの名無しさん :03/04/19 09:01
>315 俺、VBしか知らんので。 コントロールに限界感じてるんよ。
>>319 40MB程度の大きなランタイムエンジンを要求されます。
なんだ、たいした問題じゃないね。
>>321 うむ。それだけで十分だ。
このソフト使うにはJRE1.4入れてね♪並に痛い。
このソフト使うにはDirectX8いれてとか、IE5いれて程度の問題だね。
>このソフト使うにはDirectX8いれてとか、IE5いれて程度の問題だね。 いろんな方面で大問題になってるわけだが。
>>327 まぁ、それらは.NETと違ってCOMだからね。
>>328 .NETだって1.0入れた後に1.1入れて、1.1にバグがあったら
1.0で正常に動いていたソフト動かなくなるでしょ。
>>328 後、FrameworkのバージョンアップによってAPIの挙動が変わる可能性も否定できない。
アプリケーションレベルでのDLL HELLは無くなったかもしれんが、もっと根本的なレベルでDLL HELLが怒る可能性がある。
アプリケーションレベルじゃない、根本的なレベルってなにをさしているのやら。 抽象的なこといってごまかしんじゃねぇぞゴラァ
jconvertで jconvert.ConvertJCode(Memo1.Lines.Text, JIS_OUT); とすると、普通の文字なら変換してくれるのですが、 外字エディタに登録してある文字(i-modeの絵文字etc)は 文字化けしてしまいます。 これを無事変換できるようにjconvertを書く方法を 教えていただけませんか? スレ違いならごめんなさい。
>>332 どっちで動かすかいちいちエンドユーザが指定させればね
>>333 相談室でないと、難しいんじゃない?
その外字コードがどの範囲とか纏めて相談室に書いてみて。 2〜3日後でよければ見てみるから
はい相談室スレ逝ってきます。 ありがとうございました。
>>331 抽象的な考え方もできないでプログラムは組めません。
おむすびワッショイ!! \\ おむすびワッショイ!! // + + \\ おむすびワッショイψ!!/+ + // + . + /■\ /■\ ///■\ + ( ´∀`∩(ω∀`〃) ( ´ー`) *  ̄ ̄ ̄  ̄ ̄  ̄ ̄ ̄
指定した範囲の乱数を発生させるにはどうすればいいんですか? 例: 5〜20 10~100 など Random関数だと0から指定値-1までの乱数しか作れないようで分かりません… RandomRange関数を使えばいいんでしょうか? でもこの関数、 よく使い方がわからないです… ぐぐっても片手の指の数ほどしか 引っかかってくれないし…
>>339 いや、申し訳ないんですが意味がよくわからないんですが…
HELP見てもRandom関数は0 <= X < Range の範囲にある
乱数を返すとありますし…
342 :
デフォルトの名無しさん :03/04/19 13:11
>>341 例えばだ。
n + 10 (n >= 0)
の値域はいくらだ?
344 :
デフォルトの名無しさん :03/04/19 13:17
>>339 0から15までの乱数に5を足せば5から20じゃん。
失礼しますた…_| ̄|○サンスウカラヤリナオシテクルヨ
閾値のことだろうか。。。
>>348 違うぞ。
ある関数に定義域を適応したときに取りうる値の範囲のことだ。
ああ、よく読んでいなかった。⇔だから逆か。俺は「〜がとりうる値」と言うかなぁ。
RandomRangeっていつからあったんだ? こんなのこっそり入れられても気づくわけないだろ。 Randをoverloadしてくれればいいのに。
高校の数学から、関数の定義域、値域って概念がなくなってから何年経つっけ。 いまの若者は集合論も関数論も教わらずに義務教育を卒業しているのです。
>>353 どうでもいいが高校は義務教育ではないぞ。
>>352 math unit のだろ。Rand は組み込み関数だからなぁ。
>どうでもいいが高校は義務教育ではないぞ。 自爆。ウツダシノウ...
>>353 は高校が義務教育でないということも教わらずに卒業してしまったんだ。
大学までが実質義務教育だろ。 それ未満は正直ヤヴァイ。
>>353 やったが、そういう言葉は使わなかったな。
自己義務教育? チャンスは保証されてます。ってことでアメリカっぽくなったよなぁ
>>359 何年ごろはどんな言葉使っていたの?
数学板向きになってきたぞ。
>>362 今22歳だけど思いっきり教科書とかにも書いてあったYO
変域・・・?
>>363 うーん・・・概念はやったけど、値域はまじで初めて聞いたぞ。
ど忘れしたのかな。
そろそろスレ違いだね。
やっぱり.NETって便利だね♪ Random.Next メソッド 乱数を返します。 オーバーロードの一覧 正の乱数を返します。 public virtual int Next(); 指定した最大値より小さい正の乱数を返します。 public virtual int Next(int); 指定した範囲内の乱数を返します。 public virtual int Next(int, int);
>>367 いや、足し算一回の手間にわざわざクラス引っ張り出してくることもないと思うのよ。
>>367 便利っていうか、バカッっぽいというか。
Delphiサイコー System.Random Math.RandG Math.RandomRange StrUtils.RandomFrom
Delphiっておもしろいね!
うん。楽しいね。
>>370 RandomRange は 最近増えた関数だからね。 皆まだD5/D6だから。
俺は最先端の7
>>365 聞いたことないて…
常識だぞ。
先生を恨め。
C++Builderサイコー System.Random Math.RandG Math.RandomRange StrUtils.RandomFrom stdlib rand
378 :
デフォルトの名無しさん :03/04/19 16:32
(-_-) 誰もカキコしてない・・・
Delスレだもの。マターリマターリ
380 :
デフォルトの名無しさん :03/04/19 17:13
(;´Д`) 誰もカキコしなないよ
>>380 ここは雑談スレじゃないんだし
質問がないということは今のところ誰も困ってないということで
結構なことでは
落ちない程度にスレを見守りましょう
警察と消防と質問スレは暇なほど良い
age荒らしだろ 只の
383 :
デフォルトの名無しさん :03/04/19 18:08
質問です。困ってます。 DelphiとVBって、どっちがいいんですか?
ジエン
386 :
デフォルトの名無しさん :03/04/19 19:18
StringをTFileStreamをつかってファイルに読み書きしようと思っています。 「書き」の方は str : String ; i : integer ; begin str := 'test message' ; fs := TFileStream.Create('test.txt', fmOpenWrite); try i := Length(str); fs.Write(i,SizeOf(integer)); fs.Write(pointer(str)^, i); finally fs.Free; end; end; で書き込めたんですが 再びStringに読み出す方法がわかりません。 fs.Read(i,SizeOf(integer)); fs.Read(str,i); ではstrを使おうとするとEAccessViolationエラーになってしまいます。 理由はわかっています。 strは文字列のある場所を示すアドレスの入れ物にすぎないからReadで文字列を直接書き込んではいけない・・。 どうやったらうまく読み出せるんでしょうか・・。 TStringListとかを使えば悩まなくてすむんですが 将来的に他の型のデータも一緒に書き込む予定ですのでなるべくならTFileStreamで行いたいと思ってます。 どなたかご助言ください。 ※余談ですが今回の件で初めてString型がポインタのようなものだという事を知りました。 手元にあるDel3の本の説明でのString型はいわゆるShortString型だったのでうまく保存できずかなり悩みました。
SetLengthで長さを指定してからとか。 SetLength(s, 100)ってやれば100バイト分の領域が確保される。 あるいはGetMemして読んでPCharにキャストとか。
>>387 Stringの内部表現がこちらのうかがい知ることではない以上、100バイトというのは少々乱暴かと。
100はただの例だよ。100バイトずつ何回かに分けて読み込んでもいいし 前もってファイルサイズを調べてその値を指定してもいい。
Stringの内部表現はヘルプに載ってるからそれ読んでみなよ。
>386 書き込み FS.Write(S[1], Length(S)); // S: string; 読み込み Len := FS.Size; SetLength(S, Len); FS.Read(S[1], Len); こんなんでOKだと思う。 ところでfs.Write(i,SizeOf(integer)); は何をしてるの?
392 :
デフォルトの名無しさん :03/04/19 20:07
(゚Д゚) 誰もカキコしてないぞゴルァ!!
393 :
bloom :03/04/19 20:08
Delphi6からXMLを利用したいのですが、各要素や データの読み込みアルゴリズムを学ぶには、 どんな参考書籍が有用でしょうか?
>>391 ありがとうございました。うまくいきました。
S[1]って使い方ははじめて知りました。
>ところでfs.Write(i,SizeOf(integer)); は何をしてるの?
将来、他のデータとかもまとめて保存する予定なので
ShortStringのように頭に読み出す文字列の長さを保存してます。
>>396 そういうフォーマットなら、
fs.Read(i,SizeOf(integer));
SetLength(str, i);
fs.Read(str,i);
のほうがいいんじゃない?
FindWindow,FindWindowEx で、メモ帳のメモ部分のハンドルを得て文字を 送ったりはできるのですが、 メモ帳のメモ部分を壊して、delphi起動時にできてる フォームだけのアプリみたいな感じにすることってできます?
>>399 メモ部分のサイズを(0,0)にするとか
>>396 >将来、他のデータとかもまとめて保存する予定なので
メモリ上でそういう持ち方する必要あるのか?
MyData = class
public
intdata: integer;
strdtata: string;
end;
って持たせればいいんじゃないの。
そんなことしたらメモ帳がかわいそうです
404 :
デフォルトの名無しさん :03/04/19 21:03
>>386 読み出すときにはTStringStream使えばいいんじゃない?
405 :
デフォルトの名無しさん :03/04/19 21:11
407 :
デフォルトの名無しさん :03/04/19 23:15
今日はじめてDelphi6をインストールして使ってみた。 何のことはない、Visual Pascalじゃないか。 俺はdelphiのことをVPということにする。
409 :
デフォルトの名無しさん :03/04/19 23:21
>>407 VPはだめ。
Visual Perlが存在するから
410 :
デフォルトの名無しさん :03/04/19 23:21
コマンドボタンを押したらフォームに1って表示させるにはどうしたら よいのでしょうか?
>>410 ラベルを貼り付けて
Label1.Caption = "1"
>>407 その判断基準からすると
VC++とBCBのどっちが「Visual C++」になるんだべ?
Pascalは文字列を''で囲います。
>>414 コンパイラだけなら無料で配られているけど、あれはBCBではないね。
>>414 以前、BCBエンタの期間限定試用版が無料配布されたことはあったけどね
VC++が無料だったことはないでしょ
人柱版ってVBだけ?
>VC++が無料だったことはないでしょ だからなんだってんだ???
>>419 414の>有料だろ?
こそなんだってんだ???
無意味だ。
>>417 StandardEditonのコンパイラだけなら.NET SDKについてる
iostreamすら使えんがな('A`)
424 :
デフォルトの名無しさん :03/04/20 01:34
コンパ苛だけあっても意味無い
425 :
デフォルトの名無しさん :03/04/20 01:36
テメーそりゃブイビーの文法じゃー!
428 :
デフォルトの名無しさん :03/04/20 02:39
あ? ボランティアで答えてやったのを なんであほとか言われにゃならんのだ? 回答する前に過去ログくらい調べてこいだと? 本気でそう思うなら言ってみろや、はっきりと 誰のためにそんな手間かけんだよ 人を動かす動機がまるでわかってないな、こいつ
(´-`).oO(何でVB厨はわざわざDelスレまで出張して荒らすかなぁ・・・) (´-`).oO(逆パターンは聞いたこと無いよなぁ・・・) (´-`).oO(そんなにDelphiがうらやましいのかなぁ・・・)
(´-`).oO(どこにVB厨がいるんだろう・・・)
(´-`).oO(ここは質問スレなんだけどなぁ・・・) (´-`).oO(なんでののしりあってるんだろう・・・) (´-`).oO(他所でやって欲しいなぁ・・・)
(´-`).oO(質問来ないかなぁ・・・) (´-`).oO(ずっと待ってるんだけどなぁ・・・)
(´-`).oO(エサまこうかなぁ・・・) (´-`).oO(でも気づかれて煽られたらいやだしなぁ・・・)
∧_∧ ( ^^ )< ぬるぽ(^^)
(´-`).oO(またぬるぽだよ・・・) (´-`).oO(また叩かれるのかなぁ・・・)
プログラム板の鉄則だからね
>>435 ( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 /
438 :
デフォルトの名無しさん :03/04/20 03:22
<dt>
439 :
デフォルトの名無しさん :03/04/20 03:29
C#を作ったDelphiなやつはどうして宣言部と実装部を分けてくれなかったんだろうか… 入れ子構造わかりにくい。
∧_∧ ( ^^ )< ぬるぽ(^^)
あぁ。なるほど。
443 :
デフォルトの名無しさん :03/04/20 04:05
なんでPascalなの?
ミリバールの方がよかった?
TListを継承して自作クラスのオブジェクトを要素に持つリストを作ろうとしています。 今引っかかっているのはDeleteメソッドです。 Deleteが呼ばれたときは自動的にその要素のオブジェクトをFreeしたいのですが、 DeleteはVirtualではないのでオーバーライドができません。 隠匿するという手もあるのですが、 var list :TList; begin list := TMyList.Create(); listDeleteProc(list); end; の様な多様性を使用する局面で困る気がします。 と、ここまで書いて気づいたんですが、TListを引数とする奴が無断でアイテムを削除すると、 絶対に宙ぶらりんのポインタが発生しますね。 よってそう言う実装はあり得ないと。 解決しました。ありがとう。
>>445 とりあえず、そういう事をしたい場合は、TList継承ではなく TComponent継承にして、
自分クラスもTComponent継承にすると楽というか、その手の管理がついてくるので楽だよ。
TComponentで Componentsで管理すればいい
IdPOP31.CheckMessages はIntegerですよね? しかし、 IntToStr(IdPOP31.CheckMessages)とすると 'Array'と'String'には互換性がありませんと 怒られます。 何故に'Array'が絡んでくるんですか?
>>447 エラーの出た行を全部晒してみたら?
それだけでは、そのエラーが出る筈がないから。
あるいは、改行を適当に入れてエラーメッセージがどこに出たかよくみてみたら?
i := IdPOP31.CheckMessages; if i > 0 then begin FIconData.szTip := '新着' + IntToStr(i) + '通' end; としています。 POP3サーバーに接続した後に 新着メールの数をシステムトレイアイコンのHintに 出したいです。 よろしくおねがいします<(__)>
450 :
デフォルトの名無しさん :03/04/20 10:52
あ、4行目の最後に ; がぬけましたすみません。 どうぞよろしくおねがいます。
>>446 なるほど、確かにアリですね。
目的に対してちょっと大げさになるのが難点ですが、候補として検討してみます。
ありがとうございます。
>>449 szTip って何? szって付いてるんだからサイズ情報=整数型じゃないの?
それから、Delphiの型は厳格だから i が整数型で、代入の時にエラーが出なければ、IntToStr(i)がエラーにはならない。
複数の要素があるような行でエラーが出たら、
FIconData.szTip := '新着' + IntToStr(i) + '通' <-たとえばここでエラーが出たら
FIconData.szTip :=
'新着'
+ IntToStr(i)
+ '通';
と改行を入れてコンパイルして、どこでエラーが出るか見るといい。
>>452 TComponent型にしても、そんなに大げさになる訳じゃないよ。
そのインスタンスを大量に作るなら別だけどね。
>>453 + '通';
の行で'Array'と'String'には互換性がと言われます。
そこで、
+ IntToStr(i)を抜いて
FIconData.szTip :=
'新着'
+ '通';
と書くと問題なくコンパイルできました。
やはりIntToStr(i)に問題があるようです。
上から、szTipはStringであると思います。
>>449 StrCopy(FIconData.szTip,PChar('新着' + IntToStr(i) + '通'));
>>456 無事解決しました。
ほんとうにありがとうございました。
今後ともよろしくお願いします<(__)>
>>458 (゚Д゚)ハァ?
そこまで偉そうにされる筋合いもないが、まっ所詮はネットで粋がる事しかできないような奴か・・・
一応礼はいったので・・じゃ
>>459 意見は同じなんだけど騙らないでね(^_^;)
462 :
デフォルトの名無しさん :03/04/20 11:53
タイトルバーの色を画面プロパティのデザインで設定したものではなく、 アプリケーション独自の色にすることは可能ですか?
∧,,∧ できるですよ ミ,,゚Д゚彡 ミつ日(ミ Formをサブクラス化して WM_NCPAINTを監視して function GetWindowDC(Handle: HWND): HDC; で取得したのをCanvasにほりこんで 描画するといいみたいです。 昔はDelphi TechMagってページに Night2000コンポーネント作成の よい説明が載ってたんですが、 今、なくなっちゃったですね。
>>463 ありがとうございます
早速試してみます。
みなさんこんにちわ! タイトルバーの色を変える方法はありますか?
467 :
デフォルトの名無しさん :03/04/20 15:58
指定したファイルの有無をBoolで返すAPIってありますか?
FileExists
Oh, thank you very much!
商業アプリケーションの多くは、画像データや音声データを バイナリデータとして一纏めにしてますよね。 ・そもそもバイナリデータとして保存・利用するにはどうするのか ・一纏めにしたファイルからどうやって中に納められている各ファイルを読み込んでるのか を教えて頂きたいです。ゲーム作ってるんですが、画像や 音声データをそのままで収録して、簡単に覗かれるのは嫌だなと…
472 :
デフォルトの名無しさん :03/04/20 20:40
小数点第1位までを表せる型は、ありませんか? 切捨て四捨五入等は問いません。
内部では整数表現して後で10分の1するよろし。
>>470 まぁ、
[ファイル名,サイズ,データ]
ってのの繰り返しってのが一般的じゃないの?
Real or Currency
>>470 TMemoryStreamを継承してアーカイブに格納したファイルをstream経由で読めるクラスを作成してLoadFromStreamでTBitmapなどに読み込む。とか。
アーカイブの形式は
struct FileHeader
{
char ファイル名[16];
int アーカイブ内の先頭アドレス
int ファイルサイズ
};
struct ArchiveHeader
{
int 格納ファイル数;
FileHeader ファイルヘッダ[格納ファイル数];
};
な感じのヘッダの後ろにファイルを繋げていけばいいかと。
オンメモリで使うんなら16進で書き出してbyte配列として持たせとくとかね。
480 :
デフォルトの名無しさん :03/04/20 20:56
>>479 なんだよお前。調子乗ってんじゃねーよクズ。
↑この数日スレを荒らしてる厨。気にしないでくれ
>>479
482 :
デフォルトの名無しさん :03/04/20 21:44
,rn
r「l l h. / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 、. !j |
ゝ .f _ |
| | ,r'⌒ ⌒ヽ、. │
http://www.freeweb2.kakiko.com/saitama/ ,」 L_ f ,,r' ̄ ̄ヾ. ヽ. │ こんなのあったニダ
ヾー‐' | ゞ‐=H:=‐fー)r、) |
| じ、 ゙iー'・・ー' i.トソ |
\ \. l ; r==i; ,; |' .人_
\ ノリ^ー->==__,..-‐ヘ___
\ ノ ハヽ |_/oヽ__/ /\
\ / / / |.
y' /o O ,l |
IdPOP3についての質問です。 POP3サーバーやらユーザー名などをが合っていれば 無事サーバーに接続することができたのですが、 接続できなかった時にどう対処するかで変更すると うまくいきません。 try IdPOP31.Host := Edit1.Text; IdPOP31.Port := 110; IdPOP31.Username := Edit2.Text; IdPOP31.Password := Edit3.Text; if IdPOP31.Connected then begin if IdPOP31.CheckMessages <> 0 then begin 〜〜〜 end; end else ShowMessage('接続に失敗しました'); end; finally IdPOP31.Disconnect; end; とすると接続してくれません。 接続を監視して調べて見ると 接続する動作もしてくれないみたいです。 〜〜〜部分はあまり関係のないイベントなので 省略しました。 どうかうまくいくようにアドバイスください。
なんかendの数多くない?
>>485 あ、beginが一つ入れ忘れてますすみません。
スペースいれて書いたのにかなりズレてしまいました。
すみません。
PopupMenuが非アクティブになったときに PopupMenuを閉じるにはどのように書けばいいのか 簡単なようでずっと悩んでおります。 PopupMenu1.Popup(Point.x, Point.y); とポップアップを出したはいいが いったいどのイベントで もし非アクティブになったら 閉じる というように書けばいいかさえ分かりません。 詳しい方が見たら一瞬で答えれるのでしょう… どうかお助けください。
>>487 非アクティブになったら勝手に閉じるんじゃない?
489 :
デフォルトの名無しさん :03/04/20 23:13
Personal版は無料じゃないよ。 個人情報を登録しないと落とせないし、その情報は転売されてるという話。 捨てアドレスで落としてみな。 そのアドレスに突然スパムがいっぱい来るから。 それはすべてBorlandのせい。
>>489 名誉毀損で訴えられる準備はあるんだな?
>>488 それが閉じないんです…
システムトレイのアイコンを右クリックした時の
イベントで
case Msg.wParam of
WM_RBUTTONDOWN:
begin
PopupMenu1.Popup(Point.x, Point.y);
end;
とすると右クリックでポップアップしたはいいが
非アクティブになっても閉じてくれないです。
コピペ嵐に反応するなよ
>>494 ありがとうございます。
できました。
Articleを読みましたが難しいですね。
ほんとうにありがとうございました。
496 :
デフォルトの名無しさん :03/04/21 01:33
だから、、、、Visual Pascal だろ?
だからVPでいいつうーの
498 :
デフォルトの名無しさん :03/04/21 09:44
みなさんにお聞きしたいのですが、TDateTime値が無効なことを示すときに どんな値を入れてます?漏れは適当に0とか-1を入れてるんですが。
>>496 マイクロソフトが出した失敗作は クイックパスカルだよ。
TDateTime が無効かどうかの設定が必要なら、Variantを使う方がいいんじゃないの?
501 :
デフォルトの名無しさん :03/04/21 11:52
とあるバイナリの並びが文字列であるかただのバイナリであるかを判定する方法ってありますか?
>>501 バイナリ自体が文字列だった場合はどうするの?
生成する時点で判定できるようなフラグ立てとけ
#0が入ってるかどうかとか・・・・(不確実だけど)
505 :
デフォルトの名無しさん :03/04/21 19:33
DBGridのRowSelectをtrueにして、選択行すべてをハイライトさせてる場合 選択行の一つ一つのフィールドの項目を取得するにはどのようにすれば よいのでしょうか?
>>506 TruncとFloorとCeilのヘルプを見てみませう
>>250 レス遅れましたが丁寧親切にありがとうございます。
がんがります。
>>507 FloorとCeilはProfessional Edition以上ですよね?
環境が6のPersonalなので。
>>509 PersonalにはMathがないのか〜
じゃTruncしといて
整数じゃない場合だけ+1するのがいいでしょう
(整数かどうかの判定は分かるでしょ?)
Mathをusesしてないだけだろ
>>509 Personalでも使えるぞ。
>>511 すみません、使えました。
ありがとうございました。
Q0.1,E0.8,E0.4 正しい括弧付けかどうかをテストするプログラムを教えてください
>>505 ヘルプでTDBGrid#Columnsを参照
(手元にDelphiないので間違ってたらそれっぽいのを探してくれ)
直接DataSource.DataSetを参照するのも可
ちなみにRowSelectは関係ない
>>513 意味が分かりません。もっと具体的に言ってくださいな
>>516 氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
518 :
デフォルトの名無しさん :03/04/22 06:56
ブラウザ情報を編集するにはどうすればよいですか?
>>484 これって接続してないじゃん。
そりゃ接続されんよ。
522 :
デフォルトの名無しさん :03/04/22 17:32
ぬるぽについて簡単にでいいので教えてください
スレ違いでしたごめんなさい
525 :
デフォルトの名無しさん :03/04/22 18:50
526 :
デフォルトの名無しさん :03/04/22 18:56
コンソールアプリケーションに 画像(ベタでもBmpでも)を表示する方法というのは、 標準では存在しないのでしょうか。
527 :
デフォルトの名無しさん :03/04/22 18:57
>>526 難しいです。力技しかないと思われます。w95系ならDOSプログラムとして
レガシーにIOを叩くのが近道かと思うのですが。。
529 :
デフォルトの名無しさん :03/04/22 20:10
>>529 IDは勝手につくからしょうがないでしょう(w
>>530 普段からの行いが悪いからそんなださいIDになるんだよ(w
>>528 やはりそうですか。ご助言ありがとうございました。
見えない…何も見えないぞ!!仕事のしすぎかな
v:=TCanvas.Create; try v.Handle:=GetDC(0); ・・・・ というようにして Windows全体に描く事はコンソールアプリでも可能なので、 後はコンソールのサイズにあわせてクリッピングする方法を探す方法を考えることだね。
>>391 Sがカラの時,S[1]を参照するとエラーになるので要注意.
>>404 書き込むときに使ってもよいと思います.
>>407 フォーム,コントロール(コンポーネント),プロパティ,イベント,統合開発環境….
これらはまさにVisual Pascalなのですが
それは表面だけの話でつ.
>>521 これは情報が古いです.
Delphi 5(4かも)から一番安い版にもMathユニットが付属するようになっています.
ListViewの各アイテムの文字、またはバックに色をつけることは可能でしょうか?
(´-`)。o ○ (「オナニードロドロ」は禁止ね)
オナニードロドロをトゥルッてする。
>>534 何と、そんな手もあるですか。。失礼しました。
>>534 ありがとうございます。
希望通りの動作を、安全に実現できそうです。
API の奥の深さと、TCanvas の懐の広さに感激いたしました。
541 :
デフォルトの名無しさん :03/04/23 13:08
Windowsに付いているcalc.exe が起動していたら、それを前面に出して、 起動していなかったら起動するような場合はどんなコードになりますか? あと、このcalc.exeを自アプリの計算機能として使用しちゃっても問題ないですか? 後でMicroSoftに訴えたれたりしないですよね?(^^;
>>541 HWND hWnd;
hWnd = FindWindow(NULL, "電卓");
if (hWnd)
{
//電卓起動
}
else
{
//ウィンドウ最前面処理
}
適当にPascalに翻訳しる
>>542 ありがとうございます。
自分なりに翻訳してみました。
h : HWND;
h := FindWindow(nil,'.\calc.exe');
if h = 0 then begin
//電卓起動
ShellExecute(Handle,'open',PChar('.\calc.exe'),'',
PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);
end else begin
//電卓前面
end;
うーむ、これだと、電卓が既に立ち上がってても、そうでなくても常に
hの値が0になる・・・。
>>544 そうですね。
簡単な電卓で良いので自分で作った方が速いかも。
>>545 ( д ) ゚ ゚
>h := FindWindow(nil,'.\calc.exe');
なんでこうなるのか説明plz
>>546 >hWnd = FindWindow(NULL, "電卓");
より。
根本的に何か勘違いしているかも(^^;
パスワードを入力してもらったEdit1.Textを iniファイルに書き出したいのですが、 何か変換を入れたいです。 色々調べたのですが Unicodeに変換するのがいいみたいなのですが どう書いていいのか分かりませんでした。 WriteString('Section', 'Value' , Edit1.Text); を変えて書いて頂けませんか? 下手な日本語ですみません。 どうぞよろしくおねがいします<(__)>
var S: TMemoryStream; Unko: WideString; begin S:=TMemoryStream.Create; Unko:='パスワード'; S.Seek(0, soFromBeginning); S.Write(Unko[1], Length(Unko)); with TMemIniFile.Create(Application.ExeName+'.ini') do begin WriteBinaryStream('a', 'b', S); UpdateFile; Free; end; with TMemIniFile.Create(Application.ExeName+'.ini') do begin ReadBinaryStream('a', 'b', S); Unko:=''; SetLength(Unko, S.Size); S.Read(Unko[1], S.Size); ShowMessage(Unko); Free; end; S.Free; end;
今のは間違ってるから無視してね。
>>550 すみませんよく理解できませんでした…。
XORという関数を使えば比較的簡単に
書けるそうです。
WORの例を書いて頂けませんか?
あ、WOR→XORでしたすみません。
>>552 少しはヘルプ見たほうが早いと思うけど。
1文字づつ抜き出して、
a := a xor 23
で暗号化。もう一度同じことをすると、元に戻る。
Φ's
今時パスワードの保存にxorはないだろ。 MD5使えや。
MD5って聞いたことあるな Winnyで使ってるやつだったかな
>>554 ありがとうございます
var
i.i2,siz: Integer;
S1,S2: String;
〜〜〜
S1 := Edit1.Text;
siz := Length(S1);
for i:=1 to siz do
begin
i2 := StrToInt(S1[i-0]) xor 23;
S2 := S2 + IntToStr(i2);
end;
WriteString('Setting', 'Passward', S2);
とするとコンパイルはできるのですが、
ソフトを動作させるとEConvertErrorクラスの例外を生成しました。
'k'は整数ではありません。と言われてしまいます。
kは使っていないのですが…
どこが間違っているか指摘してください。
>>556 見た目が少し違うようになるだけでいいので
xorで十分です。
レスありがとうございます。
>>559 Edit1.Text に入れた文字の1文字目が、'k'になってない?
StrToInt は、”数を表す文字列”を、その数値に変換する関数で、
それ以外の文字は変換できない。というか、変換しようがない。
文字自身の値そのものを数値として扱うには、Byte型にキャストすればいいはず。
キャストについては、ヘルプ参照。
あと、xorかけた後も、単に、IntToStr を使って文字にして
単純に繋いでしまうと、区切りのない数字の羅列になって元に戻せなくなると思う。
IntToStrを使わずに文字にキャストしなおした場合は、xor後の値はすでに
文字を示すとは限らないから、そのまま、INIに書き込むのはまずい。
方法はいくつかあるから、考えて工夫してみれ。
561 :
デフォルトの名無しさん :03/04/24 10:58
>>561 は見てないけどあちこちにあるからきっとブラクラ
563 :
デフォルトの名無しさん :03/04/24 11:05
クリックもせずに失礼な回答者ですね どうせ解決できない者の負け惜しみなので気にする必要はありませんが
マルチのくせに偉そうだな(w
565 :
デフォルトの名無しさん :03/04/24 11:12
>>564 まぁ、ある意味マルチかもしれませんね^^
ある意味じゃなく、完全にマルチだろ。
567 :
デフォルトの名無しさん :03/04/24 11:18
シャレのわかんないバカですか?あなた クリックもせずに偉そうな事言うなよ
自分だけがシャレてると思うヴァカ
マルチをクリックする必要などない。
570 :
デフォルトの名無しさん :03/04/24 11:59
他のアプリケーションを、表示位置を指定して起動するには どのようにすれば良いのですか?
>>571 そーじゃないだろうに、、、知らないなら引っ込んでてよ
573 :
デフォルトの名無しさん :03/04/24 12:36
>>572 じゃあなにが知りたいのか具体的に書けよ。
糞。
またいつもの奴か
いつも反応している奴出現
反応して何が悪い
また自演か
自演ではない
ザコいみじめな人間。
いつもの奴のことだな
もちろんそうよ (板尾の嫁
また自演だな
>>571 求めていたのはまさにそれです。ありがとうございます。
返事が遅れたばっかりに、偽者に書き込む隙を与えてしまいました。
申し訳ありません。
>>572 死
また偽者だな
っていうか謝ってるのにそりゃないんじゃないでしょうか? 私も被害者なんですし
ageで書いてるやつは偽者ということでOK?
前に2回くらい質問したものですが、頻繁に偽者登場してるみたいですね 同一人物だろうか
ボーランド系のスレ荒らしてる馬鹿は何が楽しいんだか 荒らすヒマがあるなら勉強しろや
心地良い流れに水を指すようで申し訳ありませんが、質問です。 データ検索等の重い処理を開始させるボタンをクリックした後、そのボタンの イベント処理中にもう一度そのボタンを押下すると、処理終了後にまた同じ イベントが走ってしまいます。それを回避する方法はありますか? とりあえず、 イベントの処理中はボタンのクリックイベントを無効にする。(Button.OnClick := nil) イベントの処理中はボタンを無効にする。(Button.Enable := False) イベントの処理中は親フォームを無効にする。(Form.Enable := False) イベントの処理中はマウスのクリックイベントをスルーする。(Application.OnMessageイベント) なんてことをやってみましたが、結局は処理終了後にクリックイベントが発生してしまうため 無駄でした。 分かる方がいましたら、よろしくお願いします。
>>589 重い処理の始まりにフラグを立てる
ボタンを無効化
重い処理の終了時にフラグを倒す
OnIdleとかでフラグが倒れているのを確認したらボタンを有効化
こんな流れはどう?
>>590 ループしますよ・・?
失礼ですが、きちんと確認の上なのでしょうか?
>>589 「処理中」にボタンを無効にする
んじゃなくて
「処理前」にボタンを無効にしたらどうなんでしょ?
Actionにして処理するときTAction.Enabled:=falseにする。 OnUpdateでtrueに戻す。
>>590 できた!できたよ!!ありがとう。
フラグはデフォルト0にして、処理終了時に1にセットするようにして、
OnIdleイベントでフラグが1のときはボタンをアンロック、フラグを0にリセット、って
流れでバッチリOKでした。
でもこの場合、入力項目を動的にチェックして、ある条件下ではボタン使用可、
それ以外の場合は使用不可、っていう場合分けがあった場合、OnIdleイベント
にもその条件を追加しないといけなくなってしまいますね。後々条件が変わった
時なんかにはちょっと注意しないといけないって言うのがつらいところですね。
>>591 処理中、という書き方をしましたが、実際はボタンのOnClickイベントで、
Button.Enabled := False;
try
・・・イベント処理・・・
finally
Button.Enabled := True;
end;
という書き方をしました。ボタンが一時的に無効になっていることは間違いないです。
あれれ。594の
>>591 ってのは
>>592 に訂正です。
>>590 >>591 は私じゃないです。ループにはならないし。あと、ボタンの使用可不可が動的に
変更される場合も、ボタンを無効化する前にボタンの状態を取得しておいて、OnIdle
では取得しておいた状態に戻せば問題ナシですね。
>>593 できました!!OnUpdateっていうのは使ったことなかったけど、OnIdleの機能も含む
ものなんですね。スバラスィ。
try Button.Enabled := False; ・・・イベント処理・・・ Button.Enabled := True; finally
>>596 それだとうまくいきません。今回の質問では、tryとfinallyは関係なかったですね。
今回は
>>593 のやり方で行こうと思っています。どうもありがとうございました。
粘着のなりすまし荒らしが住み着いている模様 質問者・回答者ともにご注意を お礼の代わりに暴言・珍言を書き込むのは荒らし 釣られないようにね
さっそくバカが釣られてる 放置しる
質問者は捨てトリップでいいからトリップ使って書き込もう。
気付くの遅ェーんじゃない?
>>594 『アクション』オブジェクトと実行中のフラグ変数を用意すれば
実行できる条件がどんなに複雑でもシンプルに対処できます.
// ※Button1のActionプロパティにAction1を指定しています.
TForm1 = class(TForm)
ActionList1: TActionList;
MainMenu1: TMainMenu;
Action1: TAction;
Button1: TButton;
procedure Action1Execute(Sender: TObject);
procedure Action1Update(Sender: TObject);
private
{ Private 宣言 }
FExecuting: boolean;
function GetExecutable: boolean;
public
{ Public 宣言 }
procedure Execute;
property Executing: boolean read FExecuting; // 実行中かどうかを返す
property Executable: boolean read GetExecutable; // 実行できるかどうかを返す.
end;
(つづく)
>>602 (つづき)
// 処理メソッド
procedure TForm1.Execute;
var
i: integer;
begin
FExecuting := True; // 最初に処理中フラグを立てる.
try
// 処理コード
finally
FExecuting := False; // 最後に処理中フラグを確実に降ろす.
end;
end;
function TForm1.GetExecutable: boolean;
begin
Result := not Executing; // ここでは単に実行中なら実行不可能としているが,さらに条件を複雑にすることも出来る.
end;
procedure TForm1.Action1Execute(Sender: TObject);
begin
Execute;
end;
procedure TForm1.Action1Update(Sender: TObject);
begin
(Sender as TAction).Enabled := Executable; // Action1.Enabled と書かないのは名前が変わってもコードを変えなくていいから.
end;
(以上)
604 :
本7 ◆HON7/awDa. :03/04/24 22:58
無料のDel6使ってます。 ServerSocketを利用したTCP通信の基本的な流れ教えてください。 telnet風サーバを作るとして、 ソケットのポート指定、オープンした後にどういうイベントの流れをする んでしょうか?あとソケットってオープンしてアプリを終了すまでオープ ンしっぱなしでいいんですか?それともリクエストごとにオープン・クロ ーズさせるんですか?宜しくお願いします。
開発者ガイド: Delphi プログラマーズガイド サービスアプリケーション あたりに詳しめの解説があったようななかったような
607 :
デフォルトの名無しさん :03/04/24 23:12
6 Personal の Help には無いですね >> サービスアプリケーション
と思ったら、ありました。前言撤回。
煽りでもなければ、あげあしとりでも無いんだが、 「フラグが倒れたら」って言い方ってするの? 「立ったら」でなくて? 普通は「倒れる」って言うのかな?
>>610 いや「立てる」って言い方以外を初めて見たもんでね。
ま、そんだけだから。はい、次↓
フラグってフラッグ(flag)と同一?
あたぼうよ
JournalHookで WM_MOUSEWHEELイベントを記録したデータを そのまま再生に流しても動いてくれません。 (ホイールの上下に動かした部分が動作しない) 解決方法を教えてください。お願いします
615 :
本7 ◆HON7/awDa. :03/04/25 04:41
探したけど初心者向きなサイトがありませんでしたのでもう一度質問させていただきます。 TServerSocketを使用してtelnet風サーバを作ろうとしています。 コードと簡単な説明していただければ自力でいじりまわって考えますので。 23番ポート使用>ソケットの起動>要求待ち>ログイン画面送信>応答メッセージ 受信>ログイン認証>プロンプト表示 までを最小限の形で結構なので挙げていただけ ませんか?宜しくお願いします
>>611 「立てる」の対義語が思いつかなかったんです ^^;
>>560 遅レスとなってしまってすみません。
風邪ひいてくたばってました…。
やっとできました。
S1 := Edit1.Text;
siz := Length(S1);
for i:=1 to siz do
begin
i2 := Byte(S1[i-0]) xor 23;
WriteInteger('Setting', 'Passward[' + IntToStr(i) + ']', i2);
end;
とiniファイルに保存すれば簡単にいきました。
ありがとうございました。
書くのはできたのですが
読み込みがうまくいきません
var
i, i1, i2 : Integer;
S : String;
while ValueExists('Passward', IntToStr(i)) do
begin
i1 := Byte(ReadInteger('Passward', IntToStr(i), StrToInt(Edit1.Text)));
i2 := i1 xor 23;
S := S + String(i2);
Inc(i);
end;
Edit1.Text := S;
EraseSection('Passward');
としても何もEdit1に読んでくれません。
>>617 の
WriteInteger('Setting', 'Passward[' + IntToStr(i) + ']', i2);
は
writeInteger('Passward', IntToStr(i), i2);に書き換えました。
どうかアドバイスよろしくお願いします。
>>615 DelphiのフリーコンポーネントでIndyってのがあります。
それを使うとネット接続関係で悩まなくてよくなりますよ。
自分もWinSockを使って一から自作しようとか考えてたんですが
あまりに未熟なため結局、最終的にはIndyで妥協しました。
>>615 619の言うとおり、IndyにTIdTelnetがあるから、それを使った方が早いと思われ
621 :
本7 ◆HON7/awDa. :03/04/25 14:51
うまい事動きだしました。あとはコマンドの解釈と処理を作っていくだけっぽいです。 unit telnetd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, ImgList; type TForm1 = class(TForm) Memo1: TMemo; Label1: TLabel; CheckBox1: TCheckBox; Label2: TLabel; Button1: TButton; ServerSocket1: TServerSocket; ImageList1: TImageList; procedure CheckBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ThreadEnd(Sender: TObject;
622 :
本7 ◆HON7/awDa. :03/04/25 14:51
長いのでソースのでるのやめます。
>>622 =本7
お前ラウンジで空気読まずにスレ潰しまくってたクズ固定だろ?
何やってんだ?こんなとこで…さっさと死ねよ!!
624 :
デフォルトの名無しさん :03/04/25 17:10
Memo1.Linesの内容を.txt形式で名前を付けて保存したいんです。 「名前を付けて保存」のダイアログを出すとこまではいったのにMemo1.Linesの内容が受け渡せません。 どのように記述すればよいのでしょう?
625 :
デフォルトの名無しさん :03/04/25 17:13
シャープはくそだすばかよろう
(´-`).。oO(SaveToFileメソッド知らんのかい・・)
>>624 var
S: String;
S := Memo1.Lines.Text;
S.SaveToFile('txtファイルの名前.txt');
>624 こんな感じじゃね? if SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end;
629 :
デフォルトの名無しさん :03/04/25 17:23
>>624 TStringListに受け渡してSaveToFileメソッドを使って保存したら?
ああああああああ・・・・629は見なかったことにしてください・・・・。
何度もカキコすみません。 String型をByte型にキャストして そのByte型からString型にキャストし直すのが 間違っているのでしょうか? どうか簡単でもいいので教えて下さい。 どうかよろしくお願いします。
>>631 その通りかと。
Ord関数を使いなはれ
633 :
デフォルトの名無しさん :03/04/25 17:36
>627-628 何度やってもエラーがでてしまいます。どうすればよいのでしょうか。 [エラー] Main.pas(855): forward または external 宣言された 'TMainWnd.Button1Click' が見つかりません
>>633 それは627-628のせいじゃなくてアンタのミスでしょ・・。
ソースを最初から見ていって
TMainWnd.Button1Clickの項目を削除しなさい。
ところで627のソースってエラーになるよね。。
>>632 ついにできました!!
感激です。
小さなミスをたくさんしていました。
書き込み
S1 := Edit1.Text;
siz := Length(S1);
for i:=1 to siz do
begin
i2 := Ord(S1[i]) xor 23;
WriteString('Passward', IntToStr(i), IntToStr(i2));
end;
読み込み
while ValueExists('Passward', IntToStr(i)) do
begin
i1 := StrToInt(ReadString('Passward', IntToStr(i), Edit1.Text));
i2 := i1 xor 23;
S := S + Chr(i2);
Inc(i);
end;
Edit1.Text := S;
EraseSection('Passward');
で完了です。
ほんとうにありがとうございました。
integerの可変長配列をTListを使って作成しました。値をInteger(Items[0]) というふうにキャストして出し入れしてるのですがこれは違法でしょうか。 また他に何か良い作成の仕方があれば教えて下さい。
>>635 おめ!
暗号化のときのは、Ordでも、Byteでも、今回は同じ結果になったはず(笑
>>635 のソースを見て思ったんだけど、
Char型を数値に変換するとき、Ordを使うのとByte型にキャストするのとどっちが処理が速いんだろう?
Delphi6パーソナルにIndy9ってインストールできますか?
>>638 CPUウィンドウで見てみたら、どっちも、
mov esi,ebx
and esi,$000000ff
になってたから、まったく同じっぽい。
>>639 出来るはず。
>>640 サンクス
こんなことで悩まなくてよいってことだね。
SHFileOperationAPIを使用してファイルの移動、カット&ペーストを 行っているんですが、逆に移動やカット&ペーストを「元に戻す」には どうすればいいんでしょうか?
Indyに手を出すのが何となくイヤな人は、urlmonとか wininetはいかがだろうか? かくいう私はIndyは入れてません。
カット(ちゃん)ペースト
>>636 Integer型へのポインタを入れるのが定石です。
>>645 なぁ、アドレスとポインタは区別した方が良いぞ。
>>636 Sizeof(Integer^) = Sizeof(Integer)
である保証はないんだけどWin32に関しては問題ないんじゃないの?
Unicodeを扱いたいのですが WidecharToStringでどう書けばいいか 分かりません。 Unicodeが「E63E」なのですが WidecharToString(E63E); とするとE63Eは未定義だと言われます。 どうか教えていただけませんか? よろしくお願いします。
TList の以下のような使い方で、保持したデータをクリアするとき TList.Clear; だけではだめなのでしょうか? type pData = ^TData; TData = record Size: Integer; Name: string; end; var DList: TList; // FormCreate、FormDestroy で生成・廃棄する procedure MakeData; var PD: pData; FSize: Integer; FName: string; begin New(PD); ……………… PD^.Size := FSize; PD^.Name := FName; DList.Add(PD); end; procedure ClearData; var i: Integer; begin for i := 0 to DList.Count-1 do Dispose(DList.Items[i]); //これだけでいいのか? // DList.Clear; ← これだけではだめなのか? end;
>>649 宙ぶらりんポインタにはくれぐれも気を付けてね。
16進数表記って知ってる? WidecharToString(#$E63E); か $E63E でいけないかな?
>>649 あー、俺それでこの前ハマったわ。
まず、Clearはダメ。disposeとかしてくれない。
なので自前でdisposeするわけだが、その前にItemsをpDataにキャストしておかないと、
TDataの中にあるString型の変数が正常に破棄されないので注意。
TDataをクラス型にして、TObjectListを使った方が楽かもしれない。
Delete/Clearするとき自動でFreeできるから。
うちの周りが選挙活動に占拠されとる。
>>652 > なので自前でdisposeするわけだが、その前にItemsをpDataにキャストしておかないと、
これでいいんでしょうか?
procedure ClearData;
var
i: Integer;
begin
for i := 0 to DList.Count-1 do
begin
PD := DList.Items[i]; //ヘルプの例を見たらこれでいいらしい
// 本来ならば PD := pData(DList.Items[i]); とすべきだと思うが・・・
Dispose(PD);
end;
end;
>>654 それでいいと思う。
一時変数PDを経由せずに dispose(pData(DList.Items[i])); でも可。
あと、DisposeしてもTListのItems自体は削除されない(Itemsが保持しているポインタが無効になるだけ)。
なので、for ループが終わったあとに DList.Clear しておくべきだと思われ。
>>651 ありがとうございました<(__)>
無事できました。
Button1.Caption := Form1.Caption のようにエディタで表示状態にして書くと 不正なプロパティ値ですと怒られてできません。 これはコードエディタで Form1のCreateイベントで書かなければなりませんか? ボタンが200個近くありまして いちいち書くとForm1のOnCreateイベントが膨れ上がって しまいます。 エディタで表示をしている状態でこのようにするのは 不可能ですか?
FORM 上の 全ての Button のCaption を変更するなら、 FindComponent をloopででも回せばよろしいのでは。
今書いたのは例で ボタンにつき違うCaptionを割り当てたいです。 地道にOnCreateイベントに書いてきます。
>>652 わたしもTObjectListを使ってオブジェクトのリストにした方が良いと思います.
レコード型は基本的に使わない方がよいと思います.
>>657 これは何に使うボタンなのでしょうか.
ちょっと前のレスにあった絵文字選択とも違うようですし.
どういうボタンがあってどういう目的に使うかがわかれば良いのですが.
なんでイベントハンドラにべた書きするかなあ。
> TDataをクラス型にして、TObjectListを使った方が楽かもしれない。 こんな感じでしょうか? type TData = class(TObject) private FSize: Integer; FName: string; end; var DList: TObjectList; // FormCreate、FormDestroy で生成・廃棄する DList.OwnsObjects := True; //ヘルプを見たら「OwnsObjects プロパティが True の場合,Clear メソッドはリスト内のオブジェクトも解放します」とある procedure MakeData; var PD: TData; TempSize: Integer; TempName: string; begin PD := TData.Create; ……………… PD.FSize := TempSize; PD.FName := TempName; DList.Add(PD); end; procedure ClearData; var i: Integer; begin DList.Clear; //これだけでよいのでせうか? end;
>>662 そう。
構造体よりメモリ消費量は増えるけどな。
>>645 助言に従いポインタを使ったやり方で整数の可変長配列クラスを以下の様に作成
しました。
unit Unit1;
interface
uses
Classes;
type
TIntegerList = class(TObject)
private
FList: TList;
function GetItem(Index: Integer): Integer;
procedure SetItem(Index, Value: Integer);
property List: TList read FList;
public
constructor Create;
destructor Destroy; override;
procedure Add(Param: Integer);
procedure Delete(Param: Integer);
property Item[Index: Integer]: Integer read GetItem write SetItem;
end;
constructor TIntegerList.Create; begin inherited Create; FList := TList.Create; end; destructor TIntegerList.Destroy; var i: Integer; PInt1: ^Integer; begin with List do for i := 1 to Count do begin PInt1 := Items[i - 1]; FreeMem(PInt1, SizeOf(Integer)); end; FList.Free; inherited Destroy; end;
function TIntegerList.GetItem(Index: Integer): Integer; var PInt1: ^Integer; begin PInt1 := List.Items[Index]; Result := PInt1^; end; procedure TIntegerList.SetItem(Index, Value: Integer); var PInt1: ^Integer; begin PInt1 := List.Items[Index]; PInt1^ := Value; end;
procedure TIntegerList.Add(Param: Integer); var PInt1: ^Integer; begin GetMem(PInt1, SizeOf(Integer)); PInt1^ := Param; List.Add(PInt1); end; procedure TIntegerList.Delete(Param: Integer); var PInt1: ^Integer; begin PInt1 := List.Items[Param]; FreeMem(PInt1, SizeOf(Integer)); List.Delete(Param); end; で質問なのですがGetItem,SetItemの所で一時変数を介さずに行うやり方が 分からなかったのであれば教えて下さい。
668 :
本7 ◆HON7/awDa. :03/04/26 19:24
<>で区切られた一列の長いtxtファイルを解釈して項目別に分けてやる処理がしたいです。 文字列を区切ってstring型の配列に格納するにはどうすればよいですか?
669 :
ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/26 19:26
>>667 Result := PInteger(FList.Items[Index])^;と
PInteger(FList.Items[Index])^ := Value;
array of Integerのほうが100倍まし。勉強し直してください。
>>668 TStringStreamにつっこんで一文字ずつ取り出して'<>'が来たかどうか調べるとか。
672 :
本7 ◆HON7/awDa. :03/04/26 19:45
>>668 ありがとうございます。やはり全文字を評価しないとダメですか。
perlのsplitみたいなのをクラス定義しておくと便利かもしれないですね。
>>670 有難うごさいます。以後精進したいと思います。
一つ疑問があるのですがarray of integerでクラスを用いたやり方のように
容易に配列長を変化させる事は可能なのですか?
675 :
本7 ◆HON7/awDa. :03/04/26 20:14
>>671 こんな感じにはやってみました。
このあとどうやって取り出すんでしょうか?
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
Rec:TStringList;
F:string;
Check: TStringStream;
begin
ClientSocket1.Close;
F := Edit5.Text;
Rec:=TStringList.Create;
Rec.Add(ClientSocket1.Socket.ReceiveText);
Rec.SaveToFile(F);
Rec.Free;
Memo1.Lines.Append(Rec.Text);
WebBrowser1.Navigate(F);
Check := TStringStream.Create(ClientSocket1.Socket.ReceiveText);
Check.WriteString(Rec.Text);
end;
676 :
本7 ◆HON7/awDa. :03/04/26 20:16
何か間違えてました・・ procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var Rec:TStringList; F:string; Check: TStringStream; begin ClientSocket1.Close; F := Edit5.Text; Rec:=TStringList.Create; Rec.Add(ClientSocket1.Socket.ReceiveText); Rec.SaveToFile(F); Rec.Free; Memo1.Lines.Append(Rec.Text); WebBrowser1.Navigate(F); Check := TStringStream.Create(Rec.Text); ここからがわかりません end;
>>672 どっちにしても全ての文字を調べるのは同じこと。
まさかPerlのSplitはマッチしなさそうなところは飛ばして調べないとか?
678 :
本7 ◆HON7/awDa. :03/04/26 20:21
>>677 おっしゃるとおりです。
ただライブラリが用意されてるんならそれを使いたい・・と言うか
自分の作ったクラスに実行速度が望めるかどうか。。
素直に標準で正規表現サポートした言語使えばいいのに。
>>681 あなたが
>>668 の問題を正規表現でどう解決するのかとても興味があります。
ぜひご教示ください。
TStringListにAddっていう元からある文字列に追加していくメソッドがありますが 元からある文字列を破棄して文字列を追加する、という処理はどうやってやればいいでしょうか?
>>683 全部破棄するの?
それとも特定の行を入れ替えたいの?
>>668 CommaText プロパティまたは DelimitedText プロパティは?
>>686 A. ClearしてAdd
B. Text:='新しい文字列'
C. Freeして新しくCreate
>>687 Bで自分のやりたいように処理させる事が出来ました
ありがとうございました
>>642 騙りじゃないとして…
マルチポスト先にレスが付いてるから確認しろやカス。
>>690 つーか、検索するなり、このスレのテンプレートから探すなり…。
カスとか言ってる時点で煽りじゃないのか
>>692 どの辺に「煽り」って文字があんだ?
「誰かのイタズラで騙りでなければ」って意味だ。
脊髄反射すんな。
読み間違えただけじゃないか('A`) なんか風紀厨が来てますね
マルチポストするようなアフォは放置しる。わざわざ煽んな、妙なの紛れるから。
>カスとか言ってる時点で煽りじゃないのか ↑これは「何厨」としての書き込みなんだ?
Indy9.1.11で メーラーを作ってるのですが 送信はうまくいっても 受信がうまくいきません 具体的にはヘッダは読み取れるのだけど 本文が読み込まれないといった具合です デモを見ながら作成していったので どこか見落としがあるのかと思い IndyのDemoをダウンロードして実行しても同じでした (以下に問題の発生するDemoのソースを抜粋) TfrmMain.RetrieveExecute---------------------------- //get message and put into MSG ShowStatus('Retrieving message "' + lvHeaders.Selected.SubItems.Strings[3] + '"'); POP.Retrieve(lvHeaders.Selected.Index + 1, Msg); //Unknown Message Part Type.の例外 statusbar1.Panels[0].text := lvHeaders.Selected.SubItems.Strings[3]; IndyDemo h**p://www.nevrona.com/indy/demodownloads/I9D6_Demos_24Nov02.zip 何か見落としがあるのでしょうか?
Indy9.1.11で → Indy9.0.11で
Delphi6Personalの無料版を使い始めたばかりなんですが、質問です。 自作のプログラムをコンパイルするときに、何か作成元に関する情報がこっそり埋め込まれたりするんでしょうか。 自作ツールを匿名で配布したいんですが。
デルファイを立ち上げた時、作成されている標準フォームを例にします。 アレの、 Public やら Private やらは UNIT という物に直接かかっている訳ではありません。 UNIT 上で宣言された Class = TForm1 の定義なのです。 試しに新規作成で UNIT を作成してみればわかりますが、Public 云々の記述はありません。 Public 云々について知りたければ、デイファイにおける クラス の方を資料をあさりましょう。 UNIT と言うのは、ソース群を格納・保存するための、規格単位です。 ソース群を UNIT 単位で区切る事によって、再利用性や、独立性を高める事が可能になっています。 Help の オブジェクトパスカル言語ガイド の プログラムとユニット と、 クラスとオブジェクト 辺りを流せば、多少理解が深まるかと。
>>690 「カス」及び「マルチポスト」は、あなた宛ではありませぬ。
>>642 宛ザマス。
と、いいますか、ヘルプ読みつつ、何か作ってればそのうち自然に覚えます<Unitとか
作者の身元が漏れなく埋め込まれます
そういや、少し前にウイルス作者が捕まったけど、 あれ、VCで作ったEXEに何か埋め込まれたからだったっけ?
706 :
デフォルトの名無しさん :03/04/27 10:12
すいません。質問です。 DelphiでつくったかどうかわからないAというアプリに搭載されている Editコントロールで選択中の文字列を、DelphiでつくったBというアプリ側で 取得する方法というのはありますでしょうか? ウィンドウハンドルを取得して、sendmessageを使用するのではないか、とい う憶測を立てていますが、あまりにもWindowsAPIが膨大で、どのメソッド、 メッセージを使用したらよいのかわかりません。 よろしくお願いします。
>>706 ありがとうございました!スレ違いスマソです。
これって結構有名なサイトですよね。完全に見落としていました。
とりあえず、試してみます。
709 :
デフォルトの名無しさん :03/04/27 11:18
(-_-) 誰もカキコしてない・・・
710 :
デフォルトの名無しさん :03/04/27 14:53
質問です。 TMediaPlayerをつかって、音楽を再生しようとしてるのですが、 MediaPlayer.FileName := ('hogehoge.mp3'); MediaPlayer.Open; MediaPlayer.Play; で、MP3を再生しようとしたときに比べて MediaPlayer.FileName := ('hogehoge.mid'); MediaPlayer.Open; MediaPlayer.Play; でMIDIを再生しようとすると読み込み時間が長くなってしまいます。 このMIDIを読み込み時間を短縮するにはどうしたらよいでしょうか?
>>710 MIDIファイルから音源のリセットを削除。
※DTM音源の場合、動作モード切替のMIDIメッセージの処理に50ms程度かかります。
そのため、リセット送信後は50-100msほど何もデータを入れないのが普通。
さらにそのあとに各CHに初期パラメータの設定をするので即時演奏開始は基本的に不可。
>>711 あ、なるほどね。
読み込み時間が長いわけじゃなくて発音開始までが長いのか。
710じゃないけど妙に納得。
なるほど。 MIDIファイル自体をいじらないとどうしようもないわけですか。 ありがとうございました。
初心者質問ですがお願いします。 private fname:string; public property name: String read fname write fname; とするのと public name:string; とするのは何か違いがあるのでしょうか? プロパティにすると何か利点があるんですか?
(・∀・)新着 5件
>>714 読み書きを制限できたりとか、Incの引数に指定できなくなるとか?
アプリをアプリの中で起動したいんですが、 アプリを起動する方のアプリはどのようなパスを記述してつくればよいでしょうか?
>>714 オブジェクト指向の入門書とかを読むと書いてあるよ
>>717 起動したいアプリのパスを記述してください。
>>716 上に書いたような同じ変数をRead、writeする場合はどうなんでしょう。
よくみかけるんですが
利点というか、こうしなくてはいけない理由って
なんですか?
>>720 例えばコンポーネントを作ってWebなどで配布した場合を考えると…
配布後しばらくしてそのコンポーネントの機能を拡張し、
ある「状態」の変化に応じていくつかの「動作」をさせたくなったとする。
この時その「状態」を保持しているのがただの変数だったら
それらの「動作」はどこへ記述したらいいだろう?タイマでも使う?
それともコンポーネントの使用者にそのためのコードを書いてもらうように通知する?
これがとても馬鹿げたことなのは言うまでもないでしょ。
つまりコンポーネントを使用するアプリに変数をそのまま使うことを認めてしまったら
その変数に関する動作の変更は極めて制限されてしまう。
ところがこれをプロパティの形にしておけば
「状態」の変化に応じた「動作」はWriteメソッドに記述すれば済むし、
このコンポーネントを使用しているアプリも
ただ再コンパイルするだけでその機能が拡張されることになる。
このようなわけで
コンポーネントに限らず、クラスの再利用という観点から
変数をpublicにすることは絶対といってもいい程しない方が良く、
たとえ現時点では単なる変数と同じであっても
あえてプロパティの形にして使うことが推薦されているというわけ。
(たとえ自分がその場で使うだけのクラスでもプロパティを使う習慣にしておくと
後で変更する際に記述する場所がはっきりして楽。
更に言えば、これはあくまでも理由のひとつにすぎず
値域や読み取り専用・書き込み専用といった制限等の理由も勿論あるよ。)
read, write共に同じ変数を指すのなら、特にメリットは無いんじゃないかな? ただ、後からwriteをSetメソッドにしたくてプロパティに変えた時、 (内部で)単なるフィールドの代入を意図していた部分を全て書き変えないといけないのが手間かも。 それなら最初からプロパティにして、 nameとfnameを使い分けておけばいいという話かな…実際はそううまくいかないけど。 余談ながら、read onlyなプロパティと引数の無いfunctionメソッドは 後から交換しても利用側のコードを変えなくて済みます。
いけね Delphiのプロパティは見かけ上変数と同じになるから、 変数を後でプロパティに置き換えてもアプリ側には気づかれないんだった。 「状態」⇒「動作」の件は無しね。
たとえば、プロパティだと参照渡し出来ないとか ポインタ取れないとか?
725 :
本7 ◆HON7/awDa. :03/04/28 14:22
TClientSocketの質問です。 GET /*** HTTP/1.1を送って帰ってきたデータを例えば procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var RecText:string; begin RecText := ClientSocket1.Socket.ReceiveText; Memo1.Text := RecText; end; で読んでも読みこんだテキストが途中で途切れてしまうんですが全部読みこむ にはどうすればよいですか?
>>726 >
>>725 > せめて自分で原因を特定して来い。
それって、「*やさしい*」くないんじゃないの?
看板に偽りありだな。(w
>>725 TIdHTTP(Indy)使ってください。ヘッダとか簡単に扱えてマジおすすめ。
729は頭がおかしいよ。
>>730 みんなわかってるよ
アホは放置すべし。
自助努力の足りない人間を救うことは誰にも出来ない
原因を特定できないからここに来るんだろうにねぇ.(w まあしかし 725 さんへ送る言葉としては, 「悪い事は言わないので TCP/IP の本を一度読みましょう」 多分デバッガか何かで見て全部のデータがきていないと判断したのでしょうが, 全文到達するまで繰り返し OnRead が発生しているはずです. 安易に Indy を薦めるのもどうかと思います TClientSocket はプロトコルのやりとりが見えて勉強には良いです (まあ既に Obsolete なんですが・・・) Indy は抽象化が進みすぎていて初心者には全体が把握しきれないと思います
DELPHIでWINDOWSCE用のソフトが作れますか?
737 :
デフォルトの名無しさん :03/04/28 20:30
スパルタ質問スレだと言っておろう 莫迦にはそれが分からないものです
>>735 彼がプロトコルについて分かっているかかなり怪しいですが、
分かっているんならわざわざめんどくさいことしなくていいのでは。
Indyは標準でついてきますし。
>>735 勉強するのはいいけどさ、
ちょっと詰まるたびにいちいち聞かれるほうはたまったもんじゃないよ。
アンタが専属教師になるっていうなら別だけど
別に回答を強要しているわけじゃないんだから無視すればいいだけだろ? 自意識過剰の自治厨が。 って言う奴が出てくる流れだ。
>>740 あーた自分でいっちゃってるじゃないさ。
742 :
デフォルトの名無しさん :03/04/28 23:28
Delphi始めたばかりの初心者です。 質問があります。 半角の 10 を、全角文字の10に変換する関数ってあるでしょうか?
>>742 Delphiにはないです。LCMapString APIを呼べばできます。やり方はDelphi Acid Floorで。
なお、ここはDelphi初心者対象ですので[「上記サイトへはどうやって逝けば」とかいう
質問には応じかねます。上記の単語を使ってググれば容易にたどり着けますよ。
あっ。釣れた(w
クラい性格だな。楽しいか?
半角から全角への変換って出来なかったのか
小文字から大文字なら余裕だけどな
やっぱりできないんじゃん(藁
おいおい待ってくれよブラザー。 a=srting.toZenkaku("10"); だろ?
半角から全角にする必要ないしな
質問なのですが、ローカルにあるhtmlファイルをWebBrowserに表示させるにはどうすればいいのでしょうか?
また釣りか。いい加減にしろよな。
昔々、ある村に住む羊飼いの少年は、 村人にオオカミがきた、オオカミがきたと言っては(ry
捕まって半殺しにされてました。
>>742-749 半角なんて種類が限られてるからそういう関数を作る気になれば誰でも作れるだろ
(俺は何年も前に作った自前のを持ってる…美しくはないからウプする気もないけど)
757 :
デフォルトの名無しさん :03/04/29 01:24
>>756 最近の書き込みを見ていると
変数を宣言する,計算して代入する
といった超基本的なことができていない方が増えているような….
でもVBやDelphiだと出来なくてもプログラムが動いてしまうわけで.
>VBやDelphiだと出来なくてもプログラムが動いてしまうわけで. Delphiはしっかり動きません。VBなんぞと一緒にせんでくれと。
Menu1.ShortCut := TextToShortCut('Ctrl+/'); Menu2.ShortCut := TextToShortCut('Alt+/'); のように '/' を組み合わせた場合 Win9x ではうまくいきますが XP ではだめなようです。 なぜでしょうか?
>>742 > 半角の 10 を、全角文字の10に変換する関数ってあるでしょうか?
そのものズバリの関数が標準で実装されています。
ユニット System
カテゴリ 文字列処理ルーチン
function Han10ToZen10(S: string) :string;
説明
Han10ToZen10 は,半角文字列 '10' を 全角文字列 '10' に変換します。半角文字列 '10' 以外の文字列を指定したときは半角文字列 '0' を返します。初心者向きの関数として非常に有名です。
ソース(system.pas より)
function Han10ToZen10(S: string) :string;
begin
Result := '0';
if S <> '10' then Exit;
Result := '10';
end;
SaveDialog1.FileNameと Memo1.Linesの内容を消すにはどうすればいいですか?
SaveDialog1.FileName := ''; Memo1.Lines.Clear();
766 :
本7 ◆HON7/awDa. :03/04/29 10:28
まぁ、半角の '10' を全角の '十' と変換できるとそれなりに価値はある。 '1234567890' を '壱拾弐億参千四百五拾六萬七千八百九拾' とか '十二億三千四百五十六万七千八百九十' に変換。もちろん逆変換も。 馬鹿にするほどの内容ではないよ。
>>766 VBはメモリアクセス違反じゃなく、参照が無いや、配列が足りないといった
実行時エラー(例外)になるね。
APIを使ったらDelphi同様注意しなくちゃならないけど。
IMEで出来るがな
そのとーり。IMEのAPIに投げて変換すればOK
772 :
デフォルトの名無しさん :03/04/29 12:28
現在時刻を取得するにはどうすればよいでしょうか?
775 :
デフォルトの名無しさん :03/04/29 13:58
表面的に同じ動作をさせる場合DirectXを使うのと使わないのでは、DirectXを使っている方が処理速度が早いんですか?
777 :
本7 ◆HON7/awDa. :03/04/29 19:16
いろいろ調べたんですが分からなかったので質問させていただきます。 CreateProcessで"C:\perl\perl.exe ***.cgi"を引数なしで実行し実行結果を 変数に格納したいのですが基本的なコードを書いて頂けませんか? そこからいじくって広げていきたいです。よろしくお願いします。
文字コードを判別するにはどうしたらよいのでしょうか
Del厨の癖にどうしてこんなに偉そうなんだろう?????
総じてアホなVB厨よりは幾分ましかと。
>>781 おまえは何でそんなに偉そうなのかを
教えてくれ。
宗教臭いな
例の白装束集団が言っている危険な電波に毒されてるんじゃないかって思うような 奴が最近多いな。
今時1万円も支払って商用開発できないツールなんて・・・プププ
厨臭いな。
791 :
本7 ◆HON7/awDa. :03/04/29 22:47
Del6無償ですが何か?。リファレンスがあれば助かるんやけど。 教える事に対する謙虚さも持ち合わせてないやつしかいないんだなぁ。 伸びが悪いのもそういう層だからか。 X68000の時は皆UNIX層みたいに有志が多かったのに。 いまいちアプリ容量も横膨れするし見限る所なのか
>>791 >リファレンスがあれば助かるんやけど。
ヘルプって知ってるか?お馬鹿さん。
UNIX屋は厳しいとずっと思っていたが。あんな質問したら総スカンされるはず。 それにとどまらず方々からお説教の嵐だろう。 よくここで祭になっていないものだとみんなの心の広さに感心してるよ。 サンプルコードはヘルプになければググってみれば、結構落ちているもの。 ピンポイントで質問してボタンクリックで動作させてみればテストはできるだろ? 誰も教えてくれなくても一通り書けるみたいなんだし。 多分VB.NETを使えばタダだしサンプルコードてんこ盛りでしょうから、そちらへの 移行をおすすめします(w などと釣られてみる。
嫌われていることに気づかない香具師が約 1 名。
stdcall を読むときどう発音してますか
standard call
すたんだーどこーる
にこーる・きっどまん
エスティーディーコール
cdecl シーデクル?
802 :
本7 ◆HON7/awDa. :03/04/30 02:02
X−BASICのC言語コンバータはええ感じやった
with文について。。。 ヘルプより with 文は,レコードのフィールドやオブジェクトのフィールド,プロパティ,およびメソッドを参照するための簡便な方法です ってえのはつまり、 例 Bitmap.Width := ***; が Width := ***; という風に短くなる ってことですか? 他の使い方(?)とかあるのかな
訳の分からんネタだ…
>>803 上手に使えばコードが見やすくなるけど
使いすぎると混乱を引き起こすことがあるのでご用心
>>803 コンパイル時にはCで言うマクロのように展開されるって聞いたことがあるから
ホントに利点としてはコードを簡略に記述できるってところに集約されると思う。
807 :
デフォルトの名無しさん :03/04/30 05:39
TImageの画像ファイルを半透明にして表示するのは、どうやるのでしょうか?
>>805-806 しょうもない質問にわざわざありがとうございます。
使いどころをちゃんと考えて使うようにしますね。
>>803 C言語で Point p={10,20}; とするような
レコードをその場で初期化するのに使えると思えば良いでしょう。
慣れてくると、クラスインスタンスをその場で作って変数に格納せずに
with TStringList.Create do try
CommmaText:= str;
for i:=0 to Count-1 do begin
・・・・・
end;
finally free; end;
なんて書く事も出来ます
Label1.Captionの後ろから3文字を削除するには? (Label1.Captionには常に3文字以上の文字列が代入されているものとする)
>>812 残念、不正解です
VB厨は死んでください
>>811 Label1.Caption := Copy(Label1.Caption, 1, Length(Label1.Caption) - 3);
>>791 あんたの質問はほとんどのコードを他人に書いてくれっていってるようなもんだ。
それであんたは良いのかい?
>>811 こっちのほうが安全かも。したいことにもよるけど。
var
s: WideString;
s := Label1.Caption;
Label1.Caption := Copy(s,1,Length(s)-3);
正直なところ、TCaption型とString型ってなにが違うのか全然わからない・・。
type TCaption = type string;
Comboboxとかlistboxのitemを一時的に見えなくすることってできますか? ちょっとわかりにくい質問の仕方してすいません。 item0 魚 item1 肉 item2 野菜 こんな感じのがあったとして、なんかの処理をして肉だけを選べなくしたい場合 item0 魚 item1 肉←(灰色になるとか、選択できなくなるようにしたい) item2 野菜 itemから肉を削除するしかないですか?
age
811への回答見て思ったんだが、SetLengthで短くするのってダメ? 漏れはいつも、後ろから削るのはSetLength使ってたんだが・・・。
荒らしツール作ってそう。
自分でつくった関数からLabelとかのプロパティをいじろうとするとエラーになるんですが、 どうすればいいんでしょうか?
>>825 その関数が、どこに所属しているかによる。
ただの独立した関数なら、インスタンス名を指定してアクセスする。
Form1.Label1 とか。
独立した関数の内部で、特定のインスタンスを直接指定するのは
お勧めできないけど。
>>760 コンポ(コントロール)を貼り付けるだけで特に変数宣言しなくても動くことは動くといいたかったのです.
>>807 ぐぐったらこんなのでますた.そういえば前に使ったことありました(汗.
http://homepage1.nifty.com/wizman/component/alphactl/ >>821 純粋に文字数で切りたい場合,全角文字を1文字としてカウントする必要があります.
なお,バイト数で切る場合も全角文字の1バイト目と2バイト目が泣き別れにならないように考慮する必要があります.
※全角文字の1バイト目で終わっている文字列に別な文字列をつなげるとつなげた部分が化けます.
>>825 恐らく関数ではなくて(そのLabelがのっかっているフォームとかの)メソッドするのが吉.
TForm1 = class(TForm)
(略)
private
function Nantoka; // ほかのフォームなどから呼び出す場合を除いてprivateにします.
public
published
end;
メソッドで無い関数や手続きは特定のフォームとかに関係ないもの限定したほうがよいと思います.
たとえば文字列を加工して返す関数などです.
>>825 ラベルなら
function JibunKansu( const Label:TLabel):integer;
begin
Label.Caption:='プロパティに代入';
result:=length(Label.Left);
end;
みたいに引数でラベルを渡せるようにすれば大丈夫だと思うけど?
この場合、Labelはクラス変数になるから参照渡しと同等となるから
リストボックスに似たコンポーネントを探しています。 マウスポインタの矢印は通常左上を指していますが、 リストボックスの左端で右上を指すようになり、その 状態でドラッグすると、リストアイテムの複数選択が できるようになることがあります。 このコンポーネント名は何でしょうか? TListBoxかTListViewだと思っていろいろプロパティを 変えているのですが、うまく動かなくて。
自分で作れよ
>>830 Delphiで作られたアプリだったらリソースを覗くことでコンポーネント名が
分かります。
834 :
デフォルトの名無しさん :03/04/30 20:40
IdHttpのGetメソッドってタイムアウト時間を設定きないんですか?
835 :
デフォルトの名無しさん :03/04/30 20:45
Delphi Personalって商用開発には使えないんですか? 実際に買って箱を開けて仕様許諾を読むまで分からなかった人が多数いるとしたら 本物の詐欺だと思いません?
>>835 そんな事はありませんよ。ちゃんと書いてありますから。
それよりそんなことを調べないで詐欺だと言うほうが失礼ですね。
あなた、VB厨かC#厨かM$厨ですね。
自演 ( ´,_ゝ`)プッ
>>834 ReadTimeoutがそれじゃないの?
板違いですが… ∧____∧ // | ━ ┥ // ( ´ 3`) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ⊂13  ̄つ < 煽りはスル〜 y 人 // \_______ (___)__),// // (煽り))
モナギ…
>>830 TListBoxでも、TListViewでもどっちでもいいから使って、
自分で状態に応じたマウスポインタの形の指定、と、
ドラッグした時の選択状態の変化。を管理すればいけるんじゃないかと思う。
>>830 つーか、クラス名調べられるヤツで調べてみるとか。
>TListBoxかTListViewだと思っていろいろプロパティを
>変えているのですが、うまく動かなくて。
コード書かないで出来るとは思えない。
つーことは結局調べても大したこたないか(藁
>このコンポーネント名は何でしょうか?
↑この問いに答えられる人はいないと思うよ。
なんだか、なぞなぞみたいだ(藁
843 :
本7 ◆HON7/awDa. :03/05/01 01:23
なんだ?俺はラウンジャだぞ
844 :
デフォルトの名無しさん :03/05/01 02:08
商用開発に使えないのは痛いよなあ
っていうか、もう無料じゃないんだよね。 ビギナーには薦められない。
>>844 商用開発できないのはPersonalだけ。
仮にDelphi.NETがVB.NETに追いつけたとしても、Personalじゃ商用開発できないんでしょ? それだったらVB.NET買うに決まってるよ。
つっこみどころ満載ですがあえてスルーしよう。
VB.NETのスタンダードで商用開発するなよw
なんだ、このスレVB使いがいた方が盛り上がっていいじゃん。
スレたVB使いは不要です。
852 :
デフォルトの名無しさん :03/05/01 07:53
VSアカデミック版は商用利用ができなかったんだよね。
6.0ならできたけどな。
質問です。 TBitmapのpixelfomatを指定するとなにかあるんですか? 指定しなくても動作はするんですけど。 処理とかPCへの負担が軽くなったり?
ヘルプに書いてあります。
857 :
デフォルトの名無しさん :03/05/01 18:54
連休中に何か開発環境買おうかと考えているのですが、DelphiとVB.NET、どちらがお得でしょうか?
>>857 取りあえず無料のDelphi6Personalでどんな感じかつかんでみては?
聞いた話ではDelphiよりもVB.NETの方が優れてるとのことですが 実際はどうなんでしょう?
>>859 結局.NETが天下を取るか、それともコケるかで変わってくると思われます。
しばらく待ってみるのが吉。
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< VB.NETの質問はここでするモナー。 ( ) \________________ | | | (__)_)
文字列を描画する前に文字列の幅を取得するにはどうしましょう。
Canvas.TextWidth(文字列) なんてのもあるね
865 :
デフォルトの名無しさん :03/05/01 21:45
VB.NETならもっと簡単に出来ますよw
DelphiとVBは同じものなんだからスレ違いじゃないでしょ
同じもんじゃないけど、VBのシェアを奪おうとかんばっているから 同じような使用目的を目指しているとはいえるなぁ。
VB6使用者はVB.NETよりC#.NETに移行する人が多いらしいけど。 atmarkkitに書いてあった。
Delphiはアマチュアうけがいいから、そこでがんばればいいのに。
相談室も談話室もここも、もうどこもかしこもどいつもこいつも。 面白いのでもっとやってください。
VC++もVBももうだめぽ
>>871 本当だ。これはなっとくできる記事だ。
> 現在最も使われている言語は「VB(6.0以前)」(47%)であった。
現在使用言語 もっとも習得したい言語
COBOL 6 0
C/C++ 33 4
VBA 24 1
VB 47 0
VB.NET 14 13
C# 21 49
Java 31 27
Delphi 7 0
VB(J)Script29 0
Perl/PHP 14 2
その他 10 1
Delphiだめぽ
Delphi 7 0
またループか。 .NETのサイトなのだからVB.NET、C#が圧倒的に有利なはず。 それなのに…
不利な記事を持ってきた奴笑える。自爆してやがる。
IDなくて良かったな( ´_ゝ`)
使われているプログラミング言語ランキング
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160 C(10780)
C++(10440)
Java(8602)
PHP(6495)
Perl(4553)
Python(2349)
VisualBasic(1347)
JavaScript(1179)
UnixShell(1110)
Delphi/Kylix(1070)
Assembly(1006)
C#(736)
PL/SQL(718)
Tcl(664)
Other(586)
ASP(376)
ObjectiveC(339)
Lisp(243)
Pascal(226)
Ruby(216)
X−BASIC N88日本語BASIC XC BasToC
10個パネルコンポーネントを並べて、その中に文字列を 表示させたいのですが、 var Test : Array [ 1..10 ] of Integer; i : integer; n : string; begin for i := 1 to 10 do begin test[i] := i; n := 'Panel' + inttostr(test[i]); n.caption := inttostr(test[i]); end; のよーに書くと 「レコード、オブジェクトまたはクラスのいずれかが必要です」 と怒られるのですが、どうすればよろしいのでしょうか?
>>882 それオープンソースだけだから、それ以外も含めたら全然違うよ。
887 :
デフォルトの名無しさん :03/05/01 23:56
荒らしてるのはすべてDel厨
ll==============ll / ̄ ̄ ̄ ̄\:::::::::::|| ( 人____) やっぱりDelphi最高だよな。 _|./ ー◎-◎-) :::::||_____ /.. (6 (_ _) )_|| / / | .∴ ノ 3 ノ___〕 /‖ ____ / ゝ ノ ヽ/ / ‖/ /|_ / /  ̄ ̄ )__/ ‖|三三三|//|  ̄‖ ̄ ̄ (_ _/ ‖ _|三三三|/ ‖ ( ) ‖ |___|/ ‖ /( )~⌒) ‖ §〜〜 _ /__/ ( / ⊂二⊃ /| .///| \,___λ____,,,ノ \__/ | ̄ ̄ ̄|/
( ´_ゝ`)
>>884 n : string;
n.caption?
>>892 ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
>>893 ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
今後の展開予想
・連休明けまでスレがまともに機能しない
・連休中に煽りのみで1000まで行く
・新スレは荒らしによって立てられる
・新スレの
>>1 にはなぜかVB.NET関連の書き込みが
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。 ( .VB ) .| Delモナーは時に私であり、時にはVB.NETの人。 | | | | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。 (__)_) \_________________________
898 :
デフォルトの名無しさん :03/05/02 01:13
900行ったら新スレ立てるか。
次スレは950よろ
GW終わるまで立てないほうがいいんじゃないかな? 3スレあるから避難先には事欠かないし。
こんな状況の中聞きたいことがあるのですが 変数に一文字しか入れないとして 1バイト文字か2バイト文字か判断させるには どうすればいいでしょうか?
>>902 無理だろ。SJISの2バイト目とASCIIコードとか判別不可。
905 :
デフォルトの名無しさん :03/05/02 02:02
∫ _________ ∧,,∧ ∬ /sjis使うDelphiなんてもう ミ,,゚Д゚彡っ━~ < やってらんねーよ _と~,, ~,,,ノ_. ∀ \ みなーで、寝返ろうや ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ .じ'J ̄ ̄| ┃  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┻
さて、次スレ立てるか。
断固反対。
>>901 1文字しか入ってない、っていう前提でなら、
Length(string(s));
でわかるんじゃない?
>>884 そのパネルの名前が Panel1 〜 Panel10 だとすると
var
i: integer;
thePanel: TPanel;
begin
for i := 1 to 10 do
begin
thePanel := FindComponent('Panel' + IntToStr(i));
thePanel.Caption := IntToStr(i) + '番目のパネルでつ';
end;
end;
>>901 変数が通常の文字列(string)で,かつ正しい1文字が入っていることが保証されているなら
(全角の1バイト目だけとか2バイト目だけということがないなら)
単に長さが1か2かで判別できるのではないでしょうか.
変数がワイド文字列(WideString)なら通常の文字列変数に代入して以下同じ.
ロシア語を入力したいのですがTMemoだと入力できません 文字化けなどではなく反応がないです メモ帖などでコピーしたものはペーストできました また、TRichEditだとうまく入力できました TMemoでロシア語を入力するにはどうすればよいでしょうか?
ロシア語版windowsとdelphiで開発してくらはい。
Delphiはメモ帳より劣ると。
>>910 WideString版のTMemoコンポーネントがどこかにあった筈だから探してみたら?
914 :
デフォルトの名無しさん :03/05/02 11:43
UNICODE, VCLでぐぐればすぐ見つかるでしょ。CLXなら何もせんでいいけど。
916 :
デフォルトの名無しさん :03/05/02 15:39
DelphiってUNICODE対応してないからダメダメなんだよね
>>916 なにげにWindows9xを否定してるんだがな。それ。
>>917 Windowsは2000、XP、2003しかありませんが何か?
920 :
デフォルトの名無しさん :03/05/02 16:52
DELPHIが無くなるとかって書いてあったけど?
923 :
デフォルトの名無しさん :03/05/02 18:12
そろそろ新スレ立てないとね
924 :
デフォルトの名無しさん :03/05/02 18:14
>>925 何を感動したの? 選択するだけでプログラミング気分を味わえるから?
でもさ、中身しらないで、選択してるだけじゃ全く身につかないよ。
・・・そういや中村さんのグラフィックの本に、拡大縮小のアルゴリズムソース付きで解説してたね。
927 :
デフォルトの名無しさん :03/05/02 18:29
VB.NETの方がはるかに簡単にShift_JIS − UNICODE変換ができますね。
>>627 例えば? 違いをあげてくれると嬉しいな どうやって変換するの?
>>929 どこで感動したの? 標準でそういうライブラリが付いてる所?
UNICODEだとオートマトン作るのメンドクサイから、あれば確かに便利だろうね。
でも、そういうやり方に慣れると、肝心のプログラミングが出来なくなっちゃうから注意しようね。
931 :
デフォルトの名無しさん :03/05/02 18:52
>>930 オートマトンの話題についていけなかったのはどの言語使いだったっけ?(大爆笑
>>931 これじゃあDelphiなんか使ってられないね。遅くて。
>>931 ホントだね。
Win2K と Win2003でパフォーマンスに差が出るのがスゴイね。
ネイテブアプリにゃマネ出来そうもないや。
VB6で張り合ってた頃が懐かしいね。 もうDelphiなんてライバルでもなんでもないけど。
Delphiってエンプラ版じゃないとウェブサービス作れないんだろ?
ボッタくりだよまったく。
VB.NETなら無料で開発できるのに。
しかもパフォーマンスは
>>931 の通り最強!!
勝負あったね。
>>936 うん勝負あったね。 で? 何でそんな必死で勝負してるの?
それから、このスレ質問スレなんだけどさ、埋めてるつもりなの? なら新スレたててね
五味記者がDelphiユーザーだって本当ですか?
ゴミにはDelphiがお似合いというおちか?
アル厨釣られすぎ。
でもVB.NET優勢なのは事実なんだよなー
放置しろよ豚ども
ll==============ll / ̄ ̄ ̄ ̄\:::::::::::|| ( 人____) DelphiがVBごときに負けるわけがない。 _|./ ー◎-◎-) :::::||_____ /.. (6 (_ _) )_|| / / | .∴ ノ 3 ノ___〕 /‖ ____ / ゝ ノ ヽ/ / ‖/ /|_ / /  ̄ ̄ )__/ ‖|三三三|//|  ̄‖ ̄ ̄ (_ _/ ‖ _|三三三|/ ‖ ( ) ‖ |___|/ ‖ /( )~⌒) ‖ §〜〜 _ /__/ ( / ⊂二⊃ /| .///| \,___λ____,,,ノ \__/ | ̄ ̄ ̄|/
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< VB.NETの方が優れてるモナー。 ( ) \________________ | | | (__)_)
豚とか言ってごめん でもみんな頑張って放置しようぜ。 むしろVBをNGワードに入れる方向で
IDなくて良かったな( ´_ゝ`)
>>941 優勢な方につきたい性分なの? よく判らんな。
でもさ、ベンチマークで勝ってるから勝ちなんてちょっとオマヌケだと思うよ。
パソコンのリソースは5年で10倍になる。
全く同じベンチマークを5年前のパソコンでやったらどうなる?
5年先にやったらどうなる?
5年先に速度10倍か、扱えるデータ量10倍の好きな方をユーザに選択させてくれるかい?
>>949 まあ、もう埋める時期だろ。 次スレたてて好きにやったらいいさ。
荒れるからGW過ぎるまで次スレ立ててはいけません。
黄金厨が消えるまで次スレはいらんよ 一旦フサスレに合流すればいい
こんなところでいくら煽っても案件は来ないぞ、黄金厨ども
さて立てるかケケケ
>>954 ここで煽って案件来ました。(・∀・)
あなたはここで擁護して案件来ましたか?
>>957 かわいそうに・・・・.NETだろうがJAVAだろうが、
時間売りの人売り仕事なんてやりゃやるだけ若さ吸取られて・・・後には何にも残らないよ。
>>957 腰の回りにダブダブについた肉がのこりマスタ
もう若さなど残ってない定年間際のじいさんだから言えるセリフですね(・∀・)
>>961 定年間際まで現役ならそれはそれでスゴイとは思うがな。
現実は30前後で選別されて大多数は捨てられる。
つーことは30前後で選別されて捨てられたじいさんってことですね(・∀・)
964 :
デフォルトの名無しさん :03/05/02 19:48
a
aa
aaa
aaaa
aaaaa
厨がどうしても過ぎスレ消そうとがんばってるなぁ(w
973 :
デフォルトの名無しさん :03/05/02 19:57
お前らウィソなんか使ってないでマク使えよ。最高だぞ。
976 :
デフォルトの名無しさん :03/05/02 20:02
で、結局立てていいの? 立てちゃ駄目なの?
スレ落ちるので立てましょう。
>>978 厨は「立てるな」と言っても立てるよ
まあ、荒らし目的のスレだったら削除依頼出すだけだけどな
このままスレ消しちゃいましょう(w
結局VB.NET優位は反論されずにこのスレが終わるわけだが
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaaaa
aaaaaaaa
黄金厨恐るべし
993 :
デフォルトの名無しさん :03/05/02 20:28
VB6には勝ってるがな!
Del厨が自作自演でここまで荒らすとはたいしたもんだ
我々は黄金厨には屈しない
皆さんGW明けまでさようなら。
次スレはどこでしょう?
ll==============ll / ̄ ̄ ̄ ̄\:::::::::::|| ( 人____) やっぱりDelphi最高だよな。 _|./ ー◎-◎-) :::::||_____ /.. (6 (_ _) )_|| / / | .∴ ノ 3 ノ___〕 /‖ ____ / ゝ ノ ヽ/ / ‖/ /|_ / /  ̄ ̄ )__/ ‖|三三三|//|  ̄‖ ̄ ̄ (_ _/ ‖ _|三三三|/ ‖ ( ) ‖ |___|/ ‖ /( )~⌒) ‖ §〜〜 _ /__/ ( / ⊂二⊃ /| .///| \,___λ____,,,ノ \__/ | ̄ ̄ ̄|/
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。