トップページ⇒tech
1001コメント309KB

Delphi相談室その4

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
Delphi関連の Tips Q&A はこちら。

■前スレ
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/

■気楽な雰囲気がよければこちら
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412/

つづく >>2-3 あたり
0002デフォルトの名無しさんNGNG
■Delphi関連スレ
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1013298748/
★クライアントサイド最強の Delphi に物申す★
http://pc.2ch.net/test/read.cgi/tech/1001442200/
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

■過去スレ
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/
Delphi相談室その2
http://pc.2ch.net/tech/kako/995/995950803.html
Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0003デフォルトの名無しさんNGNG
前スレの979が気になる・・・
0004デフォルトの名無しさんNGNG
オブジェクトインターフェースの事は過去ログを見るべし。
Delphi-MLも。
00054NGNG
って、そういう事じゃない?
0006デフォルトの名無しさんNGNG
>>1
おつかれー。
0007デフォルトの名無しさんNGNG
ぼくの肛門もDelphiで作られています。
0008デフォルトの名無しさんNGNG
>5
そういう事だと思われ
0009デフォルトの名無しさんNGNG
   @@@@   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (゜д゜@ < あらやだ。新スレおつかれさま。
   ┳⊂ )   \__________
  [[[[|凵ノ⊃
   ◎U□◎ =3 キコキコキコ
0010Delフサギコ ◆zE1iiRdQ NGNG
�I番げっとー!!!!
 ̄ ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \ ∧,,∧
        ミ゚Д゚,,∩
       ⊂;゙   ,ミ ←
 ̄  ̄   ミ゙゙_  ミ〜 ト  ̄  ̄  ̄
       ∪゙ヽ ミ   オ
       /  ∪  \
  /       :    オ
     /    || .   ォ  \
     /     | :   ォ  \
    /       .
           | .   ォ
0011デフォルトの名無しさんNGNG
       ,,- ,,
   ∧∧ミ,, ,;;
   ( ゚ー゚)ノ)"  アゲ
   / ,,- ,,|    
   `ミ   ;
    `''''"
0012デフォルトの名無しさんNGNG
Delphiスレをひとつにまとめろボケ!!
0013上品にNGNG
Delphiスレをひとつにまとめなさって!!よくって!?
0014デフォルトの名無しさんNGNG
Ð ë ĺ þ ĥ ïスレをひとつにまつめるざぁマス。
0015デフォルトの名無しさんNGNG
まつめる て・・・
Ð ë á t h ってきます。
0016デフォルトの名無しさんNGNG
       ,,- ,,
      ミ,, ,;;
    ( ゚ー゚)ノ)"  ハゲ
   / ,,- ,,| 
   `ミ   ;
    `''''"
0017デフォルトの名無しさんNGNG
これが正しい「Delphi」の発音だ!
http://dictionary2.goo.ne.jp/ej/voice/D/02030167.wav
0018デフォルトの名無しさんNGNG
でぅふぉぁいぃ
0019デフォルトの名無しさんNGNG
フォームが表示された直後に発生するイベントって何でしょう?OnActivete?
表示された直後にフォームのボタンを押したいけどOnshowやOnCreateじゃ駄目だった。
0020デフォルトの名無しさんNGNG
>>19フォームが表示されるのが OnPaintなんだから、そこでフラグをたてて
 次に呼ばれたイベントで処理したらいいんじゃない?
0021デフォルトの名無しさんNGNG
ageで質問させていただきます。

DelphiPersonal6.0にて、Winアプリに取り組んでいます。
他のコマンドライン対応アプリを動かしたい場合、どうすればよいのでしょう?
0022デフォルトの名無しさんNGNG
ShellExecute
0023デフォルトの名無しさんNGNG
>>22
感謝します。
0024デフォルトの名無しさんNGNG
俺は CreateProcessが好きだな 手間はかかるけど

With STARTUPINFO Do
Begin
cb := SizeOf(STARTUPINFO); {構造体のサイス゛をセット}
lpReserved := nil; {以外は初期化}
lpDesktop := nil;
lpTitle := nil;
dwFlags := 0;
cbReserved2 := 0;
lpReserved2 := nil;
dwysize := 0;
end;

 CreateProcess(Nil, {実行するフ゜ロク゛ラム名(通常は次のハ゜ラメータを使用)}
        PCHAR(exename+' '+comstr), {実行フ゜ロク゛ラムのコマント゛ライン}
        Nil, {プロセスのセキュリティ属性}
        Nil, {スレッドのセキュリティ属性}
        False, {呼び出し側プロセスからのハンドルの継承}
        0, {プロセスの作成を制御する追加フラグ}
        Nil, {環境ブロックを指すポインタ}
        PChar(GetCurrentDir) , {新しいプロセスのカレントパス}
        STARTUPINFO, {ウィンドウの登録内容}
        PROCESSINFO); {プロセスとその第1スレッドに関する情報}

0025>>24NGNG
CloseHandleを忘れずに
0026Delphi初心者NGNG
今日初めてDelphi落としたんだけど、
誰が1から学べるサイト教えてくらさい。
他の言語はVBとかは多少いじれますが、
全然大したことないので、
本当に1から学べるサイトがいいです。
ヤフで検索したけど、あんまりわかりやすいところがなくて…
ヨロシコです。
0027素数2NGNG
http://home.onestop.net/mineko/index2.html
VBいじれるならここでイイ。
0028回し者じゃないのヨ 本当アルヨNGNG
>>26
「デルファイの魔法」ってとこが、オレは一番分かりやすかったな。
つーか、標準コンポーネント周りだけど。
後は…。みんな似たりよったりかなぁ?検索で「初心者」って入れてみれば?
オレ的には標準コンポーネントいじりから入って覚えていったけど。
つーか、「魔法」って何だ?
0029デフォルトの名無しさんNGNG
>>28
まほう【魔法】
人間わざとは思えない,不思議なことを行う術。魔術。妖術。
0030デフォルトの名無しさんNGNG
(´-`)。o ○ (正直、>>29のレスはどうだろう?)
0031デフォルトの名無しさんNGNG
>>26
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
ここから自分に会うトコを探しなさい。
0032Delphi初心者NGNG
 >>27
そこは既にヤフ経由で見ましたけど、よくわかりませんでした。

>>28
今度ぐぐる検索でもして、わかりやすかったら参考にさせてもらいます。

 >>31
おっ!これは(・∀・)イイ!

またわからないことあったら、来るので、初心者ですがよろしくね。
0033デフォルトの名無しさんNGNG
(´-`)。o ○ (あそこでも分からないって…(絶句)。それと「初心者」て
言葉は恥だし、質問する時も免罪符にすると叩かれるの分かってるのかなぁ…)
0034Delphi初心者NGNG
 >>33
恥かなぁ?
知ったかよりマシだろぉ…
0035デフォルトの名無しさんNGNG
>>34
33じゃないけど、
俺も「初心者」って言葉は好きになれない。
いちいち強調する必要は無いよ。
質問の内容見ればわかるし、表記したことで無礼講が許されるわけでもないし。

そういう俺もつい最近ゆっくり始め出したんだけど、似たような境遇だと余計気になるもんです。
オールドスタイルのBASICから約10年ぶりなもので、浦島太郎状態。
GOSUB〜RETURNがねぇ。行番号もねぇ。使いづらいなぁ
お互いがんばりましょう。
0036デフォルトの名無しさんNGNG
>>Delphi初心者
俺がついさっき作ったサイト
超初心者でもわかるように解説していくつもり。
まだつくりかけだけど。
http://www.geocities.co.jp/SiliconValley-Oakland/6548/index2.html

ちなみにブラウザしか作ってないから、それ以外の話は当分しないけど。

初心者って言葉は嫌いな人もいるのか…
俺は別に気にならないから自分も使ってしまっている…
気を付けよう…
0037486NGNG
>36
おう、何か分かりやすいかも。
更新、よろしくおながいします。
0038Delphi初心者NGNG
 >>35
そういうものなんだ…
ここは詳しい人ばかりだから、謙譲の意を込めての「初心者」だったんだけどね。
それでは、次からこのハンドルやめます。

 >>36
ブラウザは結構作りたかったものの一つなので、試しにやってみようかな。
どうもありがとう。
0039デフォルトの名無しさんNGNG
 >>36
ブラウザできたー!
感動します。
ありがとうございました。m(_ _)m
004036NGNG
反響あって嬉しいです。
更新頑張るです。
0041デフォルトの名無しさんNGNG
これはPersonal版なんですか?
ActiveXコントロール使えばPersonar版でもブラウザつくれるんか〜
なんかブラウザの仕組みがチョト見えたようでウレシヨ。
004236NGNG
>>41
Personal版です。
そう言ってもらえるとうれしいです。
次は例外処理をして、もう少し機能を追加します。
0043デフォルトの名無しさんNGNG
if IntA mod IntB = 0 then
begin
処理;
end;

というプログラムをすると、一行目に「この型には指定した演算子は使えません」
と出るのですが、どこが問題なのでしょうか?(泣)
0044デフォルトの名無しさんNGNG
演算子の優先順位 は 比較が低いからそれでいいと思うけど カッコがあった方が見やすいな

エラーな原因は判らないけど IntA IntB の型が違うんじゃないの?
宣言を見せて
0045デフォルトの名無しさんNGNG
本日発見!
DelphiのIDEって 拡張子が .C なら ちゃんとCの色分けしてくれるんだ
0046デフォルトの名無しさんNGNG
>>36
(*゚ー゚)b グッ!よいね!
0047デフォルトの名無しさんNGNG
要するに>>33の言いたいことは「初心者」と書けば何でも許されると言う
考え方が良くないと言うだけであって

自分も匿名掲示板なのにわざわざ誰だか解るように名前入れるのは
(その必要があるわけでないのならば)なんだかなぁと思いますね。
0048ベテランSENGNG
あのぉ〜・・・フォームにボタン置いた後どうすればいいんですか?
0049デフォルトの名無しさんNGNG
ベテランSEなら自分で何とかできないとリストラ対象ですね
0050 NGNG
>>36
早速、ブラウザ作ってみました。
こんな簡単にできちゃうんだと、ちょっとびっくり。
実際に動作する物ができると楽しい〜。
0051デフォルトの名無しさんNGNG
あーゆー「delphiで作ってる時の画面キャプ」ってのは、
ボーランドさんに文句言われないのかな?
0052素数2NGNG
>>51 まさか言われないでしょ。宣伝してくれてるわけだし。
文句つけられたら2chでスレ立てれば良いわけだし。
被害額が算定できないと訴えられないし。

と無責任に発言。
0053誰に言うワケでもないがNGNG
次は「javascriptを無視出来る方法」とかその他いろいろof/offする方法とか
安易に聞いたりしないだろうな?
005453NGNG
on/offだ。
0055デフォルトの名無しさんNGNG
of/offはないだろうな。
005655NGNG
しまったー!
0057デフォルトの名無しさんNGNG
あーゆー「はじめの一歩」ってのは、
講談社さんに文句言われないのかな?
0058素数2NGNG
だるまさんがころんだ を作った人が出てくれば訴えられるかも。
0059デフォルトの名無しさんNGNG
 >>44
どこが違うかわからなかったので、最初から作り直したらちょっとの修正でできたよぉ
すいません。

 >>47
 >要するに>>33の言いたいことは「初心者」と書けば何でも許されると言う
 >考え方が良くないと言うだけであって
それはわかったって。

 >自分も匿名掲示板なのにわざわざ誰だか解るように名前入れるのは
 >(その必要があるわけでないのならば)なんだかなぁと思いますね。
漏れはきっちり話がしたいスレには時々捨てハンドル使うけど。
あとで検索でその周辺のレス見たりできるし、そのために必要と言えば必要。
0060デフォルトの名無しさんNGNG
ブラクラ等を事前に検出して無効化したいのですが、
表示前にテキストをいじれますか?
0061デフォルトの名無しさんNGNG
(´-`)。o ○ (だから「○○出来ますか」ってのやめれって。某スレ逝って
頭冷やしる!)
0062デフォルトの名無しさんNGNG
自分でレンダリングするの?
0063デフォルトの名無しさんNGNG
じゃ、表示前にテキストをいじる方法を教えて下さい。
でいいの?
0064デフォルトの名無しさんNGNG
(´-`)。o ○ (別に叩くワケじゃないけど、「アレコレやってみて
これで合ってる?」って方向すら行かないワケ?検索してみたけどとか)
0065素数2NGNG
Indy の get で出来そうだなー と思う。
0066デフォルトの名無しさんNGNG
出来るんならやり方を調べようと思った場合はどうするの?
0067デフォルトの名無しさんNGNG
VBやれ。
0068デフォルトの名無しさんNGNG
>>63
ブラウズする前にダウンロードして
自分の思い通りになるよう編集後
ローカルに保存してその保存した
ファイルをブラウズするとか・・・

個人的なガイドラインとしては、教えてに対して
それなりのやり方までは書いて良いと思う。
その後は自分でなんとかする、ということで・・・
教えてに対していきなりソース貼るやつは嫌い
(あくまで個人的にね)
0069デフォルトの名無しさんNGNG
IndyとIEコンポーネントを組み合わせて使えるの?
Indyのみで表示するのは大変じゃない?
0070デフォルトの名無しさんNGNG
つーか「どうすんの?」=「ソースキボンヌ」だと思う。
0071デフォルトの名無しさんNGNG
>68
キャッシュをとっているから、そういうやり方でも問題ないと思うけど、
思うけど!
007236NGNG
>36,50
ありがとう!
>51
>あーゆー「delphiで作ってる時の画面キャプ」ってのは、
>ボーランドさんに文句言われないのかな?
なんだか、ちょっと不安になってきた…
開設三日目にして、早くも閉鎖の予感…
0073デフォルトの名無しさんNGNG
別に著作権が絡むような「絵」じゃないでしょ。
たとえ、そうだとしても 著作権で認められている 引用の範囲
TVゲームじゃないんだからさ
007436NGNG
>>73
そうだよね!大丈夫だよね!
そう言ってもらって、ちょっと安心です。
0075デフォルトの名無しさんNGNG
Delphiは芸術であり、映画なので起動画面のコピーは違法なのです。

Delphiは美しい、美しいんですよ。
0076デフォルトの名無しさんNGNG
関数内関数の事で教えて下さい

帰り値が動的配列な関数で 要素に追加する AddDataという関数内手続きを書きました

function func : TIntArray;

procedure AddData(dt:Integer);
var n:Integer;
begin
n:=Length(Result);
SetLength(Result,n+1);
Result[n]:=dt;
end;
・・・ 略 ・・・

これはエラーにならず期待した動作をします。
さらに、AddData内部で使用していた追加データの位置 n を返すように
function AddData(dt:Integer):Integer;
 と変更しようとして困ってしまいました。
Resultは 今度は自分の帰り値を指してしまいます。
といって pascal形式の関数名を使うと関数呼び出しになってしまいます。

これはどう解決すればいい?
0077デフォルトの名無しさんNGNG
>>76
function AddData(var func_result: TIntArray; dt:Integer): Integer;
とでもして受け渡したら?
スマートじゃないといっても、親のresultを直接触るほうが気持ち悪いよ。
007876NGNG
>>77 さん レスありがとうございます

そうですね。他に方法ないなら関数内関数やめて そういう仕様で
外に出した方がスッキリしますね
0079名無しヘタぐらま ◆B18Bks.Y NGNG
>>76
いっそのことクラスにしちゃうとかはどうでしょう.
type
TIntList = class(TPersistent)
private
FInnerArray: array of integer;
function GetCount: integer;
procedure SetCount(Value: integer);
function GetNumber(index: integer): integer;
procedure SetNumber(index: integer; Value: integer);
public
procedure Assign(Source: TPersistent); override;
procedure Clear;
function Add(Value: integer): integer;
property Number[index: integer]: integer read GetNumber write SetNumber; default;
property Count: integer read GetCount write SetCount;
end;
(中略)
function TIntList.Add(Value: integer): integer;
begin
Count := Count + 1;
result := High(FInnerArray);
Number[result] := Value;
end;
procedure TIntList.Assign(Source: TPersistent);
begin
if Source is TIntList then
FInnerArray := (Source as TIntList).FInnerArray
else
inherited;
end;
procedure TIntList.Clear;
begin
Count := 0;
end;
function TIntList.GetCount: integer;
begin
result := Length(FInnerArray);
end;
function TIntList.GetNumber(index: integer): integer;
begin
result := FInnerArray[index];
end;
procedure TIntList.SetCount(Value: integer);
begin
SetLength(FInnerArray, Value);
end;
procedure TIntList.SetNumber(index, Value: integer);
begin
FInnerArray[index] := Value;
end;
上の例では動的配列を隠してますけど
配列の形で使いたい場合は
FInnerArray を IntArray とでも改名して public に移すといいと思います.
0080名無しヘタぐらま ◆B18Bks.Y NGNG
>>35
慣れるまで大変だと思いますが大丈夫です.
少なくとも私の知る範囲では
行番号のない言語への移行で
行番号が無いという理由で挫折した方というのは
聞いたことがありません.
008176NGNG
>>79 名無しヘタぐらま さんレスありがとうございます

そうですね。クラスにするのも方法だと思います。
一度作ってインクルードファイルにしてやればIntegerだけでなく汎用に使える
テンプレートもどきクラスになるかもとか思ったりもしました。

でも >>75の関数内関数のコードだとResultの型を書かなくてもいいので
コピペで使う時は便利なんですよね。
0082デフォルトの名無しさんNGNG
楽しいなあ クラス使うとこんなふうに書けるんだ

 with TSaveDialog.Create(self) do try
     InitialDir:=GetCurrentDir;
     Filter :='BIN|*.bin';
     DefaultExt:='BIN';
     if execute then
      with TFileStream.Create(FileName,fmCreate) do try
      Write(bin[0],Sizeof(bin[0])*Length(bin));
      finally Free;End;
 finally free;end;
0083デフォルトの名無しさんNGNG
どの辺が楽しいのだろう・・・・・。
0084デフォルトの名無しさんNGNG
これ コピペして ちょっと修正するだけでいい所 >>83
0085名古屋在住・中日ファンNGNG
>>82
変数を宣言せずにインスタンスを作成してすぐに破棄するってやつでしょ

Pascalの流儀ではないね・・・あんまりいい習慣じゃないかも
0086デフォルトの名無しさんNGNG
>>82
毎回毎回設定がウインドウの設定が保存されないダイアログの出来上がりですか。
0087Delフサギコ ◆zE1iiRdQ NGNG
     ∧,,∧   / ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚彡< 名古屋出張で味噌煮込みウドソ食った
     ./つ=||||  \_____
   〜ミ \_/

WithのCreateは逆に使いにくいと思うんだけどな。
0088デフォルトの名無しさんNGNG
>>86
 保存したければそのプロパティへの代入を追加すればいいだけでは?

>>87 
 デバックとかは不便だけど、パターン化してコピペする時は便利
0089デフォルトの名無しさんNGNG
>保存したければそのプロパティへの代入を追加すればいいだけでは?
なら関数使えば?
0090デフォルトの名無しさんNGNG
>>89
 確かにローカル関数にして そこでローカル変数確保してもいいけど
 コピペを前方にしなくちゃいけないでしょ?

 入れたい場所にペーストして修正するだけでいいから気に入ってるんだけど?
0091デフォルトの名無しさんNGNG
あっそ。
0092デフォルトの名無しさんNGNG
Google Web APIサービスをDelphiで使ってみた人っていない?
XMLベースの技術ならなんとかなるんじゃないかと思うんだけど。
0093デフォルトの名無しさんNGNG
アプリケーションの多重起動を防止するにはどうしたらいいのですか?
0094チビNGNG
>>93
検索してみれや。
0095デフォルトの名無しさんNGNG
>>93
http://www.google.co.jp/search?hl=ja&q=delphi+CreateMutex&lr=lang_ja
009693NGNG
>>95
ありがとうございます。

>>94
ごめんなさい。
0097デフォルトの名無しさんNGNG
>>92 でも、JAVA か C#でサンプルがあるから、ちょっと触る程度なら そっちでやるんじゃない?
0098デフォルトの名無しさんNGNG
>>97
そこを敢えてやるのがDel厨の使命ではないか。
0099デフォルトの名無しさんNGNG
>>98
じゃあ、お前におながいします。
0100デフォルトの名無しさんNGNG
Google Web APIサービス、オレもナニゲに気になってた。
0101デフォルトの名無しさんNGNG
>>98
お前にウォンチュ!ことり。
0102デフォルトの名無しさんNGNG
for文について教えてください。

Inta, Intb := 0;

for I := 1 to 10 do
Intb := Inta + 1;

↑を実行すると僕の予想では0に1を加えるというのを10回やるということで、Intbの値は10と予想しました。
しかし、実際実行してみたら、Intbの値は2でした。
僕の考え方はどこが間違えていたのでしょうか?(泣
0103デフォルトの名無しさんNGNG
102ですが、それをやりたいなら、

for I := 1 to 10 do
Inta = Inta + 1

でなければなりませんね…
冷静にならないといけませんね、漏れは・・・
申し訳っ!
0104蒼いヒゲNGNG
Delphiスレにマサルさんヲタ(orファソ?)が居る模様


>>98
漏れも気になってるのでおながいします。
0105デフォルトの名無しさんNGNG
ありゃ? TmenuItem のショートカットに 数字のみって入れられないんですか?
解決策あったら教えてください。

ボタン3つをそれぞれ 1 2 3 で押したいんですができなそうなので
TmenuItemに関連づけて、そっちのショートカットに「1」 とかわりあててみたんですが・・・
0106RubyistNGNG
あまり 言葉わからないんだ 言葉教えて?もっと 近くに来て… くっ くっ 臭い 息があたる ぐらいになぁぁぁ
0107デフォルトの名無しさんNGNG
>>105
数字入れれたし、ショートカットも効いてるよ。
0108106NGNG
誤爆スマソ
0109RubyistNGNG
こちらへ 来いよ・・・
今 来いよ・・・
すぐ来いよぉぉぉぉ!
0110109NGNG
誤爆スマソ
0111RubyistNGNG
夜って 不安だよな
暗くって さみしくってな
0112RubyistNGNG
           ρ(´-`ρ)
      ★Ruby★
(σ´ー`)σ
0113デフォルトの名無しさんNGNG
ここは大冒険スレですか?
0114105NGNG
>>107
ありがとうございました。もう一度確かめました。
数字はOKでしたがテンキーだと効かなかったです。
やっぱりテンキーとキーボードの最上段の数字は違う物なんでしょうか。
0115112NGNG
どうやら漏れが撃退したようだ。
経験値3取得・・・。
0116デフォルトの名無しさんNGNG
>>114
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=29
↑ここのやりかたでテンキーもできたよ。
0117デフォルトの名無しさんNGNG
これはひどい

http://www.google.com/search?sourceid=navclient&hl=ja&q=%91%E5%96%60%8C%AF+%82%B1%82%EA%82%CD%82%D0%82%C7%82%A2
0118デフォルトの名無しさんNGNG
あ、でも同じキーとして扱いたいのか。
それはわかんないや。
0119デフォルトの名無しさんNGNG
あ、でもMenuItem増やせばいいか。
0120105NGNG
>>116 ・・・Tips見るの忘れてた・・・みなさんありがとう、ごめんなさいでした。
0121デフォルトの名無しさんNGNG
根本的な質問してもよろしいでしょうか・・・

Delphi5 の Professional をインストールしたんですが、
Standard タブ上に Framse しか無いんですが・・・
どうしたら増やせるんでしょうか?
なんか普通はコマンドボタンとかあるようなんですが・・・
0122デフォルトの名無しさんNGNG
なんかワラタ
0123121NGNG
いや、笑わないで・・・真剣なんです。
今、Delphi起動してハラハラドキドキしながら待ってるんですけど・・・
こんなアフォをどうかお助けを・・・
0124デフォルトの名無しさんNGNG
バチがあたったんだよ。
0125121NGNG
な、何のバチなんですか・・・
0126デフォルトの名無しさんNGNG
再インストールしてみれば?
0127デフォルトの名無しさんNGNG
Delphi6のPersonalでも16個載ってるのにね。
0128デフォルトの名無しさんNGNG
がんばれ!Frameだけでいいアプリ作れよっ
0129121NGNG
>>126
できました!ありがとうございました!

最初の再インストールはエラーメッセージが大量に出て失敗しましたが
二回目の成功していっぱいコントロールが出てきました!
これから Delphi 頑張ります!
0130ロシアの美少女超能力者NGNG
おぼろげながら、字のような物が見えます…。
最初が…  「V」…。Vという字に見えます…。
次は… ええと… C? いいえ… B…Bかしら………
「B」ね! Bに見えます。
「VB」…。 これは何の意味があるのゴルバチョフ!
0131デフォルトの名無しさんNGNG
作ろうとしてるアプリではないウィンドウで範囲指定して、
作ったアプリでButtonをクリックすると
あるString型の変数の値が最初に範囲指定した部分になるようにしたいのですが、
どうすればよいでしょうか?
0132デフォルトの名無しさんNGNG
>>131 霊界と通信中ですか? 人間には解読出来ません
0133131NGNG
例えば、Wordで作った文章のある部分を範囲指定してから、Buttonをクリックすると、
あるString型の変数の値がWordで範囲指定した文字になる
というものです。

これで解読できるでしょうか?
0134132NGNG
解読出来ました。

 それがメモ帳やEditBoxコントロールを使ったものであれば
 Windowsハンドルをなんとか取得してメッセージを投げれば
 制御可能と思いますが、Wordのようなアプリの文章だと難
 しいと思います。

ただ、範囲指定した範囲と置換するなら、そのアプリが挿入
モードになっているなら、キーボードから文字が入力された
事にすれば大抵は最に送った文字と置換された後、次に
送った文字が挿入されてゆきます。

VBでいえばSendKey相当の処理ですね
0135131NGNG
難しいですか・・・
IEやらWordやらの補助的ソフトを作りろうとしてたのですが・・・
どうもありがとう

そのような事って、Delphiじゃない言語だったらできたりするんですか?
0136132NGNG
対象を明確にすれば難しくはないです。 一般的にすれば難しくなるだけです >>135
0137デフォルトの名無しさんNGNG
今>>136が良いこと言った!!
0138131NGNG
ありがとうございます。

それと基本的なことで申し訳無いのですが、
ListBoxコンポーネントで何番目が選択されているかによって処理を変えたいのですが、
どうしたら良いでしょうか?

Integer変数にListBox1.ItemIndexを代入して何番目の項目が選択されてるか取得するというのは学習済みです。
で、if 変数 = 1 then という風に書いたら無理だったのですが・・・。
0139デフォルトの名無しさんNGNG
if Listbox1.itemindex= 1 then begin end; // で直接やっちゃえ
> if 変数 = 1 then
これでも出来ると思うのだけれど
ちなみに0オリジンだから 最初の項目は listbox1.itemindex=0 ね 2番目が1
0140131NGNG
ありがとうございます。
何故か一番上のリストを選択した時に処理が行われないと思ったら、一番上は0になるのですね。

それと、この様な処理はcase文の方が楽でしたね、と今頃気づきました(泣
0141デフォルトの名無しさんNGNG
>>135
Delphiでできなければ、他の言語でもあなたには出来ないと思いますよ。
0142デフォルトの名無しさんNGNG
135の処理ってクリップボード使えばワードにCtrl+Vを送るだけで出来ないですかね?
0143デフォルトの名無しさんNGNG
>>142 ワードが相手ならそれでいいんじゃないの?
0144デフォルトの名無しさんNGNG
>>100
var
 s : GoogleSearchPort;
 r : GoogleSearchResult;
begin
 memo1.Lines.Clear;
 s := HTTPRIO1 as GoogleSearchPort;
 r := s.doGoogleSearch('xxxxxxxxx', WideString(Edit1.Text), 0, 10, False, '', False, '', 'utf8', 'utf8');
 memo1.lines.Append('検索結果 = ' + IntToStr(r.estimatedTotalResultsCount) + ' 件');
これだけで検索できる
でも1日1000件までらしい
0145Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡< >>116>>114
  UU""" U U   \_______________
procedure TForm1.Button3Click(Sender: TObject);
begin
 TenKeyAction1.ShortCut := VK_NUMPAD1;
 TenKeyAction2.ShortCut := VK_NUMPAD2;
 NormalKeyAction1.ShortCut := Word('1');
 NormalKeyAction2.ShortCut := Word('2');
end;

VK_ADD = 107;//=$6Bなんですね


>>100
もしかしてすごいことやってらっさる?
0146デフォルトの名無しさんNGNG
Editを2つ作り、Buttonを押すとEditに基づいて処理をする様なコードを書いたのですが、
実行してみると、Editに何も入力しないままButtonを押すと、
「ソースファイルがみつかりません」というエラーが出ます。
このエラーはどうやって回避すれば良いのですか?

ちなみに、

if (Edit1.Text = '') or (Edit2.Text = '') then
ShowMessage('値が入力されていません')
else
(処理)

と入力を促すメッセージを表示させようとしましたが、
同様のエラーが出ました。
0147デフォルトの名無しさんNGNG
>>146 パーソナルですね? ならばとりあえずは
http://www.borland.co.jp/download/delphi.html
でUpdatePack1をあてて下さい。

それから原因を調べるには、その前の行を見せないと
0148デフォルトの名無しさんNGNG
>>145
全然すごくないです
ウイザードが勝手に定義Unit作ってくれるんで
後はフォームに数行書けばOK
難点はWebServiceがMSのDLLに強く依存しているので
ほかのPCでは動かないこともおおいです
0149デフォルトの名無しさんNGNG
 >>147
ありがとうございます。
今落としてます。
その前の行は

IntBunshi[1] := StrToInt(Edit1.Text);
IntBunbo[1] := StrToInt(Edit2.Text);

となっております。
0150デフォルトの名無しさんNGNG
おっとっと。
UpdatePack1の説明を見ると、
「製品版 Delphi 6(無償ダウンロードサービスで提供される Delphi 6 Personal を含む)をお使いの方は、Update Pack 2 をご利用ください。 」
とあるのですが、1の方で良いのですか?
漏れのは無償ダウンロードサービスで提供されるDelphi 6 Personalにあたるんですが…

http://www.borland.co.jp/delphi/del6up.html
0151デフォルトの名無しさんNGNG
>>149
直接の原因は StrToInt( '' ) が例外を出す事にあります
 Valを使って数字かどうか事前に判定するべきでしょう。


>>150
 指示通りにすればいいと思いますが?
0152デフォルトの名無しさんNGNG
>>146
try
 IntBunshi[1] := StrToInt(Edit1.Text);
 IntBunbo[1] := StrToInt(Edit2.Text);
 (処理)
except
 on E:Exception do ShowMessage(E.Message);
end;
としませう。
>>146に書かれた何も入力されてないエラーも含め、全て例外が面倒をみてくれます。
0153デフォルトの名無しさんNGNG
>>152 ただしその場合は、例外は出るので デバックRUNすると一旦停止してしまう
0154デフォルトの名無しさんNGNG
ミ゚ω゚彡
0155デフォルトの名無しさんNGNG
>>150
その問題を修正するには Update1 で十分。ということ。
Update2 を当てればより多くの問題が修正される。
なお Update2 は Update1 を含んでいるので、両方落とす必要はない。
回線が太ければ両方落としてもよいけどね。
0156デフォルトの名無しさんNGNG
フサギコさんはVBに移ったのですね。
0157デフォルトの名無しさんNGNG
 >>151 >>152 >>153 >>155
どうもありがとうです。

 >>151-153
例外っていうのが、よくわからないのですが、とりあえず>>152の様にやってみます。

 >>155
Air H"なので、Update1だけにしときまふ。
0158デフォルトの名無しさんNGNG
例外が出るのが嫌なら val を使って

var dmy1,dmy2:Integer;
・・・

val(Edit1.Text,IntBunshi[1],dmy1);
val(Edit2.Text,IntBunshi[2],dmy2);
if(dmy1<>0) or (dmy2<>0) then ShowMessage(E.Message);

と書く事も出来るよ。

ただし 動作は少し違う。
 Edit1でエラーでも Edit2の数字が代入されてしまう
0159デフォルトの名無しさんNGNG
 >>158
何故かE.MessageのEが未定義の識別子として怒られてしまうのですが。(苦笑
多分打ち間違えてないはず…???

Val() ってどうやって使うんですか?
>>151によれば数字かどうか判定するらしいですが、ヘルプを見てもサパーリわからなかったので。。。
0160デフォルトの名無しさんNGNG
>>159 ああ ゴメン
val(Edit1.Text,IntBunshi[1],dmy1);
val(Edit2.Text,IntBunshi[2],dmy2);
if(dmy1<>0) or (dmy2<>0) then ShowMessage('値が入力されていません') ;

val は数字なら 数字にして代入してくれて
数字でないなら 何文字目が数字でないと思ったかを3番目の引数で返してくれる

で3番目の引数が0かどうか見れば数字だったかどうかがわかるという事
0161デフォルトの名無しさんNGNG
>>159
前者
Exception(ExceptObject).Message
0162デフォルトの名無しさんNGNG
>>36さんのページを見てブラウザを作ってみようと
思うのですが、コンポーネントパネルのところに
Win32とか無いんです(激泣
無償版を落としたんですけどどうしてなんでしょう?
Standardはあるのですが、中にはFrameだけです。
それ以外のコンポーネントっていうのがありません。

おわかりになる方どうか教えてくださいです。
0163デフォルトの名無しさんNGNG
>>162 悩む前に再インストール
0164デフォルトの名無しさんNGNG
あ、HKEY_USERS\Software\Borland\Delphi\6.0 の内容を控えておいた方がいいよ

と書いて何の事か判らなければ、無視してね
0165デフォルトの名無しさんNGNG
>>163
再インストールしたら出てきました(あぅぅ
indyというのをインストールした際におかしく
なってしまったのかもしれないです。
今度は慎重にやってみます。
ありがとうございました。

>>164
すみません。
見る前にアンインストールしちゃってました。
今更遅いですよね?

お二方、厨な質問にお答え頂けてありがとうございました。
逝ってよし!と言われずに教えてもらえてよかったです。
0166デフォルトの名無しさんNGNG
   http://pc.2ch.net/test/read.cgi/tech/1019185100/
0167デフォルトの名無しさんNGNG
 >>160
キタ━━(´�D`)━( ´�D)━(  ´)━(  )━(´  )━(�D` )━(´�D`)━━!!!!!
その方法でできました。
感謝感謝!
Val の用法もよくわかりました。

でも、
Edit1.Text := Bunshi[1];
Edit2.Text := Bunbo[1];

if (Edit1.Text1 = '') or (Edit2.Text = '') then
ShowMessage('');

の場合にエラーが出るのが理解できていないのですが、
↑はどうして悪いのですか?
例外と言われてますが、何の例外なんですか?
0168デフォルトの名無しさんNGNG
>>167ですが、さきほど作ったものを、一つの実行ファイルとしてまとめてみようと思っています。
本によればInstallShield Express Borland Limited Japanese Editionという物を使うみたいなんですが、
それが見当たりません。
それは元々Delphiに付属しているものなのでしょうか?
付属しているとしたら、どこにあるんでしょうか?
0169デフォルトの名無しさんNGNG
>>168 ええと どう考えてもその段階でそれが必要になるとは思えないのですが

どれとどれをまとめようと思ったのですか?
0170デフォルトの名無しさんNGNG
 >>169
別に必要じゃないんだけど、試してみようと思って。
.pasとか.dfmとかあるでしょ?
それを一つにまとめられるんですよね???
0171パソナラーNGNG
(´-`)。o ○ (パソナルにインストシールドは無いよーん、と言ってみるか…)
0172デフォルトの名無しさんNGNG
激しく勘違いしてるね
0173デフォルトの名無しさんNGNG
>>170 .pas も .dfm もコンパイル前のソースであって・・・・・えい なんて説明すればいいんだ
0174デフォルトの名無しさんNGNG
>>170
もうすでにどこかに*.exeが出来てるはず。それを配布するだけ。
ただし、初心者は*.exeがどこにできるかわからんという罠。
0175デフォルトの名無しさんNGNG
>>170
http://www.geocities.co.jp/SiliconValley-Oakland/6548/
Lesson8参照
と再び自分のサイトを晒してみるテスト
0176デフォルトの名無しさんNGNG
 >>171-175
どうもありがとう!
実行ファイル、見つかりました。
自動で作成されてるとは…
知らない間にそのアイコン見てました。(苦笑

 >>175
おっ!
サイトがパワーアップしてる!
タブブラウザかぁ…( ̄ー+ ̄)
0177素数2NGNG
>>175 6proだとMicrosoft Internet Controlsが既にインストールされてるっぽいのでその旨書いて置いてくれると・・・
インストールできねー と悩んでしまったら internetタブに既に在った。
あと SampleIconフォルダ って何処にあるのでしょうか。検索掛けても見つからなかった・・・
0178デフォルトの名無しさんNGNG
>>177
ネタだろ。ネタだと言ってくれ。

Lesson6をもう一度、目を皿にして見直せ。
0179デフォルトの名無しさんNGNG
おー今初めて見たけど、>>175氏のサイト良いね。
0180デフォルトの名無しさんNGNG
おいおい、>>175 のページ理解りやすいですよ!
マジでマジで。
表彰したくなっちゃいましたよ。

んじゃ。
0181素数2NGNG
>>178 済まない、本気で解らないや・・・
0182素数2NGNG
と思ったら在りました<sampleIcon。
更新される前のキャッシュを見ていました・・・
0183デフォルトの名無しさんNGNG
>>175
(゚Д゚)ウマー
0184デフォルトの名無しさんNGNG
175氏、とっつきやすくてよかったよ〜。
0185デフォルトの名無しさんNGNG
(´-`)。oO(…175氏、塩は使わない方が…)

Yahoo!Geocitiesの新ガイドラインを考える
http://kaba.2ch.net/test/read.cgi/news2/1003331784/l50
(ほとんど保守書き込みな罠... 過去スレログとか読んだほうが(・∀・)イイ!です)
0186デフォルトの名無しさんNGNG
>>175
いいっすねえ。次はゲーム作り編とかやってほしいな。
0187175NGNG
おっ、好感触♥
俺自身素人なので、ひょっとしたら嘘教えているかもしれないという罠…

>>177
6proうらやますぃ…
じゃなくて、わかりました。書き足しておきます。

>>185
全然知らなかった…
もしジオでソフト公開したらどうなるんだろうか…
教えてくれてありがとです。
移転、検討します。

>>186
あっ、俺もゲーム編見てみたい。
でも俺はブラウザしか作ったことないので、まだ無理です…
0188デフォルトの名無しさんNGNG
use ComObj;
objExcel := CreateOleObject('Excel.Application');
with objExcel do begin

with objExcel do beginで
レコード、オブジェクトまたはクラスのいずれかが必要です
と怒られてしまうんですが、こういう使い方はダメ?

0189デフォルトの名無しさんNGNG
自分で変数を用意すれ。
0190デフォルトの名無しさんNGNG
でもDelはゲーム制作は効率悪いかもねえ
0191デフォルトの名無しさんNGNG
どこらへんが効率悪いんですか?
0192デフォルトの名無しさんNGNG
さぁ?
0193デフォルトの名無しさんNGNG
DirectX絡み?
0194デフォルトの名無しさんNGNG
VB絡み?
0195デフォルトの名無しさんNGNG
処理速度絡み?
0196デフォルトの名無しさんNGNG
>175氏
自分はDelじゃなくてBCBなんだけど、参考になったよ。
これからも更新頑張ってほしい。

サーバスペースだけど、自分鯖持ちだから用意できるっす。
で、連絡しようと思ったら連絡先が書いてない罠・・。
0197175NGNG
>>196
そういえば、メールアドレスとか書いてなかったっけ。
トップページに書いておきます。
ホントに貸してもらえるのなら、とても有り難いです。
でも、もし、「あれ?♥とか書いちゃって、こいつ女?」とか下心が有るのなら、アレです。
がっかりさせてごめんなさい。ちゃんとブランブランとした感じのが付いてます。
ついでに男食の趣味も無いです。ゴメンナサイ。
しかもヒッキーです。
それでもよければ、おながいします。
と、真面目にお願いしてレスが返ってこなかったら悲しいから、
違う角度から攻めてみたとか言ってみるテスト。
0198デフォルトの名無しさんNGNG
(*゚ー゚)b ぐっ!
0199デフォルトの名無しさんNGNG
( -_-)=○)'Д') グ゙ッ!

0200196NGNG
>197
>下心が有るのなら、アレです。
そんなんじゃないから大丈夫っすよーw
ついでに、男色の趣味ももちろんありません。

メールアドレス見つけ次第メールしますね。
0201Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < しつもんっす。
  UU"""" U U    \_______________

FileExists('A:\')とか'A:'と入ると
> ---------------------------
> Sendtoinformation: SendToInformation.exe - ディスクがありません
> ---------------------------
> ドライブにディスクがありません。 ディスクをドライブ A: に挿入してください。
> ---------------------------
> キャンセル 再実行(T) 続行(C)
> ---------------------------
このような表示がされて迷惑なんで、、表示させたくないのですが
何か方法ありますか?
DirectoryExistsもダメだったです。

ディスクが入ってなかったらFileExistsにはFalseを返してホスイ

環境依存でしょうか?
0202デフォルトの名無しさんNGNG
SetErrorMode(SEM_NOOPENFILEERRORBOX);
かな。
0203デフォルトの名無しさんNGNG
>>202 が嫌なら
GetVolumeInformation の帰り値で判定するとか
0204Delフサギコ ◆zE1iiRdQ NGNG
      ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ミ*゚Д゚彡<  サンクスコ!!>>202さん
      ミ⊃⊃   \
    〜ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ⊂'`J    ピョン
      ||
      ||
      ωωω
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
とりあえず、こっちで解決しました。
 SetErrorMode(SEM_FAILCRITICALERRORS);
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=042840

このエラーモードってアプリ内で有効なんだろか?
ErrorModeを元のままにしておきたかったら
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=042823
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=042822
ここが参考になったです。


Windows.pasには
const
 SEM_FAILCRITICALERRORS = 1;
 {$EXTERNALSYM SEM_FAILCRITICALERRORS}
 SEM_NOGPFAULTERRORBOX = 2;
 {$EXTERNALSYM SEM_NOGPFAULTERRORBOX}
 SEM_NOALIGNMENTFAULTEXCEPT = 4;
 {$EXTERNALSYM SEM_NOALIGNMENTFAULTEXCEPT}
 SEM_NOOPENFILEERRORBOX = $8000;
 {$EXTERNALSYM SEM_NOOPENFILEERRORBOX}
こんな風に定義されてるっすね。

>>203さん
GetVolumeInformation 調べてみます。
0205デフォルトの名無しさんNGNG
ネームプレース
0206デフォルトの名無しさんNGNG
あら、おかげで俺もやりたい事のやり方がわかった。
ドライブ一覧の取得をしたかったんだけど、
GetLogicalDriveStrings
で出来るっぽい事がわかった。

>>201-204
サンクスコ!
0207デフォルトの名無しさんNGNG
c++とdelphiの型や構文の対応表が載っているようなページがどこかにあったと思うのですが、
URLを忘れてしまいました。誰か知ってる方がいたら教えて欲しいのですが。
0208デフォルトの名無しさんNGNG
>>207ですが自己解決しました。
http://hp.vector.co.jp/authors/VA014436/prg_memo/delphi/c_d.html
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
http://homepage1.nifty.com/susho/windoze/datatype.html
http://www2d.biglobe.ne.jp/~katsu_k/borland.html
他色々ありました。
0209Delフサギコ ◆zE1iiRdQ NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
追加しときました。

        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  < パクリぺーじは元ファイルに直リン。
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻ 堂々とパクるのはいかがなものかと。
0210Delフサギコ ◆zE1iiRdQ NGNG
それにしても、>>201の現象が起きるマシンと
起きないマシンがあって...同じ、Delphi6コンパイルのWin2kProだが。。。

   ∧,,∧    /
  ミ,,゚Д゚彡 <  どういう環境依存なんだろ?
   ミつ つ゛  \
 @ミ  ミ      
   ∪''∪     ま。いっか。

んで、ERRORMODEは
 SEM_FAILCRITICALERRORS = 1;
 SEM_NOOPENFILEERRORBOX = $8000;
どっちがええんや?
0211デフォルトの名無しさんNGNG
クラスの構成要素に、フィールド・メソッド・プロパティと3つあるそうですが、
フィールドは何となくわかりました。
メソッドとプロパティってどういうもので、例えばどういう風に使うんですか?
0212デフォルトの名無しさんNGNG
>>211
言語ガイド嫁
0213デフォルトの名無しさんNGNG
>>211

>例えばどういう風に使うんですか?

つ、使ったことないの?
0214211NGNG
使ったことないっす。(汗
最近「Borland Delphi 6 オフィシャルコースウェア応用編」っていう、
アスキーから出てる本を読み始めたんですけど、最初にその内容が出てきて挫折。(泣
0215デフォルトの名無しさんNGNG
最初に基本的な事を理解しようとするより、
まず何か作ってみる方がいい気がする。
色々調べながら必要な知識を吸収していくうちに、
基本的な事も少しずつ分かってくるし、そういうやり方の方が遣る気を持続出来る。

0216デフォルトの名無しさんNGNG
少し前迄は CDROMにDelphi1が入っていた。
このDelphi1にはコーチというのが付いていて、
操作しながら覚えるというような形式のものだった。

今ついていたとしても NT系では動かないから 2000とか XPでは動かないだろうけど
こういうのをまた作ればいいのになあ・・・
 それかオンラインソフト的に2千円程度で
0217211NGNG
そ〜いうモンなんですかねぇ?
でも知識がないので、作りたい物が作れないっす!(泣きぃ
今は時計が作りたいんですがね。
関数とかわからないんで、無理みたいです。(プ
Delphiの予約語の辞典みたいなのが欲しいところです。
そんなもんは存在してるんですかね?
書店には無かったんですが。
0218デフォルトの名無しさんNGNG
http://www.text2music.com/mine/delphi/3.html
時計が作りたいなら、まずはこことか。

時間に関する関数はヘルプの
VCLリファレンス
 ルーチン一覧(カテゴリ別)
  日付時刻ルーチン
に載ってるよ。
0219211NGNG
|o∈
|  ・・・・

|ハヽo∈
|�D`) …コソーリ…

|ノハヽo∈
| ´�D`)<>>218しゃん、ありがとうれす

| サッ
|彡
0220211NGNG
時計を作ってみたのですが、以下の機能を拡張したいのでアドバイスください。

一、 フォームを透明化にしても、ラベルの文字が透明化されない方法

一、 実行時にフォームを常に一番前に表示させる方法

よろしくお願いします。
0221デフォルトの名無しさんNGNG
またしてもイタイやしが現れたな

>>211はなによりもまずDelphiについてるヘルプをよく読むことだな
フォームの透明化〜はどうやって透明化してるかによる
フォームを一番手前はフォームのプロパティにある
0222211NGNG
イタイやしですまそ。
Delphiのヘルプは難しいからなぁ。
読めるようになったら読みますぅ。

フォームの透明化はフォームプロパティのAlphaBlendとAlphaBlendValueでやっておりまする。
一番手前…あったあった♪

それと話戻るけど、メソッドはわかったじぇ!
よく使う処理とかをまとめておいて、値を受け渡したりできるっていうのだよね?
VBでいう、凡用プロシージャみたいな。
0223デフォルトの名無しさんNGNG
もう来なくて良いよ。
0224211NGNG
はい・・・
0225デフォルトの名無しさんNGNG
>>222
 メソッドは クラスに対して指示するのに使います。

 クラスメソッドと間違えないようにね・・・・なんて混乱させてみる。
0226デフォルトの名無しさんNGNG
>>211
モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/test/read.cgi/tech/1019134412/l10
こっちの方がいいんじゃないの?「やさしい」だからして(藁
つーか、
>メソッドとプロパティってどういうもので、例えばどういう風に使うんですか?
↑これが、どーゆー意味で書いてるのかが分からん。
0227デフォルトの名無しさんNGNG
なんか、>>222見てると、VBにはメソッドも、プロパティもないみたいに見えるんだけど・・・。
0228211NGNG
 >>225
とりあえず、メソッドはオブジェクト内部で定義された関数・手続きらしいね。
理解できないけど。(プ

 >>226
Valを説明してくれてる>>160の様に日本語の説明と具体的な使い方が知りたかったのれす。

 >>227
う〜ん、ごめんなさい。
VBだと、Form1.Line x1, x2 y1, y1 みたいなのはメソッドって言いますよね?
プロパティはプロパティウィンドウに表示されてるヤツがそうだけど、他にもあるんですよね?(泣


も っ と わ か り や す い 本 買 っ て き ま す 。 。 。
0229デフォルトの名無しさんNGNG
さっぱり分からないのに「応用編」を買うのが間違い。
0230デフォルトの名無しさんNGNG
>一、 フォームを透明化にしても、ラベルの文字が透明化されない方法
ラベルの文字を一度ビットマップに書き出して、
それをスキャンしてリージョンを生成するのが一番手っ取り早い。
小細工みたいな方法だと、所詮実行結果も怪しい(「遊ぶDelphi2.0J」みたいに)
0231デフォルトの名無しさんNGNG
うーん ためしにやるには便利だろうけど
AlphaBlendとAlphaBlendValue では遅いし環境依存だし
自前で処理する方法考えた方がいいんじゃない?
0232デフォルトの名無しさんNGNG
>>228
だ か ら 、 メソッドも、プロパティも ヘ ル プ に書いてあるって言ってんだろうが!!!
0233デフォルトの名無しさんNGNG
>>228
VBわかるみたいだから、とりあえず、VBユーザーの為のDelphi入門、みたいな本が
あったと思うから、そういうの見たほうがいいのでは?
持ってないから内容に関してはなんともいえないけど。
0234名無しヘタぐらま ◆B18Bks.Y NGNG
>>228
プロパティもメソッドもVBのとほとんど同じです.

<PRE>
procedure TForm1.Button1Click(Sender: TObject);
begin
// 実行時にプロパティを読む,書く例
Edit1.Text := '「' + Edit1.Text + '」 ナンテシラネーヨ! ウワァァァァン!!';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// Clear メソッド
Edit1.Clear;
end;

</PRE>

VBでもこれとそっくり同じことができる(はず).
0235名無しヘタぐらま ◆B18Bks.Y NGNG
>>234
あれ? PRE タグって埋められないのか(^^;恥ずかしい(///).
2ちゃんでのタグの使い方ってどこに行けばあるのでしょうか….
0236211NGNG
>一、 フォームを透明化にしても、ラベルの文字が透明化されない方法
結構複雑なんですね。(^^;)

>>232
読んでくれ := >>222.Lines[3];
0237デフォルトの名無しさんNGNG
ヘルプも読めんやつが読んでくれとかぬかすな市ね
0238デフォルトの名無しさんNGNG
要するにVB馬鹿か。
0239デフォルトの名無しさんNGNG
あ、238>>さん馬鹿は、いけません
0240デフォルトの名無しさんNGNG
要するにVB馬鹿か。
0241デフォルトの名無しさんNGNG
あ、240>>さん馬鹿は、いけません
0242デフォルトの名無しさんNGNG
要するにVB馬鹿か。
0243デフォルトの名無しさんNGNG
要するにVB馬鹿か。   
0244デフォルトの名無しさんNGNG
あ、1-1000>>さん馬鹿は、いけません
0245外人NGNG
ヨォウスルゥルーニー、ヴィビィブァカァカ。
0246デフォルトの名無しさんNGNG
要するにVBマヌケか
0247デフォルトの名無しさんNGNG
一応、ネタスレじゃないのでマジレスしときます。
Cマガジンの2001年7,8月号にVBからDelphiへの移行(移植)の記事があります。
参考になると思うのでバックナンバーを取り寄せてみてはいかがでしょう。
0248デフォルトの名無しさんNGNG
今までDelphi Personalを使ってたが、Delphi Enterpriseを買った。
やっとインストールが終わり起動してみる。
やたらと時間が掛かる。まぁ、他にもいろいろアプリ動かしてるから当たり前か。

そして翌日、パソコンを起動して、一番始めに起動してみる。
おっせぇぇぇぇぇぇぇ〜〜〜〜〜!!!
どうやら我が家のCPUがヘナチョコなだけだったらしい。
でもせっかく買ったものだし、起動さえすれば困ることはないのでいろいろ頑張ってみることにする。

これだけだ、特に意味は無い。
0249デフォルトの名無しさんNGNG
えんたぁぷらいず・・・・・
(((( ;゜Д゜)))))ガクガクブルブル
0250デフォルトの名無しさんNGNG
Enterprise買う金でパソコン買え
0251デフォルトの名無しさんNGNG
さては>>248は立地万だな?
0252デフォルトの名無しさんNGNG
起動時にデフォルトで読み込むコンポーネントの数減らせば起動早くなりませんか?
0253デフォルトの名無しさんNGNG
>>248
VBにしたらいいんじゃないか?買い直せYO!
0254デフォルトの名無しさんNGNG
>>248
余ったDelphi6 Enterpriseはわたしが引き取ります。処分手数料無料はいりません。
0255デフォルトの名無しさんNGNG
オレは254が払う金に10円足して買うぜ!     
0256デフォルトの名無しさんNGNG
|o∈
|   ・・・・・・・
|
|___

|
|ハヽo∈
|�D` ) コソーリ・・・・・・
⊂ノ
|___

|ハヽo∈
|´�D`)   0x100げっと!
| ノ
|___

|
|  サッ
|彡
|
|___
0257デフォルトの名無しさんNGNG
 バキッ
|  ∋oノハヽo∈
| ̄. (,, )�D`;)
| ̄ .⊂ ⊂ )
| ̄ (⌒__(⌒ノ
|___

    そんなことするののたんにはお仕置きだよ
   ∧_∧
  ( ・∀・)
  (    )           ゆるしてくらさい
  | | |       ∋oノハヽo∈     できごころだったのれす
  (_____)__)      ⊂(;´�D`;⊂⌒ヽつ
0258デフォルトの名無しさんNGNG
(´-`)。o ○ (どうせAA貼るなら自作の面白いの貼れよな。)
0259デフォルトの名無しさんNGNG
(´-`)。o ○ (>>258 オマエモナー)
0260258NGNG
(´-`)。o ○ (オレは>>256-257みたいに自信満々に「面白いだろ」って
書いてるワケじゃないからな。259=256=257だろ?)
0261デフォルトの名無しさんNGNG
(´-`)。o ○ (ということにしたいのですね?>>260)
0262デフォルトの名無しさんNGNG
Personal使ってた人がいきなりEnterpriseって、一体どういう目的で??
0263名無しヘタぐらま ◆B18Bks.Y NGNG
>256
× 0x100
○ $100
Delphiスレなのでこう書くべきなのれす.

>258
個人的には良かったと思うのですが….
16進表記位じゃネタにもならないでしょうか?
0264USS.エンタープライズ!NGNG
USS.エンタープライズ!
0265デフォルトの名無しさんNGNG
>>256=>>263
ネタもコテハンでどうぞw
0266デフォルトの名無しさんNGNG
つまり258=265ということかな。
0267意味ある否定とは思えないがNGNG
>>266
とりあえず、違うよ。マジで。
0268デフォルトの名無しさんNGNG
D6でタブの間隔を変えるってどうやるの?
0269デフォルトの名無しさんNGNG
>>268 IDEのエディタの事? ならエディタ内でマウス右ボタン押して プロパティでそれらしいものが出ると思う
0270デフォルトの名無しさんNGNG
 >>269
ありました。
どうもありがとう。
0271デフォルトの名無しさんNGNG
memoのカーソルの位置にある文字列を挿入する方法を教えてくれ。
教えて君申し訳っ!
0272デフォルトの名無しさんNGNG
>>271
Memo1.SelLength := 0;
Memo1.SelText := 'てきすと';

つかヘルプくらい嫁
0273デフォルトの名無しさんNGNG
今日からレベルの低い質問、厨房、などは以下のスレへ隔離することになりましたのでよろしく

Delphiでアクションゲームが作りたい!!
http://pc.2ch.net/test/read.cgi/tech/1019654975/
0274デフォルトの名無しさんNGNG
もっとまともなところ教えてあげなよ。

ここなんか気合い入ってて良いかも
http://game.2ch.net/test/read.cgi/gamedev/1013170036/

作ってる人(>>1)はプログラム経験無し、パソコン触って1年目らしい。
でもちゃんと動いてるから凄い。
0275デフォルトの名無しさんNGNG
>>273-274
どこかで見たことあるやりとり!
0276デフォルトの名無しさんNGNG
いい加減棲み分けしようぜ


Delphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1013298748/
モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/test/read.cgi/tech/1019134412/
Pascal の初心者用の質問・相談所
http://pc.2ch.net/test/read.cgi/tech/1009903617/
ヘタレ&初心者 専用
http://pc.2ch.net/test/read.cgi/tech/1019743589/


0277デフォルトの名無しさんNGNG
>>276
もう…遅いねや…(by さんちゃん)
0278デフォルトの名無しさんNGNG
ImageList.FileLoad(rtBitmap, 'imglist.bmp', clFuchsia);
D6で上記のようにTImageList.FileLoadを使って実行時にビットマップをまとめて
読み込むと色が化けてしまう(強制的に減色されてしまう)のですが、
実行時に化けないようにまとめて読み込むにはどうすればよいのでしょうか?
設計時にイメージリストエディタからまとめて追加した場合は化けないのですが。
0279無責任だがNGNG
>>278
FileLoadは GetResource を lrFromFille だけを付けて呼び出したものです。
 そして、TImageListは comctl32.dll のImageListのラッパーなので
ImageList_LoadImage APIが呼ばれます
が LR_CREATEDIBSECTION  が付いていません。 つまりDDBで作られています

これを回避したいなら 自前で ImageList_LoadImageを呼び出して
ひとつづつ マスクとイメージをBitmapに取り出して Addするという事になるでしょう
0280デフォルトの名無しさんNGNG
>>273-276
ワラタ
0281名無しヘタぐらま ◆B18Bks.Y NGNG
>>266
違いますよん.
>>267
ありがとう.
0282>>281NGNG
  ?  ?
? (゚д゚) ?
0283デフォルトの名無しさんNGNG
Memo1.SetFocus; と
ActiveControl := Memo1;

入れ替えて実行してみると、結果はぱっと見、同じみたいでしたが、
何か違いはあるんですか?


0284無責任だがNGNG
VCLを読むと
SetFocus  -> GetParentForm.FocusControl -> SetActiveControl

と結局同じ事のようです。

0285デフォルトの名無しさんNGNG
追加までご親切にありがとうです。
0286デフォルトの名無しさんNGNG
ケータイメモリエディタを作ろうと画策してるんですが、
いまいちシリアルポートの扱いがうまくできないんです(;´Д`)

API直叩きしてたので、使い方間違ってるのかと思いまして、
それならコンポ使おうと思ったのですよ。
それで探して色々試したのですが、パリティとかの設定が楽に
出来て、出来れば国産、使い方が分かりやすくて、
ツールの性質上できればスレッド同期で扱える、
そんなシリアルポートコンポ探してるのですが見つからないのです。

どなたかご存じありませんでしょうか。
あちこち探して試してみましたが、大抵はコメントや解説が
英語だったりするので…

国産でも見つけたことは見つけました。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7428/
です。が、設定や扱いが非常に分かりづらい罠…
0287無責任だがNGNG
 結局、色んな意味で、API直叩きが一番楽だと思うけどなあ

どこが巧くいかなかったの?
0288286NGNG
>>287
レスサンクスコ。

> 結局、色んな意味で、API直叩きが一番楽だと思うけどなあ
(;´Д`)
今の今までいろんなコンポ入れては試して消して、を繰り返してた…
鬱だ…

>どこが巧くいかなかったの?
通信で端末からの帰り値を読みとる部分です。
まず手始めに電話番号の取得を試みています。

1.ポート開いてパリティ等設定
2.最初にポート開いたファイルハンドルで1Byte書き込んで、
3.フラッシュして、
4.リターンが帰ってくるかタイムアウトまでファイル読み込みをループ

なのですが、3までは少なくともAPIの帰り値、
Portmonによるログ共にうまくいっています。
その後データを受け取るのがうまくいかないのです。

購入した市販ソフトの動きをPortmonでみる限り、
自作アプリは全く同じ動きをしています。
読み込みの部分が成功するか失敗するか以外。

色々なコンポを試してみましたが、
1.設定に失敗する
2.読み込み時(API直叩きと同じ)
のどちらかで躓きます。

端末やケーブル、ポートなどの問題は、
市販ソフトの動作が問題ないので問題ないと考えます。

一体何が問題なのでしょうか…
0289デフォルトの名無しさんNGNG
Delphiで作ったモジュール内で発生した例外を
他の言語で作ったモジュールが catch した場合、
例外オブジェクトはいつ破棄されるのでしょうか?
0290無責任だがNGNG
>>288
他の制御線DSR/RTS等の動きはどうでしょう? これを設定していますか?

ポートの開き方の例: 
strPcopy(charbuf , 'COM1');
   SetLastError(0);
h :=CreateFile(charbuf,GENERIC_READ+GENERIC_WRITE, 0,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
 //------ この間に hについてテストする ---------
COMMTIMOUT.ReadIntervalTimeout:=MAXDWORD;
COMMTIMOUT.ReadTotalTimeoutMultiplier:=0;
COMMTIMOUT.ReadTotalTimeoutConstant:=0;
COMMTIMOUT.WriteTotalTimeoutMultiplier:=10;
COMMTIMOUT.WriteTotalTimeoutConstant:=10;
SetCommTimeouts( h ,COMMTIMOUT);
StrPcopy(charbuf, Format('baud=%d parity=N data=8 stop=1',[speed])); //パリティ等は要確認
if( BuildCommDCB(charbuf,dcb)) then
begin
dcb.Flags:=dcb.Flags and (not $FFFF);
dcb.Flags:=dcb.Flags or ( $0101);
SetCommState(h,dcb);
EscapeCommFunction(h,SETDTR );
EscapeCommFunction(h,SETRTS );

で、リードタイムアウトはコマンドの種類によって設定する方が楽だから
procedure Txx.SetReadTimeOut(msec: integer);
begin
COMMTIMOUT.ReadIntervalTimeout:=50;
COMMTIMOUT.ReadTotalTimeoutMultiplier:=0;
COMMTIMOUT.ReadTotalTimeoutConstant:=msec;
SetCommTimeouts( h ,COMMTIMOUT);
end;
//○読込み
function Txx.ComRead(var c: Char): boolean;
var GetSize:DWORD;
var charbuf:array [0..15] of char;
begin
Result:=False;
if ReadFile( h ,charbuf,1,GetSize , nil ) then
if GetSize>=1 then
  begin
   c := charbuf[0];
    Result:=True ;
  end;
end;

procedure TxxROMWT.ComSend(dt: char);
var PutSize:DWORD;
var charbuf:array [0..15] of char;
begin
{$ifdef CONSOLE }
write(format('%2x ',[ord(dt)]));
{$endif}
Charbuf[0]:=dt;
PutSize=0; WriteFile( h,charbuf,1,PutSize,nil);
if PutSize<>1 then abort; //失敗したらアボート
end;
0291デフォルトの名無しさんNGNG
Delphiで現在のボリュームを取得したいのですが、色々あがいたのですが出来ません。
良い方法がありましたら教えてください。おながいしまうま。
0292デフォルトの名無しさんNGNG
なんのボリューム?
0293デフォルトの名無しさんNGNG
ボリュームといわれるとauxGetVolume かなあ でもこれならすぐ判るよなあ
0294デフォルトの名無しさんNGNG
>>291
ここのTAudioMizerなんてどうでしょ。
http://www.fi.muni.cz/~xkovalc/
0295デフォルトの名無しさんNGNG
>>292-294
皆さんレスどうも。

現在のボリューム設定値を知りたいのです。
auxGetVolumeはメディアプレーヤーの出力レベルですよね。
あるソフトでボリュームをいじった後、元のボリューム設定値に戻したいのですが、
現在のボリューム設定値を知る方法が分からないもので。

たぶん、簡単にできると思うのですけど、検索して見つからないもので。
どうかおながいしまうま。
0296デフォルトの名無しさんNGNG
すみません。肝心な事に答えていないでした。
タスクバーの音量のボリュームです。
0297デフォルトの名無しさんNGNG
なんでドライブのボリュームラベルっていうボケが出ないんだ!
0298デフォルトの名無しさんNGNG
タスクバーの音量のボリューム??

ボリュームコントロールはMixer系APIを調べれ
検索しても出てくる
0299291NGNG
でけへん〜
どうも他のボリュームを取ってる臭い。誰か助けてくらはい。おながいしまんこ。

Procedure TMainForm.FormCreate(Sender: TObject);
var
rslt,i,j : integer;
arys : array [0..128] of TMIXERCONTROLDETAILSUNSIGNED;
MixerHndl : HMIXER;
MixerLineCtrl : TMIXERLINECONTROLS;
MixerCtrl : TMIXERCONTROL;
MixerLine : TMixerLine;
MixerDetail : TMIXERCONTROLDETAILS;
begin
rslt:=MixerOpen(@MixerHndl,0,0,0,MIXER_OBJECTF_MIXER);
with MixerLine do begin
cbStruct:=SizeOF(TMixerLine);
dwDestination:=0;
dwComponentType:=MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC;
end;
MixerGetLineInfo(MixerHndl,@MixerLine,MIXER_GETLINEINFOF_COMPONENTTYPE or MIXER_OBJECTF_HMIXER);
with MixerLineCtrl do begin
cbStruct:=Sizeof(TMIXERLINECONTROLS);
cbmxctrl:=Sizeof(TMIXERCONTROL);
dwLineID:=MixerLine.dwLineID;
dwControlType:=MIXERCONTROL_CT_CLASS_FADER or MIXERCONTROL_CONTROLTYPE_VOLUME;
pamxctrl:=@MixerCtrl;
cControls:=MixerLine.cControls;
end;
with MixerCtrl do begin
cbStruct:=sizeof(TMIXERCONTROL);
fdwControl:=MIXERCONTROL_CONTROLF_UNIFORM;
end;
j:=MixerGetLineControls(MixerHndl,@MixerLineCtrl,MIXER_GETLINECONTROLSF_ONEBYTYPE or MIXER_OBJECTF_HMIXER);
with MixerDetail do begin
cbStruct:=Sizeof(TMIXERCONTROLDETAILS);
dwControlID:=MixerCtrl.dwControlID;
cMultipleItems:=0;
cChannels:=1;
cbDetails:=Sizeof(TMIXERCONTROLDETAILSUNSIGNED);
paDetails:=@arys;
end;
MixerGetControlDetails(MixerHndl,@MixerDetail,MIXER_OBJECTF_HMIXER or MIXER_GETCONTROLDETAILSF_VALUE);
with MixerCtrl do begin
cbStruct:=sizeof(TMIXERCONTROL);
fdwControl:=MIXERCONTROL_CONTROLF_UNIFORM;
end;
with MixerDetail do begin
cbStruct:=Sizeof(TMIXERCONTROLDETAILS);
dwControlID:=MixerCtrl.dwControlID;
cMultipleItems:=0;
cChannels:=1;
cbDetails:=Sizeof(TMIXERCONTROLDETAILSUNSIGNED);
paDetails:=@arys;
end;
MixerSetControlDetails(MixerHndl,@MixerDetail,MIXER_OBJECTF_HMIXER or MIXER_SETCONTROLDETAILSF_VALUE);
MixerClose(MixerHndl);
StartVolume:=integer(arys[0]);
MixerClose(MixerHndl);
end;
0300デフォルトの名無しさんNGNG
いきなりソースライン取得は無理
MIXERLINE_COMPONENTTYPE_DST_SPEAKERSから辿れ
0301デフォルトの名無しさんNGNG
>>299 試してみたら そのコードで希望通り CDラインの音量は取れてるようだけど?
0302デフォルトの名無しさんNGNG
えっ?CDラインになってた?(^^;
だからか。
MIXERLINE_COMPONENTTYPE_DST_SPEAKERSで試してみる。
ってどこで使えばいいか良く分からんけど。
0303デフォルトの名無しさんNGNG
>MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC
読めないのか?
0304デフォルトの名無しさんNGNG
すまん。パクってきたソースだったからよ〜分からんかった。
MIXERLINE_COMPONENTTYPE_DST_SPEAKERSに変更したらきちんと動作しました。

皆さんありがとうございましこしこ。
0305デフォルトの名無しさんNGNG
(´-`).。oO(たのむからマスターボリューム勝手にいじるのはやめてくれ・・・・)
0306デフォルトの名無しさんNGNG
>>305
自分の目覚まし用のソフトだから外部には公開しないっす。
もっとも、最大音量にした後できちんと元に戻すし。
安心しちくれい。
0307289NGNG
>>289は誰か分かりませんか?
0308デフォルトの名無しさんNGNG
>>307
> >>289は誰か
おまえ、だろ
0309デフォルトの名無しさんNGNG
>>307-308
なんか微妙に意思の疎通ができてなくて藁た。
0310デフォルトの名無しさんNGNG
「ここではきものをぬいでください」的だね
0311デフォルトの名無しさんNGNG
>>310
きもの・・・(;´Д`)ハァハァ
0312デフォルトの名無しさんNGNG
ここ、ではき、ものを、ぬい、で、くだ、さい・・・( ゚д゚)?
0313無責任だがNGNG
>>289
 Delphiの例外は Windowsの構造化例外(RaiseException)を使うので
 例外は相互に投げたりキャッチしたりが理屈の上では可能な筈です

しかし、例外オブジェクトはそれぞれの言語のメモリ管理下にありますから、これを
互いに解放しない可能性や、逆に間違って解放しようとして暴走等が起きるので
はないかと思います。

解放するかどうか デストラクタを継承したものを投げて実験してみてはどうですか?

自分がやるなら、そんな危うい事はやらないで DLLの入り口出口で
例外を全て捕捉して、エラーは別に帰り値かコールバックで返してしまいます。
0314デフォルトの名無しさんNGNG
>>297
そっちが本ネタだと思って、ボケてみたんだが。
0315289NGNG
レスもらえて嬉しい(*^^*)ポッ
うーむ、ちょっとテストしてみるか。

0316289NGNG
やってみました。

EXEがDelphiで、DLLがC++Builderです。
EXEがDLLの関数を呼び、さらにそのDLLから例外を生成するEXEの関数を呼びます。
例外は DLL の関数で
 __except(MessageBeep(0))
 {
 }
のようにして止めます。 ()の中に何を書いていいかわかりません。 誰か教えて・・。

例外を raise EProject.Create('HogeHoge'); のように生成すると
EProjectのデストラクタは呼ばれず、開放されません。
AllocMemCount と AllocMemSize は共に増え続けます。

 P := nil;
 P^ := 100;
だと、AllocMemCount と AllocMemSize は増えません。
同一オブジェクトを使いまわしているのですかね?
0317デフォルトの名無しさんNGNG
標準以外のコンポーネント、ユニットライブラリのファイルはどこに置いていますか?
ProjectA、ProjectB があって、両方とも LibraryC を使う場合、

案1
├ProjectA
│ └LibraryC
└ProjectB
  └LibraryC

とやるか、

案2
├ProjectA
├ProjectB
└LibraryC

とやるか、どっちがいいでしょうか?
0318案2NGNG
案2
0319案3NGNG
案3
├Projects
│ ├ProjectB
│ └ProjectA
└Libraries
  └LibraryC
0320デフォルトの名無しさんNGNG
案3にイピョーウ!
0321Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < あんさんに一票でんがなまんがな
  UU"""" U U[大阪弁]_______________
0322デフォルトの名無しさんNGNG
というか案1なんて使ってる奴いるのか?
0323デフォルトの名無しさんNGNG
案1は依存関係が無くなるんですよ。
実際には LibraryC' と LibraryC'' になるけど。

├ProjectA
│ └LibraryC'
├ProjectB
│ └LibraryC''
└LibraryC

LibraryCの内、それぞれのプロジェクトが使うもののみ、
コピーして使うのです。

でも、Delphiの性質上、向いていないんですよね。
0324デフォルトの名無しさんNGNG
>>323
つーか、なんでそんな使い方をしないといかんのかわからん。
依存関係が無くなるってどういうこと?
0325流星人間いぞんNGNG
りゅうせーい にーんげーん いぞーん いぞーん いぞーん ぼーくらーのー
なーかーまー♪
0326デフォルトの名無しさんNGNG
>>325
お前、歳いくつだよ!って分かる俺も、俺か・・・。
0327Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,∧,,∧   /ProjectAをコピったら
〜′,,,,,,,ミ,,゚Д゚彡<  他のマシンですぐ動くって事かな?
  UU""" U U   \
└LibraryC'
└LibraryC''
こんなのが増えつづけるとソレこそ管理が
大変になるというのが、経験上わかる日が来るかも。
0328デフォルトの名無しさんNGNG
>>324
本当に分からないのですか?
納品する様な場合を考えてみて下さい。
0329Delフサギコ ◆zE1iiRdQ NGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  < とはいえ、、、
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
ProjectのVersionと
LibraryのVersionを組み合わせて
まとめてファルダ保持
したいときなんかは、

  ├ProjectA
  │ └LibraryC'

これもいいのかもね。(あまり気乗りしないけど

そういえば、自作ライブラリのVersionなんて
全然管理してないなー。みんなさんしてるのかしら?
0330デフォルトの名無しさんNGNG
じゃ、案4
├ProjectA
└ProjectB
共通ライブラリは使わない。
0331デフォルトの名無しさんNGNG
漢だな
0332デフォルトの名無しさんNGNG
俺はこうしているよ。

├ProjectGroupA
│ ├ProjectA
│ │ └LibraryA''
│ ├ProjectB
│ │ └LibraryB''
│ └LibraryA'
└Library

ライブラリだからといって一つのフォルダにまとめないで階層化している。
納品するときは ProjectGroupA をコピーして要らないフォルダを
消していけば簡単だしね。
0333323NGNG
紛らわしかったかも知れませんが、

├ProjectA
│ └LibraryC'
├ProjectB
│ └LibraryC''
└LibraryC

は、ProjectAとBはLibraryCを参照しません。
だから、案4と同じ事です。
0334お願いしますNGNG
すまんがお前らシェルのコンテキストメニューに独自のメニュー
を追加する方法を教えて欲しいです。
任意のファイルを選択して右クリックから選択されたファイルの
名前を取得したいのです。
0335デフォルトの名無しさんNGNG
>>334
死ぬほど検索しやがれ。
0336Delフサギコ ◆zE1iiRdQ NGNG
    ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  _ ミ,,゚Д゚彡_< そのメヌって拡張子依存するんじゃナカタ?
.=| |=U=U=| |= \___________
 | | .ミ   ミ | |
 | |ノ∪''∪. | |  イヤ 実は知らんけど。
 | |      | |

 SendToに入るアプリの方がよろしぃかも
0337デフォルトの名無しさんNGNG
>>334
Demo ディレクトリは覗いてみたかな?
0338デフォルトの名無しさんNGNG
>>334
レジストリエディタ立ち上げて、HKEY_CLASSES_ROOT の下をよーく観察しろ。よーく、よーくだ。
0339デフォルトの名無しさんNGNG
>>335,337-338
ほんとは皆、よく知らないんだろ?
0340下手人NGNG
 |文| ∧ \HKEY_CLASSES_ROOT\*\shell\viewの標準にコマンド名
 |=|∀゚) \HKEY_CLASSES_ROOT\*\shell\view\commandに実行するコマンド
 |  ⊂ノ  でどうかな?
゛゛'゛'゛ ゛゛'゛'゛ 
0341下手人NGNG
∧∧
(゚∀゚) commandの標準ね
0342死ぬほど検索しやがれ。NGNG
死ぬほど検索しやがれ。
0343デフォルトの名無しさんNGNG
マルチポスト野郎にマジレスするのもバカらしいから>>339
0344デフォルトの名無しさんNGNG
Delphiのプロフェッショナルを2台のパソコンに入れて、使用許諾コードを
取得したらやばいですか?ばれます?
0345デフォルトの名無しさんNGNG
>>344
お前にピッタリなのはVB(略)
0346デフォルトの名無しさんNGNG
レジストリだけじゃダメだよ。結局340も分かってないようだ。
たぶん誰もまともにコンテキストメニューの実装はできないんだろう。
0347デフォルトの名無しさんNGNG
>>346
お前にピッタリなのはVB(略)
0348デフォルトの名無しさんNGNG
>>347
で、お前はVBAに四苦八苦だろ?
0349デフォルトの名無しさんNGNG
>>348
お前は、未だに「インストロール」とか言う馬鹿だろ?
0350下手人NGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  < >>346 誰もわからないって言いたいだけちゃうんかと(略
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃ 足されなかった?
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻


0351デフォルトの名無しさんNGNG
スキルないやつばっかりだな・・・レベル低っ!
0352デフォルトの名無しさんNGNG
>>351←典型例
0353787NGNG
Delphiも終わったな。こんなバカ共しかいないとは
0354デフォルトの名無しさんNGNG
そろそろ「C#」といい出すやつが来る頃だな
0355デフォルトの名無しさんNGNG
これからはC#の時代です!!
0356デフォルトの名無しさんNGNG
>>355
だよね。明日、VC#買ってこようかなと。
0357デフォルトの名無しさんNGNG
いまどき、コンテキストメニューも実装できないような
Delphiは糞決定ですか?
0358デフォルトの名無しさんNGNG
コンテキストメニューも実装できないような
プログラマは糞ですが。
0359Delフサギコ ◆zE1iiRdQ NGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  < 雨降ってジメジメ……プハァ
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  逆切れですか?
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

・\Demos\ActiveX\ShellExt\contmenu.dprをコンパルしる
・contmenu.dllが出来る
・それを[実行|ActiveXサバ登録]でレジに登録しる
・こんなんでる
---------------------------
情報
---------------------------
ActiveX サーバー '○○\Demos\ActiveX\ShellExt\contmenu.dll' の登録に成功しました。
---------------------------
OK
---------------------------
・regeditでみると
HKEY_CLASSES_ROOT\DelphiProject\shellex\ContextMenuHandlers\ContMenu
こんなんが出来てやがるので
そこにGUIDの値をキーとして追加?

そしたら、.dprにコンテキストメニュが追加されてる。

そんな幹事かしら
0360下手人NGNG
(゚д゚)最近プログラマじゃないのでスマソ

tp://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm
0361Delフサギコ ◆zE1iiRdQ NGNG
ファイルの関連付けで「開く」以外の動作を追加する
http://member.nifty.ne.jp/m-and-i/tips/fileattach.htm

Delphiで作るシェル拡張(ShellExtention)・・・コンテキストメニューの追加
http://member.nifty.ne.jp/m-and-i/tips/shellext.htm

∀
┷┳━     ,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ┃   〜′,,,,,,,,,,ミ,,゚Д゚彡<  ええサイトありますた。
  ┻.    UU"""" U U    \
                      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     進め中級ページはむずかいしな気がする
0362テヘNGNG
下手人さん、フサギコさん、正直逆切れちゃってスマンかった。
ありがとう!これでなんとかなりそうです!
0363テヘNGNG
でも、実は361のフサギコさんの紹介してくれたページは既に
見てて、サンプルで試してみてたんですが、あまりに不安定で
使えなかったんです。どこが悪いのかも自分では分からないし・・
「進め」のほうもちょっと勉強してみます。
0364デフォルトの名無しさんNGNG
VBをインストロールしたのですが四苦八苦です!
Delphiは簡単ですか?
0365デフォルトの名無しさんNGNG
>>364
お金出して買えばそれなりにやる気が出ます。
0366デフォルトの名無しさんNGNG
>>364

>>365の同意。
>VBをインストロール
この人に才能があるかどうかは疑問だが。
0367デフォルトの名無しさんNGNG
インストロールに(゚д゚)ギャッフン
0368ばか者DNGNG
IEキャシュフォルダの中のファイル名を取得したい。

FindFirst('C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\*.*',faAnyFile,FR);
続いてFindNEXTによってディレクトリ一覧を取得しようとしましたが、

. .. ContentIE5 desktop.ini Folder Setting

のみの表示で、そこにあるはすのIEのキャシュフォルダの
ファイル名が取得できません。

補足
desktop.ini によてフォルダに設定がかけてあるようなのですが、
このファイルの仕様が不明の為どのような設定か不明です。

desktop.ini はマイコンピュータからのファイル参照では見ることができないので
テキストエディタにダイレクトに編集名をいれなければ表示しません。

Findfirstの仕様なのか 方法が間違ってるのか
皆さんのお知恵と経験で助けてください。

0369デフォルトの名無しさんNGNG
>>368 そこには本当にファイルはそれだけなのかもね
 そこから システム属性のフォルダを検索してみて?
 その下のフォルダに実体があるように思うよ

\Temporary Internet Files\Content.IE5\index.dat とかにアドレス情報も
0370ばか者DNGNG
>>369
早速のレス有難う
私もこのフォルダに実態がないのではないかと予測しています。
faAnyFile <これですべての属性のファイルだと思うので、
その下のフォルダを参照してみます。


0371デフォルトの名無しさんNGNG
すみません。
Delphiでペイントソフトのような物を作りたいのですが
線を描く方法すらわからないです。
Canvas.LineToを利用する気がするのですが、、
何かヒント頂けませんか?
0372デフォルトの名無しさんNGNG
画面をキャプチャーするソフトを作っているんだが。
他のアプリがアクティブになっているときGetCursorではマウスがとれない。
マウスカーソルごとキャプチャできる方法を教えておくれ。。。。
0373デフォルトの名無しさんNGNG
>>372
マウスの位置を覚えておいておき
その位置にカーソルを描画する
0374ばか者DNGNG
>371
on_xxxxx を使うと動的に処理できますよ。
(xxxxxの部分は反応したいイベントの種類)
とはいえ、実際のペイントソフトのような、「描いている」
ような処理をさせるには、これだけではまったくだめです。
CANVASのプロパティで用意されている関数だけならともかく
エアーブラシのような効果を出したい
などはもっと手の混んだ事をしなければなりません。

手始めに、内部的なデータ配列をRGB変換 DIB>BITMAP
>CANVASのような物を作られるのがよろしいかと思われます。
これが無理だ!ならフォトショップを買ってきましょう^^;

IEのキャシュのは Client UrlCache MMF
が動いていたんですね。世間知らずですいませんでした。

MMFのモジュールorコンポーネントなど存在するのでしょうか?

0375372NGNG
>>373
それがやりたいんだが、
他のアプリがアクティブの時に
現在のマウスカーソルのハンドルがとれない。。。うーん。
0376ばか者DNGNG
>>373
>>375
キーワード「メッセージキュー」で関連する情報を得てはいかがでしょうか?

TCustomApplicationEvents.OnMessage

など関連ありそうな情報だと思います.
0377デフォルトの名無しさんNGNG
>>371
先にmoveto死なされ。

>>372
フックするか確かそれようのAPIがあった気が。
0378デフォルトの名無しさんNGNG
現在動的に生成したTMenuItemにOnClickイベントを割り当てる方法が分からず困っています
静的であれば

procedure TForm1.Open1Click(Sender: TObject);
begin
hoge;
end;
procedure TForm1.hoge(Sender: TObject; Hint: String);
begin
ShellExecute(Handle,'OPEN',PChar(Hint),'','',SW_SHOW);
end;

とすればよいのでしょうが、動的に生成したものをどのように処理したら良いかわかりません
どなたかご教授お願いします
0379無責任だがNGNG
>>378
今度は作成したOnClickにそのメソッド名hogeを代入するだけです
ただし hoge は OnClickと同じ引数並びにしなければいけません。

なおhogeは 実行時型情報は不要ですから、privateでもprotectedでもOKです
0380デフォルトの名無しさんNGNG
>>379
>なおhogeは 実行時型情報は不要ですから、privateでもprotectedでもOKです
privateなメンバの実行時型って取得できないんですか?(アクセスできないんだから当然か)。
0381無責任だがNGNG
>>390
メソッドの実行時型情報(つまりメソッド名からメソッドアドレスが検索出来る)のは
publishedの場合だけです。
 それ以外の場合はコンパイル時にのみ可能です
0382デフォルトの名無しさんNGNG
>>381
ふむ、勉強になりました。
通常の関数ポインタはコンパイル時に特定されてないと逝けないのね。
0383378NGNG
素早いレスありがとうございます。とても助かりました
0384デフォルトの名無しさんNGNG
>>374,377
ありがとうございました。
先に進めそうです。
0385デフォルトの名無しさんNGNG
TObject型をString型にキャストするにはどのようにしたらよいのでしょうか
0386デフォルトの名無しさんNGNG
>>385
stringは組み込み型でTObjectから派生した物ではありません。
0387デフォルトの名無しさんNGNG
>>386
なるほど…ありがとうございました
Senderで送られた情報から、たとえばMemo1からならば
Sender.Lines.Text (これが無理なのは分かるのですが)
のような感じでデータを取り出したいのですが可能なのでしょうか?
0388Delフサギコ ◆zE1iiRdQ NGNG
 ∧,,∧
ミノ゚Д゚彡ノ

もし、Sender is TMemo then
TMemo(Sender).Lines.Text

ってするとよさげ
0389387NGNG
>>388
バッチシでした、DelphiMLよりも遥かに助けられる2チャンネラの人達に多謝
0390デフォルトの名無しさんNGNG
>>389
だってここが公式サポートサイトだしぃ..
0391デフォルトの名無しさんNGNG
>>389
MLのログ検索すればそれくらいの質問は(以下略
0392387NGNG
>>391
ううむ、確かにそのとおりかもです…
一応あさってはみるのですが、何が分からないのか分からないような状況だと
結構探しづらくて、ついつい2chに頼ってしまっています

しかし>>389ちょっと言い過ぎでした
もちろんDelphiML過去ログにもいつもお世話になっています(笑
0393デフォルトの名無しさんNGNG
質問に答えることによって自分も磨かれていく・・・そんな感じ?俺かなりいい事いってるね♪
0394Delフサギコ ◆zE1iiRdQ NGNG

♪  .∧,,∧ ♪
   ,ミ,,゚∀゚ミ.  ♪  ジガジサーン で マターリ・・・
   ミ,,つ[|lllll]).
 〜 ミ,, ,,,..ミ
    ∪ ∪
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

MLでは気軽な雑談しにくいかもね。

初心者は雑談したら
「過去ログみろ、検索はこちら」
だもの…
0395デフォルトの名無しさんNGNG
>>393 その通り
ある程度以上の年齢になると
「人に教えることで自分も覚える」
というのが一番効率のいい勉強方法なんだそうだよ
0396_NGNG
delphiってポインタないの?もしかしてclassへのreferenceだけ?
0397デフォルトの名無しさんNGNG
>>396
ネタならつまらん。
マジならヘルプぐらい見れ。
0398_NGNG
>>397
スマソ。classはreferenceで基本型はそうじゃないんですね。なんか変なの。
0399398@C++厨NGNG
ってjavaもそうか。でも基本型のポインタもあるのがなんか変。
cA -> reference ^cA -> referenceのreference
a -> 実態 ^a-> 1reference
一個ずれてるのが気持ち悪いんですけど・・・
0400デフォルトの名無しさんNGNG
>>399
BCBでは使えないけど オブジェクト型というのもあるよ
オブジェクト型ならC++みたいに変数宣言すれば実体も作成される
0401デフォルトの名無しさんNGNG
クラスについては C++の参照扱いだと思ったらいいんじゃないの?
変数宣言はインスタンスへのポインタの宣言だけど
使う時には自動的に参照されるというふうに
0402398@C++厨NGNG
>>400
なるほど。まあ、C++でもあんまり使わないからいらないか。。。
この辺りが構造化言語とOO言語の境界線なんだろうな。
0403398@C++厨NGNG
>>401
.(dot)が変数がreferenceなら自動的に->として解釈してくれる感じなのかな。
0404398@C++厨NGNG
>>400, 401
pascalはともかく環境は気に入りました。
さっそくIEにキーコード送るソフトでも作ってみよ。
厨房的質問に付き合ってくれてありがとう、ではまた会う日まで。
0405デフォルトの名無しさんNGNG
クラス型の変数.xx を C++で書けば クラス型の変数->xx になるというだけでは?
0406デフォルトの名無しさんNGNG
>>405
むしろ、C++でいう(クラス型の変数).xxが出来ないのが気持ち悪いと言いたいのだろう。
厨房的質問といっても、C++経験者だし別に厨扱いする必要はないわな。
0407デフォルトの名無しさんNGNG
>>405
それ、クラスのポインタの時だけだし。
0408デフォルトの名無しさんNGNG
Delphi6(Update Pack2適用済み)とMS-Access2000をWindows2000SP2で
共存させています。

Delphi6でParadoxやdBaseを使ったデータベースアプリケーションを作成
しているのですが、MS-Access2000でdBaseファイルとリンクしているリンク
テーブルを開くと日本語が文字化けしてしまいます。
dBaseファイルをインポートして作ったテーブルを開いても文字化けしています。
エクセルで開くと字化けすることはありません。

今のところ解決策はOffice2000とDelphi6を共存させないということしかありません。
Delphiをインストールしていない、もしくはインストールしていても作成中のアプリ
ケーションを「実行」しなければ文字化けは起こりません。

なにか情報をご存知の方はおられないでしょうか?
0409デフォルトの名無しさんNGNG
Delphi5も6もWinXPで使うと、たまに数十秒くらい固まったりしない?
0410デフォルトの名無しさんNGNG
>>409
しないですよ。
0411デフォルトの名無しさんNGNG
パネルとかをポップアップさせるやり方ってあります?
ちゃんと、そのときユーザーが指定してるアニメーションで.
0412デフォルトの名無しさんNGNG
>>409
それって支援機能?切ってみたら?
0413デフォルトの名無しさんNGNG
>>411
これ?
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_animatewindow.htm
0414デフォルトの名無しさんNGNG
Imageコンポーネントを動かすにはどういうコードを入力すればいいのか教えてけれ〜(;´Д`)
最近始めた初心者なので全然わからない・・・
0415デフォルトの名無しさんNGNG
>>414
.Top .Left
0416デフォルトの名無しさんNGNG
スマソ、そうじゃなくて例えばボタンを押したら
imageを動かすようなコードを組みたい。
0417デフォルトの名無しさんNGNG
>>416
>>414で何が不満だ?
0418デフォルトの名無しさんNGNG
>>416
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Top := Image1.top + 1;
Image1.Left := Image1.Left + 1;
end;
0419デフォルトの名無しさんNGNG
ああなる程!
改めて>>415さんスマソ。
そしてみんなありがとう。
0420デフォルトの名無しさんNGNG
10 x=0
20 y=0
30 locate x,y
40 print Image
50 goto 10
0421wasureta...NGNG
45 x=x+1:y=y+1
0422デフォルトの名無しさんNGNG
>>420
いや、お前、それ全然動かないぞ。
0423machigaeta...NGNG
50 goto 30
0424デフォルトの名無しさんNGNG
くだらね
0425デフォルトの名無しさんNGNG
くっだ〜らない〜
くっだ〜らない〜
くっ くだくっだくっだ〜らない〜♪
0426デフォルトの名無しさんNGNG
>411

うおっ、激しくこれっぽいです.ありがとうございます.
しかし、使い方がよく分かりません・・・.
とりあえず、フォーム作成後にShowのかわりにやってみたけど
見た目変わんないんですけど、なんかやり方あるんでしょうか?

0427デフォルトの名無しさんNGNG
ちがう、レスは>413だ.鬱・・・
0428デフォルトの名無しさんNGNG
試してないけど、こんなのあった
http://www.layer-8.com/sce/view_src.php3?argSrcId=425
0429デフォルトの名無しさんNGNG
Irvineのダウンロード終了のお知らせってこれ使ってたのか…
0430デフォルトの名無しさんNGNG
>428

同じのみつけて試してみてたよ・・・.
AnimateWindowで検索したらなんかゴロゴロ出てきた.

案外メジャーなのか、この関数.ちょっとハズカスィ
0431デフォルトの名無しさんNGNG
フォームごとアニメーションできるんだこれ。おもろい。
0432デフォルトの名無しさんNGNG
現在、金もってないくせに、delphiはじめようと思っています。そこで質問なんですが、
初心者が一冊だけ買うとしたら、どんな本を買えばいいですか?
0433デフォルトの名無しさんNGNG
デラべっぴん
0434デフォルトの名無しさんNGNG
>>432
実際に本屋へ行って立ち読みしてみて一番面白いと思った本が
あなたにとって「一番いい本」

初心者といっても
「プログラムそのものが初心者」から
「Java/C++バリバリだけどDelphiは初めての人」までいろいろだからね
0435デフォルトの名無しさんNGNG
NewItem := TMenuItem.Create(Self)等で作ったアイテムを
for文で繰り返し使い、popup等に入れた場合
なぜ上書きされずにpopupに順次追加されるのでしょうか?
0436デフォルトの名無しさんNGNG
>popup等に入れた場合

追加したからでしょう。
0437デフォルトの名無しさんNGNG
>>436
for内部の文末にFreeを加えるとリストに表示されなくなるので参照扱いかと思ったのですが
Freeをすることによりそれによって作られたItemが全て消えるという事なのでしょうか?
0438デフォルトの名無しさんNGNG
すいません、もう少し詳しく書きます

for count := 0 to 5 do
begin
NewFile := TMenuItem.Create(Self);
Form1.popup.Items.Add(NewFile);
end;

これでfor中の最後にNewFile.Free;を入れると。ということです
end;のあとに入れるぶんには大丈夫なのですが…
webでもfreeを入れるとデータが消えるので入れないようにと
書いてある所は多いのですがなぜそうなるのかが分かりません
0439デフォルトの名無しさんNGNG
Freeは用が済んだインスタンスを開放するのに使う
ポップアップ・メニューに入れて「これから使おう」というのに
消してしまったのでは「意味がない」
0440デフォルトの名無しさんNGNG
>>437-438
何を6回繰り返してるか、把握したまえ。以下が、キミが繰り返している内容だ。
「メニューアイテムを生成し、フォーム1のpopupに追加。」
これを6回繰り返したら、メニューアイテムが6個生成されるのは自明だ。

for の中に Free を入れた場合、繰り返すことになるのは以下の内容だ。
「メニューアイテムを生成し、フォーム1のpopupに追加し、削除。」
6回追加して6回削除してるのだから1個も残らないのは自明だ。
0441デフォルトの名無しさんNGNG
ううむ、NewFile.Free自体がPopup.Items.Items[count]の削除にそのまま繋がってるのですね
少しまだ分からない所がありますが、勉強して出直します
ありがとうございました
0442デフォルトの名無しさんNGNG
NewFile := TMenuItem.Create(Self);
でやっていることは
 × NewFileのアドレスへTMenuItemのインスタンスを作る
 ○ TMenuItemのインスタンスを作ってそのアドレスをNewFileへ代入する
なので
forループの中でNewFileの指すアドレスは毎回変わる
そして
Form1.popup.Items.Add(NewFile);
によってそのアドレスが順次、popupへ保持されていく
0443デフォルトの名無しさんNGNG
>>434
わかりました。本屋に行ってみます。ちなみに、プログラム初心者です。
0444デフォルトの名無しさんNGNG
>>442
なるほど、根本的な勘違いをしていました。
理解できました、ありがとうございます
0445デフォルトの名無しさんNGNG
delphi6personalで、aspやスクリプト環境で使えるような
COMオブジェクトが作れるかどうか調べています。
personalはCOMウィザードがないのですが、現実的に全部手動で
作れるものでしょうか?
それとも素直にProfessionalを買うべきでしょうか。

Googleでも"delphi +COM"ではうまい情報が見つかりません……
0446デフォルトの名無しさんNGNG
技術的な話に絞れば、実装はComObjにヘルパークラスがありますし、
psdkを落としてmidlコンパイラでリソースを作れば出来ない事も無いと思います。
でも……
0447デフォルトの名無しさんNGNG
ヘルプで ディスパッチインターフェース型 を読んで理解出来れば
作成可能かも・・・
でもタイプライブラリエディタが無いので苦労はすると思います。
その苦労に見合うかどうかは他人にはわかりません。
0448Delフサギコ ◆zE1iiRdQ NGNG
> aspやスクリプト環境で使えるような
> COMオブジェクトが作れるかどうか調べています。
           _____________
 ∧,,∧     /
ミ;゚Д゚ミ ∫< 俺はBCB6Proでも見事に失敗した。
.(ミ  ミっ-~  \__________
〜ミ,,⊃ミ⊃
ナンデダローナンデダロー...

VBで作られるActiveXDLLと互換のものを
BCB6ProのActiveXDLLウィイザで作ろうとしたら
どんなオプションをセットするか、さっぱりわからなくて
作られたものはaspから呼び出せなかったよ...

メンドっちかったので、BCB6で作った普通のDLLを
VB6でラップしてActiveXDLL作って
それをaspから読みました。

保守性わるーーー。ある意味スパゲティミートソース


そういうActiveXDLLを作ろうと思っても
作り方が詳しく載っている資料ってなかなか
みつからなくてつらいっす。

出来るかどうかっていうと、間違いなく出来るはずなんだけどなー。

あ、Personalでやると
フサが苦労した10倍以上は多分苦労するでしょうから…
茨の道かと...
0449デフォルトの名無しさんNGNG
BCBの場合は、確かに、ATLとVCLの2重になってDelphiより厄介

Delphiは言語側でサポートがあるからその面少し楽かも
0450仕様書無しさんNGNG
こちらのサイトよりBORLAND製品のキージェネレーターが落とせますので
C++Builder6 Enterprise
JBuilder6 Enterprise
Delphi 6 Enterprise
の各体験版をBORLANDに申し込みまして
シリアルぶっこんでkeygenでオーソライズしちゃいましょう
すべて動作確認済みです
Enterprise以外はkeygenが使えませんので注意してください
※下記サイトに逝く時はなるべくjavaは切った方がいいでしょう

http://www.cracks.am/cracks/b4.html
0451デフォルトの名無しさんNGNG
450=神
0452デフォルトの名無しさんNGNG
>>450
通報しますた
0453デフォルトの名無しさんNGNG
逝ってよし
0454445NGNG
"delphi comobj comserv"でいろいろ検索してみました。
やっぱりウィザードなしでCOMという酔狂なページはない模様……

ttp://www.marcocantu.com/code/md6htm/ComPlus1.htm#ComPlus1_TLB.pas
ttp://www.pinnaclepublishing.com/DD/DDfiles.nsf/all/9A6CC5D428D57BD0852568D300639076/$file/VICARIA.ZIP
ttp://www.matlus.com/scripts/website.dll/Tutorials?DelphiASP&FirstASP&1
自動生成したコードっぽいものは見つかりましたが。
見た感じ、hoge_TLB.pasの中身はそれほど複雑ではないですね。
サンプルをいじれば使い回せそう。

手順としては
IDL手書き>MIDLでコンパイル>TLB生成>インポート&微調整>本体実装?

あとはやってみないとわかりません。がんばってみます。
IDLについて示唆いただきありがとうございました。難しそうですが。
0455デフォルトの名無しさんNGNG
>454
Delphi2.0パワープログラミングには書いてあった気がする。
まーウィザード無い頃だし、当たり前だけど。
0456デフォルトの名無しさんNGNG
>>450=>451
0457デフォルトの名無しさんNGNG
タスクトレイにアイコンを追加する場合
FIconData.hIcon := Application.Icon.Handle;
だけでは自動的に16x16x8のアイコンを選んで表示してくれません
この場合手動でiconファイルのどのiconを使うか指定する事は出来るのでしょうか?
0458デフォルトの名無しさんNGNG
>>457
うん。
0459デフォルトの名無しさんNGNG
>>458
ありがとうございます。調べてみます
0460素人NGNG
>>457
複数のアイコン用意して、リソースコンパイラでリソースにして
目的のヤツ選んで表示…では?
0461デフォルトの名無しさんNGNG
>>457
LoadImage API
0462457NGNG
>>460 461
アイコンを別フォルダに置いて読み込むようにしかできていなかったので
教えていただいた事を挑戦してみます
ありがとうございました
0463457NGNG
ご報告
コンパイル後、TResourceStreamで読み込んでうまく出来ました
0464デフォルトの名無しさんNGNG
コンポーネントの継承について分かり易く説明されている書籍で
良いものは無いでしょうか?
0465デフォルトの名無しさんNGNG
>>464
知らないけどDelphiのマニュアルとヘルプに一通りの事は書いてあると思われ。
俺は3.1時代そうやってた。
後、結構茨の道です。
0466デフォルトの名無しさんNGNG
>>465
具体的にはTreeViewのTTreeNodesをカスタマイズしてString情報を一つ格納したいのですが
茨の道ですか…ヘルプで少し頑張ってみます
0467デフォルトの名無しさんNGNG
>>466
それならTTreeNodesを継承してメンバ追加、TTreeViewを継承して
コンストラクタとAddあたりをオーバーライド(隠匿になるんだっけか?)。
後はプリフォシズムでうまくいくはず。
0468デフォルトの名無しさんNGNG
>>467
今の段階だと半分ほどしか理解できませんが
その流れを追ってやっていきたいと思います。thanks
0469デフォルトの名無しさんNGNG
Delphiでオブジェクト指向プログラミングやっている奴いるの? 特に仕事で。
0470デフォルトの名無しさんNGNG
>469
むしろやらないほうが変だろ
0471デフォルトの名無しさんNGNG
>470
同意
0472デフォルトの名無しさんNGNG
オブジェクト指向を無理にやろうとせずに、コンポーネント自作すれば便利だなあ
程度の気持ちでかかった方がいいとは思うけどね。

無理にTListを継承しようとしたりするより 動的配列使いこなす方がわかりやすかったりするし
0473デフォルトの名無しさんNGNG
Delphi=ぽとぺた指向プログラム言語
0474デフォルトの名無しさんNGNG
>>470-471
Delphi使っているからオブジェクト指向やってんだと勘違いしている罠
0475デフォルトの名無しさんNGNG
>>474
( ´,_ゝ`)プッ
知らないなら無理して出てこなくてもいいぞ(藁
0476デフォルトの名無しさんNGNG
>>466
TTreeNode.Data につっこめばよい。
0477デフォルトの名無しさんNGNG
>>476
あ、こんな格納先があったのですね…
今継承がある程度まとまりそうなので勉強ついでに終わらせた後
こっちでも試してみます。多謝
0478デフォルトの名無しさんNGNG
Delphiってすごい。いや凄くない
VCLが凄い
0479デフォルトの名無しさんNGNG
onContextPopup等で、左クリックと同じ挙動をさせるために
PostMessage(Application.Handle, WM_LBUTTONDOWN, 0, 0);
PostMessage(Application.Handle, WM_LBUTTONUP, 0, 0);
なんて書いてみましたが駄目でした。ご教授お願いします
0480デフォルトの名無しさんNGNG
>479
Application ウィンドウにメッセージ送ってどうするつもり?
何をしたいのか書いてください。
右クリックを左クリックと同じにしたいなら、たんに OnClick
イベントハンドラを呼んだら?
0481デフォルトの名無しさんNGNG
>>478
IDEもすごいと思いますがどーよ
0482デフォルトの名無しさんNGNG
>>481
インラインコンプリートが(VC++に比べて)お馬鹿さんって聞きましたがどーよ
---
Delphi 使ったこと無い人より
0483デフォルトの名無しさんNGNG
>>480
TreeViewで各nodeを右クリックすると一度選択されたようになり、また元の項目に戻ってしまうので
右クリックでも選択出来るようにしたいのです
0484480NGNG
>>483

procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
TreeView1.Selected := TreeView1.GetNodeAt(MousePos.X,MousePos.Y);
end;
0485デフォルトの名無しさんNGNG
イベントで
with (Sender as Sender.ClassType) do Caption:=name;

こう書いたけど
これって、Caption も name もSenderじゃなくて フォームのになってしまうんだけど?
0486デフォルトの名無しさんNGNG
インラインコンプリート?
コード補完の事かな? BCBは悪いと思うけど Delphiは普通だと思うよ
0487デフォルトの名無しさんNGNG
コード補完に関しては
C#>>>>>>>>>>>>>>VC>>>Del

VCは候補のコメントを、C#はヘルプを
チップヘルプで表示してくれてめちゃ便利
0488デフォルトの名無しさんNGNG
>>437 あれは確かに金かかってるよね。
でもあれ自作コンポで出せるの? 出せたとしても敷居が高そうだね
0489デフォルトの名無しさんNGNG
>>484
ありがとうございました
0490>488NGNG
確認してないけどソース中のXML形式のコメントから拾ってくるんじゃない?
ヘルプもこのコメントから生成されるわけだし。
だとすれば敷居はだいぶ低いはず。
0491デフォルトの名無しさんNGNG
>>485
フォームが送出したイベントだから。
0492デフォルトの名無しさんNGNG
いや (Sender as Sender.ClassType).Caption:='試験';
と書いてみれば判るけど、 Captionは無いとでる

as は動的にではなく、コンパイル時の状態で比較してるんじゃない?

 というか、こんなふうに書きたいならCOMにするしかないと思う
0493ななしヘタぐらま ◆B18Bks.Y NGNG
>>485
『イベントを発生させたコンポーネントの名前を
フォームの見出しに表示させたい』
ということでしたらこんな感じで.

with Sender as TComponent do
Caption := Name;

Caption はTComponentの公開プロパティではない(存在しない)ので
フォームのCaptionだと解釈され,
NameはTComponentの公開プロパティなので
Sender(がTComponentだとしてそ)のNameだと解釈されます.
0494デフォルトの名無しさんNGNG
DelphiにできてC++builderにできないことってないんですか?
0495デフォルトの名無しさんNGNG
>>494
C+++独自拡張でDelphiで出来ることは大抵できる。
じゃないとVCLの使い回しとか不可能だし(実際、結構無理してると個人的には思う)
0496デフォルトの名無しさんNGNG
delphi + 翼のvisual Formade の組み合わせって
いいですかねぇ?
経験者、語ってください。
0497494NGNG
>>495
DelphiとC++builderを両方使ってる人ってどういう風に使い分けてるんですか?
0498デフォルトの名無しさんNGNG
>>497
いるんだろうか・・・?
BCBでもPascalコンパイルできるし。
0499494NGNG
>>498
すいません、自分の勘違いみたいでした。。

ところで、2chを見ると
C++builderよりDelphi使ってる人のほうが多いみたいなんですけど
なんででしょうか・・?
0500デフォルトの名無しさんNGNG
>>499
そう?2chビューアとか少なからずBCBで作られてたりするけど。
0501デフォルトの名無しさんNGNG
>>499
Delphiはパーソナルがフリーだから
0502デフォルトの名無しさんNGNG
>>498
BCBのC++はコンパイルが遅いのでDelphiのほうが気楽。
BCB5 のIDEのエディタはDelphiより低機能だし、Delphiのフォームが編集できない。
→ 普段Delphiだけ, C++でなければならないものだけBCB

としてる。Turbo Cからupgradeを続けてきたが、BCB6は申し込んでない・・。
0503デフォルトの名無しさんNGNG
Delphiのエディタで編集中のテキストデータを、別のプログラムから読み込んだり・書き換えたりする方法は無いですか?

0504デフォルトの名無しさんNGNG
>>503
エディタのウインドウハンドル見つければ。
0505Delフサギコ ◆zE1iiRdQ NGNG
           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < IDEの機能使ってヨシ。
  ミ⊃  ミ⊃  \____________
 〜ミ  ミ
   ∪''∪ ただし保存してから開くべし

[ツール]-[ツールの設定]でダイアログを開き
[追加]で、ツールプロパティダイアログを開き


[タイトル]
  好きな名前を付ける
[プログラム]
  エディタのExeをフルパスで指定
[作業フォルダ]
  設定しなくてよい
[実行時引数]
  $EDNAME
  EmEditorの場合、行番号も引数に渡す
    /l $ROW $EDNAME


応用してIDEで開いているファイルの
ひとつ上のフォルダを開くヤツ。かなり便利。


[タイトル]
  好きな名前を付ける
[プログラム]
  エクスプローラを指定、以下のどの指定方法でもOK
    explorer
    explorer.exe
    C:\WINNT\explorer.exe
[作業フォルダ]
  設定しなくてよい
[実行時引数]
  現在開いているファイルのフォルダを普通に開く
    $PATH($EDNAME)
  現在開いているファイルのフォルダをエクスプローラで開く
    "/n", "/e", $PATH($EDNAME)
  プロジェクトフォルダを普通に開く
    $PATH($EXENAME)
  プロジェクトフォルダをエクスプローラで開く
    "/n", "/e", $PATH($EXENAME)
0506デフォルトの名無しさんNGNG
Delphiで使用できるSAXパーサはありませんでしょうか?
MSXML以外で探しています。(Win95+IE3の環境でも使いたい)

Googleで検索してたら、ドラムとかギターとか出てきてビビッた。
だれだよ。Delphiなんて名前のバンド(しかもサックスもいる)を作ったのは(w
0507デフォルトの名無しさんNGNG
>>506
ちょっとウケた。
XMLっつーとDOMばっかりでSAXライブラリはなかなか充実しないね、
XPath使えるやつもほしいんだけどなー
0508デフォルトの名無しさんNGNG
(´-`)。o ○ (Delphi談話室がKylixの話題もOKになったそーだ…。別BBS付けてほしいな…。
Kylixの話題なんてあるのか…?)
0509508NGNG
(´-`)。o ○ (「別BBSにして、そっちでやってほしいな…」だった…)
0510デフォルトの名無しさんNGNG
http://sourceforge.net/search/?type=soft&exact=1&q=Kylix
0511デフォルトの名無しさんNGNG
Kylix3はC++とDelphiがワンパック。
http://www.ebob42.com/columns/cttm2002.htm
0512デフォルトの名無しさんNGNG
http://xml.defined.net/SAX/
を探せばあると思う。確かexpatらパーもあったし、全部実装してるやつもあったよ−な。
0513デフォルトの名無しさんNGNG
Delphi買っている人いる?
0514デフォルトの名無しさんNGNG
iru
0515デフォルトの名無しさんNGNG
あーあ、パーソナルにちゃんとしたヘルプがついてりゃ割れ物使わなくてもいいのになぁ。
金貯めるかぁ。
0516デフォルトの名無しさんNGNG
>>515
付いてるけど?
あれ読んでダメなら才能無いと思われ。
0517デフォルトの名無しさんNGNG
>>516
ああ、「ちゃんとしたヘルプ」じゃなくて「F1キーで出てくるあのヘルプ」と言うか何というか…
まぁ、いいか。
0518デフォルトの名無しさんNGNG
初心者な質問ですいません、エクスプローラの詳細表示等で使われている
複数の情報を表示できるリストのような物は何というのでしょうか
0519デフォルトの名無しさんNGNG
リストビュー
TListView
0520デフォルトの名無しさんNGNG
>>519
どうもです
0521デフォルトの名無しさんNGNG
>>515
エンプラ体験版のヘルプだけ抜き出して使え。
0522デフォルトの名無しさんNGNG
>>521
成る程。期限が来て使えなくなるのはIDEだけだからな。
0523デフォルトの名無しさんNGNG
Delphiのヘルプって読みにくいよな。
やる気なくすヘルプだよ。
0524デフォルトの名無しさんNGNG
ヘルプに責任を押しつけるとは・・・・・・・・・・・・・・・・・・・・・正解。
0525デフォルトの名無しさんNGNG
初心者な質問ですいません、Formって多い方がいいのですか?
少ない方がいいのですか?
0526デフォルトの名無しさんNGNG
多い日も安心です。
0527デフォルトの名無しさんNGNG
>>523
狂おしく同意!
誰か弱々しい僕ちゃんにDelphi教えてくれよ!(w
0528デフォルトの名無しさんNGNG
Formは適当に…
つか、あまりごちゃごちゃさせない程度に必要なだけ作ってよし。
0529デフォルトの名無しさんNGNG
>>525
フォームが少なければ少ないほどリソースは食わない。
フォームが少なくなって使いづらいアプリになるくらいなら俺ならフォームを多くする。
フォーム1000個とかヴァカやら無い限り、使い勝手を優先すべきだと思う。
だけど、フォームが多くて使いやすいアプリなんて知らん!
0530デフォルトの名無しさんNGNG
>>523,527
耐えてくれ。
0531デフォルトの名無しさんNGNG
多いのが気になるなら動的に読み込めば良いんじゃないの?<Form
0532ダースベイダーNGNG
フォースが足りないんですが、どうしたらいいですか?
0533デフォルトの名無しさんNGNG
>>532
ガンダム界に行きなさい。
0534デフォルトの名無しさんNGNG
ルークよFormを使え
0535デフォルトの名無しさんNGNG
市販の本とか使わないで、Delphiのヘルプだけで使いこなせるようになった人っている?
0536デフォルトの名無しさんNGNG
>>532
過去ログみろ
0537デフォルトの名無しさんNGNG
>>535
俺。3.1時代だけど。
0538デフォルトの名無しさんNGNG
>>537
優秀だなぁ。
どのくらい時間かかったの?
0539525NGNG
まさか真面目にレスが貰えるなんて…
>>all ありがとう
0540デフォルトの名無しさんNGNG
>>538
さぁ、高校2年くらいだし。
1年後にはコンポーネントとか書いてたなぁ・・・。
オーバーライドとかはいまいちわかってなかった。継承とかはわかってたけど。
あれから5年経ったけど今では手足のように使える。
0541デフォルトの名無しさんNGNG
>>535
どの程度で使いこなしたって言うの?
0542デフォルトの名無しさんNGNG
>>540
高二でヘルプを理解したって、尊敬するよ。
Delphiの本ってほとんど無いから、俺も今日からヘルプで頑張ってみる。
0543デフォルトの名無しさんNGNG
継承わかって Override わかんないってのもあれだね。あれ。手足のようだね。
0544デフォルトの名無しさんNGNG
>>541
ま、明確な基準は無いけど。
自分の作りたいと思った物が自由に作れるようになったらかな、俺の基準では。
0545デフォルトの名無しさんNGNG
>>542
だってアレしかなかったんだもん。頼れる物は。
後、本屋で必死にAPIの引数暗記して帰ったりとかw。

>>543
自分でクラス作って駆使するようなプログラムを書いていなかったと。
クラス組むだけで一仕事だし。
攻防のおもちゃプログラムにはクラスいらなかったw。
最近はオブジェクト指向の有用さは理解してるつもり。
0546ジ○ジ○NGNG
ターコイズブルーのOverrideォ!コォォォォ!震えるぞハート!
0547デフォルトの名無しさんNGNG
>>542
現在の年齢で比べるより経験年数とかで比べる方が妥当だと思うよ・・・
0548デフォルトの名無しさんNGNG
>>546を隠匿したいのですが・・・。
0549デフォルトの名無しさんNGNG
>>547
それもそうだね。

>>545
Delphi以前にプログラム経験ってあったの?
0550デフォルトの名無しさんNGNG
>>545
>後、本屋で必死にAPIの引数暗記して帰ったりとかw。
たいした記憶力で感心するけど
英語版のAPIヘルプは付いてるんだから
その記憶力があれば英語を勉強した方がいいかもね

俺はヘタレだからMSDNを開いちゃうけど
0551デフォルトの名無しさんNGNG
>>549
DOSでCを一年ほど。その前にN88-BASIC2年。
0552デフォルトの名無しさんNGNG
>>550
Shell_Notifyicon()とか載ってなかったのよ。当時。
隠しAPI扱いだったっけか?
0553デフォルトの名無しさんNGNG
>>545
ああ、オレもよくファミ通の裏技暗記して家に帰ってたよ。
0554デフォルトの名無しさんNGNG
>>552
NT3.5か3.51
用の英語ヘルプだったな。確か。
0555デフォルトの名無しさんNGNG
(´-`)。o ○ (本屋で座り込んでメモに書き込んでる強者を見たときは愕然としたなぁ…)
0556デフォルトの名無しさんNGNG
>>555
いるいる。採用コーナーでSPIの問題写してるアフォとか。
写真取って各社にばらまいてやろうかと小一時間悩んだ。
0557ジジィNGNG
>>553
やったやった(藁
忘れちゃうから(コマンドだから)、語呂合わせ作ったりね。
「ろくよんじょうげのみぎひだり」とか(藁
電話して書き込んでもらおうとも思ったけど、さすがにやめたなぁ。
0558デフォルトの名無しさんNGNG
雑談スレはこっち。
http://pc.2ch.net/test/read.cgi/tech/1021554929/l50
0559デフォルトの名無しさんNGNG
>>557
最近はメールしてるふりして携帯に打ち込んだり出来るよね。
新製品の型番メモったりはよくしてる。
0560デフォルトの名無しさんNGNG
>>551
俺はDelphiが始めての言語どす。
ヘルプのみで頑張り…ま……す…………。(泣)
0561デフォルトの名無しさんNGNG
>>560
一区切り付いたらCも触っておいた方が良いよ。
なんだかんだ言ってあっちの一族がデファクトスタンダードだから。
Pascalやり込んでおけば1週間かからないと思う。
0562デフォルトの名無しさんNGNG
>>561
一区切り付いたら…ね。(笑)
Cちゅーのは、C++でもいいですか?
もし触る機会があったら、C++Builderがいいかなと思って。
0563デフォルトの名無しさんNGNG
>>562
そだね。C++としての機能は一通りそろってるし。
0564デフォルトの名無しさんNGNG
Customsortを行いたいのですが、どうやっても、"変数が必要です"とのエラーが出てしまいます
ヘルプを始めwebにあるものを、そのままの形で試しても駄目でした
環境はDelphi6personalです。情報がほとんど無いのですが
どなたか原因らしきものが分かれば教えてください
0565デフォルトの名無しさんNGNG
>564
ソースを晒してみろ
0566デフォルトの名無しさんNGNG
>>564
んで、どうやったんだ?具体的には
0567564NGNG
遅くなって申し訳ない

procedure TForm1.FormCreate(Sender: TObject);
begin
ListView1.CustomSort(@CustomSortProc, 0);
end;
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
Result := -CompareText(Item1.Caption,Item2.Caption);
end;
0568デフォルトの名無しさんNGNG
>>567
で、何行目でエラー?
0569564NGNG
3行目の@CustomSortProc,の右がわにカーソルが来た状態で
変数が必要です とのエラーです
0570デフォルトの名無しさんNGNG
>>569
第二引数がvarだったりとか?
0571デフォルトの名無しさんNGNG
>>567
後、CustomSortProcはListView1〜より上に書いた方が良いかも。
代入する時点ではCustomSortProcは宣言されてない扱いになったりとか。
0572564NGNG
編集画面の段階でListViewに適当な文字列をいれて、それ以降はいじってない状態です
>>571
上にもってきたのでしたが駄目でした。またnilにすると動きます
0573デフォルトの名無しさんNGNG
>>569
調べてみた。

>VCL リファレンス
TCustomListView.CustomSort

>TCustomListView 参照 例
>CustomSort メソッドは,指定された順序付け関数を使ってリストの項目をソートします。

>type TLVCompare = function(lParam1, lParam2, lParamSort: Integer): Integer stdcall;

引数全然違うがな。

0574デフォルトの名無しさんNGNG
ワラタ
0575564NGNG
あらら、申し訳ないTT
みなさんありがとうございました
0576デフォルトの名無しさんNGNG
あ、例では
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
Result := -CompareText(Item1.Caption,Item2.Caption);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListView1.CustomSort(@CustomSortProc, 0);
end;

になってるのか・・・不思議だな。
Integerで受け取ってTListItem(へのポインタ)にキャストかな?
0577564NGNG
ttp://hp.vector.co.jp/authors/VA009712/take/delphi/kabedel.htm
でもやはりItemになっているみたいで
また、引数をTLVCompare = function(lParam1, lParam2, lParamSort: Integer): Integer stdcall;
に合わせてみたのですがやはり駄目でした。もう少しふんばってみます
0578デフォルトの名無しさんNGNG
>>577
http://www2.justnet.ne.jp/~tyche/bcbbugs/reports/customsort001.html

こんなんありました。BCB用だけど。
0579デフォルトの名無しさんNGNG
>>577
http://hp.vector.co.jp/authors/VA009712/take/delphi/kabedel.htm

にて、

Value := lstrcmp(PChar(TListItem(Item1).Caption),
PChar(TListItem(Item2).Caption));

なぜキャスト?
0580564NGNG
>>578
ううむ、そこも検索で出てきたので見てみたのですが
駆け出しなものでdelphiとどう照らし合わせたらいいかが分かりませんでした(^^;
>>579
ううむ、lstrcmpというのは使ったことないのですがapiなのですね
comparetextより応用が聞くのですかね…
ひとまずその段階の手前でつまづいてるようです
0581564NGNG
確かに違う型をいれると
PFNLVCOMPAREと互換性は〜と言われるので>>579さんのアドレスが関係あるみたいです
0582デフォルトの名無しさんNGNG
Delphiをどうしても「でるふぃ」と読んでしまう折れをどうにかしてください。
0583564NGNG
Oncompareを使うことで解決しそうです
いろいろと調べてくれた方々、ありがとうございました
0584デフォルトの名無しさんNGNG
先生!TStream型について1から教えてください!
お願いします!
0585デフォルトの名無しさんNGNG
>584
Readで読み込み
Writeで書き込み
Seekで移動

以上!
0586デフォルトの名無しさんNGNG
>>585
ありがとうございます。
ヘルプを見ると、
function Read(var Buffer; Count; Longint): Longint;
となっています。
Countには読み込むバイト数を入れるんですよね?
Bufferには何を入れれば良いのですか?
0587デフォルトの名無しさんNGNG
文字列sに読むとしたら

SetLength(s,100);

Read( PChar(s)^ , length(s) );
0588デフォルトの名無しさんNGNG
>>582
ぐちゃぐちゃのぐっちょんぐっちょんのねっちょんねっちょんにしてぐりぐりしてほしいってことか?
0589デフォルトの名無しさんNGNG
ネイティブに発音すると「でるぴぃ・ひ!」です。
さんはい!
0590デフォルトの名無しさんNGNG
                        タリー
タリー      タリー
   (\_/)          タリー
   (  ´Д)    タリー              タリー
   /   つ  (\_/)   (\_/)ノ⌒ヽ、
  (_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__)
0591デフォルトの名無しさんNGNG
TMediaPlayerでWaveファイルを再生しています。
停止状態からTMediaPlayer.Playを実行して再生すると5回に1回くらい失敗します。
MCIのErrorは起きてないようですが、再生の状態になりません。
なぜなんでしょう?


0592デフォルトの名無しさんNGNG
MCIはあんまり信用ならんからAPI直叩き
0593デフォルトの名無しさんNGNG
ふと思ったんだけど、VBのInputBoxって、Delphiでは無いのかね?
0594デフォルトの名無しさんNGNG
>>593
調べたことないだろ
0595デフォルトの名無しさんNGNG
>>>593だが、
すまん!逝ってくる
0596デフォルトの名無しさんNGNG
>>594
本気でごめん。
ヘルプで検索する時、ImputBoxで調べてた…
アフォすぎて本気で死にたくなったよ…
かちゅ〜しゃの人は俺のレス、透明あぼ〜んしてしておいてくれ。
0597デフォルトの名無しさんNGNG
>582, 588
まだ連載続いているの?
0598デフォルトの名無しさんNGNG
>>589-590
ワラタ
0599デフォルトの名無しさんNGNG
まったり雑談中すいません、教えて下さい。

TRichEditで、特定行のフォントのスタイルや色を変えたいのですが
具体的にどうすればよいのでしょうか?

一応Win32APIというかEM_というprefixがつくメッセージをつかって
現在行のStringや現在行数を得たりするところまではできています。
宜しくお願いします。

環境:
Win2K Delphi6 personal
0600デフォルトの名無しさんNGNG
>>599
StartPos EndPos
0601デフォルトの名無しさんNGNG
SelAttributes
0602デフォルトの名無しさんNGNG
フォームを継承しようとしたら、
Actionmanager1は継承できません。
とエラーが表示されました。何故ですか?
0603デフォルトの名無しさんNGNG
一子相伝だからです。先にケンシロウが継承したと見た!
0604デフォルトの名無しさんNGNG
>>603
ワラタ
0605599NGNG
>>600-601
速いレス、ありがとうございました。
早速googleとMSDNと、ヘルプをみてみます。
0606デフォルトの名無しさんNGNG
ComboBoxのベロンと出てくるとこだけ欲しい。
もし作れるなら、誰か教えてー
0607599NGNG
度々すいません、TRichEditについて再確認なんですが、
StartPos EndPosを用いて、コントロールのStartPos文字目からEndPos
文字目まで選択状態にして、SelAttributesで書式を決定する、
という流れでOKですよね?


0608デフォルトの名無しさんNGNG
黙ってやって
それからレスして
0609デフォルトの名無しさんNGNG
>606
あれはListBoxだ。
が、必要な時だけベロンチョと出てくるのが好きならPopupMenu使え。

横の▼ボタンが欲しいって話ならSpeedButtonで。
0610デフォルトの名無しさんNGNG
    \          >>609 ありがとう〜 その手があったか。
  (゚д゚) エンジョイプレイ!  PopupMenuのアニメーションの仕方変えたらいい感じだったよ。
  <(  )           あとオーナードローすれば、ばっちりいけそうだ。
    < \
0611デフォルトの名無しさんNGNG
ベロンチョ
0612デフォルトの名無しさんNGNG
Enterprise版のWebSnap使ってる人いるかい?
どうかな?
0613デフォルトの名無しさんNGNG
SQLのCREATE TABLEで、日本語のフィールド名を持つParadoxテーブルが作成できません。

環境 Delphi6 Pro (BDE5.20) + Database Desktop
症状 日本語を含む項目名をクォーテーションやダブル・クォーテーションで囲もうが、エリアス
    を設定しようが、エラーで跳ねられる。
参考 Local SQLのヘルプでは、出きると書いてあるけど、SELECT文のサンプルのみ(これは
    出来て当たり前)

 BDE5.xx以降は、数万件規模のインデックス付きテーブルを作ると、「OS内部の深刻なエラー」
というアラートとともにお亡くなりになるので、SQLでインデックスをDROPし、再度CREATEしよう
と思ったのですが、どうせならテーブルから作りなおそうとしたのですが、上記の不具合のため、
手を焼いております。

 何かよい解決方法があれば、お教え頂きたいのですが。
0614モグタンNGNG
バビンチョ
0615Delフサギコ ◆zE1iiRdQ NGNG
>どうせならテーブルから作りなおそうとしたのですが

  ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < どうせなら、それをやめたらどかしら。
  U  ミ   \____________
  ミ  ミ
 ノ∪∪
  レコード全削除、全Insertでよろしかない?
0616506NGNG
>>512
ありがとん。アメリカ語はよくわからないけど、がんばって読んでみます。
0617どきれいなど素人NGNG
Delphiで、テキストとバイナリが
混じったファイルから,

"("と")"にくくられたデータを
取り出すには一般的にはどうするの
ですか?

そのデータがutf-16の文字列の
場合、シフトJISに変換する関数は
ありますか?

0618デフォルトの名無しさんNGNG
>>617
本屋にいけー
金がないやつぁ、図書館にいけー
0619デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1021201697/360
0620デフォルトの名無しさんNGNG
>>615
Insertにすると、テーブル(もくしはインデックス)があぼーんされるのです。
(いま件数数えてみたら……あはは、12万件超えてますわ)
↑ちなみに郵便番号の件数です。

 よく考えたら、CREATE TABLEが駄目なら、おそらくCREAT INDEXも駄目
でしょうし、PradoxやDatabase Desktopって内部的にはSQL文を発行している
みたいなのに、どうやって実現しているのでしょうね?
0621デフォルトの名無しさんNGNG
Firebirdと言ってみる
0622デフォルトの名無しさんNGNG
>>617
バイナリ混じりならTFileStreamかな。

ウニコードは、Stringでキャストするか、
Wide〜とか使えばできるんじゃないの?
0623デフォルトの名無しさんNGNG
>>620
漏れもParadoxで郵便番号データ扱ってるけどうまくいってる。
違いはフィールド名が英語なこと位かなぁ。
日本語のフィールド名やめたら?
0624デフォルトの名無しさんNGNG
>>620
[フィールド名]って書いてみれば?と言ってみる。
0625デフォルトの名無しさんNGNG
ageてしまった・・・
0626デフォルトの名無しさんNGNG
>>623
時間の関係で、今回は諦めてインデックスを削除してから全件削除して、〒事業庁の
CSVから変換しました。
 ・10万件規模の場合、2次インデックスがあると書きこみ途中であぼーん
 ・ついでにBDEもあぼーん
 ・このまま続行すると、テーブルまであぼーん
 ・あとからインデックスを追加する分には問題無し

>>624
書きこみ前に駄目元で試してますが、駄目でした。
それじゃ悪背洲でんがな(w

0627デフォルトの名無しさんNGNG
>>626 OS は何? ファイルハンドルの数が足りないような感じの現象だね
0628デフォルトの名無しさんNGNG
>>627
Win98SE + BDE5.xです。
(DBテーブルをローカルに置こうが、NT4 Serverに置こうが、駄目でした)

Win95 + BDE3.xでは、別に問題は無かったのですが。
(ファイルハンドラの件は、確かに盲点ですね)

なにせ12万件のデータですので、Pradoxではキツイから、何か他の方法を考えて
みようかと思います。(これまで持っているのは、データの変更を個別に行なわず、
半年に一度程度で作りなおしているためだと思います)。

(一応、D1から浮気もせず使いつづけている者ですが、今回は有難うございました)
0629デフォルトの名無しさんNGNG
BCB使ってるんですが、
コンポーネント作りの参考にVCLのソースを見ていたら、
親クラスのプライベートメンバにアクセスしてる部分がありました。

なんでじゃ。
0630デフォルトの名無しさんNGNG
プライベートでも
 同じ unit つまり 同じ .PAS ファイル 内では C++でいうfreand扱いだからです
0631デフォルトの名無しさんNGNG
おお、そうだったんですか。ありがとう。
0632デフォルトの名無しさんNGNG
Delphi はじめの一歩
でブラウザ作っててエラー出たの、俺だけっすか・・・?

Lesson9で
未定義の識別子:'SCS_NAVIGATEFORWARD'
未定義の識別子:'SCS_NAVIGATEBACK'
って出るんですけど。。・゚・(ノД`)・゚・。
0633デフォルトの名無しさんNGNG
>>632
タイプライブラリの取りこみで取りこんだユニットをUSESしてる?
0634デフォルトの名無しさんNGNG
>>632
これはありえないと思うのですが
「CSC」_NAVIGATEFORWARDが
「SCS」_NAVIGATEFORWARDになってませんか?
見当違いだったらスマソ
0635632NGNG
>>633
それってLessonに出てきてませんよね?何を書けばいいんでしょうか。
Lesson1のActiveXの取りこみはやったんですが。

>>634
ブッ
>>632のカキコでは思いっきり間違ってますね…。
ソースでも記述ミスしたかも。
手元にインストしたPCがないので明日確認してみます。
0636599NGNG
かなり遅いレスですが、ありがとうございました。
無事解決しました。

横レススマソ。続きをドウゾ↓
0637デフォルトの名無しさんNGNG
了解しました。
0638デフォルトの名無しさんNGNG
納得いきません↓
0639デフォルトの名無しさんNGNG
納豆はいりません→
0640デフォルトの名無しさんNGNG
じゃあオクラはいる?↑
0641デフォルトの名無しさんNGNG
TreeListでルート項目の二つ目のindexを求める場合
一つめの項目の子項目が1階層ならば
TreeList.items.item[TreeList.items.item[0].count + 1]
等で出せるのですが、子階層の中にさらに階層がある場合は
どのようにして調べればよいのでしょうか?
Senderを使い回帰的に行えたらと思ったのですが、旨くいきませんでした

調べられる事ができるプロパティやメソッドがあればその名前を
そのような物が無い場合、funciton作成のヒントを教えてください
0642デフォルトの名無しさんNGNG
D6 personalにwin32.hlpがあったのを今更ながら発見した。。。
MSDNで探し回っていた俺って。。。

0643デフォルトの名無しさんNGNG
TreeList?
0644632NGNG
できました。やっぱりCSCとSCSを間違えてました。( ・∀・)σ)Д`)←俺

ところで、コンパイルは無事に終了したんですが、正常に動作してない
ようなんです。WebBrowser1が、Forwardに正常に表示できるページが
なければForwardButtonを押せない状態にしてくれるんですよね?
最初のURLを入力した後はForwardもBackも押せる状態で、押すと
やっぱりエラーがでてしまうんですが…。
0645デフォルトの名無しさんNGNG
で、Delphiやろうかと思ってるんだが
やっぱりクライアントサイド最強かね?
0646デフォルトの名無しさんNGNG
>>645 70%の人は1ヶ月程仕事で使えばそう思うと思います
0647デフォルトの名無しさんNGNG
>>646
おお。2ヶ月程度の仕事に使うんだよ。ちょうどいいね。
どのへんがいいのかな?おれCしかやったことないんだけどね。
0648デフォルトの名無しさんNGNG
>>641 TTreeViewの話なら、TTreeNodeのAbsoluteIndex使うといいんでないかい
0649デフォルトの名無しさんNGNG
>>647
 最初の1週間はコントロールを貼り付けてイベントに少しコードを書くだけでいいと思います
 次の1週間くらいから、 Cと同じように、共通の処理や再利用出来そうなコードを別ユニットにします
 3週間目はデータベース周りならTQueryに挑戦しましょう
 4週目から良く使いそうな部分をコンポーネントにしてみましょう。そしてそのコンポーネントのユニットに
 自分が良く使う手続きとかを押し込んでおきましょう

後はもう、コンポを増やせば増やす程効率があがり、クライアントサイド最強を実感出来るでしょう
0650デフォルトの名無しさんNGNG
Delphi 6 にある TLabeledEdit、あれはどうやって実現しているのでしょうか?
似たようなコンポーネントを作りたくていろいろやっているのですが、どうしても
うまくいきません。具体的にはボタンの下に色つきの線を引きたいのです。
TButton を継承して、

type
 TMyButton = class(TButton)
 private
  Line: TShape;
 public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
 end;

constructor TMyButton.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 Line := TShape.Create(self);
 with Line do begin
  Parent := self.Parent;
  Pen.Width := 3;
  Pen.Color := clRed;
  Left := self.Left;
  Top := self.Height;
  Width := self.Width;
  Height := 3;
 end;
end;

のようにやってみても色つきの線が出ません。

どなたか教えてください。Delphi 6 は Personal しか持っていないので、
ソースを見ようにも……。
0651Delフサギコ ◆zE1iiRdQ NGNG
  ∧,,∧      こんなんでしたっけ?
 ミ,,゚Д゚彡,,,,,,    CreateHandleメソッドのinherited後に
 ∩,,,,,,,,,,,,,,⊃⊃   TShape生成処理をいれたらいかがかしら?

まちがってたら指摘たのんます

Create呼び出し
  Create

Parent設定
  CreateHandle begin
    CreateWnd begin
      CreateParams
      CreateWindowHandle
    CrateWnd end
  CreateHandle end;
0652デフォルトの名無しさんNGNG
そもそもボタンに TShapeは載せられないでしょう
0653無責任だがNGNG
TButtonではなく TPanelにしたらいいのでは >>650

ボタンもパネルも外見ソックリでしょ
0654Delフサギコ ◆zE1iiRdQ NGNG
     ∧,,∧
    ミ,,゚Д゚彡   コード見ると、Buttonの前(Zオダ)に
    (ミ   ミつ  ハイチ死体んじゃないと思われ。
     ミ   ミ
     ∪ ∪  TLabeledEditの話も出てル〜シ〜
0655無責任だがNGNG
あっと ボタンでもOKだね。 問題は単に表示位置の問題
これで試してみて

constructor TMyButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Line := TShape.Create(self);
with Line do begin
Parent := self;
Pen.Width := 3;
Pen.Color := clRed;
Left := 3;
Top := 3;
Width := self.Width-3;
Height := 3;
show;
end;
end;
0656デフォルトの名無しさんNGNG
>>650で Parent := Self.Parentとしているということは、
表示したいのはボタンのクライアント外でないんかな。
0657デフォルトの名無しさんNGNG
Del フサギコさん、ありがとうございました。ご教示の方法でできました。

type
 TMyButton = class(TButton)
 private
  Line: TShape;
 protected
  procedure CreateHandle; override;
 public
  destructor Destroy; override;
 published
 end;

procedure TMyButton.CreateHandle;
begin
 inherited CreateHandle;
 Line := TShape.Create(self);
 with Line do begin
  Parent := self.Parent;
  Pen.Width := 3;
  Pen.Color := clRed;
  Left := self.Left;
  Top := self.Top + self.Height;
  Width := self.Width;
  Height := 3;
 end;
end;

これでボタンのすぐ下に 3 ピクセルの赤い線が引かれました。あとはボタンの
移動とリサイズに反応して線の位置や長さを変えればよさそうです。

どうもありがとうございました。
0658657NGNG
>>653
実は以前に TPanel を継承して似たようなものを作ったことがありますが、
今回は TButton を継承して作ってみたかったのです。Delphi-ML の過去ログを
検索すると誰だか分かってしまいますが……。

提示いただいたコードも試してみます。どうもありがとうございました。
0659デフォルトの名無しさんNGNG
漏れでは解決の仕方がわからんので別の方法を提案してみる。

TButtonのWM_PAINTメッセージを乗っ取って、
自分の描画が終了したら、親となるコントロールに直接描画したらだめなのかしらん?

  TTestButton=class(TButton)
  private
    procedure WMPaint(var Msg:TWMPaint);message WM_PAINT;
  end;

procedure TTestButton.WMPaint(var Msg: TWMPaint);
var
    PCanvas:TCanvas;
    LRect:TRect;
const
    LHeight=3;
begin
    inherited;
    Msg.Result := 0;

    PCanvas := TCanvas.Create;
    PCanvas.Handle := GetDC(Parent.Handle);
    try
        PCanvas.Brush.Color :=clRed;

        LRect:=Self.BoundsRect;
        OffsetRect(LRect,0,LHeight);
        LRect.Top := LRect.Bottom-LHeight;

        PCanvas.FillRect(LRect);
    finally
        ReleaseDC(Parent.Handle , PCanvas.Handle);
        PCanvas.Free;
    end;

end;

深くは考えていないのでたぶん問題が出ると思うが。
0660デフォルトの名無しさんNGNG
既に解決してるんでないの
0661659NGNG
あ、やっぱだめだわこの方法。
忘れてくれ。
0662デフォルトの名無しさんNGNG
>>649
Σ(゚д゚lll)ズガーン
だいぶ長いこと3.1 Proを使ってますが、最初の1週間の作業
以外やったことない・・・。だって困らないんだもん。

3.1 proで作ったデータベースを 6 personalで読み込もうとしたら
DBTextやDBNvavigateが見つかりませんとか出ますけど、
やっぱり駄目なんでしょうか。会社がケチで金出してくれないので…。
0663Delフサギコ ◆zE1iiRdQ NGNG
          わざわざ継承するのはイヤンだったので
     ∧,,∧   TCompo継承で
    ミ   彡   MainControlとSubControlプロパをリンクで設定したら
    (o  o)  Mainの移動に追随してSubが動くような奴ツクタ
     ミ ν ミ  いるですか?、あまり使い勝手はよくないけれども−
     ∪ ∪ 
  メセジのフックは難しかたな。

>Delphi-ML の過去ログを
>検索すると誰だか分かってしまいますが……。
ま、詮索はせずに…
0664Delフサギコ ◆zE1iiRdQ NGNG
     ∧,,∧  ウプっしました。
    ミ,,゚Д゚彡   
    (ミ   ミつ せっかくなので。イランでも使え
     ミ   ミ
     ∪ ∪

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022133258
0665650NGNG
>>664
ありがとうございます。今回はこれを直接使うことはしませんが、ソースを見て
大変参考になりました。実はあの後ちょっと詰まっていたところでしたので。

本当にありがとうございました。
0666デフォルトの名無しさんNGNG
ポップアップメニューの枠の部分を自分で書くことはできまスでしょうか
0667デフォルトの名無しさんNGNG
漏れ獣の数字だage
0668デフォルトの名無しさんNGNG
某所で「ウニコード・UTF-16・Tfilestream」の質問してる  
「ミカンの皮」っての、マルチポストだよネ?     
ここで聞きまくってるのと。    
0669デフォルトの名無しさんNGNG
>>668
お前もしつこいな。スクリプトか?
0670デフォルトの名無しさんNGNG
>>669
ご本人ですかぁ?マルチポストはイカンよなぁ。
0671デフォルトの名無しさんNGNG
>>670
別人だけど?
お前のマルチポストが目に余ったから抗議したまで。
0672デフォルトの名無しさんNGNG
>>671
「人に質問しといて、どこかがビンゴすればOK!レス無いところはシカト!」
ってのと、どっちが悪質かね?
シカトされたとこの立場は?
0673デフォルトの名無しさんNGNG
>>672
はい、PCQA住人なもんでね。
マルチの問題は正確に認識していると思うよ。俺は。
だからといってそれがお前が抗議文マルチポストした理由にはならない。
0674デフォルトの名無しさんNGNG
>>672
ああ、シカトされた人だ(劇藁嘲笑
0675デフォルトの名無しさんNGNG
>>672
ミカンの皮とやらを知らない者にとっては、
お前のマルチポストとage荒らしがうざい。
0676666NGNG
漏れの質問が流れてるから嫌い
0677672NGNG
>>674
えーと。されてないデスヨ。
「(劇藁嘲笑」←なにこれ。

>>675
sageますた。



ま、これで二度とここで聞けまい。
0678デフォルトの名無しさんNGNG
>>676
ああ、シカトされた人だ(劇藁嘲笑
0679デフォルトの名無しさんNGNG
電波が湧いてるな。
http://pc.2ch.net/test/read.cgi/tech/1021038130/789
0680666NGNG
笑われちゃいまスた
0681デフォルトの名無しさんNGNG
>666
できないんじゃない?
0682666NGNG
あら、そうですか。残念・・・。
>>681 ありがとうございます。
0683666NGNG
ス・テ・キ♪
0684666NGNG
>>683 ?
0685デフォルトの名無しさんNGNG
騙り騙られ2ちゃんる
0686デフォルトの名無しさんNGNG
>>666-685

 ウ ザ イ
0687デフォルトの名無しさんNGNG
この板も(精神年齢)21禁にすべきだ(w
0688デフォルトの名無しさんNGNG
21歳以上禁止?(w
0689デフォルトの名無しさんNGNG
>>648
返事が遅くなってすみません
そのabsoluteindexを求める方法がわからないのです
親から*個目を指定するプロパティがあるのでしょうか?
0690デフォルトの名無しさんNGNG
>>663
年々基準の精神年齢って変化すると思うんですけど何を指標にすればいいの?
偉そうに言うんだから客観的な判断基準があるんでしょ音符
0691Delフサギコ ◆zE1iiRdQ NGNG
 ∧,,∧ 俺かよ…
ミσ゚Д゚ミσ
0692デフォルトの名無しさんNGNG
せっかくなのでDelフサさん意見をどうぞ
0693デフォルトの名無しさんNGNG
>>689
ノードの親の中でのインデックス
Node.Index

ノードのルートからのインデックス
Node.AbsoluteIndex

ノードのn番目の子ノード
Node.Item[n]

ルートからn番目のノード
TreeView.Items[n]

ノードからn番目のノード
TreeView.Items[Node.AbsoluteIndex + n]

    (゚д゚) <これらで解決シル!!
   ~(  )−
    / >
0694デフォルトの名無しさんNGNG
database desktop って使ってる?
作ったDBってのはアプリケーションと一緒に配布できるの??
0695デフォルトの名無しさんNGNG
>>693
大元の親の子の数(?)はItems.Countとなってしまい求めることが出来ず困って居ます
スマートではないですがこんなかんじで書いてみました
while (TreeView1.Items.Item[nodelevel].Level <> 0) or (TreeView1.Items.Item[nodelevel].AbsoluteIndex = 0) do
begin
Inc(nodelevel);
end;

と書いてみたのですが、このようなローラー作戦みたいな事はやはり処理時間も長くなってしまうのでしょうか?
0696デフォルトの名無しさんNGNG
 A
 ┣B
 ┃┣C
 ┃┗D
 ┣E

>>695 このツリーで何を求めたいのか詳しく説明プリーズ。
0697695NGNG
Eです。
奇麗な表現に感動
0698デフォルトの名無しさんNGNG
>>697 = 641
>TreeListでルート項目の二つ目のindexを求める

procedure TForm1.Button1Click(Sender: TObject);
var
i,Count:integer;
begin
Count := 0;
for i := 0 to TreeView1.Items.Count-1 do
if TreeView1.Items[i].Level = 1 then begin
Inc(Count);
if Count = 2 then
Label1.Caption := TreeView1.Items[i].Text;
end;
end;

広場でもレス、書けよ
0699デフォルトの名無しさんNGNG
広場は〜広いから〜広場と〜言うの〜♪
0700695NGNG
>>698
ありがとうございます。まだ見たばかりで
これからソースの流れを理解したいとおもいますが助かりました

あと広場とは他のスレでしょうか?私はここにしか書いていないので
もしかしたら他の方とかぶっているのかもしれません
一応アドレスを張っていただけると助かります
0701デフォルトの名無しさんNGNG
ルートの2つ目の子なら単に
TreeView1.Items[0].Item[1]
で、いいんでないかい。
0702デフォルトの名無しさんNGNG
>>701

ほんとうだぁ。

Label1.Caption := IntToStr(TreeView1.Items[0].Item[1].AbsoluteIndex);
0703デフォルトの名無しさんNGNG
>>702

結局 >>648 に戻るわけね
0704デフォルトの名無しさんNGNG
漏れが648で TreeView1.Items[0].Item[1].AbsoluteIndex
と書いておけば済んだってオチ。<(゚д゚) テヘッ
0705デフォルトの名無しさんNGNG
VCLのソース うpキボン
0706デフォルトの名無しさんNGNG
・・・
0707デフォルトの名無しさんNGNG
オーイ
0708デフォルトの名無しさんNGNG
>>705
誰かつっこんでやれw
0709デフォルトの名無しさんNGNG
>>705
ハッケソ
http://www.google.co.jp/search?hl=ja&ie=utf8&oe=utf8&q=%E3%81%95%E3%81%A3%E3%81%95%E3%81%A8%E5%9B%9E%E7%B7%9A%E5%88%87%E3%81%A3%E3%81%A6%E9%A6%96%E5%90%8A%E3%82%8C&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0710デフォルトの名無しさんNGNG
>>709
アリガトン
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%BB%FE%C2%E5%C3%D9%A4%EC&sw=2
0711695NGNG
うあ、皆様ありがとうございます
>>696
さんの表で言うとAは実際には表示されておらず(大元のルートという存在)
B,Eが表示されている項目(level0)。ていうつもりで話していました。説明が何度もたりず申し訳ないです
Items.item[0](=Items[0]?かな ヘルプにはそんな感じで書いてありました)
の中の階層という事ではありませんでした
一応解決できたと思うのでソースをかいておきます

procedure TForm1.Button1Click(Sender: TObject);
var
nodelevel,rootindex: integer;
begin
nodelevel := 0;
rootindex := 0;
while (TreeView1.Items.Item[nodelevel].Level <> 0) or (rootindex <> 1) do //1は検索したいindex
begin
if TreeView1.Items.Item[nodelevel].Level = 0 then
Inc(rootindex);
Inc(nodelevel);
end;
showmessage(inttostr(TreeView1.Items.Item[nodelevel].absoluteindex));
end;

まだ質問に慣れておらず、みなさんを混乱させて申し訳ありませんでした
0712デフォルトの名無しさんNGNG
なるほど、B、Eがレベル0でAが存在しないと。
それじゃ、

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(TreeView1.Items[0].getNextSibling.AbsoluteIndex));
end;

必要な回数getNextSibling繰り返せばヨシ! (゚д゚)
0713695NGNG
>>712
おお、これこそ求めていたものです。
これで処理速度を保つことが出来ます、ありがとうございました
0714デフォルトの名無しさんNGNG
特にDelphi固有の問題じゃないのですが、、、

Windowsの標準のスクリーンセーバーである3Dテキストやラインアートのファイルを
取得して実行させたいのですけど、システムフォルダの中に*.scrのファイルとしては
無いみたいです。

どこにありますか?
0715デフォルトの名無しさんNGNG
>>714
検索もかけずによくもまぁぬけぬけと。
0716デフォルトの名無しさんNGNG
>>714
http://pc.2ch.net/test/read.cgi/tech/1020772896/l50
↑こっちで聞いてくれない?
0717デフォルトの名無しさんNGNG
>>714
オカンのタンスの上から2段目にあります。
0718デフォルトの名無しさんNGNG
もうねようね。おやすみ
0719デフォルトの名無しさんNGNG
基本的なことなんですが、
関数内でC言語でいうstatic変数を使いたいのですがどうすればいいですか?
関数が呼ばれるたびに同じ値を使いたいので。
グローバル変数にしないとだめなんでしょうか。
0720デフォルトの名無しさんNGNG
>>719
procedure 〜
const
ここに書いてね。
var
 ・
 ・
 ・
0721デフォルトの名無しさんNGNG
static変数とやらと、グローバル変数の違いは何?
利点は何?
0722デフォルトの名無しさんNGNG
>>721
スコープがローカルかグローバルか。

前回の状態をフィードバックできる関数が書ける。
0723721NGNG
>>722
ふーむ。サンクスコ。
0724719NGNG
>720
const節は定数宣言じゃないですか?
自分が知りたかったのは静的変数のことでちょっと違うんですが。
0725デフォルトの名無しさんNGNG
>>724
http://www.wwlnk.com/boheme/delphi/vbtodel/daf0910.html
検索したら速攻引っかかった。不思議。
0726デフォルトの名無しさんNGNG
>>724
それが違うんだ。
ヘルプで型付き定数検索してみ。
0727719,724NGNG
失礼しました。
720,726さんの言われるとおりでした。
ありがとうございました。
0728デフォルトの名無しさんNGNG
ヘルプ見ればわかるけど、$Jコンパイラ指令がONのときのみ書き換え可能で
Delphi5はデフォルトONだったが、Delphi6でデフォルトがOFFに変更になったからややこしい。
0729デフォルトの名無しさんNGNG
720さんのコードのようにローカル変数的に書いても値が保持され続ける
というのはなんか気持ち悪いね

const
 変数名: 型名 = 初期値;

procedure 〜
var
 ・
 ・
 ・

こうしたい気分
0730729NGNG
でもスコープが違うか・・・慣れるしかないね
0731デフォルトの名無しさんNGNG
>>729
>720さんのコードのようにローカル変数的に書いても値が保持され続ける
それがstatic変数だと思われ。
0732729NGNG
>>731
static変数っていうのはインスタンスではなくクラスの属する変数っていうことで
スコープ云々の話ではなかったような・・・

Delphiの場合、implementation部に書くことでunit外からのアクセスは禁止できるけど
そのクラス内からだけアクセスできるようには出来なさそうな気がする
(ローカル変数的に書くと他のメソッドからも見えなくなる)
0733デフォルトの名無しさんNGNG
×クラスの属する
○クラスに属する
0734デフォルトの名無しさんNGNG
ObjectPascalにはCのfriendみたいな機能が無い代わりにunitが
識別子のスコープの単位になっている。
だから>>719みたいな用途だったら、そのクラスまたは関数が定義
されているunitのimplementation部でグローバル変数を書けばよし。
そのグローバル変数を初期化したければ、initialization部を使う。
0735グロイザーXNGNG
つーか、結局delphiにおいてはグローバル変数だっちゅーことで解決ですか?
0736デフォルトの名無しさんNGNG
皆様は以下のif文でどれが一番綺麗だと思いますか?

例1
if … then
begin
 …
end else if … then
begin
 …
end else
begin
 …
end;

例2
if … then
begin
 …
end
else if … then
begin
 …
end
else
begin
 …
end;

例3
if … then
begin
 …
end
else if … then begin
 …
end
else begin
 …
end;


私は例2の様に書いているのですが、
end
else
begin
の部分が美しくないと思ったので、変えようと思っています。
稀に
end else begin
の様に全部同じ行に書くコードも見たことがありますね。
例に無い書き方でお勧めがありましたら、書いていただけるとありがたいです。
0737永久ループNGNG
if … then begin
  …
 end
 else begin
  if … then begin
    …
   end
   else begin
    …
end;
0738永久ループNGNG
あ、beginが多かった。
0739デフォルトの名無しさんNGNG
if ・・・ then
begin
 ・・・
end else
if ・・・ then
begin
 ・・・
end else
begin
 ・・・
end;
0740739NGNG
>>739はオススメってわけじゃないよ。
俺はこう書いてるってだけ。
0741デフォルトの名無しさんNGNG
レッツビギン!
0742デフォルトの名無しさんNGNG
俺はこう書くのが好き
      if … then begin
 …
end else if … then begin
 …
end else begin
 …
end;
0743436NGNG
>>737
???

>>739
それも綺麗で読みやすいですね。
でも、elseの部分が
if …then
 …
end;
if …then
 …
end;
と読み間違えたりしそうで心配です。(笑)
とりあえず、私の中での選択候補に入れさせていただきます。

>>742
それマジですか?
本当だったらかなり凄いんですけど!
しかも綺麗だし…。
芸術的だと思います。
可読性も構造化しないなら良いのですが、
構造が複雑になってくるとあまり読みやすくない気がします。

他にも投票や新しい案など、よろしくお願いします。
0744742NGNG
構造化? さらにネストする時? ホントはこれが3行以上長くなるなら

   if … then proc1
else if … then proc2
else       proc3
 ;
というように書くよ
0745デフォルトの名無しさんNGNG
>>732
>static変数っていうのはインスタンスではなくクラスの属する変数っていうことで
>スコープ云々の話ではなかったような・・・

それ、JavaとかC#のキーワードがなぜか同じなお話。
後、Cでもローカル変数ののstaticキーワードとグローバル変数のstaticキーワードは意味が違う。
0746デフォルトの名無しさんNGNG
上位ワード・下位ワードの値を一つにする方法を教えてください。
また、分ける場合はHi, Lo関数で大丈夫ですか?
0747デフォルトの名無しさんNGNG
>>746
?
MakeLong()

0748デフォルトの名無しさんNGNG
>>717
ごめん。おかんのタンスの中は探してなかった。見つかった。ありがとう。
0749746NGNG
>>747
 32bitと32bitを引数に入れて、返値が64Bitになる関数はありませんか?
0750デフォルトの名無しさんNGNG
>>749
そもそもOPascal64bit変数合ったっけ?
0751746NGNG
>>750
 Int64型があります。(確かDelphi4からだったかな)
0752デフォルトの名無しさんNGNG
>>745 サンクス
C的な意味でのstaticの話だったわけですね
Javaが別の意味に同じキーワードを使って、C#もそれに倣ったと
(ローカル変数のstaticに近いから、全然別というわけでもないか)

勉強になりました(というか、勉強不足・・・恥)
0753デフォルトの名無しさんNGNG
>>752
って言うかC#ってstatic使えないんだ。
試したらコンパイルエラー。
大発見。
0754デフォルトの名無しさんNGNG
>>作ればいいし関数にしなくても

Int64Rec(変数名).Lo= xx;
Int64Rec(変数名).Hi= yy;

と2行で書けるし
0755デフォルトの名無しさんNGNG
>>751

long a = 5385,b = 46601;
int64 c;

c = a;
c << 32;
c |= b;

もしくは
c = a * 4294967296 + b;
0756デフォルトの名無しさんNGNG
>>754
共用体ですか。なるほど。
0757無責任だがNGNG
アセンブラ関数にすれば 本体書かずに

function MakeInt64(lo,Hi:Integer):int64;asm end;
0758無責任だがNGNG
あ 呼び出し規約 register を付けといた方が安全か
0759デフォルトの名無しさんNGNG
>>748
うちのおかん、もう55歳だけど親父と結婚する前の職業がプログラマーだよ。
Windows知らないくせにブラインドタッチだよ、マジで。
紙テープにセーブしていたとか言うんだよ。
0760746(=751)NGNG
>>754
 すいません、共有体という言葉は聞いたことあるんですが、
それがどういう仕組みなのか未だに理解出来ません。
解説してあるサイトを探しても見つからなくて…。

>>755
 C言語コードは理解出来ません…。すみません。
0761760(=746=751)NGNG
>>757
 アセンブラ関数は分からないんですが…。
0762デフォルトの名無しさんNGNG
Windowsの標準のサウンドファイルが置いてあるフォルダを取得出来るAPIは無いでしょうか?
Getsystemdirectoryしか見つからない。。。
0763無責任だがNGNG
>>761 判らなくても

function MakeInt64(lo,Hi:Integer):int64;register; asm end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption:=IntToHex( MakeInt64(1,3),16);
end;

みたいに使うといいよ

0764デフォルトの名無しさんNGNG
>標準のサウンドファイルが置いてあるフォルダ
??
「My Documents\My Music」のこと?
SHGetSpecialFolderLocationでMy Documents探せば
0765デフォルトの名無しさんNGNG
:\WINNT\Medi
とかか?
0766デフォルトの名無しさんNGNG
>\WINNT\Medi
\WINNT\Media
0767デフォルトの名無しさんNGNG
>>764-766
レスありがとうございます。
winnt\mediaやwindows\mediaの事です。
とりあえず、Getwindowsdirectoryに追加する形が一番早いみたいなのでそれで処理しました。

あと、最後にいくつか教えてください。
フォームのキャプションとタスクバーを消すにはどうしたらよいのでしょうか?
もう一つですが、フォームを透明化するにはどのようにしたら良いでしょう?

wsmaxmizeでもCaptionは残ってしまっているので困っています。
バックアップ処理をするスクリーンセーバーを作っているので画面を単色にしたいのです。
フォームの透明化はImageをはりつけて色々とやっているのですが、なかなかうまくいきません。
将来的にはImage上で簡単な図形を書こうと思っています。
どうかよろしくおながいします。
0768デフォルトの名無しさんNGNG
フォームを透明にする十分な理由が無いなら リージョンを作った方がいいでしょう
0769デフォルトの名無しさんNGNG
>>768
リージョンですか。ちょっと調べてみます。
フォームのタイトルバーを消すのはBorderStyleをいじって出来ました。
0770デフォルトの名無しさんNGNG
>>760
record型において、同じメモリ領域に複数のフィールド名を持たせる方法。
同じメモリをつかってるから、たとえば、
hoge.foo := 1;
とやれば
hoge.bar
も自動的に1になったりする。
Cではunion、Pascalではrecord宣言の中にcase ... end; を入れる。
0771デフォルトの名無しさんNGNG
なんでみんなRubyを貶すのかなー?
もしかして劣等感?僻んでる?
日本発の言語で世界に評価されているのはRubyしか存在しないんだから
みんなでRubyを盛り上げてC++やDelphiなんて、プププのプーってぐらいに
しなきゃ。
実際今まで10年ぐらいプログラミングしてきた俺だけど、Rubyより優れた
言語に出会った事がないよ。
やっぱり新しい言語は優れているんだろうね。



0772760(=746=751) NGNG
>>763
 本当だ、理論は分からないけど、出来ました。
ありがとうございます。

>>760
 なるほど。
type
TFoo = record;
case Integer of
0:
1:
end;
っていうのを見たことがあるんですが、これはどうなるのですか?
0773デフォルトの名無しさんNGNG
スクリプト言語とコンパイル言語を比較しようとする>>771は頭がおかしいのでは無いかと思う。
比較するならPerl,PHP,Phytonとかとしろ。
0774デフォルトの名無しさんNGNG
>>773
>771は頭がおかしいのでは無いかと思う。
まさしく・・・771はマルチポスト
0775デフォルトの名無しさんNGNG
puuuuuuuuuuuupupupu
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Delphi
0776RubyistNGNG
Ruby is Nanbar one!!
0777デフォルトの名無しさんNGNG
>>776
英語のつもり?思いっきり綴り間違えてるぞ
0778デフォルトの名無しさんNGNG
>777
アンチRuby厨の罠
0779デフォルトの名無しさんNGNG
Delphi6 Enterpriseの評価版をインストールしたんですが、プログラムを実行す
る時に必ず「WindowsがBorland Delphi6を設定中です。」というダイアログが出
てしまいます。
設定が終われば二度目の実行時にはダイアログが出なくなるのですが、Delphiを
終了してもう一度Delphiを起動するとまたダイアログが出てしまいます。
インストールした環境はWindows 2000のServicePack2です。
レジストリが壊れてるのかと思ってOSから入れなおしてみましたが他にアプリが全
く入っていなくても同じ現象が起こります。
どなたか解決策をご存知無いでしょうか?
0780デフォルトの名無しさんNGNG
クラック法を伺いたいのでしょうか?
0781デフォルトの名無しさんNGNG
>>780

めっそうも無い。
正規の使い方をしてるだけなのに、実行の度にダイアログが出てウザいんですよ。
もしかしてこれは評価版の仕様なんですか?
0782デフォルトの名無しさんNGNG
Delphiにはx = a ? b : cのような3項演算子は無いのでしょうか?
if a then
x := b
else
x := c;
とやるしか無いのですか?
0783デフォルトの名無しさんNGNG
>>782
Pascalは行儀の良い言語なのでそう言うのは無いですな、確か。
0784デフォルトの名無しさんNGNG
>>782
ありません
3項演算子のように極度に記号的なものは
プログラミング言語の中では特異なものだと考えます
0785デフォルトの名無しさんNGNG
>>782
IfThenって関数が出来たが・・・使いたきゃどうぞ。
0786782NGNG
>>783-785
ありがとうございました。
大抵の言語ではifより3項演算子使った方が高速になると思ったもので…
0787デフォルトの名無しさんNGNG
>>786
最近の最適化は賢いから小手先のコードいじりって無駄なことが多かったり。
3項演算子でもアセンブラになれば同じ子としているようにも思える。
0788デフォルトの名無しさんNGNG
この反応の仕方がやっぱなんか異質
0789デフォルトの名無しさんNGNG
>>788
ちゃんとどの発言か指してね。
0790デフォルトの名無しさんNGNG
>>783
>>784
>>785
煽りがよく来るのもわかる気がする。Del使いだけどね。
0791デフォルトの名無しさんNGNG
>>790
Delphi関係の参考書によく書いてあることだけど。
0792デフォルトの名無しさんNGNG
> Pascalは行儀の良い言語なので
> 3項演算子のように極度に記号的なものはプログラミング言語の中では特異なものだと考えます
> ・・・使いたきゃどうぞ
0793デフォルトの名無しさんNGNG
おせっかいが多いのは事実だと思う
困ってるとき質問投げるとすぐ答えてくれるから便利だけどw

その便利さに比べたら言語擁護ぐらい目をつぶれw
0794デフォルトの名無しさんNGNG
まあね
0795デフォルトの名無しさんNGNG
>>788は2ch初心者の小さな女の子なの・・・。
許してあげてね♥
0796デフォルトの名無しさんNGNG
>>792
事実。その代わり融通が利かない場面もしばしば。
事実。上に準ずる。
function IFTHEN(a :boolean;b :Integrer;c :integer) :integer;
begin
if(a)
Result :=b
else
Result := c;
end;
こんな関数を呼び出すのは非常にばからしいと私は思いました。
0797デフォルトの名無しさんNGNG
アフォが湧いてきたな
0798デフォルトの名無しさんNGNG
>>797←典型例
0799デフォルトの名無しさんNGNG
>>798は自覚があるらしい(藁
0800デフォルトの名無しさんNGNG
ObjectPascalが嫌なら他の言語使え。誰も止めん。
質問スレなのにおせっかいが多いだ? 戯言がお好きなようで。
0801デフォルトの名無しさんNGNG
次の質問どーーーーーーーーーーーーーぞ
↓
0802デフォルトの名無しさんNGNG
質問です。
Delphiに文句を言う奴に限ってBCBを使いたがらないのはどうしてですか?
0803デフォルトの名無しさんNGNG
Delphiはなんで質問スレが何種類もあるの?
どういう時にどれを使うとかいう決まりでもあるとか?
Delphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/test/read.cgi/tech/1021201697/
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室�B
http://pc.2ch.net/test/read.cgi/tech/1021554929/
0804デフォルトの名無しさんNGNG
>>802
私はDelphi嫌いですがBCB好きです。
0805デフォルトの名無しさんNGNG
>803
一番下のは雑談スレですが。
0806デフォルトの名無しさんNGNG
>>805
あ、そうなんだ。
0807デフォルトの名無しさんNGNG
>>803
本家
ネタスレのパロディ
ネタスレ
0808デフォルトの名無しさんNGNG
>>800
> ObjectPascalが嫌なら他の言語使え。誰も止めん。
> 質問スレなのにおせっかいが多いだ? 戯言がお好きなようで。

>>800は>>793にレスしてるんだよね。
おせっかいが多いといったのは彼だけだから。

でも、>>793のレスを見る限り、彼はDelphiが好きなんだよね。
その彼に対してこんなレスつけちゃうんだもんなぁ。

>>788の「異質」は俺も感じる。
0809デフォルトの名無しさんNGNG
>>808
ホントなんでこんなに引っぱるかなあ・・・。
「粘着」を感じる。
0810デフォルトの名無しさんNGNG
誰もObjectPascalが嫌なんて言ってないしな
どこからそれ出てきたの?>>800 (w
0811デフォルトの名無しさんNGNG
>>810
じゃあ何が嫌い?
0812デフォルトの名無しさんNGNG
非常に初歩的な質問でごめんなさい。
StartBtnをクリックするとTimeLbl.Captionが秒を刻むようにしたいです。
以下の様にコーディングすると、コンパイルはできましたが、TimeLbl.Captionが秒を刻みません。
ケアレスミスだと思うのですが、どこが間違えてるのかわかりません。(^^ヾ
誤りがありましたら、指摘していただけたらありがたいです。m(_ _)m

var
 Form1: TForm1;
 Time_: TDateTime;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Time_ := IncSecond(Time_);
 TimeLbl.Caption := FormatDateTime(ShortTimeFormat, Time_);
end;

procedure TForm1.StartBtnClick(Sender: TObject);
begin
 Timer1.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 TimeLbl.Caption := FormatDateTime(ShortTimeFormat, 0);
end;

ちなみに、ちゃんとTimer1.Intervalは1000になってます。
0813デフォルトの名無しさんNGNG
>788,808
「異質」なんて言われても通じないんですけど。
無駄な独り言はよそでやれ。
0814デフォルトの名無しさんNGNG
>>810
煽り屋は呼んでないよ?
0815デフォルトの名無しさんNGNG
>>812
TDateTime使わずにIntegerでも良いと思われ。
後、グローバル変数にするよりクラスのメンバにした方がgood。
0816デフォルトの名無しさんNGNG
異臭ってどんな臭いですか?
0817デフォルトの名無しさんNGNG
>>812
ShortTimeFormatのせい。ヘルプみてみそ
時:分になっちまう
0818デフォルトの名無しさんNGNG
>>815
ありがとうございます。
TDateTime型ではなくInteger型を使用するということは、
分の部分と秒の部分で2つの変数を使うということですよね?
何か面倒な気が…(^^;
Time_変数をクラスのメンバにした方が良いのはどうしてですか?
未だにメンバにする場合、グローバル変数にする場合の使い分けがよくわかってないもので…(汗)
0819808NGNG
     ヽ( ゚д゚)ノ 失礼しやしたー
   -=≡ (  )へ
       >
0820デフォルトの名無しさんNGNG
>>818
ああ、そうか、分もはかりたいのね。

Format("%02d;%02d"[Time div 60,Time mod 60]);

とか。
0821デフォルトの名無しさんNGNG
>>818
クラスにするとスコープ(アクセスできる範囲)がクラス内に留まる。
この場合、TimeはTForm1のメンバから呼び出される可能性は無いのでクラスメンバにした方が望ましい。
まぁ、2つ以上のインスタンスを生成するようになれば少しは実感できるかも。
0822デフォルトの名無しさんNGNG
(´-`).。oO(同じDel使いのこぼした感想がこんなことに・・・恐るべし
0823デフォルトの名無しさんNGNG
>>822
半分言いがかりだしw

次に来るであろう

「便利なのにどうしてないんでしょうかねぇ?」

と言う質問を見越しただけという意見も。
0824デフォルトの名無しさんNGNG
もうええやん。
0825デフォルトの名無しさんNGNG
適当なクラスを使って生成したインスタンスは、例えプログラム終了直前でもフリーする必要があるのでしょうか?
0826デフォルトの名無しさんNGNG
>>825
すべきです。
0827デフォルトの名無しさんNGNG
>>826
では、フリーしないと実際に問題が生じますか?
0828デフォルトの名無しさんNGNG
>>817
おっしゃる通りでした。
ありがとうございます!

>>820
FormatDateTime(ShortTimeFormat, Time_);
          ↓
Format("%02d;%02d"[Time div 60,Time mod 60]);
そうしてみたら、コンパイルできなくなっちゃいました。
つか、FormCreateイベントで
FormatDateTime(ShorTimeFormat, 0);
にしてしまうと、TimeLbl.Captionが「12:00」になってしまいました。(笑)

>>821
Time_変数をTForm1のクラスにすると、TForm1のメンバからしか参照できないっていうことですよね?
>この場合、TimeはTForm1のメンバから呼び出される可能性は無いので
この場合、Time_変数はTForm1のメンバであるTimerのイベントから呼び出されてということにならないのですか?
0829デフォルトの名無しさんNGNG
>>828
Format("%02d:%02d",[Time div 60,Time mod 60]);
コンマ忘れ。でもこれくらい補正してくれ〜。
なお、Time :Integerでお願い。
0830デフォルトの名無しさんNGNG
>>828
継承して、
TCountTimer(TTimer)
とかするならもちろんTCountTimerのメンバにあった方がいい。
0831デフォルトの名無しさんNGNG
>>827
それは状況によります。
メモリその他の資源はOSが解放してくれますが( Win9xだと頼るのは危険)
クラス作成者がデストラクタに何か意味のある動作を割り当てているかもしれません。
0832デフォルトの名無しさんNGNG
>>831
なるほど。ありがとうございます。

別の問題ですが。
Haltを使う場合も同様の危険をもつと認識していいのでしょうか?
0833デフォルトの名無しさんNGNG
>>832
Windowsのリソース管理機能に依存。
0834デフォルトの名無しさんNGNG
>>832
特に事情がないかぎりオブジェクトはすべてFreeして正常終了すべきだと思いますが。

malloc and freeとはまた別の問題。
0835デフォルトの名無しさんNGNG
>>829
>>828を書き込んだ時点で、コンマの追加やってましたよ。
で今、Time_: Integer; にして、IncSecond → Inc にしてみましたが、コンパイルできません。(泣)
まぁ、まだ良くわからないので、原始的な方法でやってみようと思います。
ありがとうございました。

>>830
子クラスからもその変数を使いたい場合は、ってことですよね?
ありがとうございます。
0836デフォルトの名無しさんNGNG
±5秒の精度で時刻比較をしたいのですが、TDateTime型をif文で
if Atime=Btime then
等と入力しても千分の一秒単位で比較することになってしまいます。
桁を丸め込んで比較しても同一タイムでしか比較出来ません。
このような場合、良い方法は無いでしょか?

0837デフォルトの名無しさんNGNG
>>835
ごめーん。"->'だわ。
最近C系の言語使うことが多くて・・・申し訳ない。
0838デフォルトの名無しさんNGNG
>>836
if Abs(ATime - BTime) / ( 1.0 / 24 / 60 / 60) < 5 then
0839ANGNG
>>836
てきとーな思いつきだけど、これでどう?
if Abs(Atime-Btime) < EncodeTime(0,0,5,0) then
0840Delフサギコ ◆zE1iiRdQ NGNG
           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < MinutesBetween 関数つかうとよし。
   U  つ   \
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ D6から追加された関数だと
       思うけど。
0841デフォルトの名無しさんNGNG
>>840 それ、名前のまんま分数を返すと思ふ
0842Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧     /えっと、それをつかって
   ミ;゚Д゚彡  < 差が5分以内かどうかを求められると
   ミU  U    \思うんだけど....
 〜ミ ,, ミ
   ∪ ∪
0843デフォルトの名無しさんNGNG
±5秒の差があっても同一時刻と判定したいんでない?
0844デフォルトの名無しさんNGNG
びょう べう 【秒】
ふん 【分】
0845デフォルトの名無しさんNGNG
 秒 VS 分
 カーン
    (゚д゚)
    ( ×) ファイッ
    / >
0846Delフサギコ ◆zE1iiRdQ NGNG

 ショボーン
  ∧,,∧    / 秒だった。。。。
  ミ  ,,ミ  < 
  し   ミ  \ きっと、脳の一部が壊死してんだ....
   ミ 〜ミ
   ∪''∪  欝氏欝氏

function FiveSecondsEqual(DateTime1, DateTime2: TDateTime): Boolean;
begin
 if SecondsBetween(DateTime1, DateTime2)<= 5 then
  Result := True
 then
  Result := False;
end;
0847デフォルトの名無しさんNGNG
カンカンカーン
秒 won!
0848835NGNG
>>837
おはようございます。
それも予測して、 ' ' でも試してみましたよ。(^^;
でもできませんでした。(泣)
0849デフォルトの名無しさんNGNG
836です。
みんな、ありがと!
if文の中で()を使えば単純計算も出来るだなんて知らなかったよ。

>>846
thenが二個あるのは秘密にしとくね。
0850デフォルトの名無しさんNGNG
教室のみんな、ありがとー!
お兄ちゃん助かりまくりだゾ!!
0851デフォルトの名無しさんNGNG
Delphi5.0で開発したプログラム(データベースはparadoxを使用)をパソコンにインストール
したら、「認識できないデータベースです」というエラーメッセージが表示
されまともに動きません。
どうもデータベースのエリアスが正しく設定されていないみたいです。
インストールにはDelphi5.0付属のInstallshieldを使用しています。
googleなどで検索してみましたが該当するものがありません。
インストールしたパソコンは98、XPです。
ただほとんどの98、XPパソコンでは正しくインストールできるのですが
メーカパソコンでosをアップグレードしたり、再インストールしたパソコン
でこの障害が発生します。
(たまたまかもしれない)
どなたかお助け下さい。
0852デフォルトの名無しさんNGNG
>>851
コントロールパネルの BDE Administrator で設定するとよろし
大抵の場合、間違った PATH が入っている(Installshieldの不具合かも)
0853デフォルトの名無しさんNGNG
>>785
3項演算子と違い、引数があからkじめ評価されてしまう罠。
0854デフォルトの名無しさんNGNG
onClickイベントハンドラで、TStringListの文字列を操作する手続き(SetQList)とQListを参照して処理する手続き(Question)
を呼び出したら、onClickのend;の部分で例外が発生してしまいました。
どこを直したら例外が出なくなるか教えてください。m(_ _)m
SetQList・Questionとも、TForm1のメンバとして宣言してあります。

procedure TForm1.StartBtnClick(Sender: TObject);
begin
 SetQList;
 Question;
end;

procedure TForm1.Question;
var
 QNum: Integer;
begin
 QNum := Random(QList.Count);
 QEdit.Text := QList[QNum];
end;

procedure TForm1.SetQList;
begin
 QList := TStringList.Create;
 try
  with QList do
  begin
   //文字列の操作(省略)
  end;
 finally
  QList.Free;
 end;
end;
0855デフォルトの名無しさんNGNG
QListをFreeしてるのに Questionで参照してるんだから当然

例外を出さないようにするには QListを永続的になるようにする必要がある

簡単なのは TStringListを TStringsを持つTComponent継承のどれかにして
フォームのOnCreateで オーナをフォームにして作っておけばいい
0856デフォルトの名無しさんNGNG
むっちゃ厨房な質問すいません、
他の言語と比べてDelphiのメリット、デメリット
WinAPIの使用、DirectXの使用について問題点なんかあったら教えてください
0857854NGNG
>>855様
レスありがとうございます。
言われてみれば当たり前ですね。(^^;
QList: TMemo; で宣言し、Linesプロパティで文字列操作をしてみようと思いました。
>フォームのOnCreateで オーナをフォームにして作っておけばいい
オーナをフォームにして作るってどうやるんですか?
0858デフォルトの名無しさんNGNG
>>856
メリット…
コンパイルが速い。
利用している言語の元の言語が教育用に適した言語。
VB並に簡単にプログラムが書けてランタイムがいらない(BCBもそうだが)
デメリット…
廃れる予定。
Delphiは言語じゃない。
最新のDirectXを扱うにはC++で扱うより面倒(ヘッダ移植するか探してこないとならないから)
APIも最新のじゃなければ普通に使えるがM$がわざわざObjectPascal用の
PlatformSDKを作ったりはしないので、
最新のAPIを使いたいなら自分で定義する必要があってやはり面倒。
0859デフォルトの名無しさんNGNG
結論…
最新の技術使いたきゃBCB使えw
0860デフォルトの名無しさんNGNG
実際のところ業務用アプリを書いてて最新の技術が必要な場合と言うのは
そう多くはないんだけどね

Delphiの最大のメリットはコンパイルが速いことに加えて
コンパイラの型チェックが頼りになるということかな
コーディングのミスを調べるためにリビルドするという
C++では考えられない方法を気楽に使える
0861デフォルトの名無しさんNGNG
×コーディングのミスを調べるためにリビルドするという
○わずか数行のコーディングのミスを調べるためにリビルドするという

この方が分かりやすいね
0862デフォルトの名無しさんNGNG
>>857
 TMemoね・・・・うーん
なんか窓ハンドルが勿体無いようにも思うけど・・・まあいいか

そういうレベルなら、単にフォームにMemo貼り付けてVisibleをfalseでやったら?
0863デフォルトの名無しさんNGNG
>>862
いや、TStringListでいいじゃん。
0864854NGNG
>>862
Memoを貼り付けてVisibleをFalseっていうのも、僕も考えてました。
その前にTStringListのままでインスタンスの破棄をしないテストをしてみたんですけど、一応正常に動きましたが、何かバグの原因になったりしますか?
0865デフォルトの名無しさんNGNG
>>864
非常に危険なのでデストラクタか何かに破棄コード書いて下さい。
0866854NGNG
>>865
デストラクタを学習中…(笑)
ところで、インスタンスを破棄するのって、生成した場所と違うプロシージャで行っても問題無いですよね?
0867デフォルトの名無しさんNGNG
>>866
問題ない。

その代わり解放するまでインスタンスをどこかの変数に閉じこめて決して見失わないように。
0868854NGNG
おかげ様で作りたかった物(かなりショボイ鬱打みたいな物、後は打つ言葉を考えるだけ。)が完成間近です。
質問に答えてくださった皆さん、どうもありがとうございました。m(_ _)m
0869デフォルトの名無しさんNGNG
>>865
そういえばFreeをやらないことなんて考えたことなかったな。
実際破棄しないと、どういう風に非常に危険なんだい?
フリーズで終わりじゃないの?
0870デフォルトの名無しさんNGNG
>>869
フリーズが起きるかどうかはクラスによる、けどあまり起こらない。
ふつーのメモリはDelphi のメモリマネージャが解放する(?)ので
自前で取得したメモリとかハンドルとかのリソース解放漏れが
発生するのが一般的に起きる問題だと思う。
‥‥間違っているかな?
0871デフォルトの名無しさんNGNG
>>869
TStringListを開放しないだけでフリーズなんてするわけないだろ
0872Delフサギコ ◆zE1iiRdQ NGNG
           _____________
  ∧,,∧    /
  ミ ゚Д゚ミっ < あさから質問っす。
  |''U ̄|   \______________
  | ̄ ̄|
 /    ゙ヽ
(   ゚Д゚  ) 質問だからage!
人____ノ

テキストファイルとバイナリファイルを区別する
には、どんしたらよろしかりけりでしょうか?

余計な制御コードの有無かなんか
の条件判断でわけるのがいいんでしょうか?


もうひとつ質問。
適当にサンプルコードを入力していると
usesするユニットが増えていて
実際にリリースする時には
余計なものがざっくり入っている場合があり、
そのせいで、exeのファイルサイズが
不必要にでかくなってしまうことがあります。
uses不要なunitを簡単に取り除くことはできるでしょうか?

知ってたら教えてくださいませー。
0873デフォルトの名無しさんNGNG
>>872
ASCIIかSJIS以外のコードが来た時点でバイナリ。
まぁ、テキストとバイナリの差なんて微妙なもんさ。
0874Delフサギコ ◆zE1iiRdQ NGNG

            _____
   ∧,,∧    /
   ミ*゚Д゚,,ミ < もそっと教えて。
   ミ つ つ  \_____
 @ミ   ミ
   (ノ'''''∪
どうやって、
> ASCIIかSJIS以外のコードが来た時点でバイナリ。
文字がASCIIかSJISコードかってのを
調べるのでしょうか?

微妙な差ってのはそんな気がしてましたが。
1文字のファイルなんて、判断つかないしなあ,,,
0875デフォルトの名無しさんNGNG
perlのJcode.pmでは[\x00-\x06\x7f\xff]が含まれていたらバイナリと判別してた。
fileコマンドは定義ファイル次第?
0876デフォルトの名無しさんNGNG
>>874
この方法の怖いところは5GBのファイルの最後の一バイトが突拍子もない値だっただけで
テキストファイルではありませんエラーが出るところ。
0877デフォルトの名無しさんNGNG
>>872
 昔のDOSでテキストファイルでもctrl+Z以後に#0とかゴミがあるばあいがあるから
 後ろの数バイトはctrl+Z以後を判定に含め以内ように

 文字コードが ShiftJIS とか判っているなら それが崩れてないかチェックするとか

uses を自動的に外すには
 ファイル名を与えると 先頭のuses を分解して 1個づつ外してはファイル出力し
  DCC32でエラーが出るかどうかチェックさせて 不要な uses を検出するという
 そういうアプリを作るしかないのでは?
 GUIアプリで作って、不要な uses を外した uses 行を出力してくれるような
0878Delフサギコ ◆zE1iiRdQ NGNG
    クレクレクレクレ
     ∧,,∧
    ミ,,゚Д゚彡  ソウスコウドくれくれ厨    
     ミ つ⊂ミ   でもいいですか?
     ミ   ミ
     ∪ ∪    どうやってSJIS判定したらいいのかも
           サパーリ....

usesの方は
C# vs Delphi Round 1
http://pc.2ch.net/test/read.cgi/tech/1021550705/195

uses Windows; {$APPTYPE CONSOLE}
procedure Exec(const Cmd: PChar);
var SInfo: STARTUPINFO; PInfo: PROCESS_INFORMATION;
begin
 GetStartupInfo(SInfo);
 CreateProcess(nil, Cmd, nil, nil, False, 0, nil, nil, SInfo, PInfo);
 WaitForSingleObject(PInfo.hProcess, INFINITE);
end;
var F: Text;
begin
 Assign(F, 'b.pas'); Rewrite(F);
 Write(F, 'begin Write(''Hello World'') end.');
 Close(F);
 Exec('dcc32 -cc b.pas'); Exec('b.exe');
end.

これを応用してなんとか
ならんもんだろうかしら。
0879デフォルトの名無しさんNGNG
>>878 俺の休みまで待てるなら書いてもいいけど
0880Delフサギコ ◆zE1iiRdQ NGNG
   ∧,, ∧
  ミ*゚Д゚*ミ  ま" ,,うれすぃお言葉。。
   ミ ⊃⊂ミ サンクスコ
   ミ   ミ    
   ∪ ∪  待ってますので
         マターリで作ってくださいませ。
0881デフォルトの名無しさんNGNG
>>878
…そのコードは使い捨てなのでCloseHandleを省略してしまってますけど、フサギコさんわかってますよね?
0882デフォルトの名無しさんNGNG
function isShiftJIS(s:string;var p:PChar):boolean;
var siz:Integer;
begin
p:=PChar(s);
siz:=Length(s);
while Siz>0 do begin
  dec(Siz);
  case p^ of
  {ShiftJisの第一バイト}
  #$81..#$9F , #$E0..#$EF: begin
   inc(p); //次の文字が {ShiftJisの第2バイト}でなければ
   if p^ in [#$40..#$7E,#$80..#$FC ] then inc(p)
   else begin Result:=false;Exit;end;
   end;
  {EOF }
  #$1A:
  begin Result:=True; exit; end;
  #0:
  begin Result:=false; exit; end;

  #$09,   {TAB}
  #$0d,#$0a,{改行}
  #$20..'~': inc(p);
  else begin Result:=false;Exit;end;
  end;
end;
end;
function MojiTest(s:string):string;
var p:PChar;
var isMoji:Boolean;
begin
isMoji:= isShiftJIS(s,p);
if isMoji then if p^ = #$1A then
isMoji := (Integer(p)-Integer(PChar(s))) <5;

if isMoji then Result:='たぶん文字' else
Result:=IntToStr(Integer(p)-Integer(PChar(s)))
+'文字目が$'+IntToHex(Ord(p^),2)+'だから変';
end;
///////////////// 試験用 コード /////////
var w:String;
begin
w:=Memo1.Lines.Text;
Memo2.Lines.Add( MojiTest(w));
w[random(Length(w)-1)+1]:=Char(random( 7));
Memo2.Lines.Add( MojiTest(w));
end;
0883デフォルトの名無しさんNGNG
あっと isShiftJIS でループ前か最後に Result:=True; を入れといて
0884デフォルトの名無しさんNGNG
あ、さらにバグ カナを忘れてたのと、漢字の場合の Siz更新を忘れてた。 メシ食べにゆく

function isShiftJIS(s:string;var p:PChar):boolean;
var siz:Integer;
begin
p:=PChar(s);
siz:=Length(s);
while Siz>0 do begin
  dec(Siz);
  case p^ of
  {ShiftJisの第一バイト}
  #$81..#$9F , #$E0..#$EF: begin
  dec(Siz);
   inc(p); //次の文字が {ShiftJisの第2バイト}でなければ
   if p^ in [#$40..#$7E,#$80..#$FC ] then inc(p)
   else begin Result:=false;Exit;end;
   end;
  {EOF }
  #$1A:
  begin Result:=True; exit; end;
  #0:
  begin Result:=false; exit; end;

  #$09,   {TAB}
  #$0d,#$0a,{改行}
  #$A0..#$DF,{カナ}

  #$20..'~': inc(p);
  else begin Result:=false;Exit;end;
  end;
end;
 Result:=True;
end;
0885デフォルトの名無しさんNGNG
別に文字コードとか関係なくテキストファイルはテキストファイルだよな。(ボソ
0886デフォルトの名無しさんNGNG
>>877
 ただ、元のプロジェクトと違うアプリとして作ってしまうと
 その uses したいファイルが見つからないというエラーも出てしまう可能性有
0887デフォルトの名無しさんNGNG
「Delphi 6 プログラミングバイブル」って6200円もする
本があって、かなり使える本なのですが、皆さんは
購入してます?

次期 delphi.net って、かなりコンポーネントの使い方が
違うんじゃないかと思うので....
0888デフォルトの名無しさんNGNG
>>887
します
.netは次次期になるんじゃなかた?
0889デフォルトの名無しさんNGNG
>887

コンポーネントじゃなくて、コントロールの
事かな?

BDEとSQLLINKは、無くなるらしい。
0890デフォルトの名無しさんNGNG
>>889
ParadoxとdBASE用のBDEは残るんでしょ
0891デフォルトの名無しさんNGNG
いま、趣味で、WebBroker+IIS使ってWebアプリケーションを作ってるのですが、
データの保存先にデータベースを使いたいと考えています(掲示板なんですが)。

で、BDE+Paradoxにするか、ADO+Accessにするか、dbExpress+MySQLにするか
悩んでいるのですが、運用面ではどうなんでしょうか。
BDEとAccessはそれなりに触ったことがあります。MySQLは軽いとの噂を聞いて
気になってます。
0892891NGNG
あ、BDE+Accessというのは無しで。
0893デフォルトの名無しさんNGNG
漏れ的には他プラットフォームにも転用できそうなdbExpress+MySQLがいいかも。

しかし、漏れはMySQLをいじったことがないヘタレなので参考にならない罠。
0894デフォルトの名無しさんNGNG
IBX+FireBird はいらんかね〜
0895デフォルトの名無しさんNGNG
俺はDelphiが大好きです。
大好きで大好きで仕方がありません。
いや、むしろ好きすぎて嫌気を感じます。
誰か、Delphiの弱点をたくさん教えてください。
シェアがないから会社で使えないとか、そういう事でなくて、
もっとDelphiの性能的な弱点を。
それを知れば、これからも俺はずっとDelphiを愛していられる…。
0896デフォルトの名無しさんNGNG
>895
無いなぁ。
0897デフォルトの名無しさんNGNG
>895
C#やってみたら(IDE付で)?
Delphiの古臭い部分がかなり改善されてて
その差異がそのままDelphiの欠点になってるのがわかるから。
0898デフォルトの名無しさんNGNG
>>891
BDE+Paradoxは先が無いからやめといた方がいいかもな。
0899デフォルトの名無しさんNGNG
>>898 TDataSetレベルで使えばMySQLとどう違うんだという話になると思うのだが?
  TQueryで使えば他のDBと操作感は同じだし?
0900デフォルトの名無しさんNGNG
>>897
むしろDelphiの2way-toolっぷりがすばらしいことを再確認しただけですが何か?
確かに言語は洗練されてるけどねえ?
0901デフォルトの名無しさんNGNG
>>895
プログラミング言語愛しちゃってどうすんだヴァカ。
0902デフォルトの名無しさんNGNG
Accessみたいに毎回仕様が変わるより
仕様が変わらなくてデータがそのまま使えるのなら
それはそれで使い勝手がいいかも
0903デフォルトの名無しさんNGNG
>>891
漏れも>>894に同意でIBX + Firebirdおすすめする。
いま仕事で使ってるがかなりいい感じ。
日本語ドキュメントが少ないが。
0904デフォルトの名無しさんNGNG
>>895
mapとかhashとかstlで簡単にできるような事が自分で実装しないとできない。
Delphi用のライブラリはC系のライブラリよりずっと数が少ない。
0905デフォルトの名無しさんNGNG
>>904
まぁ、言語的な弱点ではないけどね。
0906デフォルトの名無しさんNGNG
>>903
キャッシュアップデートって使えますか?
BDEの時はあれがすっごく便利と思ってたんで。
0907デフォルトの名無しさんNGNG
>>897
金無いしな…。
具体的にどう古臭いんですか?

>>901
だって…だって…Delphiが美しすぎて…。
Delphiが完璧すぎて生きるのが辛い!(笑)

>>904
スキなくせしてまだ全然詳しくないから前半はよくわからない。(苦笑)
後半は結局シ(ry (泣)
0908デフォルトの名無しさんNGNG
C#は現代的かもしれないけど、タカピー
料理のメニューは多いけど電子レンジでチンばかり
メニューにない料理を作ろうとしたらシランプリで助けてもくれない


Delphiは
古風だけどしっかり現実的で、2人で頑張ろうって思わせてくれる
一つ料理するにも自分が手伝ってやらなくちゃいけない所もチャームポイントだし
そして色んな所を自由に触らせてくれるのが最高
自分も成長するし、彼女も俺が成長させるって思わせてくれるんだ
0909デフォルトの名無しさんNGNG
C#話始めるとM$信者やDel厨に荒らされるのでよそでやろうぜ。
0910デフォルトの名無しさんNGNG
>>909
そもそもC#の話ってスレ違いだと思われ。
だからC#な話をしたければ別の板/スレへ逝くのは当然だと思われ。
0911デフォルトの名無しさんNGNG
C#とDelを絡めた話はこちらへどうぞ

C# 仲良し Delphi Round 2
http://pc.2ch.net/test/read.cgi/tech/1022662451/l50
0912永遠のwindows95ユーザNGNG
>>911
こんな僕でもそこへ行っていいですか?
0913デフォルトの名無しさんNGNG
外出かと思うけど
Del6のSampleタグにあるShellTreeViewとShellListViewは
MemCheckで見る限りではメモリリークを起こすね(各2回ずつ)

ソースがあればなんとかなるところだろうけど見当たらないし
使えないとすれば、見栄えがいいだけにちょっと残念だね
0914デフォルトの名無しさんNGNG
>>913 取り消し
Demos\ShellControlsに入ってた・・・これならなんとか使えそう
0915デフォルトの名無しさんNGNG
>>913
Borland Developer Networkに修正済みソースがおいてあったような
気がする。落としてないので,どこを直してるのかはわからんが。

まあ,ソースを見つけられたみたいだし,自分なりに直すのも良いと
思うけどね。
0916Delフサギコ ◆zE1iiRdQ NGNG
[Delphi:65307] Re: ShellTreeView で現在のフォルダを指定文字列で変更する方法

                _____
      ∧,,∧___   /修正版の情報が載ってるけど
    /ミ,,゚Д゚ミ/\<  メモリクが修正されてんのかな?
  /| ̄∪∪ ̄|\/ \_____
    |____|/
0917デフォルトの名無しさんNGNG
>>906
使えるようだが、ちゃんと機能してるかどうかは自信無し。
いまのところCacheUpdate + Transactionで制御してるけど
思ったとおりに動いてる。
0918デフォルトの名無しさんNGNG
delphi5ってどこかで落とせないんですかねえ?
pascalならあるんですけど授業と食い違うんですよ
0919デフォルトの名無しさんNGNG
>>918 D6パーソナルならあるけど、授業と食い違うって事?
0920デフォルトの名無しさんNGNG
>>919
マルチなので無視しようか。
0921デフォルトの名無しさんNGNG
FindDialogでMemoコンポーネント内を検索したいのですが、
TMemoにはFindTextメソッドが無いため、うまくいきません。
それで FindDialogのonFindイベントでTCustomRichEdit型のオブジェクト変数を宣言して
使おうと思ったのですが、何故かうまくいきません。
何故ですか?

また、Memo内検索で一般的に使われていると思われる方法はどの様なものなのでしょうか?
ご教授お願いします。
0922デフォルトの名無しさんNGNG
>>918
割れ厨なら氏ね。
マルチポストなら氏ね。
0923デフォルトの名無しさんNGNG
中古ソフト屋でお金払って落とす。
0924デフォルトの名無しさんNGNG
>>921
がんばれ
0925デフォルトの名無しさんNGNG
>>921
ふんばれ
0926923NGNG
>>924
がんばりますっ!

>>925
ふんばりますっ!




ED: TRichEdit; でもエラーが出る…(泣)
誰か…教えてくだせー。。。
0927デフォルトの名無しさんNGNG
>>921

function FindStr(s,str:string;InitPos:integer):integer;
var
 p,pinit,pStr:PChar;
 Len:integer;
begin
 Len := Length(str);
 pinit := PChar(s);
 p := pinit;
 inc(p,InitPos);
 pStr := PChar(Str);
 result := -1;
 while p^<>#0 do
  if AnsiStrLComp(p,pStr,Len) = 0 then begin
   result := p-pinit;
   break;
  end else inc(p);
end;

function RevFindStr(s,str:string;InitPos:integer):integer;
var
 p,pinit,pStr:PChar;
 Len:integer;
begin
 Len := Length(str);
 pinit := PChar(s);
 p := pinit;
 inc(p,InitPos);
 pStr := PChar(Str);
 result := -1;
 while p<>pinit do
  if AnsiStrLComp(p,pStr,Len) = 0 then begin
   result := p-pinit;
   break;
  end else dec(p);
end;

0928つづきNGNG
procedure TForm1.Button1Click(Sender: TObject);
var
 pos,initpos:integer;
begin
 if Memo1.SelLength = 0 then
  initpos := 0 else initpos := Memo1.SelStart+1;
 pos := FindStr(Memo1.Text,Edit1.Text,initpos);
 if pos <> -1 then begin
  Memo1.SelStart := pos;
  Memo1.SelLength := Length(Edit1.Text);
  Memo1.SetFocus;
 end else
  Beep;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 pos,initpos:integer;
begin
 if Memo1.SelLength = 0 then
  initpos := Length(Memo1.Text)-1 else initpos := Memo1.SelStart-1;
 pos := RevFindStr(Memo1.Text,Edit1.Text,initpos);
 if pos <> -1 then begin
  Memo1.SelStart := pos;
  Memo1.SelLength := Length(Edit1.Text);
  Memo1.SetFocus;
 end else
  Beep;
end;
0929921NGNG
おらは923じゃなかった!(泣)

>>927-928
すげぇ!(パチパチ
でも、例えばTRichEditとかにMemoの内容をAssignして、
FindTextメソッドを使うという技は使えないんですか?
0930案1 そして終了NGNG
RichEditを非表示にして、Memoの全行をコピーして
RichEdit側で検索して、あった所をMemoで表示して…
ああ、大変だ。
0931デフォルトの名無しさんNGNG
タスクバーから表示を消したいのですが、
ShowWindow(Application.Handle,SW_HIDE);
で消えません。
何故なんでしょうか?

環境は
Win2k + Delphi6Personal です
0932素人NGNG
>>931
Application.ShowMainForm := False;
をプロジェクトソースファイルに追加するってFAQがあるんだけど、
それじゃダメなの?
0933デフォルトの名無しさんNGNG
>>930
RichEdit1.Lines.Assign( Memo1.Lines);
資源の無駄だけど、少なくとも面倒じゃないんだよってことで一応。

>>929 それに気付いたなら自分で試そうね。
0934921NGNG
>>927-928
FindDialogという単語が入ってないですが、
それでFindDialogから検索できるんですか?
つか、p^ ってポイント型って奴ですよね?
それ、おいらわかりませぬ。。。

>>930
それも考えたんですけどぉ…。
何で 変数名: TRichEdit; で宣言できないか不思議で気持ち悪いっす!(泣)
0935931NGNG
>>932
レスありがとうございます。

それじゃぁメインフォームも消えちゃうんです。
何が原因なのかさっぱりで・・
0936デフォルトの名無しさんNGNG
>>931
SetWindowLong(Application.Handle, GWL_EXSTYLE,
   GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
0937932NGNG
>>935
http://www.nifty.ne.jp/forum/fdelphi/faq/00030.htm
つーことは、つまり↑これではダメってことかな?

こーゆーのって直リンいいのかな?
もうそろそろ次スレの季節だねィ。
0938 NGNG
>>934
>何で 変数名: TRichEdit; で宣言できないか不思議で気持ち悪いっす!(泣)
uses ComCtrls;
0939931NGNG
>>936
できました!
ありがとうございます!!

よろしければ
ShowWindow(Application.Handle,SW_HIDE);
これとは何が違うのか教えていただけないでしょうか?
0940931NGNG
>>937
ありがとうございます。
でもそれもムリでした。
メインフォームがでてきません・・
0941936NGNG
>>939
何が違うって、関数が違うとしか言えんのだが。

付録のMSWinHelpかMSDNで調べなさい。
0942931NGNG
>>941
分かりました、調べてみます。

みなさんありがとうございました
0943921NGNG
>>937
禿thx!
でも、Createするとパラメータが足りねぇ…、宇津田刺乃迂…。
AOwnerとか出てるけど、継承ではないっすよね、ワケワカンネ。
0944933NGNG
>>921
procedure TForm1.Button1Click(Sender: TObject);
var
 a:TRichEdit;
 FoundAt: Integer;
begin
 a:=TRichEdit.Create(Self);
 a.Parent:= Self;
 a.Lines.Assign( Memo1.Lines);
 FoundAt:=a.FindText('hoge',1, Length(a.Text),[stMatchCase]);
 Label1.Caption:= IntToStr(FoundAt);
 a.Free;
end;

>>927-928 の方法はTFindDialog.OnFind に928のButton1Click相当の
ロジックかけばいいでない?
pos := FindStr(Memo1.Text,Edit1.Text,initpos);
のEdit1.Textはもちろん FindDialog1.FindText にしてね
0945937NGNG
オレの環境ではあのFAQで消えるんだが、Win2kだとだいぶ違うってことだろうか?
Win2kいじったことない。

パソナルに付録のMSWinHelpってのあったかな?
>それじゃぁメインフォームも消えちゃうんです。
↑これがよく分からんが、まぁうまくいったんならOKだね。うん。
0946936NGNG
>>945

> パソナルに付録のMSWinHelpってのあったかな?

あるよ。
0947921NGNG
>>944
おぉっ、親切なお方再ハッケソ!
試そうと思ったらTRichEditで宣言できなかったり、Createでパラメータが足りなかったりして無理だったのれす。
どうもありがとー!(泣)
Createの時にパラメータがいる時といらない時ってどう違うんでしょうか?
継承ではないですよね?(^^;
0948933NGNG
>>921
TRichEditに限らずコンポーネントは TComponent を継承するから
TComponent のCreate が要求する引数AOwnerが必要なのです。
何故 TComponent が AOwnerを要求するかはヘルプをみてくれい。

"継承ではないですよね" は意味不明。継承関係は復習してきてくれや
0949921NGNG
>>948
なるほど…。
継承に限らず、オブジェクト指向を勉強しなくては。
Delphiの初心者本って、コンポーネントの使い方とか、IDEについてにページを裂き過ぎて、
オブジェクト指向はわかりずらいですよね。
(と、最近Javaの本をちらっと見て思った。)
熟読します!
親切にどもでした。
0950デフォルトの名無しさんNGNG
DelphianWorldが繋がらんのだが、なんでだろ。誰か知ってる?
0951デフォルトの名無しさんNGNG
>>949
DelphiはどうしてもIDEやVCLがウリだから初心者本はその
華やかな部分を大々的に書きたがるんだよね。

でObjectPascalの言語仕様についてはあまり書かれない。
ホントはなかなか味のある言語だからじっくり調べると面白いよ。

漏れも初心者本に書いて有るようなことが煮詰まったときに改めて
ObjectPascal言語ガイドを最初から読んだら目から鱗が落ちまくった。
(加えて初心者本の言語関係の記述のいい加減さに愕然とした・・・)

言語仕様を丁寧に解説した本やページってあまり無かったから
いつか自分で作ってみようかなって思ってたら、
http://pc.2ch.net/test/read.cgi/tech/1021201697/550
の方が漏れが考えてたことと同じ様な事をやってくれた。
そんなわけで、これ↑おすすめ。
「クラスとオブジェクト」の章をじっくり読むといいよ。
0952ANGNG
>>949
そういう点で評価が高いのに、「Delphi オブジェクト指向プログラミング」という本があるんだが
残念ながら、今は絶版で手に入らない・・・・。
(復刊依頼はここで ttp://www.fukkan.com/vote.php3?no=4407 )

で、同じ著者がもっと昔に書いた、「ゲーム&&オブジェクト指向プログラミング」という本が
けっこうお勧め。Delphi以前の本だけど、Delphiの祖先のTurbo Pascalを使って解説してる
からDelphi使いなら、じゅうぶん読める。こっちはまだ売ってる・・・

あとは、やっぱり、オブジェクト指向を書籍で勉強するなら、Java読めるといいかも(笑
Object Pascal判るなら、Javaっても、読むだけなら、大差無いから簡単だし。

関係ないけど、最近、リファクタリング、を読み始めた。けっこう面白い(笑)
0953921NGNG
>>951
その書き込み、前に見たことあるけど、そんなに良い物だったとは…。
落としてみました、ありがとうございます、作ってくれた人もありがとう。
 >ObjectPascal言語ガイドを最初から読んだら目から鱗が落ちまくった。
読んでみたい!
それは確かDelphiと別売りでも買えますよね?
Borlandに電話してみようかな。。。

>>952
そのページ、ついこの間オブジェクト指向の本が欲しくて、
検索して見たページです。(^^;
Javaの本をちらっと読んだら、Object PascalよりJavaのオブジェクト指向の方を先に覚えちゃった。
それくらいDelphiとJavaの本の質はレベルが違う。
(オブジェクト指向を学ぶという点で。)
0954951NGNG
>>953
ObjectPascal言語ガイドはDelphiヘルプの一部ですが・・・
パッケージを買ってきた人なら紙媒体もあるし、Del6Parsonalな
ひとでも標準でインストールされるはず。
0955921NGNG
>>954
ヘルプにあるんすか…(恥
VCLリファレンスしか見たことなかった。。。
でも、紙媒体で欲しいから、Borlandに電話してみよーっと。
0956921NGNG
つーか、>>951で紹介してもらった物とDelphiヘルプの言語ガイドって全く同じなんすね。
勘違いしてた。。。(汗)
逃げっ!
0957デフォルトの名無しさんNGNG
次スレ
http://pc.2ch.net/test/read.cgi/tech/1022921598/
0958デフォルトの名無しさんNGNG
>>952
Delphiオブジェクト指向プログラミングハケーン!
金がないから買えないけど…。
http://page.auctions.yahoo.co.jp/jp/auction/46961664
0959デフォルトの名無しさんNGNG
心の隙間埋めて下さい・・・・。
0960デフォルトの名無しさんNGNG
       v
      (゚ω゚) <まだちょっと早いかな?
     /(  )\
      /'\
0961デフォルトの名無しさんNGNG
>>960
うん、帰れ♪
0962デフォルトの名無しさんNGNG
>>959-960
次スレ 立ってるから、俺は梅めても構わないとは思うけど、まだ40もあるよ?(w;

ちなみに次スレ
http://pc.2ch.net/test/read.cgi/tech/1022921598/
0963デフォルトの名無しさんNGNG
もーいいよ、邪魔だから sageで埋めてくれよ
でも定期的に新スレの案内も書いてよね。
0964デフォルトの名無しさんNGNG
>>960
おまえには埋めさせねーぞ!
0965デフォルトの名無しさんNGNG
       v
      (゚ω゚) <おっ!おいらのこと呼んだ?
     /(  )\
      /'\
0966Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0967Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0968Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0969Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0970デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0971デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0972デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0973デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0974デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0975デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0976デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0977デフォルトの名無しさんNGNG
(゚Д゚) ageんなヴォケが!!
0978Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0979Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0980デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0981デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0982デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0983デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0984デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0985デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0986デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0987デフォルトの名無しさんNGNG
(゚ε゚)♪〜
0988Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0989デフォルトの名無しさんNGNG
イラナーイ
0990デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 900ですね
0991デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 901ですね
0992デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 902ですね
0993デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 903ですね
0994デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 904ですね
0995デフォルトの名無しさんNGNG
  |-□□-|
   \ - / 905ですね
0996デフォルトの名無しさんNGNG
  |-□□-|
   \ - / あとは勝手にどうぞ
0997Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0998Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
0999Linuxイラナーイ 1000!NGNG
Linuxイラナーイ 1000!
1000デフォルトの名無しさんNGNG
           _
          /  `j
        /  /`ー'  ちょっときみィ
        〈  `ヽ
        `、  ヽ∧_∧   >>999
          〉      )  (`Д´)!
         / ノ    ̄⌒ヽ   「  〉ノ
         ノ  ' L     `ヽ./  /ヽ
       / , '    ノ\  ´  /  )⌒
       (     ∠_   ヽ、_, '      ミ
       i  、      ヽ
   _,, ┘  「`ー-ァ   j
  f"     ノ   {  /
  |  i⌒" ̄    /  /_
  ヾ,,_」       i___,,」


             ヽ l //
         ――― ★ ―――
            // | \
           / /. |  \
             /   |

                 逝ってよし
        -   ̄ ̄ ―
     /
    /                ヽ
         ∧_∧_
   |     ( ´Д`)  ̄"⌒ヽ
   |    / ) ヽ' /    、 `、_
      γ  --‐ '    λ. ;  !
      f   、   ヾ    /   )
      !  ノヽ、._, '`"/  _,. ‐'"
      |  j   ヽ 〈_,,,ノ" ヽ
       !  ヽ   冫 y'   .ノ
       `、  \ | /   /
          \、ヾ | |  イ-、__
            l.__|   }_  l
            _.|  .〔 l  l
            〔___! '--'
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。