5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

くだすれDelphi(超初心者向け)

1 :毛の生えたフサギコ:03/05/02 22:40
このスレッドは、

他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが
分からない質問を勇気を持って書き込むスレッドです。

Delhi使いが優しくコメントを返しますが、お礼はDelhiの布教と初心者の
救済をお願いします。

2 :デフォルトの名無しさん:03/05/02 22:41
abo^n

3 :超初心者:03/05/02 22:48
イベントはWindowsがアプリケーションに通知するということですが、
それを受け取るためにDephiではアプリケーションオブジェクトではなく
フォームオブジェクトにメソッドを定義し、フォームがメッセージを受け取る
と理解していいでしょうか?

フォーム上のどのコンポーネントをクリックしたかを識別するために
Sender変数を宣言し、これはWindowsが注目しているオブジェクトのアドレスが
格納されると思っているのですが、間違っていませんか?

4 :デフォルトの名無しさん:03/05/02 22:50
Delphiとは、どんな意味ですか?

5 :デフォルトの名無しさん:03/05/02 22:51
Senderは処理を委譲したい方=メッセージの送り手が 誰が送ってるかを教える為にあります。
この方式はボーランドが持っている特許の一つです。



6 :デフォルトの名無しさん:03/05/02 22:52
>>1のスレタイと本文のデルファイが違うのはなんで?

7 :デフォルトの名無しさん:03/05/02 22:52
【誘導】

このスレは重複スレです。
移動をお願いします。
(次スレ凍結中のDelモナースレについてはこの限りではありません)

ミ,,゚Д゚彡フサギコのフサフサDelphi相談室H
http://pc2.2ch.net/test/read.cgi/tech/1045813143/
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室I
http://pc2.2ch.net/test/read.cgi/tech/1047603258/


8 :超初心者のその2:03/05/02 22:58
Senderではなくキャッチャーとかアクセプターだったら意味が分かりやすいのですが
結局これは、「メッセージを送った者」ではなく「メッセージの対象となるもの」
なんだよね。

9 :デフォルトの名無しさん:03/05/02 23:00
>8

5を読んだら、SenderとはWindowsそのものを意味するように
感じたぞ。


10 :5:03/05/02 23:03
だったらゴメン
 TControlコンポーネント=Windows系のコンポーネントは

Windowsからメッセージを貰うと、それをディスパッチしたメソッドでイベントがあればそのイベントを呼び出します。


11 :デフォルトの名無しさん:03/05/02 23:19
>>2->>1000
その答えは簡単です。Delphiなんてやめて今すぐVB.NETに乗り換えてください。


12 :デフォルトの名無しさん:03/05/02 23:48
いらねー。

13 :デフォルトの名無しさん:03/05/02 23:52
>>4
Delphi n. デルフォイ
古代ギリシアの都市;Apolloの神託が下される神殿の所在地
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDelphi%A4%CE%CE%F2%BB%CB%5D%5D


14 :デフォルトの名無しさん:03/05/03 00:41
昨日からDelphiいじりはじめたんですが、
簡単なサウンドノベルを作れるくらいになるまで、
どれくらいの時間がかかるものなんでしょうか。

15 :デフォルトの名無しさん:03/05/03 01:31
>>14
全くの初心者として
3日〜1ヶ月

16 :デフォルトの名無しさん:03/05/03 01:55
>>15
ありがとうございました。

17 :デフォルトの名無しさん:03/05/03 06:46
ほんとに初心者なんで、どなたかデフォルトで作られるUnit1.pasのコードの
意味をわかりやすく連載で説明してください。特に(誰が)イベントを送信し
(誰が)それを受け止めて、(誰が)メソッドを呼び出すのか?
Senderの意味ももっと初心者向けに説明してください。お願いします。

ほんとにDelphi使いになりたいのです。おねがいします。

18 :デフォルトの名無しさん:03/05/03 06:53
http://www.k-514.com/

19 :デフォルトの名無しさん:03/05/03 06:58
>>17
キーワードの上でF1を押せばヘルプが出ます。調べ癖をつけておけばいいでしょう。
Senderは、イベントを送信(もしくはWindowsからイベントを受け取ってそれを中継)したオブジェクトです。

というかほんとの初心者がSender使うかな?
呼びだし元を区別する必要さえ無ければ無用な引数ですよ。

20 :デフォルトの名無しさん:03/05/03 09:20
unit Unit1; //<------- 自分のユニット名(ファイル名から拡張子を除いたものと同じ)

interface //<---これから他から見える部分の定義をする
uses //<-このユニットで使う他のユニットを定義する
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; <-- ; マデが uses

type //<-- これから型を定義します。
TForm1 = class(TForm) //TForm1クラスの定義
Button1: TButton; //Button1変数の定義
procedure Button1Click(Sender: TObject); //メソッドの定義、ここまではパブリッシュ(型情報が実行モジュールに記録される)
private //他のユニットで参照出来ない部分の定義開始
public//他のユニットから参照出来る部分の定義開始
end;

var //変数の定義をします
Form1: TForm1;

implementation//ここから下は他のユニットから直接参照出来ない部分です

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);//メソッドの実体を定義します
begin
Button1.Tag:=Button1.Tag+1;
Button1.Caption:=IntToStr(Button1.Tag)+'回目';
end;

end. //ユニットの終了です



21 :デフォルトの名無しさん:03/05/03 09:23
上のメソッドでは Sender を使っていません。 
Sender を使わないと Button1Click というメソッドは
Button1専用となってしまいますが、それで問題ない場合も多いでしょう。

Seder を使って同じコードを書くと
procedure TForm1.Button1Click(Sender: TObject);//メソッドの実体を定義します
begin
 with Sender As TButton do begin
  Tag:=.Tag+1;
  Caption:=IntToStr(Tag)+'回目';
 end;
end;

となります

22 :デフォルトの名無しさん:03/05/03 09:28
{$R *.dfm}  

は、リソースを読み込むというコンパイラへの指示です。
具体的にはIDEで設計したフォーム情報が .dfm にあるのでこれを読み込みます。
これは pascalソースと一緒にコンパイルされ、実行ファイルに同封されます。

そして、実行されると、 Application.CreateForm でこのリソースを読み込んで
各種プロパティが設定される仕掛けです。



23 :デフォルトの名無しさん:03/05/03 09:33
全体の構成は ヘルプの
[ユニットの構造と構文]
を見ると良いでしょう。
unit Unit1;
interface
uses { ここにユニットを指定する }
 { インターフェース部を記述する }
implementation
 uses { ここにユニットを指定する }
 { 実現部を記述する }
initialization
 { 初期化部を記述する }
finalization
 { 終了処理部を記述する }
 {ユニットは end とピリオドで終わらなければなりません。}
end.

という構造になっています。 
Delphiでは一つのunitごとに、まるでオブジェクトのように初期化・終了処理が書けるのです。


24 :デフォルトの名無しさん:03/05/03 09:46
外部に単語を羅列したテキストファイルを用意しておいて、
そのテキストファイルからランダムで単語を選び出して表示させるということは可能でしょうか?
できれば外部のテキストファイルは誰でもいじれるような形にしたいのですが。

25 :デフォルトの名無しさん:03/05/03 11:54
>>24
テキストファイルをメモリに読むには TStringListを使うとよいでしょう
 フォームの定義部に
private
FDicText:TStringList;
と追加します。

フォームの イベント OnCreate に
FDicText:=TStringList.Create;
としてインスタンスを作成しましょう。
テキストの読み込みは
FDicText.LoadFromFile( 'ファイル名'); です。
 忘れずに OnDestroyで
 FDicText.Free; と解放させるようにしましょう。

あとはランダムにテキストを表示する方法ですが、
 ボタンを貼り付け、ボタンのイベントで
Caption:=FDicText.Strings[Random(FDicText.Count)];

のようにします。

26 :4:03/05/03 12:20
>>13
おお、半分冗談でしたが(w、サンクスです。

27 :デフォルトの名無しさん:03/05/03 12:54
Indyの使い方が解かる資料って無いですか?



28 :デフォルトの名無しさん:03/05/03 13:21
>>27 Indy9 ヘルプ

ftp://ftp.borland.co.jp/pub/delphi/d7help_indy_jp.zip

29 :デフォルトの名無しさん:03/05/03 14:15
>>20-23
いい仕事してますね。

30 :デフォルトの名無しさん:03/05/03 14:32
>>28
情報ありがとう


31 :デフォルトの名無しさん:03/05/03 14:34
>>28
そういうのってどうやって見つけるの?

32 :デフォルトの名無しさん:03/05/03 14:43
>>28
ボーランドのサイト逝け

33 :32:03/05/03 14:44
間違えた

>>31
ボーランドのサイト逝け

34 :デフォルトの名無しさん:03/05/03 15:01
インプライズじゃないの?

35 :デフォルトの名無しさん:03/05/03 15:06
Del厨が荒らして糞スレ化しようとしてるな。(ゲラ

36 :デフォルトの名無しさん:03/05/03 15:08
ttp://members.jcom.home.ne.jp/monazilla/document/indytips.html
Indy-TIPSサイト上記以外にありませんか?



37 :デフォルトの名無しさん:03/05/03 15:08
VB厨の多くはDelに移行した。
もうC#はだめだな(ゲラ

38 :デフォルトの名無しさん:03/05/03 16:06
>>25
ありがとうございました、参考にさせていただきます。

39 :ウルトラ超初心者:03/05/03 20:08
C言語においてはmain関数がプログラム実行のエントリポイントである。
Delphiにおいてはprogramヘッダ以降、つまり、プロジェクトファイル(dprファイル)
がエントリポイントである。・・・・・でいいですよね。

そのdprファイルに書いてあるアプリケーションオブジェクトに対して、
初期化と実行のメソッド呼び出しが書いてありますが、具体的にどんなことが
メモリ上で起こっているのか教えてください。

40 :デフォルトの名無しさん:03/05/03 20:18
ソース嫁、はありですか?

41 :デフォルトの名無しさん:03/05/03 20:19
>>37
ありがとうございました、参考にさせていただきます。

42 :ウルトラ超初心者:03/05/03 20:22
アプリケーションの初期化って、例えば変数領域をメモリに確保したら
\0を書き込むといったことでしょうか?

43 :デフォルトの名無しさん:03/05/03 20:28
ここはモナースレの続編と考えてOK?

44 :デフォルトの名無しさん:03/05/03 20:31
「くだすれ」って、こんなことを書いたら噛みつかれるような低レベルな
疑問とか、たまに鼻水が流れるような寒いギャグとかを書くところだよ。
ウルトラ初心者向けのスレッドです。

中程度以上のスキルのある人は、「相談室」「モナー」に書くべきだよ。

45 :デフォルトの名無しさん:03/05/03 20:33
そうすると相談スレが3つになるのだが…
4スレ常時見ろってか?

46 :デフォルトの名無しさん:03/05/03 20:35
>>39 >>42
ウルトラ超初心者はそんなこと考えません。さようなら。

47 :デフォルトの名無しさん:03/05/03 20:35
delphiはバージョン2以降は、そんなに文法体系に変更がないので
旧バージョン向けの書籍でも入門本として活用できるかもしれないと
勝手に思っているのですが、

初心者がまず挫折しないで読める最初の1冊としておすすめはどれですか
(絶版は無しにしてください)

48 :デフォルトの名無しさん:03/05/03 20:39
>>46

ウルトラ超初心者だから考え込むんじゃない?
だって、いきなり Apprication.Run なんて書いてあったら
どんなことが起こっているのか謎だらけでしょ?

49 :デフォルトの名無しさん:03/05/03 20:49
まあ俺なら2CHで質問しよう
とは思わないけどな。
本屋で立ち読みか、解説サイトみる。

50 :デフォルトの名無しさん:03/05/03 20:52
>>48
ウルトラ超初心者はプロジェクトファイルを見ません。

51 :デフォルトの名無しさん:03/05/03 20:58
>>39
いっぺんメッセージループを書いてみないと
Delphiが何を肩代わりしているかが見えてこないだろうね。

http://halbow.cool.ne.jp/ShousaiIndex.html

このへん参照のこと。

52 :デフォルトの名無しさん:03/05/03 21:02
program Project1; //これからアプリ-ションを記述します。 プログラム名は Project1です
uses Forms,
Unit1 in 'Unit1.pas' {Form1}; //uses でどこにファイルがあるかを指定しています

{$R *.res}

begin //unit と違って、program はいきなり beginです。

{使用してるユニットによっては、他のユニット全部の初期化が終ってから別の
初期化をしたい場合があります。 
それが必要なユニットでInitProcという手続ポインタをフックリンクするような仕組みになっています。
}
Application.Initialize; //InitProcを呼び出します。 InitProcに何も登録されてなければ何もしません。


{ フォーム.Create を呼び出してもいいのですが、アプリをコントロールさせる
  メインフォームを登録する作業をさせる為に
}
Application.CreateForm(TForm1, Form1); //Form1:= TForm1.Create(Application); FMainForm := Form1; とほぼ等価


Application.Run; // HandleMessage; でメッセージ駆動を実現させながら 終了を待ちます
end.


53 :デフォルトの名無しさん:03/05/03 21:11
詳しい内容は、ヘルプで プロジェクトの操作 という項目から見てゆくと良いでしょう。

{$R *.res}

unit にあったのは {$R *.dpr} でしたが、ここでは .res です。
このリソースにはバージョン情報や、アイコンなどが入っています。
他のリソースを入れたい場合は別の名前にして *.res ではなくリソース名を入れるといいでしょう
{$R filename.res filename.rc}   のようにコンパイル前のテキスト形式も使用可能です

54 :デフォルトの名無しさん:03/05/03 21:13
>>52

間違いのない説明だけど、初心者にはきびしいかも、

関数を「呼び出す」。この一言でも初心者には? 関数を「使う」なら
分かるみたいだけど、では「誰が」関数を呼び出すのか?? このあたりから
説明がいるのかもしれないね。

「初期化」にしても初心者なら  int a=0; //変数の初期化
程度のことしかしらないだろうから、オブジェクトの初期化はまったく
分かりづらいだろうね。

55 :デフォルトの名無しさん:03/05/03 21:16
メソッドとメンバ関数は同じ意味だと思うけど、
イベントハンドラとメソッドの違いは何ですか。

56 :デフォルトの名無しさん:03/05/03 21:18
具体的に リソース スクリプトを書いて リソースを追加する方法は
ttp://halbow.cool.ne.jp/Notes/N008.html

リソーススクリプトといっても、たぶんRCDATAしか使わないでしょう。
アイコンは .dfm に、 文字列は resourcestring でもっと手軽に扱えるからです

57 :デフォルトの名無しさん:03/05/03 21:25
Program ・・・ で記述する場合は、必ず Applicaton.XX が必要な訳ではありません。

コンソールアプリの場合は必要無い場合も多いでしょう。
ただ、COM や データベースを使う場合 Application.Initialize; が無いと必要な初期化がされない場合があります。
しかし Application 変数を使う為に uses Forms とやるといきなりexeサイズが肥大します。

そんな時は
if InitProc <> nil then TProcedure(InitProc);
と 自分で InitProcを呼び出すのも方法です。 InitProc は system ユニットなので uses を何もしなくても使えます。

58 :デフォルトの名無しさん:03/05/03 21:25
>>55
ちゃう。
メソッドというのはC言語で関数と呼ばれるもの。Delphiでも関数と言ったりするが。
Javaではメソッドというな。ただの用語の違い。

メンバ関数はあるクラスオブジェクトに所属する関数(メソッド)。

イベントハンドラはあるイベントを処理するためのメソッド。

59 :デフォルトの名無しさん:03/05/03 21:28
メソッドとイベントハンドラ は 定義されてる個所を見れば違いが判ります。

後に message WM_なんとか; と付いてるのがイベントハンドラです。

60 :Hyper初心者:03/05/03 21:31
話を蒸し返すようでもうしわけありませんが、イベントの発生について
教えてください。

人間があるアプリケーションのボタンをクリックすると。

1)Windowsがボタンを押したぞ!というメッセージをアプリケーションに送る。
2)Windowsがボタンを押したぞ!というメッセージをボタンに送る。
3)ボタンが押されちゃったぞ!というメッセージをWindowsに送る。
4)ボタンが押されちゃったぞ!というメッセージをアプリケーションに送る。

以上、どれが正しいのですか。

61 :デフォルトの名無しさん:03/05/03 21:31
halbowたんってもう50のオジサンだったのね・・・。
あの量書くのすげーな。

62 :デフォルトの名無しさん:03/05/03 21:36
>>60
Windows は 窓ハンドルが何をするにも必要と考えるといいでしょう。

ボタンを押すと、
Windowsが ボタンが押されたというメッセージを windowハンドルに登録された手続きに送ります。


63 :Hyper初心者:03/05/03 21:40
windowハンドルというものには沢山の手続きが登録されているそうですが、
そのwindowハンドルというものはオブジェクトでありプロシージャの集合体でありそうですが、
そもそもそれはどこに記述されているのですか?

64 :Hyper初心者:03/05/03 21:42
また、沢山のプロシージャの集合体の中から一つを選び出すメカニズムは
例のSender変数?が関係しているのですか?

65 :デフォルトの名無しさん:03/05/03 21:45
Delphiはそういう細かいことを気にするヒマの無い人向けの言語。
それ以上細かいことを知りたければC++をやるべき。
ボタンを押せば、button1.clickが呼び出される。だからここで適当な
プロシージャを書けば良いだけ。

66 :デフォルトの名無しさん:03/05/03 21:47
てかそのために解説サイトがあるんだから
51をよく読め。

67 :デフォルトの名無しさん:03/05/03 21:54
今日の日付 から X日前 や Y日後を指定すると
西暦何年の何月何日何曜日になるかを表示させるプログラムを
作りたいのですがどうしたらいいでしょうか?



68 :デフォルトの名無しさん:03/05/03 21:54
>>67
ヘルプに載ってるっす。

69 :デフォルトの名無しさん:03/05/03 21:57
調べるのめんどいです。

70 :デフォルトの名無しさん:03/05/03 22:00
>>69
死んでください。

71 :67:03/05/03 22:02
あう。69は偽者です。

>>68
どのヘルプを見ればいいのでしょうか?

72 :デフォルトの名無しさん:03/05/03 22:04
>>71
Delphi

73 :67:03/05/03 22:05
>>72
69は偽者ですってば。

74 :デフォルトの名無しさん:03/05/03 22:06
>>63-64

>そのwindowハンドルというものはオブジェクトでありプロシージャの集合体でありそうですが、
>そもそもそれはどこに記述されているのですか?
Windowsの中、もしくはVCLの中

>また、沢山のプロシージャの集合体の中から一つを選び出すメカニズムは
>例のSender変数?が関係しているのですか?
してない。Senderは単なるイベント発生源を区別する為の引数。

自分でTWinControlから派生して何か作ってみればわかると思う。
細かくは開発者ガイド読んでください。

75 :デフォルトの名無しさん:03/05/03 22:25
>windowハンドルというものには沢山の手続きが登録されているそうですが、
 勘違いがありますよ。
 窓ハンドルには手続きは登録されていません。
 窓クラスにWndProc手続きを登録します。

>そもそもそれはどこに記述されているのですか?
 興味があるあなら、procedure TWinControl.CreateWnd; を丹念に読むと良いでしょう。



>また、沢山のプロシージャの集合体の中から一つを選び出すメカニズムは
 Windowsから最初に呼ばれるのは、 MakeObjectInstance が作った小さなコード片です。
 これはメソッドを呼ぶにはオブジェクトとメソッド入り口の2つのポインタ情報が必要な為
 Win16の頃にサンクと呼ばれていた仕掛け = MakeInstance を真似たものです。
このコード片でメソッドポインタを作って呼ばれるのは MainWndProcです。
MainWndProcからWindowProcイベント(デフォルトではWndProc)が呼ばれ、
WndProcから Dispatch(Message); によって それぞれのイベントハンドラが呼ばれます


76 :デフォルトの名無しさん:03/05/03 22:29
うごけばいいじゃん

77 :デフォルトの名無しさん:03/05/03 22:34
超初心者スレとか行っても結局こういう質問しか来ないし。
だから質問スレは1つでいいんだよ。

78 :デフォルトの名無しさん:03/05/03 22:34
Windowsのそのへんの仕掛けを精密に知りたいなら、
DelphiCDROMの中に日本語の Win32 API ヘルプがあるので、それをハードディスクにコピーして見ましょう。
キーワードは

ウィンドウ クラスの概要
RegisterClass
WNDCLASS

ウィンドウの概要
CreateWindow

ウィンドウ プロシージャの概要
WindowProc

これらを順に読むと良いでしょう

79 :デフォルトの名無しさん:03/05/03 22:36
>>78
読みましたが何か?

80 :デフォルトの名無しさん:03/05/03 22:38
>>79
では次に

コントロールの概要

をどうぞ

81 :デフォルトの名無しさん:03/05/03 22:42
ボタンは コントロールの一つです。
Delphiがコントロールをラップする時の大きな問題は、
コントロールは既に WindowProcが定義されているという所にあります。
そこで、メッセージの流れをコントロールから自分に貰うようにしなければいけません。
その為に昔から使われているテクニックをサブクラスといいます。(OOのサブクラスと同じ用語です)

このあたりの細かい内容は

ttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-1.htm

ここが詳しいです


82 :デフォルトの名無しさん:03/05/03 22:47

初心者にこそ、こういう細かいレベルの話を丹念に追いかけて欲しい。
それが出来るのがDelphiなんだから

83 :デフォルトの名無しさん:03/05/03 23:47
Memo1のメモ欄でShift+Enterキーを押したらダイアログが開くようにするにはどうすればいいのでしょうか。

84 :デフォルトの名無しさん:03/05/03 23:52
それから、Button1.Caption を複数行に渡って記述するにはどうすればいいのでしょうか

85 :デフォルトの名無しさん:03/05/04 00:03
>>83
Memo1のオブジェクトインスペクタ、イベントタブ OnKeyDown/OnKeyPress をダブルクリックしてコードを書く

>>84
TPanel を貼り付けて、それにラベルを貼り付ける


86 :デフォルトの名無しさん:03/05/04 00:11
すみません、例えばShift+Enterの時はどんなコードを書けばいいのでしょうか。

87 :デフォルトの名無しさん:03/05/04 00:42
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_RETURN)
and (Shift= [ssShift]) then
with Sender as TMemo do ShowMessage(Text);
end;


88 :デフォルトの名無しさん:03/05/04 00:52
できました。ありがとうございます

89 :デフォルトの名無しさん:03/05/04 01:35
そこでwith文使うと無駄に見にくくない?
俺なら
TMemo(Sender).ShowMessage(Text);か(Sender as TMemo).ShowMessage(Text);にするな。

90 :デフォルトの名無しさん:03/05/04 08:27
残念だけど 87と同じにするなら

 ShowMessage(( Sender as TMemo).Text);

だな

91 :デフォルトの名無しさん:03/05/04 10:51
Indyなんだけど、htmlソースの取得は↓これで逝くんだけど
バイナリファイルの取得はどうするんですか?
Memo1.Lines.Text := IdHttp1.Get('http://www.2ch.net');

92 :デフォルトの名無しさん:03/05/04 11:44
バイナリでも string 型は保持出来るから、string型に入れればいいと思うが、
それじゃ何か嫌だというなら、

var fout:TStream;
begin
fout:=TFileStream.Create('logo.gif',fmCreate);
try
IdHttp1.Get('http://www.ff.iij4u.or.jp/~ch2/2ch-logo.gif',fout);
finally fout.free;end;


93 :デフォルトの名無しさん:03/05/04 11:51
ちなみに
http://pc2.2ch.net/test/read.cgi/tech/1009080085/22
を使って

writeFileStr( 'logo.gif' , IdHttp1.Get('http://www.ff.iij4u.or.jp/~ch2/2ch-logo.gif') );

と書く事も可能。 ただこの方法だと string型で一旦メモリ上に受信するので、効率は悪くなる


94 :デフォルトの名無しさん:03/05/04 14:46
 

95 :デフォルトの名無しさん:03/05/04 15:04
>>91-93
92,93 さんは分かっていると思うけど、URL が 1Gbyte のファイルを示していたら
メモリ不足でシステムが落ちるので、いったんファイルに落としておいたほうが吉。
または WinInet を使えば MSIE と同程度の品質が手に入る。キャッシュに記録が
残っちゃうけどね。

96 :デフォルトの名無しさん:03/05/04 15:11
もし、RAD ツールとして Delphi を使いたいのなら Halbow の資料は読むな。
あれで間違った癖を実につけると、一生使い物にならなくなるぞ。

古文/漢文は日本文化の基礎(だった)からといって、日常も旧仮名遣いで会話したら大変だろ?
猫と同じで(というか狙っているのだろうけど)そんな世界もあるんだね。に押さえておくように。


97 :デフォルトの名無しさん:03/05/04 15:20
>>96
あれは最初は読まないでいいかも知れないけどいつかは読んでおいた方がいいよ。
いつまでも二重のブラックボックスだけ使って満足するのもねえ…

98 :デフォルトの名無しさん:03/05/04 16:19
彼らが日本の Delphi ユーザーの質を落としている。という点には同意。
日本発の強力なコンポーネントが出ないで終わった原因の一つだな。

Halbow 自身は良くやっていると思うよ。けどそれが集団全体のスキルアップには
つながらなかったという例だな。
以前、高岡氏が Halbow を説得できずにさじ投げたのをみて、こりゃ駄目だ。と思いましたとも。



99 :ナインティーナイン:03/05/04 18:56
Memo1に改行が入力されたときに
改行マークを入力して改行したいのですが
どのように書けばいいか教えて下さい。
#13#10が入力されたらみたいに書いてもできませんでした。
改行マークも?になってしまいます…

100 :デフォルトの名無しさん:03/05/04 19:15
>>99
コード出せボケ。

101 :>>88:03/05/04 20:58
すみません、>>87の方法でダイアログは表示させるようになったのですが、
Shift+Enterキーを押したときにメモ欄に改行が入ってしまって困っています。
この改行が入らないようにするためにはどうすればよいでしょうか。

102 :デフォルトの名無しさん:03/05/04 21:02
>>101
abort を入れたらいい。

if (Key=VK_RETURN)
and (Shift= [ssShift]) then begin
 with Sender as TMemo do ShowMessage(Text);
 abort; //これで デフォルトハンドラをスキップされてしまうからキー入力もスキップされる
end;




103 :>>88:03/05/04 21:28
abort;をいれてみたのでsが、やはり改行が入ってしまいます。

104 :デフォルトの名無しさん:03/05/04 21:32
Delで使えるシリアル通信用コンポーネントでおすすめキボンヌ

105 :デフォルトの名無しさん:03/05/04 21:33
TCom

106 :デフォルトの名無しさん:03/05/04 21:38
>>103
 そうかゴメン。 KeyPress の方が先に処理されてるんだね。
じゃあ KeyDown イベントじゃなく KeyPress イベントで処理してみたら?

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key=#13)
and( (GetKeyState(VK_SHIFT)and $8000)<>0) then begin
with Sender as TMemo do ShowMessage(Text);
abort;
end;
end;


107 :デフォルトの名無しさん:03/05/04 21:39
>>104
シリアル通信は API でボーレート設定して TStream 使うのが楽だと思うけどなあ

108 :デフォルトの名無しさん:03/05/04 21:54
>>104
cport

109 :>>88:03/05/04 22:10
>>106
できました!どうもありがとうございます。

110 :デフォルトの名無しさん:03/05/04 22:18
プロトコルもクソもないならね.


111 :デフォルトの名無しさん:03/05/04 22:19
>>110
根本的に解ってない予感。

112 :99:03/05/05 00:29
>>100
すみません。
Memo1のOnChangeイベントなのですが
どうやって書いたらいいのかサッパリです。
どうかアドバイスお願いします。


113 :A:03/05/05 02:00
>>112
>#13#10が入力されたらみたいに書いてもできませんでした。
の、書いても、で書いた内容を、出してみろ、ってことでは?

それ以前に、出したい改行マークってのは、いったいどんなものを指してるの?

114 :デフォルトの名無しさん:03/05/05 08:28
>>106
Abort は止めなさい。WM_KEYDOWN を「喰う」には
 key := 0;
が VCL の設計。
それと、イベント処理中に ShowMessage 入れるとイベント処理の順番が狂います。
ShowMessage を抜くと正しく動く。

>>106
>KeyDown より KeyPress の方が先に処理
WM_CHAR より先に WM_KEYDOWN が来ると?ShowMessage を入れたことでメッセージの順番が狂っているだけです。
動けばいいや。だといつまでたってもバグは減りませんよ。


115 :デフォルトの名無しさん:03/05/05 09:18
>>114
VCLの設計はkey:=0; / key:=$0; と abort どちらでも動くようになってるよ。

後半の話は、ようするにダイアログを出した事で、ダイアログ内のメッセージループで
WM_CHAR が処理されてしまう為なんで、 これを解決するには
OnKeyDown でフラグ立てて OnKeyPressでフラグ見てと処理する方法もあるけど、
そうすると、そのフラグをどこに用意するかとか、ちょっと初心者には面倒かなと。

116 :デフォルトの名無しさん:03/05/05 11:00
abort で動いているのは「たまたま」
EAbort で MainWndProc まで一気に落っこちてしまうでしょ?
 key := 0;
で指定のキーを無視するように指定した後に、何か別の処理していたらどうするの?
「現在の TMemo の実装で動くから」ってのは理由にならんでしょ。

後半も、初心者相手なら「イベント処理中にダイアログを出してはいけません」
と指導すべきではないかな?手数の問題ではない。
面倒でもフラグ、ないしは自分自身へのカスタムメッセージの PostMessage と
もっていくべきだろう。


117 :116:03/05/05 11:02
>>115
スレタイが「超初心者向け」と有るので細かいところをつついています。
すまん。悪気は無い。

118 :デフォルトの名無しさん:03/05/05 11:06
>>99 あたりの人へ

TMemo はコントロールレベルでは改行コードを表示する機能を持っていません。
適当な文字を決めてそれを改行位置に挿入することで擬似的に表現できますが
TMemo にとってはそれは改行コードではなく単なる文字なのでうまくいきません。
(文字として削除されたり、コピー/ペーストされてしまう)

TRichEdit あたりから継承するか、改行コード表示能力を持ったコンポーネントを
TMemo の変わりに使うことを勧めます。

目標が、TMemo 互換の改行コード表示可能コンポーネントの製作。ならば話は別ですが。


119 :デフォルトの名無しさん:03/05/05 11:15
OnShowっていうのは、Windowが表示される直前に実行されるんですか?
それともWindowが表示された直後ですか?

120 :デフォルトの名無しさん:03/05/05 11:15
>>116
  keyを0にするという処理と abort は理論的には等価ではないでしょ
 今回のkey処理をこの後無視させるのが key:=0;
 何か別の処理をしていたら、それも無視させるのが abort

abortに限らず例外は、基本的にどこで投げられても正常に動くように作らなければいけない。
だからabortを投げて、それで解放とか必須処理までが迂回されるようなら、それはバグだ。

イベント処理中にダイアログを出してはいけない訳ではない。
でも、この場合は確かに、PostMessage させた方がスマートだね。


121 :デフォルトの名無しさん:03/05/05 11:25
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪

122 :デフォルトの名無しさん:03/05/05 11:29
>>119
たしかに、ヘルプでは判り難いね。
 フォームが表示されたとき とあるし、
 Visible プロパティが true に設定されている場合とあるし、

実際には Show メソッドかVisible:=Trueになった直後に呼ばれる。
つまり描画される前に呼ばれる。


123 :デフォルトの名無しさん:03/05/05 11:31
古い D1 のヘルプにはちゃんと

>OnShow イベントはフォームが可視になるときに発生します。
>OnShow イベントを使うと,フォームが表示される前に実行したい特殊処理を指定できます。

とあるんだけどね


124 :デフォルトの名無しさん:03/05/05 11:38
>keyを0にするという処理と abort は理論的には等価ではないでしょ
そのとおり。だから 115 の書き込みは間違い。OK?


125 :デフォルトの名無しさん:03/05/05 11:49
>>120-122

126 :デフォルトの名無しさん:03/05/05 11:49
ようするに、
 abortを投げて エディタへのキー入力処理がスキップされるかどうかは実装による
 個人的には abortを投げてなおキー入力をする実装は変だと思うが、そんな保証はない。

 って事だな。

 しかし key:=0 でキー入力処理がスキップされるかどうかは誰が保証してるんだ?
 ヘルプにもそれは書かれていないような・・・・
ただ、代入した文字に変更されて入力される事は var が付いてるから予測可能だけど

127 :デフォルトの名無しさん:03/05/05 12:26
Delphiっての始めたいんですけど、なんか買わなきゃいけないんですか?

128 :デフォルトの名無しさん:03/05/05 12:30
>>127
昔はタダだったけど今は1万円払わされた挙句に商用開発ができない

129 :127:03/05/05 12:33
>>128
http://www.borland.co.jp/sales/delphi.html
これのことだよね。どうしようかな?

130 :デフォルトの名無しさん:03/05/05 12:38
>>127
目的は何?

・フリーソフトでも作って社会に貢献したい
http://www.borland.co.jp/delphi/personal/

・技術習得を通して自分を高めたい
 D7 pro を買う方がいいでしょう

・プログラマにしかなれそうもないから
 Delphiより他に適当なのがあるでしょう

131 :デフォルトの名無しさん:03/05/05 12:52
7は異端扱いで、Delスレで質問してもスレ違いだと言われるから6を使った方がいいよ。

132 :デフォルトの名無しさん:03/05/05 13:00
>>128
D6は今も無償配布されてるだろ。

>>127
ソースコードが付いてるので、深く突っ込んでやるならD7 proがいいよ。

133 :デフォルトの名無しさん:03/05/05 13:01
VC++でもライブラリのソースコードくらいはついていますね。

134 :デフォルトの名無しさん:03/05/05 13:07
>>133
define 使いまくりで読めたもんじゃないけどな


135 :127:03/05/05 13:14
>>130
さんくす。
>・技術習得を通して自分を高めたい
でつ。いままでVC++、VBしかしたこと無いんで、なんとなくやってみようかと

とりあえず6Personalいじってみようと思います。

136 :デフォルトの名無しさん:03/05/05 13:21
>>126

137 :デフォルトの名無しさん:03/05/05 13:28
入門に最適なページは? ってどうせ聞いてくるだろうから

http://www.google.co.jp/search?q=delphi+%E5%85%A5%E9%96%80


・・・と自分でも見たら、なんかpascalシュミレータまで作ってる人いるな


138 :デフォルトの名無しさん:03/05/05 16:10
OpenPictureDialogでデスクトップへのショートカット(?)や
最近使ったファイルへのショートカットを消して、
フォルダの移動(↑ボタン)などを消す(もしくは使用不可)にするには
どのようにすれば良いのでしょうか?
(ofNoChangeDirをTrueにしてもフォルダの移動が出来てしまうし)

ofOldStyleをTrueにすればデスクトップへのリンクは消えるのですが、
イメージが出ないので、できればOldStyleは使わずに済ませたいのですが。

139 :デフォルトの名無しさん:03/05/05 16:52
>>138
やった事ないから巧くゆくかどうか知らないけど、
ダイアログの外見を変えるには Template プロパティで ダイアログテンプレートリソースを指定します。
 OpenPictureDialog は ExtDlgs.rc を 使っています。

こいつを自分で作成してみてはどうでしょう?


140 :138:03/05/05 17:33
>>139
レスありがとうございます。

つまりTCommonDialogから継承してコンポーネントを自作するしかないという事ですね?(^^;

もう少し簡単な方法はないものでしょうか・・・。

141 :デフォルトの名無しさん:03/05/05 17:35
>>140
いや継承っていっても TOpenPictureDialog で Executeだけ継承すればいい筈

142 :デフォルトの名無しさん:03/05/05 17:36
Executeだけ継承すればいい筈

143 :138:03/05/05 17:48
>>141
わかりました。前向きに善処してみます。
ありがとうございました。

144 :デフォルトの名無しさん:03/05/05 18:35
お勧めのサイトや書籍はありますか?

145 :デフォルトの名無しさん:03/05/05 18:37
http://pc2.2ch.net/test/read.cgi/tech/1047603258/3

146 :デフォルトの名無しさん:03/05/05 18:39
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D

147 :デフォルトの名無しさん:03/05/05 18:58
フォームを新しく開くにはどうすればいいでしょうか?

148 :デフォルトの名無しさん:03/05/05 19:19
IDEで?コードで?どっち?

149 :デフォルトの名無しさん:03/05/05 19:31
>>126 ソースコード。

150 :デフォルトの名無しさん:03/05/05 19:32
>>149
ソースが保証ならabortだって同じじゃないか。
だいたい#0 ってキーコードが必要なったらどうする?

151 :148:03/05/05 19:35
>>148
コードで新しく開きたいです

152 :147:03/05/05 19:35
>>148
すいません間違えました

153 :デフォルトの名無しさん:03/05/05 19:41
なら ボタンイベントで

with TForm1.Create(Self) do
Left:=Self.Left+10;
show;
end;

とかやってみたら?

154 :147:03/05/05 20:07
>>153
何も起こらないのですが。

155 :デフォルトの名無しさん:03/05/05 20:18
あゴメン begin 忘れてた。
with TForm1.Create(Self) do
begin
 Left:=Self.Left+10;
 show;
end;




156 :147:03/05/05 20:24
>>155
できました。フォームを作るには*.Create(作りたいフォームの名前)ですね。
ありがとうございました。

157 :デフォルトの名無しさん:03/05/05 20:30
>>156
なんか違うぞ
 フォームのクラス名.Create( 親の名前 );

親の名前はメインフォームか Applicationが適当だろう

procedure TForm1.Button1Click(Sender: TObject);
var Form:TForm;
begin
Form:=TForm.Create(Application);
with (Sender as TWinControl).Parent do begin
Form.Left:=Left+5;
Form.Top :=Top+5;
end;
with TButton.Create(Form) do begin
Parent :=Form;
Caption:=Button1.Caption;
OnClick:=Button1Click;
end;
Form.Show;
end;


158 :デフォルトの名無しさん:03/05/05 20:53
コンポーネントのコントロールの違いを教えてください。
それと、Form1はVar節で宣言されているので変数の一種だと思いますが、
Form1はクラスではないのですか。

159 :デフォルトの名無しさん:03/05/05 21:08
>>158
両方とも状況によって意味が変わる言葉だけど、Delphiでの意味を知りたければ
ヘルプの「オブジェクト,コンポーネント,コントロール」を読め。

Form1は、TForm1型の変数だ。


160 :デフォルトの名無しさん:03/05/05 21:09
実行しているアプリがあるフォルダのパスはどうやったら得られますか?

161 :デフォルトの名無しさん:03/05/05 21:11
>>160
自分自身?他のアプリ?
質問は、解答者が把握できるだけの情報を書きましょうね。

ちなみに自身だと、ExtractFilePath(ParamStr(0))

162 :動画直リン:03/05/05 21:13
http://homepage.mac.com/hitomi18/

163 :デフォルトの名無しさん:03/05/05 23:47
Delphiを二つ起動させた時に、
タスクバーには2つとも「Delphi 6」と出るわけですが、
なぜ「Delphi 6 - Project1」「Delphi 6 - Project2」ではないのでしょうか?
全く気のきかない開発環境に激萎えしてしまいました

164 :デフォルトの名無しさん:03/05/05 23:59
>>163
それがそんなに重要なことなんですか?

165 :デフォルトの名無しさん:03/05/06 00:13
>>164
重要かどうかが気になりますか?

ここはくだすれですよ?

166 :デフォルトの名無しさん:03/05/06 00:48
というか質問じゃなくてけなしてるんだから
荒らしでしょ

167 :デフォルトの名無しさん:03/05/06 01:04
↑Del厨信者が現れた
不便なところを指摘されると荒らし呼ばわりで済ます
ボーランドに落ち度は無いと思い込んでいる

168 :デフォルトの名無しさん:03/05/06 02:10
つーか、SDIがそもそも多重起動しないことが前提になってるし。
Delphiを二つ三つ起動するとどれがどれやら。

169 :デフォルトの名無しさん:03/05/06 02:15
くだ質です
右クリックを割り当てたPanel上にComboBoxを配置してあるんですが
そのComboBoxでは右クリックが効かないようにするにはどうしたらいいでしょうか?

170 :デフォルトの名無しさん:03/05/06 03:10
右クリックを割り当てた → ポップアップメニューを割り当てた
なら、

割り当てをやめて(もしくはAutoPopupをFalseにして)、PanelのMouseUpイベントで
PopupMenuのPopupメソッドを呼んで、メニューを表示する。

171 :デフォルトの名無しさん:03/05/06 03:10
フリーで開発できる環境を整えようとしたとき、
Delphi Personal と Eclipse どっちが良いでしょうか?
小さなアプリケーションが作れる程度でいいのですが。

172 :デフォルトの名無しさん:03/05/06 03:12
>161
Application.Exename

173 :デフォルトの名無しさん:03/05/06 03:13
すみませんが質問です。
継承で、プライベートメソッドの中身をごっそり入れ替えたいのですが、
こういう場合はどうすればいいのでしょうか?
やっぱムリですかね?


174 :デフォルトの名無しさん:03/05/06 03:15
>>170
ありがとうございます
PopupMenuです

175 :デフォルトの名無しさん:03/05/06 05:08
質問があります。
delphiで作ったアプリケーションAから任意のファイルFを別のアプリケーションBで実行させることは出来ますか?
ちなみにファイルFはアプリケーションBとは関連付けられていない場合です。

例をあげるとこんな感じです。
(例)
ボタンを押すとsample.txtファイルがNotepadで開く
(sample.txtはNotepadとは関連付けられていない)

関連付けられている場合のやり方は検索で見つかったのですが、
この場合のやり方が分かりません。

176 :動画直リン:03/05/06 05:13
http://homepage.mac.com/hitomi18/

177 :Dale L. Fuller:03/05/06 05:18
>>163
ありがとう。年末の D8 までには直します。

178 :デフォルトの名無しさん:03/05/06 06:04
Delphi Acid Floor
http://www.wwlnk.com/boheme/
のDelphi Tipsに他のアプリを起動する
という項目があります


179 :デフォルトの名無しさん:03/05/06 06:06
>>173
それができたら Private/Protect/Public の存在意義が無くなる。
こっそり VMT を書き換えるという手もあるが、非仮想関数には手出しできない。

素直にクラスのソースをコピーして書き換えるべきではないかな?


180 :デフォルトの名無しさん:03/05/06 07:43
i:Integer;と
Button1:TButto;では
メモリ上の配置が異なるそうですが(スタックとかヒープとか)

なぜそうなっているのですか?スタックとかヒープとかよく分からないので
メモリの使い方を教えてください。そもそもヒープって何?

181 :A:03/05/06 08:03
>>175
>>178 のサイトにあるやり方だと、ただ単にメモ帳は起動できても、テキストを読ませた状態での
起動は出来ない。とかレスが付きそうなので、ヒントを。

lpParameters に 開きたいテキストファイルを指定してやれば良い。

>>178のサイトを見た上で、そのサンプルを参考にDelphiのヘルプを見れば
簡単に上の意味がわかるはず。
がんがれ。

182 :デフォルトの名無しさん:03/05/06 08:22
Del6とDel1は共存できますか?
OS/2で動くソフトを開発するために、無理やりWin-OS/2で動くソフトを
開発したいのですが・・・。

183 :デフォルトの名無しさん:03/05/06 08:31
>>180
 クラスの場合は、ヒープにインスタンス=実体が取られて、変数にはその参照=ポインタが取られます

 ヒープというのは、スタックでもなく定数域でもない場所の事で、メモリ確保の手続きで確保される領域です。

184 :デフォルトの名無しさん:03/05/06 08:34
ヒープもスタックも説明できないくせにレスすんなよ。

185 :デフォルトの名無しさん:03/05/06 08:35
>>182
Delphi1は16bit環境で、16bit環境ならWin-OS/2で動きます。(実際動かしていました)

Delphiは全て共存出来ます。
ただし、BDEは最新バージョンとなります(比較的下位互換は守られているのでまあ大丈夫ですが)
またファイルの関連付は共通になるので
自分で関連付を増やして右ボタンメニューで選択出来るようにすると使い易くなるでしょう。

186 :デフォルトの名無しさん:03/05/06 08:50
>>184
ごめん、あの説明じゃ判らなかった?

スタックというのは 一つのポインタ(アドレスを覚えている変数 実際にはCPUのレジスタ)を使って
push 操作 ポインタを小さくしてから書込
pop 操作 読んでからポインタを大きくする
という基本操作で読み書きする領域の事。
 変数をスタックに取る場合は、ベースポインタというもう一つの変数を使って、
 スタックポインタをベースポインタにコピーしてから、スタックポインタを変数領域分小さくする

こういうpushや確保操作を関数・手続の先頭で行って 出口で元に戻すようにすれば
関数がネストしても大丈夫になるわけ

・・・・つづくかもしれない


187 :デフォルトの名無しさん:03/05/06 09:01
stack領域を配列として説明すると

push(data)  は dec(sp); stack[sp] := data;
例えば3ワード分の領域確保は
push(bp);bp:=sp; sp:=sp-3;
 こうすれば、プログラム中ではstack[ bp-1] [ bp-2] [ bp-3] の3つを変数として使える。
 もっともDelphiのコンパイラはbpを使わずに済ます場合も多い。
 sp:=sp-3 だけしておいて stack[sp+2] [sp+0] [sp+0] を変数として使うわけだ


終了操作は、確保前の sp は bp にあるので sp:=bp ;pop(bp) とする
pop(data)  は data:=stack[sp];inc(sp);



188 :デフォルトの名無しさん:03/05/06 09:12
で、クラスの場合、どうしてスタックにインスタンス領域を取らないかというと、
スタックだと、こういう構造をしているので関数の寿命と変数の寿命が一致してしまう。
C++では、関数の寿命と一致させられる事も出来るし、その場合コンストラクタや
デストラクタが自動的に働いて便利な面もあるけど、それは便利なだけであって本質じゃない。
その代わり . と -> の2つの参照方法が出て煩雑という欠点も出た。
クラスのように独立性のある構造をローカルスタックに作る必然性がないという事だろう。

そこで、Delphiではクラスの変数は 自動的に参照になる事にした。
C++でいう -> を無くして、全て . だけに出来るわけだ。

そして、別の変数に代入した場合、実体ではなく参照がコピーされる
これは少し注意しなければいけない。 コピーされて実体が2つなったと元の変数を解放しちゃいけない。

189 :180:03/05/06 09:29
>>180

昔、Macでプログラミングを勉強していたとき、ポインタのポインタ
と言うものが出てきた、さっぱり分からなかったけど、つまり、

オブジェクトはヒープという領域に動的に確保され(アプリケーション実行後ってこと?)
そのヒープ領域は「圧縮」されるので、オブジェクトはアドレスが移動する、だから
オブジェクトを参照するポインタ、これ自身もヒープに存在するので、スタック領域に
固定的にポインタのポインタが確保される・・・・みたいなことを本で読んだことがあります。

つまり、オブジェクトって、簡単にアプリケーション実行後はアドレスがころころ変更する
ものなのでしょうか?・・まとめていうと、ヒープ領域に取られた変数なりオブジェクトは
アドレスが消滅まで固定されるものではないのでしょうか?
なぜ、そんな仕様になっているかというと、「アプリケーション実行後、動的に確保されるから」
なのでしょうか?

190 :デフォルトの名無しさん:03/05/06 09:35
>>189
Delphiのオブジェクトは勝手に再配置されません。
もし、再配置されてしまうと、それを参照している全てのポインタ変数を書き換える必要があるからです。
理屈の上では、ポインタ変数を2ワード変数としてリンクリストにして管理とか考えられるのですが、
現実には、整数型に型キャストして使ってたり行儀の悪いプログラムも多いですからね


191 :180:03/05/06 09:42
ヒープに確保したオブジェクトは明示的に開放しないといけませんが、
スタックみたいに用が済んだら何故開放するとかならなかったのですか?

あ、なんかホントにくだらない質問かもしれない

192 :デフォルトの名無しさん:03/05/06 09:50
Delphiのクラスインスタンス(オブジェクト)が作成されるタイミングは、
 コンストラクタがクラスメソッドの形式で呼ばれた時です。
この時にヒープからメモリも確保され、その後コンストラクタによる初期化がされます。

実は、メモリを自前で確保してから、コンストラクタをメソッドの格好で呼ぶ方法もありますが・・・今は無視

解放されるタイミングは デストラクタが呼ばれた時です。
明示的に解放しなくても、
用が済んだらデストラクタが呼ばれる仕掛けをプログラマが作る事で自動的解放されます。

例えば、コンポーネントはコンストラクタで親オブジェクトを指定しますが、親が解放されれば自動的に子が解放されます。
また、インターフェース型を使えば、参照してる変数が無くなった時点で自動的に解放されます。
たとえばインターフェース型ローカル変数なら、その関数から抜ける時に自動的に解放されます。

なお、関数内でローカルにオブジェクトを作って廃棄する場合は普通に try finally 構文を使うと良いでしょう。
with 構文と組み合わせると

with TStringList.Create do try
 ・・・・ 処理 ・・・
finally Free; end;

のように変数名の定義無しに安全に作って解放させる事も出来ます。


193 :デフォルトの名無しさん:03/05/06 09:53
>>191
プログラム終了以外に"簡単に"「用が済んだ」ことを調べる方法がないから。
GC厨は放っておけ。

194 :デフォルトの名無しさん:03/05/06 10:45
度々すみません。
Indyでバイナリファイルを取得する際に、
ダウンロードしたサイズ(進捗情報)を取得することは可能でしょうか?
よろしければご教授願います。




195 :スケベ大王:03/05/06 10:46
                 ┌─┐
                 |や.|
                 |っ |
                 │ぱ│
                 │モ│
                 │ロ .|
                 │よ .|
      バカ    ゴルァ  │ !!.│
                 └─┤    プンプン
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎


http://www.dvd01.hamstar.jp

196 :デフォルトの名無しさん:03/05/06 10:55
>>194
TStream のどれかを使ってる筈だから、それを継承して
自分でイベントをつけておいたら?

197 :デフォルトの名無しさん:03/05/06 11:59
>>181
バカ、載ってるよ

198 :デフォルトの名無しさん:03/05/06 12:19
フォントの種類によって微妙に文字のサイズが違いますよね?

さらに、MS P ゴシック など「P」が付いている文字は
幅も文字によって変わってきます。

では、どんなフォントでも文字でもきちんとピッタリの高さと幅を得るには
どのようにしたら良いのでしょうか?

(「プロポーショナルフォントを使わない」は無しでお願いします)

ダサい方法として、一旦AutoSizeのあるコンポーネント(ラベルとか)に入れて、
サイズを取得する方法があると思いますが、もっとちゃんとした方法は
あるのでしょうか?

199 :デフォルトの名無しさん:03/05/06 12:25
>>198
 単に 高さ幅が知りたいなら Canvas.TextExtent で求まるじゃない。

サイズをピタリとあわせたいなら TextExtent でサイズ見ながら調整するしかない。
縦横ともにピタリとあわせたいなら、
http://www.google.co.jp/search?q=LOGFONT+Delphi&lr=lang_ja

200 :198:03/05/06 12:51
>>199
TextExtentもLogFontも知りませんでした。
おかげさまで解決できました。

ありがとうございます。

201 :A:03/05/06 14:57
>>197
すまん。どこに載ってるのか、見つからなかったが…。

「EXEを指定して起動する方法」と、
「ファイル名を指定して関連付けられたアプリを起動する方法」 ならあるけど、
>>175 が聞いてるのは、
「関連付けられていないアプリを、ファイルを開いた状態で起動する方法」 だし…。

202 :デフォルトの名無しさん:03/05/06 17:05
すみません、TPageControlのタブを非表示にするにはどうすればいいでしょうか

203 :デフォルトの名無しさん:03/05/06 18:11
非表示にしたいTabControlsのTabVisibleをFalse



204 :デフォルトの名無しさん:03/05/06 18:54
DelphiはDelphi自身で作られている、というフレーズをよく聞くのですが
実際どの程度がDelphiで作られているのでしょうか?
IDEだけですか?それともコンパイラもDelphiでつくられているのでしょうか
もしそうだとするとそのDelphiのコンパイラを作ったDelphiはどうやってコンパイルしたのかと
疑問に思いました

205 :デフォルトの名無しさん:03/05/06 19:43
>>204
VCLとかIDEとかRaveとかDatabase Explorerとか。コンパイラは違う。

206 :デフォルトの名無しさん:03/05/06 19:50
Delphiの場合はアセンブリな本体にBorland C++のスタブが付いているっぽい(実際は知らん)
普通は、他の言語で最初のコンパイラを書き、それに自己記述したソースを食わせて作るのかな。
最初の最初のアセンブラだけはバイナリ直打ちかも…

207 :デフォルトの名無しさん:03/05/06 20:13
>>205-206
数日悩んでいたのがすっきりしました
ありがとうございます


208 :202:03/05/06 20:23
>>203
すみません、タブの内容を表示したままタブを非表示にしたいのですが、どうすればいいでしょうか

209 :デフォルトの名無しさん:03/05/06 21:12
非表示にしたいTabControlsの"TabVisible"をFalse
直後にPageControlsのActivePage:=非表示にしたTabControls

210 :デフォルトの名無しさん:03/05/06 21:37
>>168
> つーか、SDIがそもそも多重起動しないことが前提になってるし。

ハァ ? MDI と SDI の区別ついてるのか ?

> Delphiを二つ三つ起動するとどれがどれやら。

だから不便だと言ってるんだろ ?
そういう状況がどれほどあるかは知らんけど。
ちなみに、VC++6 は プロジェクト名 - Microsoft VC++ - ファイル名 と表示される。
ファイル名はいらないから、プロジェクト名ぐらい表示してもバチはあたらんと思う。

211 :202:03/05/06 21:55
>>209
どうもありがとうございます。できました。

212 :デフォルトの名無しさん:03/05/06 22:06
>>204
最初のdcc.exeはTurbo Pascal製と思われ。
最初のTurbo Pascalは、
Pascalソースをハンドアセンブルで作ったらしい。

213 :デフォルトの名無しさん:03/05/06 22:15
前に方にもカキコされていたけど、やっぱり書籍で最初の一歩を踏み出したので、

   最初に読んでつまずかない初心者向けの本

を一冊ご推薦ください。アスキーのオフィシャルコースウエア基礎編なんて
どうですか?やっぱむずかしいですか? 学習時間は毎日夜1時間程度を
想定してください。

インターネットでの学習はもうちょっと後で考えます。

214 :デフォルトの名無しさん:03/05/06 22:29
ものすごく初心な質問ですみません。
Label.Captionの'リンク'という文字に
ハイパーリンクでhttp://〜〜〜〜〜/というホームページを
リンクしたいのですがどのようにすればいいか教えて頂けませんか?

215 :デフォルトの名無しさん:03/05/06 22:53
>>214
もう一歩掘り下げろ。

216 :214:03/05/06 23:22
>>215
LabelのCaptionプロパティーに
http://pc2.2ch.net/test/read.cgi/tech/1051882835/』と
書いても、Stringと認識されてリンクになりません。
青い字で下線のついたリンクにするには
どのようにかけばよろしいですか?

217 :デフォルトの名無しさん:03/05/06 23:29
>>216
with Label.Canvas.Font do
begin
 Color := clBlue;
 Style := (fsUnderline);
end;

218 :214:03/05/06 23:34
>>217
メチャメチャりんくらしくなりましたが
リンクができていません。
お願いします。
どうすればホームページにリンクすることができますか?

219 :デュランデュランデュラン:03/05/06 23:41
まず、uses上でShellAPIを宣言する。

次に、Labelのオブジェクトインスペクタ上で
1. Fontプロパティでフォントの色を青にする。
2. FontプロパティのStyleプロパティにfsUnderlineを指定する。
3. Cursorプロパティを crHandPointに設定する。

次に、Labelの OnClickイベント上で、以下のコードを記述する。
procedure TForm1.LabelClick(Sender: TObject);
begin
 ShellExecute(Handle, 'open', 'http://www.2ch.net/2ch.html', nil, nil, SW_SHOW);
end;

一番目の引数:親ウィンドウのハンドル
二番目の引数:ファイルを開く指示('print'と書くと、印刷になる)
三番目の引数:開くファイル名(この場合はURL)
四番目の引数:実行ファイルへのパラメータ
五番目の引数:作業フォルダ
六番目の引数:実行方法。SW_SHOWはウィンドウを標準で実行。
SW_MAXIMIZEなら最大化)。
詳しくはWin32APIヘルプを見れ。



220 :214:03/05/06 23:54
>>219
ご親切にほんとうにありがとうございました。
勉強になります。
ShellAPIをこの期に勉強します。
ありがとうございました。

221 :デフォルトの名無しさん:03/05/07 03:28
Windowsの[スタート]メニューから[ファイル名を指定して実行]を選んで

 notepad.exe C:\WINDOWS\デスクトップ\新規テキストファイル.txt

とかやればデスクトップ上にある新規テキストファイル.txtを開くことが出来る。
別にこれは関連付けられたファイルであろうとなかろうと関係ない。

これと同じことをやっているのがShellExecuteです。


222 :デフォルトの名無しさん:03/05/07 03:30
>>217
ついでにマウスカーソルも変えとけ

223 :デフォルトの名無しさん:03/05/07 03:50
初めてカキコさせていただきます。さっそく質問なんですが、実はバイト先の
HPで荒らしが発生しました。荒らしとは言っても掲示板での悪口なのですが。
そこでそれを書き込んだ人のリモートホストやアクセス先やなんかを抜きたい
のですが、どうすればいいのでしょうか?本当に困ってます。
よろしくお願いします


224 :デフォルトの名無しさん:03/05/07 03:50
ShellExecuteで
コマンドライン引数にファイルアドレスを渡せないアプリケーションのばあいはどうやれば…
paramstr(1)にファイルアドレスを代入とかはできないんですよね。。

225 :デフォルトの名無しさん:03/05/07 04:08
>>223
ここで聞くな、アホ

226 :デフォルトの名無しさん:03/05/07 04:11
>>223
1.掲示板のシステムにリモートホストやアクセス先を記録するようにする。
2.記録されたデータを見る。

それだけのことだ。

227 :223:03/05/07 04:22
225>ごめんなさい。。。
226>1、それについてはアクセス解析なのどHPをいろいろ見てきましたので
なんとかできそうです。
    2、ここなんですが記録できるようにする前のデータはみれないのでしょうか?
それが不安です。掲示板で誰が書き込んだのか知りたいのですが。
板が違うようですがよければお願いします。 

228 :__:03/05/07 04:25
   川o・-・)ノ <先生!こんなのがありました!
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/zenkaku/index.html
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku05.html
ttp://yamazaki.90.kg/hankaku/hankaku03.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html

229 :デフォルトの名無しさん:03/05/07 04:31
>>227
>    2、ここなんですが記録できるようにする前のデータはみれないのでしょうか?
無理。
httpサーバーのログがみれるなら、そこから探せ。


230 :デフォルトの名無しさん:03/05/07 04:33
>>210
プロジェクトグループは使えない状況?

>>224
1)あきらめる
2)SendMessage連発で開くダイアログを強制操作
3)作者に連絡して引数を処理してもらう

231 :たまご:03/05/07 05:04
229>httpサーバーのログってどうやってみるんですか?
無知ですみません。

232 :動画直リン:03/05/07 05:13
http://homepage.mac.com/hitomi18/

233 :デフォルトの名無しさん:03/05/07 05:47
>>231
httpサーバーの管理者に連絡してください。

234 :__:03/05/07 05:58
   川o・-・)ノ <先生!こんなのがありました!
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/zenkaku/index.html
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku05.html
ttp://yamazaki.90.kg/hankaku/hankaku03.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html

235 :デフォルトの名無しさん:03/05/07 06:40
C/C++/Java/C#みたいに

 i += 1;

のような演算子をつかいたいのですが、Delphiにはありませんか?

236 :デフォルトの名無しさん:03/05/07 06:44
>>235
プロパティには使えないけど Inc(i, n) というのはある。
詳細はヘルプを見てください。

237 :235:03/05/07 07:42
>236
タイプ量が増えるのが・・・。ありがとうございました。

238 :デフォルトの名無しさん:03/05/07 07:49
ああ C系に比べるとタイプ量は多くなるね。
同じ感覚で書こうとすると1行に収まらなくなる事も増えてくる。

でも、その方がいいと最近思えてきたよ。 
コンパイラだから短く書こうが、改行を入れようが 吐かれるコードは同じだしね。

で、この方が後で読み廉いんだよ。


239 :235:03/05/07 08:10
>238

でも i := i + 1;
は、感覚的にまだ慣れませんね。 昔のBASICみたいで、太古に逆戻り
したみたいです。

最近やっと、「else句の前にセミコロンを何故つけてはいけないのか」
やっとわかりました。市販されているPascalの書籍をざーっと読んでみて一冊だけ
わかりやすい説明がありました。

Pascalにおいては、セミコロンは 文と文の区切りの記号である。だから

  (文);(文)  を想定しないといけない。


if (式)then (文1)else(文2);

文1は単文じゃないといけないので、(文1)の末尾にセミコロンをつけると

then  a:=0 ;(空文あり)else

になるのですね。 ずっと悩んでいました。

240 :デフォルトの名無しさん:03/05/07 08:31
Windows2000なら\WinNT、98なら\Windowsというファイルが
ウィンドウズファイルですよね。
Windowsファイル下にファイルをコピーしたいのですが
OSによってそのファイルのPATHが違って
どのようにウィンドウズファイル下にコピーすればいいか
分からなくて困っています。
//コピー元ファイル名
CopyFrom := 'コピーしたいファイル.*';
//テンポラリフォルダのパス取得
GetTempPath(SizeOf(TempPath), TempPath);
//コピー先ファイル名
CopyTo := TempPath + ExtractFileName(CopyFrom);
//コピー処理
CopyFile(PChar(CopyFrom),
PChar(CopyTo),
True);
とするとTempファイルにコピーされます。
これをTemp→Windows or WINNTにしたいです。
どうかよろしくお願いします<(__)>

241 :デフォルトの名無しさん:03/05/07 08:35
>>240
Windowsディレクトリ:GetWindowsDirectory
Systemディレクトリ:GetSystemDirectory

242 :デフォルトの名無しさん:03/05/07 09:19
Delから、起動中のAccess製アプリに、
とあるデータ(文字列など)を送りたいのですが、
ファイルやDBを経由しないで送るにはどんな方法がありますか?

243 :A:03/05/07 11:13
>>239
Cから来ると、タイプ量がだいぶ増えるからね。そもそも、begin endからしてそうだし。
Cは、どっちかというと、実戦重視で少しでも少ないタイプでコーディングできるように作られてる。
その代わり、書いた時はいいけど、後で読もうと思ったときに、汚い書きかたしてると苦労する。
書き方の自由度が広いから、他の人が書いたソースを読むのは大変。

pascalは、もともと教育用に作られただけあって、生真面目というかチェックが厳しい。
でも、そのおかげで、誰が書いても大体同じような書き方になって、他人のソースも読みやすい。
実は、生徒の書いたコードを先生が楽に読んで採点できるようにそうしたって噂も(w

設計思想の違いだから、どっちがいいとは言えない。
+=ぐらい使いたいと思うことは、漏れも良くあるけどね(w

244 :デフォルトの名無しさん:03/05/07 11:25
くだ質で恐縮ですが...

webページのフォームに文字を書き込んでpostする部分を
delphiで書きたいんですが、どうすればいいのでしょうか?

具体的には、ある掲示板の内容を読み込んで、ある条件の
カキコがあったら、自動的にレスを書き込むようなプログラム
です。

インターネット関連のプログラミングは初めてなので、はっきり
言って右も左もわかりません。よろしくおながいします。

245 :デフォルトの名無しさん:03/05/07 11:30
>>243
> Cは、どっちかというと、実戦重視で少しでも少ないタイプでコーディングできるように作られてる。

標準ライブラリとか標準ライブラリとか標準ライブラリとかな。

246 :デフォルトの名無しさん:03/05/07 11:31
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=http+post+delphi&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

247 :A:03/05/07 11:56
>>244
とりあえず、Delphiでどうこうというより、まずは、CGIについて調べるといいよ。
ブラウザが、フォームに入力された内容を、どうやってサーバーにpostしているか分かれば、
Delphiに代わりにそれを送らせるのは、難しくない。
いちおう、Delphiで、postするには、Indy っていうコンポーネント郡を使うと楽。
CGIが分かってからの話だけど。

248 :A:03/05/07 11:58
>>242
そのアプリのつくり次第だと思うけど。
クリップボードから送るとか、キーボードから入力された風に装うとか。

249 :デフォルトの名無しさん:03/05/07 12:13
TFontDialogでダイアログを開いた時に
フォントの種類を選択できますが、
この種類を限定する事は可能ですか?
(例えば日本語が使えるフォントのみ指定するとか)
(できればフォントを削除するとか手荒なことをせずに実現したいのですが・・)

250 :244:03/05/07 12:26
さっそくありがとうございます。

>>246
たくさんの検索結果をありがと (泣
見てみます。

>>247
そうですね。フォームからのデータを受ける側の処理は
perlで書いたことはあるんですが...確か文字列の
変換とか面倒くさいことをしてたような。

IndvClientsのTIdhttpなんかを使うんでしょうね。
webで検索すると、以前のDelphiに付属してた
コンポーネントを使った例ばかりで...
ちょっと勉強してみます。

251 :A:03/05/07 13:19
>>250
Indyを使ったpostの例は、モナジラプロジェクトのところにあったと思う。

252 :ななしへたぐらま ◆XcB18Bks.Y :03/05/07 13:21
>>240-241
NT系だと管理者権限ユーザーとしてログオンしていないと
これらのフォルダに書き込めないとか,ありませんか?


253 :デフォルトの名無しさん:03/05/07 13:27
>>249
可能です。楽しみたいなら TFontDialog を継承して WndProc を好きに書き換える。
楽したいなら適当なコンポーネントを拾ってくる。


254 :デフォルトの名無しさん:03/05/07 13:30
>>253
それを普通「不可能」というわけだが。

255 :249:03/05/07 13:37
>>253
レスありがとうございます。
つまり、TFontDialon単体では実現できないんですね。

もうひとつ質問させて下さい。
D7なのですが、フォントを日本語不可の文字にすると当然TMemoで
「あああ」と入れたら文字化けしますよね。
これをフォントをMSゴシックなどに戻しても文字化けしたままなのですが、
これはどう解決すれば良いでしょうか?
(フォントはTFontDialogで変更します)

256 :249:03/05/07 13:38
書き忘れました。
フォントの文字化けが戻らない不具合は
WindowsXPのみで確認できています。
Windows98では問題ありませんでした。

257 :249:03/05/07 15:31
やってしまった・・・
自己解決です。

TFontDialogを開くと「文字セット」という項目があり、
日本語がないフォントを選択するとそこが「欧文」等になっていて、
MSゴシックに戻してもそこが欧文のままになっていたので
化けていました。

ああ、情けない・・・。

258 :244:03/05/07 16:32
>>251
ああ、助かりました。

janeプロジェクトがdelphiを使ってるんですね。
掲示板に書き込むところのソースは、なかなか
興味深いものがありました。多謝です。

259 :デフォルトの名無しさん:03/05/07 18:38
TListBoxで複数のカラムと文字列の表示をするにはどんな設定してどのような
代入をすればいいですか?お願いします

260 :デフォルトの名無しさん:03/05/07 18:55
なぜTListViewを使わないのですか?

261 :デフォルトの名無しさん:03/05/07 18:55
>>254, 255
そりゃそうなんだけどさぁ...
開発ツールは新しいコードを書くためのツールなんだし。
「超初心者」向け、ってことでもなぁ...

ま、突っ込みありがとう >>254

262 :240:03/05/07 19:02
>>241
ありがとうございます。
無事できました。

263 :デフォルトの名無しさん:03/05/07 19:20
>>260
簡単な使い方教えてください。分かりやすい解説がなくて。よろしくです

264 :デフォルトの名無しさん:03/05/07 19:37
TreeViewの話なのですが、子ノードに文字列を挿入して
その子ノードに格納してある文字列を表示させるには
どういった書き方をすればいいのでしょうか?
具体的には


 子←「一番目」というデータを格納
 子←「二番目」というデータを格納

して、クリックしたら挿入した文字列をShowMessageさせたいんです。
どなたか教えて下さい。

265 :デフォルトの名無しさん:03/05/07 21:19
レジストリのデータを最新の状態に更新する方法はありますか?
Reg := TRegistry.Create;
with Reg do
begin
try
Rootkey := HKEY_CURRENT_USER;
OpenKey('\EUDC\932', True);
WriteString('SystemDefaultEUDCFont',S);  (SはStringです)
CloseKey;
finally
free;
end;
で外字リンクを変更してレジストリを更新したいです。
外字リンクを変更する事はこれでできました。
最新の状態に更新する事ができません。
どうかお助け下さい。

266 :デフォルトの名無しさん:03/05/07 21:43
>>264
ヘルプ読もうな。

VCL リファレンス
TTreeNode.Index

TTreeNode参照

Index プロパティは,親ノードが保守する子ノードリストでのノードの位置を指定します。

property Index: Longint;

説明

Index を使うと兄弟ノードに相対するノードの位置を特定できます。親ノードの最初の子の Index は 0 で,以後これに続いて添字付けされます。


>>265
?


267 :265:03/05/07 21:48
>>266
レジストリ内容を変更しただけでは
再起動しない限り変更は反映されません。
それを再起動しないで反映させたいです。
下手な日本語で申し訳ありません。

268 :デフォルトの名無しさん:03/05/07 22:05
>>267
そりゃそのレジストリを参照してやつをどうにかするしかないんじゃないか ?

269 :265:03/05/07 22:16
>>268
こんなことは不可能ですか?
DOCOMOが作ったソフトならその場で
外字データが反映されるのですが
自分で作るとどうしてもできません(;。;)

270 :デフォルトの名無しさん:03/05/07 22:42
indy9のdemoで
送信は出来るが受信がうまくできない
ヘッダは受信できてもダブルクリックした後
メッセージを受信するはずだが、受信できません

他のメールクライアント(becky2等)では出来るのですが・・・

271 : :03/05/07 23:47
>>263
何がやりたいのか書いてないから、返答のしようが無いと思う。
TListview張っつけてなんなりとやってみてからだと…。
張っつけたら、特にすることも無いと…。

272 :デフォルトの名無しさん:03/05/07 23:47
>>269
> 自分で作るとどうしてもできません(;。;)

全然状況がわからんのだが、その自分で作ったプログラムと言うやつはいつレジストリを読み込んでるんだ ?


273 :265:03/05/08 00:06
>>272
ボタンが押された時です。
procedure TMain.RegisterClick(Sender: TObject);
var
WindowsPath : array [0..256] of char;
S: String;
Reg: TRegistry;
begin
GetWindowsDirectory(WindowsPath, sizeof(WindowsPath));
CopyFile('emoji.tte',WindowsPath,True);
S := WindowsPath + '\emoji.tte';
if FileExists(S) then
begin
Reg := TRegistry.Create;
with Reg do
begin
try
Rootkey := HKEY_CURRENT_USER;
OpenKey('\EUDC\932', True);
WriteString('SystemDefaultEUDCFont',S);
CloseKey;
finally
free;
end;
end;
ShowMessage('絵文字の外字登録が'+#13#10+'完了しました。');
end;
end;
と書いています。
どうぞアドバイス下さい<(__)>

274 :デフォルトの名無しさん:03/05/08 00:36
>>273
http://www.users.gr.jp/ml/archive/delphi/71387.asp
と似てる。EnableEUDCが足りないのでは。

275 :デフォルトの名無しさん:03/05/08 04:58
>>267
より厳密には、レジストリへの更新は即時に反映されるが、レジストリを参照している
プログラムが自ら読みにいかないと新しい値は使われない。

この場合は EnableEUDC の呼び出しを契機にして GDI が新しい外字グリフを読みに
いくわけだ。

がんがれ

276 :265:03/05/08 08:19
>>274
>>275
多謝です<(__)>
できました。ほんとうにありがとうございます。
ありがとございました☆

277 :デフォルトの名無しさん:03/05/08 11:59
StringGridってデフォルトでは最初のセルが選択された状態になっていますよね?

これをどこも選択されていない状態にするにはどうすれば良いでしょうか?

(現在は色が変わらなければ良いと割り切って、スクロールバーを非表示にして
一行増やして、そこを選択していますが、もっとスマートな方法はないでしょうか?)

278 :デフォルトの名無しさん:03/05/08 12:36
>>277
VCL ソースは持ってる?

279 :277:03/05/08 13:10
>>278
持っています。

280 :デフォルトの名無しさん:03/05/08 14:28
すみません。くだらない質問かもしれませんが、

Delphiの超初心者向けHPを作ろうとおもうのですが、いいですか?

また、内容的にどんなものを盛り込んだらいいでしょうか?

281 :デフォルトの名無しさん:03/05/08 14:29
インテュキ臭いけど、col、rowに0とか。
もうちょい調べてみます。とりあえず1行増やすのはやめた方がいいです。
小手先の回避のために仕様を変えちゃうより見た目を捨てる方が健全です。

282 :デフォルトの名無しさん:03/05/08 14:48
>>280
>くだらない質問かもしれませんが、
全然くだらなくないです。思い立ったが吉日、頑張ってください。

内容は・・・・・自分が昔ハマッタ所を思い出してみてはどうでしょう。
超初心者だと、フォームにコンポーネントをぺたぺた貼りつつイベントドリブンの概念や型の一致
から始めるのが順当でしょうか。

初心者と中級者という線引きは中々引けないですが、基本的なコンポーネントが使いこなせて、
オブジェクト指向が少しわかるところくらいが初心者卒業の条件かと。

283 :デフォルトの名無しさん:03/05/08 15:00
>>280
スーパーリアル超初心者からの要望です
ゲーム系お願いします
意外なほど少ないんですよ、Delphiでゲームプログラムの解説してるサイト
それにグラフィック関連を扱っているサイトも少ないです

284 :デフォルトの名無しさん:03/05/08 15:20
http://pas2dox.sourceforge.net/
ここにpas2doxというDoxygenでDelphiのソースが扱えるようになるツールが
あるようなのですが、使い方が書いていないためどうやったら
Delphiソースを元にHTMLを出力させるのかが分かりません。
どうやって使ったらいいのでしょうか?
Doxygenはインストール済みです。
相談室スレから誘導されてきました。

285 :デフォルトの名無しさん:03/05/08 15:32
pas2dox -h
でヘルプが見れますよ。
ここから先のことはDoxygen自身に関することなのでDoxスレでどうぞ。

286 :デフォルトの名無しさん:03/05/08 15:36
VS.NETでは標準に搭載されているXMLファイル出力を、
次期Delphiでも搭載してほしいですね。

ところで、ここは(超初心者向け)ですので、たらい回しするようで
申し訳有りませんが、「談話室」で戦ってください。負けてはいけません。

287 :デフォルトの名無しさん:03/05/08 15:36
>>285
-hのヘルプではよく分かりませんでした。
input filterである事だけは分かったのですが。
doxスレってどこにありますか?DAT落ちしているようなのですが。

288 :デフォルトの名無しさん:03/05/08 15:43
http://www.yahoo2003.com/betu/linkvp2/linkvp.html

289 :デフォルトの名無しさん:03/05/08 15:44
>>288

すな! ここはまじめなスレッドだ

290 :デフォルトの名無しさん:03/05/08 15:47
>>288
ああ、なんとなく分かりました。
大量にエラーを吐いて結局出力出来ませんでしたが。
アクセス違反とWarning: Found ';' while parsing initializer list!のような
ワーニングがたくさん出て出力出来ませんでした。
これはpas2doxが未完成なのでしょうか?
それとも使い方に問題があるのですか?

INPUT_FILTERにpas2doxを設定して
FILTER_SOURCE_FILESにチェックを入れ
FILE_PATTERNSに*.pas,INPUTにソースディレクトリを設定し、
Dotを使うように設定したのですが…

>>289
真面目に質問しています。どの辺が不真面目なのでしょうか?
問題があればその部分を改めます。

291 :デフォルトの名無しさん:03/05/08 15:48
>>289
すいません。>>288が透明あぼーんされていたので
私にレスされていたのと勘違いしてしまいました。

292 :ななしへたぐらま ◆XcB18Bks.Y :03/05/08 15:55
>>259
オーナー描画機能を使う.ちょっと作ってみました.データはカンマ区切りテキスト形式です.
まず宣言.
type
// ・ヘッダーコントロール(AlignをalTop,Sectionsに3つのセクションを作る.それぞれTextを件名,送り主,日付とする)
// ・リストボックス(AlignをalClient,StyleをlbOwnerDrawFixed にする)
TForm1 = class(TForm)
ListBox1: TListBox;
HeaderControl1: THeaderControl;
procedure FormCreate(Sender: TObject);
procedure HeaderControl1SectionResize(HeaderControl: THeaderControl;
Section: THeaderSection);
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
private
procedure InitListBox;
public
end;

(宣言部終わり.つづく)


293 :ななしへたぐらま ◆XcB18Bks.Y :03/05/08 15:57
>>292 (続き.以下実装部)

uses
Math; // ←Min関数を使うため

const
// 改行文字
cLineBreak = #$0d#$0a;
// サンプルデータ(カンマ区切りテキスト形式)
cSample = '"いやーん","れもな","2003/05/03"' + cLineBreak +
'"さいたまさいたましてもいいですか?","たいよう","2003/03/31"' + cLineBreak +
'"異議あり!","謎の弁護士","2003/04/01"' + cLineBreak +
'"ハゲいうな!","C. Alexander","2002/12/26"';

procedure TForm1.FormCreate(Sender: TObject);
begin
InitListBox;
end;

// HeaderControl1のOnSectionResizeイベントのイベントハンドラ:
// ヘッダーコントロールのセクションの幅が変わったときの処理→リストボックスを描く
procedure TForm1.HeaderControl1SectionResize(HeaderControl: THeaderControl;
Section: THeaderSection);
begin
ListBox1.Invalidate;
end;
(つづく)

294 :ななしへたぐらま ◆XcB18Bks.Y :03/05/08 15:58
>>293 (続き)
// リストボックスの中身をサンプルデータで埋める
procedure TForm1.InitListBox;
begin
ListBox1.Items.Text := cSample;
end;
// ListBox1のOnDrawItemイベントのイベントハンドラ:ListBox1の項目を描く
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
Values: TStringList;
iSec: integer;
SectionRect: TRect;
begin
Values := TStringList.Create;
try
ListBox1.Canvas.FillRect(Rect); // 項目の表示領域を塗りつぶすにょ.
// カンマで区切られたテキストをそれぞれの文字列に分離するにょ.
Values.CommaText := ListBox1.Items[Index];
// それぞれの文字列をヘッダーコントロールのセクションの幅に合わせて描くにょ.
SectionRect := Rect;
for iSec := 0 to Min(Values.Count, HeaderControl1.Sections.Count) - 1 do
begin
SectionRect.Right := SectionRect.Left + HeaderControl1.Sections[iSec].Width;
ListBox1.Canvas.TextRect(SectionRect, SectionRect.Left + 1, SectionRect.Top + 1, Values[iSec]);
SectionRect.Left := SectionRect.Right;
end;
finally
Values.Free;
end;
end;
(終わり)

295 :デフォルトの名無しさん:03/05/08 15:59
トレース実行でVCL内部まで進入する簡単な方法って無いでしょうか。
今は必要になるたびにソースをコピってやっています。

296 :281:03/05/08 16:53
>>277
色々やってみましたが便法は無いようです。
TCustomGrid.Paintを継承するかDefaultDrawingを切って、へたぐらまさんがやったように
自前描画しかないようです。役立たずですみません。

297 :デフォルトの名無しさん:03/05/08 16:55
>>295
プロジェクトオプションのデバッグ用dcu

298 :デフォルトの名無しさん:03/05/08 17:05
>>297
ありがとうございます。今までデバッガオプションの中を探してました。

299 :デフォルトの名無しさん:03/05/08 18:58
repeat〜untilだけbegin〜endで囲まなくていいのはなぜですか?
これだけ異質なものに感じます

300 :デフォルトの名無しさん:03/05/08 19:18
try 〜 finally 〜 end は気持ちの中で折り合いはつきますか?

301 :デフォルトの名無しさん:03/05/08 19:23
>>299
ModulaかAdaを見てみると幸せになれるかも。
要するにPascalの文法はその程度でしかなく不統一。

302 :デフォルトの名無しさん:03/05/08 20:19
repeat〜until節もtry〜finally〜end節も、確実に呼応するキーワードが来るからっしょ。
一方while〜doだとdoの後に呼応するキーワードが無いからbegin〜endが必須。

repeat (文) until (boolean)みたいに、間に単文の場合は;が不要なので、

repeat begin
(複文);
end until (boolean);

みたいに統一した文法で書ける。面度くさいからやらないが。

303 :デフォルトの名無しさん:03/05/08 20:25
>while〜doだと

何これ?

304 :デフォルトの名無しさん:03/05/08 20:48
http://www.borland.co.jp/qanda/delphi/d0002829.html
ここを参考にImageをDragで動かそうとしたのですが反応してくれません。
ほかのコンポーネントも試してみると、Labelも動きませんでした。
これらのコンポーネントは他のコンポーネントとは扱いが違うのでしょうか?

305 :デフォルトの名無しさん:03/05/08 22:02
ウィンドウじゃないから

306 :ななしへたぐらま ◆XcB18Bks.Y :03/05/08 23:48
>>277 >>281 >>296
グリッドコンポではデフォルトの描画を切らなくてもオーナー描画できるので
一部のセルだけオーナー描画にしてみました.
グリッドコンポのDefaultDrawingをTrueのままOnDrawCellイベントを使います.

// StringGrid1のOnDrawCellイベント:イベントハンドラ
// ※TextRectの+2は目で見て調整しただけです.
procedure TForm2.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
theGrid: TStringGrid;
begin
theGrid := Sender as TStringGrid;
//// セルに『選ばれてる』属性がついているときだけ自分で描き直す.
if gdSelected in State then
begin
// 背景をグリッドの背景色で塗りつぶす
theGrid.Canvas.Brush.Color := theGrid.Color;
theGrid.Canvas.FillRect(Rect);
// テキストをグリッドの文字色で描く
theGrid.Canvas.Font.Color := theGrid.Font.Color;
theGrid.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, theGrid.Cells[ACol, ARow]);
end;
end;

307 :ミ,,゚Д゚ミノ ◆A6VzDeLphI :03/05/09 00:47
>>304
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 FPreMousePoint :=
  Point( (ScreenToClient(Mouse.CursorPos).X - TImage(Sender).Left),
      (ScreenToClient(Mouse.CursorPos).Y - TImage(Sender).Top) );
 if Button = mbLeft then
  SetCaptureControl(TImage(Sender));
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if GetCaptureControl = TImage(Sender) then
  if ssLeft in Shift then
  begin
   with TImage(Sender) do
    BoundsRect :=
     Bounds( Self.ScreenToClient(Mouse.CursorPos).X - FPreMousePoint.X,
        Self.ScreenToClient(Mouse.CursorPos).Y - FPreMousePoint.Y,
        Width, Height );
 end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbLeft then
  if GetCaptureControl = TImage(Sender) then
   SetCaptureControl(nil);
end;

308 :デフォルトの名無しさん:03/05/09 02:29
キャプチャって便利そうですね。とても勉強になりました。

309 :304:03/05/09 03:01
>>305 >>307
レスありがとうごさいます。
>>305
いままで ウィンドウ = アプリ窓 = Form1?みたいな概念だったので
勉強になりました。
タスクにはでてないけど、ButtonやMemoもウインドウズで管理されてると思って大丈夫ですか?
>>307
まだSenderやselfを理解していないのでやってることが大まかにしかわからないですが、
画面全体からみたマウスの動きをキャプチャ、その値をImage1のLeft Topに代入して
無理矢理動かすみたいな感じですかね。

http://forum.nifty.com/fdelphi/faq/00044.htm
ここを参考にやったことがあったんだけど、動かすImageがコンパイル後に動的に生成
されたやつで、後から生成されたImageが被さったとき前面にきてしまう、ドラッグ中の
非表示(枠付き)、が難しかったので他の方法を探してたんです。
とりあえず>>304の方法でもPanelにImageを貼り付けたら動かせたのでそれでいきたいと思います。
ありがとうごさいました。

関係ないけど最近プログラミング初めてどんどん睡眠時間が減っていく(;´Д`)

310 :296:03/05/09 07:35
>>306
勉強になります。ありがとうございました。

311 :デフォルトの名無しさん:03/05/09 07:43
>>309
>プログラミング初めてどんどん睡眠時間が減っていく
s/初めて/始めて/
意味は十分伝わるけど、国語の勉強もしような!
無理がきくのは若いうち。何歳くらいなんだろう。


312 :毛の生えたふんどし:03/05/09 08:09
TFormからTForm1を派生して

Var Form1:TForm1;

で Form1という インスタンス変数なるものを宣言しました。

このインスタンス変数というものはメモリに存在するインスタンス(オブジェクト)の
「何」を格納しているのですか?

我々はコーディングしませんが、裏でインストラクタが呼ばれてインスタンスが生成され、
その「何か」がこのインスタンス変数に格納されるようですけど。

アドレスだけじゃないですよね????

313 :デフォルトの名無しさん:03/05/09 08:33
インストラクタはいいね

314 :デフォルトの名無しさん:03/05/09 09:52
インスタンスへのポインタなのでしょうけど、その先の構造はよく分からないです。
InsideDelphiだったか謎全さんのコンポーネント本だったか塚越さんの解説書だったかに
載っていたと思います。うろ覚えで悪いですが、

インスタンス変数そのものはインスタンスへのポインタ
インスタンスの最初4バイトはそのVMT(仮想メソッドテーブル)へのポインタ
インスタンスの後半はメンバ変数などの保存域

だったかと。VMTは1プロセス全体で共有されます。VMTには上位クラスのVMTへの
ポインタもあって場合によって遡って実行できるようになっています。

間違っていたらごめんなさい。

315 :毛の生えたふんどし:03/05/09 10:00
>314

ありがとうございました。とりあえず「インスタンスを指し示すもの(ポインタ)」
ということで納得します。InsideDelphiの日本語板はDel2を対象にしたものですが、
Delのメカニズムを理解するのにやっぱり購入しておいた方がいいですか?
近所の本屋に1冊だけボロボロになってあります。

316 :314:03/05/09 10:06
探してみました。
塚越一雄氏のDelphiオブジェクト指向プログラミング@技術評論社(平成9年刊)

Delphiに限らずオブジェクト指向そのものについて学べる良本です。
この本を理解すればDelphiの文法側は完璧です。

317 :314:03/05/09 10:18
InsideDelphiはマニアックすぎる内容ですが、激しく良著です。
古くなってしまった部分もありますが値段分の価値は十分あると思います。
今ちょっと読み返してますがVMTの構造も載ってますよ。

318 :デフォルトの名無しさん:03/05/09 10:45
Insideデルファイなら同じ作者のオライリーのDelphiクイックリファレンスをお奨めします。
結構Insideの情報も入ってるし。

319 :デフォルトの名無しさん:03/05/09 10:50
>>312
そんなところで悩んでいると先に進めないぞ。

VMT の構造なんてバージョン間で互換性は保証されていないし。COM 対応の
V3.x の前後で大きく変更されていると思った。

ほんとに気になるのなら、VCL/RTL ソースを丹念に読むことを進めます。
ほんとは、経験者に一つずつ説明してもらうのが良いんだけどね。
ネットで自習するよりは基礎力付くし。

320 :デフォルトの名無しさん:03/05/09 10:58
316が言ってた塚越氏の本は名著。今は絶版なのかな。

なんか出版社のマワシモノみたいな流れになってしもたね。

321 :デフォルトの名無しさん:03/05/09 11:57
Delphiオブジェクト指向プログラミングはもう絶版で今は復刊ドットコムが交渉中

322 :デフォルトの名無しさん:03/05/09 12:08
>>320
出版社の回し者だろうが、良い情報はよいものだ。

いつごろから「〜の回し者ではないですが」って言い回しがあるんだろう。
悪いこと考えている回し者が自分から「〜の回し者です」って言うと思っているんだろうか。


323 :277:03/05/09 13:39
>>281>>296
色々調べて下さってありがとうございます。
「とりあえず動けば良いや」的にやるのは慎みたいですね。
(その為にはもっともっと精進せねば・・・)
ところでRow、Colを0にするというのは、どういう方法ですか?
RowCountとColCountは0には出来ないですよね?

>>306
ご回答ありがとうございます。
一見しただけでは良く理解できませんが、
(AsとかInとか使った事なくてもメインプログラマーやってます(TT) )
貼り付けただけで解決できました。
(今から何をやっているのか分析してみます)

本当にありがとうございました。

324 :デフォルトの名無しさん:03/05/09 13:54
Delphiで
USBの装置が付いているかどうか、
電源が入っているかどうかを調べる方法を教えて下さい。

よろしくお願いします。

325 :デフォルトの名無しさん:03/05/09 15:30
>>324
WindowsAPIスレへ逝け
DelphiでWindowsAPIを使うのはとっても簡単

326 :デフォルトの名無しさん:03/05/09 16:22
シリアル接続なら、通信して返事が帰ってくるか調べるとか。

327 :324:03/05/09 16:49
>>326
パラレル接続なのです(TT)

328 :デフォルトの名無しさん:03/05/09 17:40
dcuファイルしかない(*.pasファイルがない)コンポーネントを
インストール出来ません。
下記のように説明が書いてあるのですが、8のコンパイルを
クリックすると「致命的エラー**.pasがありません」と言われます。

それと「既存のパッケージ」はどれを指定したら良いのかも分かりません。

作者に聞こうと思ったのですが、すでにHPは閉鎖していました。
よろしくお願いします。
--------------------------------------------
3.インストール方法
1"***.dcu"をライブラリパスの通ったフォルダにコピーする。
2[コンポーネント]->[コンポーネントのインストール]を選択する。
3[既存のパッケージへ追加]で、ユニットファイル名の[参照]ボタンを押
す。
4[ファイルの種類]を[Delphiコンパイル済みユニット(*.dcu)]に切り替
え、"***.dcu"を選択する。
5[長すぎた行・・]というエラーが出ますが、そのままOKを押す。
6"***.dcu"がエディタで開いているのでそれを閉じる。その際に表
示される、[保存しますか?]のダイアログには必ず[いいえ]と答えること。
7パッケージウィンドウの[コンパイル]を押す。


329 :デフォルトの名無しさん:03/05/09 18:14
dcuってバージョン毎に互換性あったかしら?

330 :328:03/05/09 18:17
>>329
げっ。バージョン違えば無理っすか?
トホホ・・・

331 :デフォルトの名無しさん:03/05/09 18:41
とりあえず何をインストールしたいのかゲロしたまへ。

332 :328:03/05/09 18:44
>>331
ttp://home1.infonia.ne.jp/~delphian/delphi/compo/other.html
ここにある
「スケジュール表示コンポーネント」
です。

よろしくお願いします。

333 :デフォルトの名無しさん:03/05/09 18:50
D5とD6用のdcuは入ってるようだけど、必要なのはD7?
作者氏のHPはバッチリ生きてるようだけど??
http://hp.vector.co.jp/authors/VA031252/

334 :デフォルトの名無しさん:03/05/09 19:07
今日もまた一つ素敵コンポーネントの存在を知ったよ、フフフ >>328

335 :デフォルトの名無しさん:03/05/09 19:19
Delphi 6 Perssonal と Professional の違いには何があるのでしょうか。
機能的に大幅な制限が加えられているのでしょうか?

336 :デフォルトの名無しさん:03/05/09 19:30
ここ読んでみて。
http://www.borland.co.jp/delphi/del6/features.html

個人的に一番大きいのはVCLソースが付いて来るか来ないかだと思う。
Personalが無料で手に入るとしても、VCLソースにはProの値段を補って余りある価値があると思うよ。
きちんと身につく勉強がしたいならPro一択。

337 :デフォルトの名無しさん:03/05/09 19:30
>>336
ありがとうございます、早速読んできます。

338 :デフォルトの名無しさん:03/05/09 20:14
>>327
> パラレル接続なのです(TT)

USB ≡ ユニバーサル シ・リ・ア・ル バス なんだけど...。

339 :デフォルトの名無しさん:03/05/09 21:49
DLLを使ってプログラムにオブジェクトを設置する方法を教えてください

340 :デフォルトの名無しさん:03/05/09 21:54
ゲームプログラムにおいて、「できるだけ高いフレームレートを維持して描画する」
のにはどのようなロジックが適しているんでしょうか。

無い頭で考えた結果・・・
1. 1/n秒のタイマー内で描画して、描画に1/n秒以上かかってきたらシラネーヨ
2. 別にスレッドを作って、描画にかかる時間をチェックしながら適当にウェイトを入れつつ回す

これくらいしか思いつきません。・゚・(ノД`)・゚・。

341 :あぼーん:あぼーん
あぼーん

342 :デフォルトの名無しさん:03/05/09 21:59
60FPS以上だと人間の目が追いつかないから意味がないと言ってみるTEST。

343 :デフォルトの名無しさん:03/05/09 22:05
>>342
ですね。
最高30fpsくらいにして、(33ms - 描画時間)のwaitを入れながらブン回すのが得策かな・・・。

TThread使うことになるのか (((( ;゚Д゚)))

344 :デフォルトの名無しさん:03/05/09 22:45
タイマーじゃなくって、
QueryPerformanceCounterとQueryPerformanceFrequencyを使いなされ。


345 :デフォルトの名無しさん:03/05/09 23:07
QueryPerformanceCounterと
QueryPerformanceFrequencyは使わない方がいいよ。
RDTSC呼ぶから偶に数百ミリ秒止まったりする。

timeGetTimeで我慢するか
RDTSCでウェイトかかるCPUとRDTSCが元々使えないCPUをきちんと排除してから
QueryPerformanceCounterを使いなさい。

346 :デフォルトの名無しさん:03/05/09 23:23
>>344 >>345
非常にクダラン質問ですが、通常1プロセスで一行ずつ順に処理していくところに
自前のタイマー(もどき)を設置して中で延々とグリグリする場合って・・・
どういう置き方をすればいいのでしょう?(´・ω・`

347 :デフォルトの名無しさん:03/05/09 23:28
>>345
mame32みたいに設定で
QueryPerformanceCounterとTimeGetTimeを切り替えられるようにするのもありだね。

348 :あぼーん:あぼーん
あぼーん

349 :デフォルトの名無しさん:03/05/09 23:33
>>340
Falcomや海外ゲームがやってるみたいに
全力で回してfpsから移動量(dx, dy, (dz))を計算しましょう。

350 :デフォルトの名無しさん:03/05/09 23:36
基本的にスレ違いなので
リフレッシュレートに関する論争
という過去スレを探してそれ読んで下さい。

351 :デフォルトの名無しさん:03/05/10 00:11
ひょっとしてOnIdleを知らないだけじゃないでしょうか

352 :デフォルトの名無しさん:03/05/10 00:13
ソフトが完成したのですが、シェア化するには
どのようにすればいいかサッパリ分かりません。
vectorでシェアの登録をしても、
ライセンス認証システムをアプリケーションに組み込まなければ
なりませんよね?
一般的なライセンスを認証するシステムはどのようにして
作るものなのでしょうか?
そのようなコンポーネントはありますか?
ソフト起動時にライセンス認証を求めるといったように
したいです。

353 :あぼーん:あぼーん
あぼーん

354 :デフォルトの名無しさん:03/05/10 01:02
>>339
Delphiプログラミングバイブルを読め


355 : :03/05/10 01:11
>>352
誰も買わないから安心してフリーにしとけ。

356 :あぼーん:あぼーん
あぼーん

357 :デフォルトの名無しさん:03/05/10 01:15
>>352
ライセンス認証って具体的に何をやりたいんだ
パスワード聞くだけじゃだめなのか?

358 :デフォルトの名無しさん:03/05/10 01:24
>>357
「解析されてタダで使われたくな〜い」とかじゃないの?

359 :あぼーん:あぼーん
あぼーん

360 :あぼーん:あぼーん
あぼーん

361 :デフォルトの名無しさん:03/05/10 05:10
>>352
そんなことも考えられない人がシェアウェアで大丈夫?
メールサポート・バージョンアップ頑張ってね。

362 :デフォルトの名無しさん:03/05/10 05:12
最近Delphiのヘルプをよく利用するようになりましたよ!結構便利ですね!

363 :デフォルトの名無しさん:03/05/10 05:52
バラバラのIDEを全部くっつけて使おうとしたら、ツールバーがたくさんある窓だけくっついてくれない。
なんでそんなこともできないの?Delphiの限界が垣間見えました。

364 :デフォルトの名無しさん:03/05/10 06:41
あっそ。よかったね☆ミ


365 :あぼーん:あぼーん
あぼーん

366 :デフォルトの名無しさん:03/05/10 07:40
ある特定のファイルが在るか無いかを調べるためにはどうすればいいのでしょうか?

367 :デフォルトの名無しさん:03/05/10 07:45
FileExists。ヘルプ探すのも勉強。

368 :あぼーん:あぼーん
あぼーん

369 :あぼーん:あぼーん
あぼーん

370 :328:03/05/10 10:29
>>333
あ、ほんとだ生きてる。
Readme.txtに乗ってたHPに行けなかったのでてっきり
死んでるのかと思ってました。
必要なのはD7です。
バージョン違えば無理なんですよね。
自作するか・・・

371 :あぼーん:あぼーん
あぼーん

372 :デフォルトの名無しさん:03/05/10 11:10
MessageBeep(MB_ICONQUESTION);
だけ音が出ないのはDelphiのバグですか?

373 :デフォルトの名無しさん:03/05/10 11:10
IndyのAntiFreezeコンポ組み込んでいるんだけど
プログラム終了してもタイムラグがあってなかなか終了しない。
解決策あれば教えて下さい。






374 :あぼーん:あぼーん
あぼーん

375 :デフォルトの名無しさん:03/05/10 11:19
ここ、他のすれと違っていい感じ♪

376 :あぼーん:あぼーん
あぼーん

377 :デフォルトの名無しさん:03/05/10 11:42
>>372
コントロールパネルの設定見た?


378 :339:03/05/10 11:43
>>354
新世界訳聖書(バイブル)しか持ってません

創世記         7
出エジプト記     97
レビ記         168
民数記         221
申命記         292
ヨシュア記       256
裁きの人の書     397
ルツ記         442
エルサレム記第一  448
エルサレム記第二  507

379 :デフォルトの名無しさん:03/05/10 12:05
>>377
OnlyWhenIdleのみ変更しました。
おかしいところ教えて頂けませんか?

Active:True
AppicationHasPriority:True
IdleTimeOut:250
Name:IdAntiFreeze1
OnlyWhenIdle:False
Tag:0

380 :あぼーん:あぼーん
あぼーん

381 :デフォルトの名無しさん:03/05/10 14:18
>>372
貴方の脳みそと、パソコンのバグです。
コントロールパネル>サウンドとオーディオデバイスで、「メッセージ (問い合わせ)」に音を割り当てなさい。

382 :デフォルトの名無しさん:03/05/10 14:44
TPanelに直接絵を描きたいのですが、
下記のようにしたらEAccessViolationが出てしまいます。
BitBlt(panel1.Brush.Bitmap.Canvas.Handle,0,0, bmp.Width,bmp.Height,bmp.Canvas.Handle,0,0,SRCCOPY);

Panelに直接Bitmapを貼り付ける事はできないのですか?

383 :デフォルトの名無しさん:03/05/10 14:45
TPanelに直接ビットマップを貼り付けたいのですが
下記のようにするとEAccessViolationが出てしまいます。
BitBlt(panel1.Brush.Bitmap.Canvas.Handle,0,0, bmp.Width,bmp.Height,bmp.Canvas.Handle,0,0,SRCCOPY);

TPanelに直接描く事は出来ないのですか?

384 :デフォルトの名無しさん:03/05/10 15:50
なんか、作ったソフトに引数入れてみてもファイル読みこまないのですが。。。
下のソースを参考にしろと言われてプログラムに入れても何も起こりません。
実行→実行時引数とやってファイル名を"C:\WINDOWS\MOUSE.TXT"

385 :384:03/05/10 15:51
続き。ソースは以下の通り
var
i:integer;
CaretPos:TPoint;
begin
CaretPos.x := 0;
CaretPos.y := 0;
try
if ParamCount > 0 then
begin
for i := 1 to ParamCount do
if ((ParamStr(i)[1] = '/') or (ParamStr(i)[1] = '-')) and (Uppercase(ParamStr(i)[2]) = 'J') then
CaretPos.y := StrToInt(Copy(ParamStr(i), 3, Length(ParamStr(i))))
else
FileName := ParamStr(i);
if FileExists(FileName) then
begin
Screen.Cursor := crHourGlass;
RichEdit1.LoadFromFile(FileName);
Screen.Cursor := crDefault;
Caption := '2ch [ ' + FileName + ' ]';
if CaretPos.Y >= 0 then
RichEdit1.CaretPos := CaretPos;
end;
end
else
CreateNewFile(Self)
except
end;
end;

386 :デフォルトの名無しさん:03/05/10 16:44
なぜ最小限のコードにしないのだろうか

387 :デフォルトの名無しさん:03/05/10 17:45
>>383
//Image1はビットマップロード済みTImageオブジェクト
procedure TForm1.Button1Click(Sender: TObject);
var
DC:HDC;
begin
DC := GetDC(Panel1.Handle);
try
BitBlt(DC,0,0,Panel1.ClientWidth,Panel1.ClientHeight,
Image1.Canvas.Handle,0,0,SRCCOPY);
finally
ReleaseDC(Panel1.Handle,DC);
end;
end;

388 :デフォルトの名無しさん:03/05/10 18:35
便乗質問です
TForm.CanvasとTBitmap.Canvasの挙動って違うものなのでしょうか。
それと、TPanelにCanvasが無いのは何故でしょうか。重箱の隅をつつくようですみません。

389 :デフォルトの名無しさん:03/05/10 18:50
>>388
そーぞーでしかないけど
Panelはあくまで何かを載せて使うものだからじゃないのかな。

390 :デフォルトの名無しさん:03/05/10 19:06
だれか>>384に答えてやれよ(w

391 :デフォルトの名無しさん:03/05/10 20:12
>>390
ていうか、なんでステップ実行ぐらいしないのかと。

392 :デフォルトの名無しさん:03/05/10 21:08
TToolBarのMenuプロパティにTMainMenuを指定してメニューのように表示させています。
んで、普通のメニューの場合「ファイル(F)」なら、ALT+F で選択されると思います。
でも、TToolBarにMenuを指定した場合、「ファイル(F)」のとき、単に”F”キーだけで選択されてしまいます。
これを回避(ALT+Fでのみ選択されたい)するにはどうすればよろしいでしょうか?


393 :383:03/05/10 21:11
>>387
おおお!!ありがとうございます。
でも、もうCanvas付きパネルを作ってしまった・・・。
無駄な労力を使ってしまった・・・。

394 :デフォルトの名無しさん:03/05/10 22:36
自分で書いた処理を別のユニットファイルにして呼び出したいと思っているのですが
別ユニットファイルからForm1のコンポーネントの操作ってできないのでしょうか?
未定義の識別子エラーが出てコンパイルできないのです。
どなたか解決策を教えて頂きたいのですが。

395 :デフォルトの名無しさん:03/05/10 22:59
>>394
uses

396 :394:03/05/11 00:26
>>395さん
usesにコンポーネントが載っているフォームのusesをコピペしてみたんですが
同じです。すいませんが、他になにか方法はありませんでしょうか?

397 : :03/05/11 00:30
>>396
その説明はよく分からんが、パス通ってる?
パス通ってれば問題無いと思うが。

「パス通ってる」って何?って聞かれないことを望む。

398 :394:03/05/11 00:32
出直してきます。
ありがとうございました。

399 :397:03/05/11 00:46
>>394
あー。何か言いたいことが分かってきた…。
「プロジェクトに追加」→「ユニットを使う(で、目的のフォーム選択)」
でいいんじゃないかな?

400 :397,399:03/05/11 00:51
あれ?なんか違うかな?すまん。適当こいたかな(藁

401 :デフォルトの名無しさん:03/05/11 01:17
メールチェッカーを作っています。
コンポーネントにIdPOP3を使用して
メールをチェックしているのですが、
try
 IdPOP31.Connect;
 〜
 〜
finally
 IdPOP31.Disconnect;
と〜の部分にイベントを書いているのですが、
サーバーに接続出来た時はうまくいっているのですが
接続出来なかった時のイベントは
どこにあるのでしょうか?
接続が出来なかった時に
接続に失敗しましたというメッセージを出すように
サンプルを書いて頂けませんか?
どうぞよろしくお願いします<(__)>

402 :デフォルトの名無しさん:03/05/11 02:04
>>401
TIdPOP3は使ったこと無いからアレだけど、例外出ませんか?
だとしたら、例外をキャッチすればいいと思います。

403 :381:03/05/11 08:59
>>382
例外をキャッチですか?
すみませんそれはどういうことですか?

404 :デフォルトの名無しさん:03/05/11 09:08
>>403
お勉強し直し。と言っていきたい。

405 :381:03/05/11 09:13
あ、
try
except
ですね!できました。
ありがとうございました<(__)>

406 :デフォルトの名無しさん:03/05/11 09:23
>>405
がんばれ。

407 :デフォルトの名無しさん:03/05/11 12:55
ちょっとちょっと!!
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0531-2
Delphi7Personalが入ってるってほんと!?
それで2600円!?
すごいねぇ

408 :デフォルトの名無しさん:03/05/11 15:29
平和だなぁ〜

409 :デフォルトの名無しさん:03/05/11 15:46
>>407
この本が欲しい。

410 :デフォルトの名無しさん:03/05/11 16:02
>>407
いいね〜
Del6perとDel7perって何が違うんだっけ

411 :デフォルトの名無しさん:03/05/11 16:05
>>410
値段。

412 :デフォルトの名無しさん:03/05/11 16:16
>>410
XP Visual Styleへの対応。

413 :デフォルトの名無しさん:03/05/11 17:27
6のソース読ませれば勝手にVisual Style対応のコンポーネントに入れ替えてくれるの?

414 :デフォルトの名無しさん:03/05/11 18:17
>>413
入れ替えるっていうか、通常のWindowsコントロールは、
変なことしてなければmanifestつけるだけでXPStyle対応になる。
Del6は変なことしてるわけだ。
それと、SpeedButtonとかWindowsのコントロールじゃない独自の
コンポーネントがXPStyleで表示されるようになる。
あとは、自分のカスタムコンポーネントをXPスタイルで表示するときに
便利なクラスが付いてくる。
ただし、XPStyle対応は中途半端な感じ。たぶんやる気ないんだろ。
Del6でもフリーのやつを使えばDel7と同じくXPStyle対応になる。
てゆうか、Del7のXPStyle対応は、そのフリーのやつを使ってる。


415 :デフォルトの名無しさん:03/05/11 19:02
フリーのやつって何ですか?xptoolみたいなやつ?

416 :デフォルトの名無しさん:03/05/11 20:23
>>415
http://www.delphi-gems.com/ThemeManager.php

417 :デフォルトの名無しさん:03/05/12 00:32
>>407
誤植じゃねーのか??

418 :デフォルトの名無しさん:03/05/12 02:29
はっきり見えるわけじゃないが6に見えますね
右上に記載されているCD-ROMの文字の下の部分
http://images-jp.amazon.com/images/P/4798005312.09.LZZZZZZZ.jpg

419 :デフォルトの名無しさん:03/05/12 11:04
OnCloseでMessageDlg('終了しても良いですか?', mtInformation, [mbOK, mbCancel], 0);を表示させて
キャンセルボタンがクリックされたときは終了を中止したいんですけど、どうすればいいんでしょうか

420 :デフォルトの名無しさん:03/05/12 11:08
help-OnClose,例

421 :デフォルトの名無しさん:03/05/12 11:31
You is GOD

422 :デフォルトの名無しさん:03/05/12 14:06
2ch的には大賛辞だ・・・・

423 :デフォルトの名無しさん:03/05/12 14:28
>>416
これサンプル見ても使い方がわからないのですが
どうやって使うのでしょう?

最低限のサンプルソースを書いてもらえませんでしょうか?

424 :デフォルトの名無しさん:03/05/12 14:36
>>407
それちょっと前に書店で見たけど
入ってるのはD6perだよ

425 :デフォルトの名無しさん:03/05/12 18:15
6と7、しかも両方Personaだし、違いなんて無いだろ。

426 :デフォルトの名無しさん:03/05/12 18:38
ペルソナキターーーーー

427 :デフォルトの名無しさん:03/05/12 20:18
                   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
                  | ペルソナにレッツゴー ニャ!!
                   \_  _____
                      ∨
                             『 ゴォォォォォ…
              ¶ ∧ ∧      / ̄ ̄ ̄ヽ
        ∧ ∧   ‖(* ゚Д゚)⊃  / ̄∈≡∋ ̄ヽ
       (* ゚ー゚)  / ̄U ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
 ( ̄ヽ/ ̄ ̄ ̄ ̄ ̄ ̄           ┏┓┏┓       ¢  \
 ∈≡∋              〓   ┃┃┏┛   〓    ¢  )
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

428 :デフォルトの名無しさん:03/05/12 20:26
>>411
                  。
                /┃  Λ_Λ
               | ┃ ( ・∀・)
You ○ GOD    ←be動詞⊂| ⊂ )
               | ┃ | | |
                \┃ (_(_ )
                  ゜

429 :デフォルトの名無しさん:03/05/12 21:07
>>419
OnCloseQueryでやれば?


430 :デフォルトの名無しさん:03/05/12 21:07
IndyのFTPコンポーネントに関する解説サイト、ありませんか?
HTTPコンポーネントはmonazillaで少し解説されていますが、FTPコンポというと、どうも見当たらなくて。
どなたか教えて下さい。

431 :デフォルトの名無しさん:03/05/12 22:25
procedure TForm1.Button1Click(Sender: TObject);

begin
hogehoge
TForm1.Button1Click(Sender);
end;

のように手続きを再帰的定義したいのですが、どうしたらよいのでしょうか?

Sender: TObjectって何なんなのか、さっぱりわかってないです。
パスカルについては知識があるんですが、
Delphi初心者で、オブジェクト指向がなんなのかさっぱりわかりません。

432 :デフォルトの名無しさん:03/05/12 22:36
フサギコとモナーのスレの方から引っ越してきました。

IRCクライアントを作ろうと考えていて、IndyにIRCコンポがあるのまでは
わかったのですが、どうやって使ったらいいのか見当も付きません。

日本語HELPの場所も教えてもらい、落としたのですが、
説明らしい説明がのっていません。

書籍の紹介もふくめて教えてもらえないでしょうか?

433 :400:03/05/12 22:44
>>399
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage('hogehoge');
 Button1Click(Sender);
end;

これで、無限ループになるよ。

Senderは複数のコンポーネントで1つのイベントを共用するとき、
どのコンポーネントから呼び出されたのか調べるのに使ったりする。

たとえば、この場合、TButton(Sender).Nameで名前が取り出せる。

434 :デフォルトの名無しさん:03/05/12 22:49
>>431
ButtonClick1(Sender)とすれば良し。(クラス名はいらない)
hogehogeのなかでSenderを参照しないならButtonClick1(nil)でもいい。
Senderの説明はこのスレの最初の方にあったような。




435 :デフォルトの名無しさん:03/05/12 22:50
かぶった。スマソ。

436 :デフォルトの名無しさん:03/05/12 22:51
>>433
>>434
ふむふむ、ありがとう。

437 : :03/05/13 00:19
(´-`)。o ○ (そこかしこでindyの質問を見るなぁ…。
なんでこんなに質問者が多い状態なんだろう?
つーか、オレなんか入れないけど(藁)

438 :400:03/05/13 00:49
>>405
ぐぐっても日本語解説ページが出てこない(涙)
ML過去ログ検索にも無かったし。

漏れとしてはIRCクライアントが自作できれば、
Indyじゃなくてもいいんだけど…。

ほかに方法があるなら教えてください。

439 :400:03/05/13 00:55
>>406
自己スレ。
CHOCOAにOLEがあった!
でもこれ、Delphiで使えるんだろか?w
(漏れのスキルで)

440 :ななしへたぐらま ◆XcB18Bks.Y :03/05/13 03:42
>>384-385
恐らくあなたが実行しているコンピュータには"C:\WINDOWS\MOUSE.TXT"というファイルが存在しません.
普通は存在しないファイルを読み込もうとすると例外が発生するのですぐにわかるのですが
このソースコードでは指定されてファイルが存在しない場合には何もしないようになっているので悩まされる羽目(はめ)になったのです.

> try

> if FileExists(FileName) then

> Screen.Cursor := crHourGlass;

> Screen.Cursor := crDefault;

> except
> end;

これらの行を削除して実行してみてください.
このソースコードは他にも色々と問題を抱えているのですが長くなるので省略します.
ユーザーがパラメータの指定を間違ってしまった場合にも
何が間違っているかを親切に教えてあげるようなプログラムを目指してください.



441 :デフォルトの名無しさん:03/05/13 04:48
 こんにちは。この使い方は、間違っているのでしょうか?

var
  s : String;  P : PChar;
begin
  s := 'Yatterman Coffe Lighter'; //23文字
  P := PChar(s);
  Inc(P, 10);
  s := P;
  Showmessage(s); // 'Coffee Ligther'
end;

  結果、 sは、期待した通りになったのですが... 不安です。

442 :デフォルトの名無しさん:03/05/13 06:19
>>441
間違ってはないけれどちょっと危なっかしいなとも。

443 :デフォルトの名無しさん:03/05/13 06:21
>>441
s := Copy(s,10,length(s));とかじゃダメ?

444 :441:03/05/13 08:45
どもどもありがとうございます。
みなさんが普通に使ってないところを見ると、やはり問題があるのかもしれませんです。
普通にCopyを使うことにします。ありがとうございますた。

445 :デフォルトの名無しさん:03/05/13 11:02
>Inc(P, 10);
Pの長さを越えてIncしないことを保証できれば問題ないと思う。

>Copy(s,10,length(s));
こっちはsの長さを越えた場合に末尾までしかコピーしないことを保証してる
(多分内部では上と同じことをしてると思う。長さの確認付きで。)のでこっちが
安全でいいと思うよ。簡便だし。

446 :デフォルトの名無しさん:03/05/13 11:06
配列の使い方がよく判りません。

クライアント⇔サーバの通信プログラムで、

顧客コード(固定長8文字)
顧客名(固定長32文字)
電話番号(固定長16文字)
集計コード(固定長24文字)

というデータ(全部ASCII)をやり取りしたいのですが、Cでいう構造体の
使い方が判らず80文字のChar配列をバッファとしてとって
Move (Rcvbuf[8], CustomerName[0], 32)
とか、我ながらバカみたいな事やってます。

Delphiではどう書くのがいいのでしょう?


447 :デフォルトの名無しさん:03/05/13 11:12
TCustomerBuff = record
 code:array [0..8-1] of Char;
 name:array [0..32-1] of Char;
 tel:array [0..16-1] of Char;
 sum:array [0..24-1] of Char;
end;

だけど、80文字のバッファを取っておいて

Type CustomerCode = 0..8-1;
Type CustomerName = 8.8+328-1;
って感じで範囲型を定義して作る事もあるし、サイズを定義ファイルにしておいて 実行時に変更出来るようにする事も多いし

448 :bloom:03/05/13 11:13
http://homepage.mac.com/ayaya16/

449 :デフォルトの名無しさん:03/05/13 11:23
Position := poScreenCenterだと、指定しても起動時に自分で好きな位置に配置できない
Delphiの限界が垣間見えました

450 :デフォルトの名無しさん:03/05/13 11:30
449がDelphiを使いこなすことができません

Delphiの限界が垣間見えました

451 :デフォルトの名無しさん:03/05/13 11:31
>>449
プ

452 :デフォルトの名無しさん:03/05/13 11:34
むかし、ゲーム機でおやじに将棋をやらせようとしたんだよ。
そしたら、桂馬がまともに動かないというんだ。
コントローラを横押して縦に2つって言ったら、
「それは桂馬の動きじゃない」んだってさ。

453 :デフォルトの名無しさん:03/05/13 11:47
>>450
超初心者向けのスレに来ておいて詰まらないこというね君

454 :デフォルトの名無しさん:03/05/13 11:48
>>416
たのみますー
おねがいしますー
ThemeManagerの使い方がわかりませぬー

先生方どうぞよろしくお願いします
フォームに貼り付けるだけじゃ駄目でした・・・

455 :デフォルトの名無しさん:03/05/13 11:52
で、どうする?マジレスする?

>>449
Position := poScreenCenter とした上で、どのプロパティの値が指定した
値どおりに動かなかったのですか?

VB では poScreenCenter 相当の動きが異なるのかなぁ。

456 :446:03/05/13 11:56
>447 さん
ありがとうございます。
しかし、recordを作ると TIdTCPClientでwriteの引数に使おうとすると
Stringと互換性がないといってコンパイルできないのです・・・
recordをstringにキャストできないのでしょうか?


457 :デフォルトの名無しさん:03/05/13 11:59
>>456
WriteBuffer を使えないの?

458 :デフォルトの名無しさん:03/05/13 12:00
writebuffer ってメソッドが無いかな?

459 :デフォルトの名無しさん:03/05/13 12:05
>457
うぉぉぉぉ出来た!
多謝。
C⇔Delphiの解説って、
Cだといいかげんに出来る=Delphiだとはまりまくる型変換に
詳しく触れてないからすげー困っていたんですよ。
系統立てて勉強しないでいきなり作り始めた私が一番悪いんですけど・・・


460 :ねこま:03/05/13 12:06
>recordをstringにキャストできないのでしょうか?
TStringStream を使うか,
SetLength した string へ Move する事ができます.


461 :デフォルトの名無しさん:03/05/13 12:27
Delphiの限界が垣間見えるような超初心者はいないと思われ

462 :466:03/05/13 12:29
>458さん、>460さんもありがとうございます。

ところでarray of char に値を代入する時の正しい作法ってどのような
やりかたなのでしょうか?
Stringをぶち込む事もできるし(なぜか24byteまでのようですが)
Moveでコピーする事も出来るし・・・



463 :デフォルトの名無しさん:03/05/13 13:00
あれれ?
OpenJaneでみると、レス番号がずれてる。

464 :デフォルトの名無しさん:03/05/13 13:02
DELPHI5.0で作成したイベントですが、WindowsMeでは正しくヒントが表示されるのに
WindowsXPではヒントが表示されません。原因は何でしょうか?

procedure TForm1.StringGrid3MouseMove(Sender: TObject; Shift: TShiftState;X, Y: Integer);
var
MousePos:TPoint;
m,d:Integer;
ACol,ARow:LongInt;
begin
Application.HintPause:=0;
StringGrid3.MouseToCell(X,Y,ACol,ARow);
if (ACol in [1..33]) and (ARow in [3..34]) then
begin
m:=cal[ACol+4,0];
d:=cal[ACol+4,1];
StringGrid3.Hint:=IntToStr(m)+'月'+IntToStr(d)+'日'
+'('+StringGrid3.Cells[ACol,2]+')'+' '+StringGrid3.Cells[0,ARow];
Application.ActivateHint(ClientToScreen(MousePos));
end
else StringGrid3.Hint:='';
Application.HintPause:=500;
end;

465 :わか:03/05/13 13:03
【2003年】とっておきのニュースであります。
インターネットで営業をしませんか?
営業が得意な方は、年商1000万円稼げます。
私と仲良くビジネスをしませんか?
http://www.c-gmf.com/index1.htm
http://www.c-gmf.com/index2.htm
http://www.c-gmf.com/index3.htm
http://www.c-gmf.com/mail.htm
クーポン屋でございます。貴方のHPにバナーを貼るだけで
稼げます。本当にお金が欲しい方は、相談にのります。キャッシュバック制度!

466 :デフォルトの名無しさん:03/05/13 13:56
レス番ずれたら、一度スレリストでこのスレを右クリ・ログ削除すれば直る

467 :デフォルトの名無しさん:03/05/13 20:31
DLLの作り方や説明などが詳しく書いてあるページはありますか?

468 :デフォルトの名無しさん:03/05/13 21:02
>>467
Borland公式ページ・Delphi で DLL を作成する
http://www.borland.co.jp/qanda/delphi/d0000004.html

469 :デフォルトの名無しさん:03/05/13 22:26
>>468
サンクソ

470 :デフォルトの名無しさん:03/05/14 00:00
作成したプログラムのウィンドウの
サイズを変更(リサイズ)出来ないようにするにはどうすればいいのでしょうか?

471 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/05/14 00:07
GetMinMaxInfoで検索

472 :デフォルトの名無しさん:03/05/14 00:10
BorderStyle変えるだけでええやん

473 :天災プログラマ:03/05/14 00:20
半角←→全角の相互変換をする関数はなんですか?

474 :好きなのもってけ:03/05/14 00:32
>>473
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%E5%8D%8A%E8%A7%92%E3%80%80%E5%85%A8%E8%A7%92%E3%80%80%EF%BD%84%EF%BD%85%EF%BD%8C%EF%BD%90%EF%BD%88%EF%BD%89&lr=

475 :Delフサギコ ◆A6VzDeLphI :03/05/14 00:32
           _________
   ∧,,∧   / 半角⇔全角
  ミ,,゚Д゚彡 <  カタカナ⇔ひらがな
   ミ つ旦)~~ \ 変換する関数です
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪  うpしますた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1052839862


476 :デフォルトの名無しさん:03/05/14 00:32
LCMapStringW

477 :470:03/05/14 00:38
出来ました。ありがとう。

478 :デフォルトの名無しさん:03/05/14 02:32
音声認識で操作できるようにするには?

479 :デフォルトの名無しさん:03/05/14 06:20
>>478
ViaVoiceでもかってください。

480 :デフォルトの名無しさん:03/05/14 12:38
(゚Д゚) 誰もカキコしてないぞゴルァ!!

481 :スレたてられないので誰かかわりに立てて:03/05/14 12:45
Delphiって死滅しちゃうの????よ Part2

これからの某ランドの主力言語はC# Builder
発売日もDelphiの方があと。
ユーザーからも見捨てられて、もう虫の息。
今まで夢をみさせてくれてありがとう。


過去スレ
http://pc2.2ch.net/test/read.cgi/tech/1035539926/

482 :デフォルトの名無しさん:03/05/14 13:20
自分に自信が無い奴ほどよく吠える

483 :デフォルトの名無しさん:03/05/14 13:35
482に同意

484 :デフォルトの名無しさん:03/05/14 14:42
他のアプリを操作するツールバーみたいなソフト作りたいんですが、
直前にアクティブだったウィンドウを取得する方法教えてください。


485 :デフォルトの名無しさん:03/05/14 14:46
後出しの方が本命に決まってるだろアホカ

486 :デフォルトの名無しさん:03/05/14 14:49
>>485
C++Builderの方が本命。
.NETの方が本命ということならなっとく。

487 :デフォルトの名無しさん:03/05/14 15:27
C++BuilderはDelphiの姉妹品だから。

488 :デフォルトの名無しさん:03/05/14 15:36
>>484
w32スレに行ってみるといいよ。
http://pc2.2ch.net/test/read.cgi/tech/1052651750/

489 :デフォルトの名無しさん:03/05/14 16:21
>>488
わかりました。いってきます。

490 :天災プログラマ:03/05/14 16:50
>475

できました、できました。

生まれて40年、悩み続けたのが嘘みたいです。

ありがとう

491 :デフォルトの名無しさん:03/05/14 17:19
キモ。

492 :ななしへたぐらま ◆XcB18Bks.Y :03/05/14 19:13
>>462
StrPLCopy関数.
逆の場合は単に代入するだけでOK.



493 :デフォルトの名無しさん:03/05/14 19:58
ポインタAにあるデータをポインタBにコピーするには何を使えばいいの?


494 :デフォルトの名無しさん:03/05/14 20:59
>>493
型が完全に合っていて class じゃないなら

A^:=B^;


495 :デフォルトの名無しさん:03/05/15 01:25
最近プログラムを始めた初心者です。
簡単な計算プログラムを作ってるのですが
小数点を使う場合で悩んでます。

procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
j:Integer;

begin
i:=SpinEdit1.Value;
j:=10;

SpinEdit2.Value:=i+j;

end;

整数型だとこんな感じかと思うのですが
0.1や1.5等小数点の場合どのようにすればよいのでしょうか?
よろしくお願いします。

496 :デフォルトの名無しさん:03/05/15 01:33
procedure TForm1.Button1Click(Sender: TObject);
var
i:Float;
j:Float;

begin
i:=SpinEdit1.Value;
j:=1.5;

SpinEdit2.Value:=i+j;

end;

497 :デフォルトの名無しさん:03/05/15 01:44
速攻でありがとうございます。
Floatで試したのですが未定義の識別子:'Float'の
エラーになってしまいます・・・・・

498 :デフォルトの名無しさん:03/05/15 02:34
delphiのパーソナル版の無料配布されてた物を使っているのですが、
これを有料で購入した場合、マニュアルがついてくるそうですね。
これには何が書かれているのですか?理解を深めるためには購入したほうがいいのですか?


499 :デフォルトの名無しさん:03/05/15 02:42
>>497
FloatじゃなくてExtendedかDouble

>>498
\Borland Delphi Personal Installer\documentation\
のPDFがそれ。

500 :デフォルトの名無しさん:03/05/15 02:59
>>495
SpinEditのValueって整数型でなかったかな
つーかSpinEditって最近使った記憶がない

ふつーWin32タブにあるUpDownを使うことが多いと思うけど
これも整数型用なので
漏れならOnClickのイベントハンドラで増減して
その値をFormatしてEditに書き込むとかするだろうね

501 :498:03/05/15 03:01
すばやい対応、ありがとうございました。
購入しませんw

502 :デフォルトの名無しさん:03/05/15 04:26
スピンエディットは整数だけだよ

503 :デフォルトの名無しさん:03/05/15 14:09
YPT HandleXのようにクラス名の取得とかをするフリーソフトありませんか?
このソフトはXPでは起動するたびにエラーが出るんです

504 :RS-232:03/05/15 15:53
RS-232の制御はDelphiでおこなえるのですか?

505 :デフォルトの名無しさん:03/05/15 15:56
Delphiでも VBでもC#でも BCBでも VC++でも可能です。

506 :RS-232:03/05/15 15:59
Delphiで制御する方法教えてもらえますか?

507 :デフォルトの名無しさん:03/05/15 16:03
まず自分がどこまで知っているのか
どこについて知りたいのかを書いたほうがいいよ

508 :デフォルトの名無しさん:03/05/15 16:08
>>504
Delphiは何を使っていますか? pro なら CDROM に 日本語のAPIヘルプがあります。
[通信の概要]を見ましょう。

持ってなければ、 以下を MSDNサイトで検索するといいでしょう

BuildCommDCB
EscapeCommFunction
SetCommState
SetCommTimeouts
SetReadTimeOut

CreateFile
WriteFile
ReadFile
CloseHandle

例:http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_buildcommdcb.htm


509 :RS-232:03/05/15 16:12
計測機器についているRS-232の端子
からでるシグナルをキャッチしたいのですが
外部装置の制御の経験がなく全く何が必要か
わからないです。
まず概要教えてもらえますか

510 :デフォルトの名無しさん:03/05/15 16:45
ロジアナでつかめ

511 :デフォルトの名無しさん:03/05/15 17:50
今からDelphi6のパーソナル版でプログラミングにチャレンジします。
目標は、「IEやエクスプローラのツールバーに表示させて使うMP3プレイヤー」です。

しかしながら何から手を付けていいやら全く分からず、途方に暮れています。
どなたか哀れな私めに手ほどきをしてやって下さい・・・。

512 :495:03/05/15 17:53
なんとかここまでになりましたが
それでもエラーが出ます・・・・

procedure TForm1.Button1Click(Sender: TObject);
var
i, j, Ans: Double;

begin
i := StrToFloat(Edit1.Text);
j :=0.1;

StrToFloat(Edit2.Text):=i+j;

end;

513 :デフォルトの名無しさん:03/05/15 17:57
× StrToFloat(Edit2.Text):=i+j;
○ Ans:=i+j;Edit2.Tex := Format('%10.3f', [Ans ]);



514 :495:03/05/15 18:07
>>513
早速ありがとうございます。
無事できました。
次はボタン1とキーボードのEnterキーの
リンクに挑戦してみます。
ありがとうございました。

515 :デフォルトの名無しさん:03/05/15 18:09
>>511
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
の初心者向けを片っ端から読む。

516 :デフォルトの名無しさん:03/05/15 18:37
>>515
ありがとうございます。
勉強してきます!

517 :デフォルトの名無しさん:03/05/15 21:51
>>509
Delphi4 用だから Delphi5 で動くかどうかはわからんけど、ソースがついてるから頑張れば何とかなるかと。
あと簡単なテストプログラムがついてるから、サンプル代わりになるよ。

ttp://www.vector.jp/soft/dl/win95/prog/se077144.html

518 :デフォルトの名無しさん:03/05/15 22:34
Windowsを破壊するコンポーネントある場所おしえてください

519 :デフォルトの名無しさん:03/05/15 23:12
>>518
君はそれが面白いと思ったわけだ

520 :デフォルトの名無しさん:03/05/15 23:13
>>519
やめとけ、睡眠した方が有意義だ。

521 :デフォルトの名無しさん:03/05/16 01:23
Delphi6からDelphi7へのアップグレード料金っていくらでしたか?
borlandのサイト探したけど、情報が見つかりませんでした。

522 :デフォルトの名無しさん:03/05/16 01:33
>>521
Professionalなら、\25,200


523 :デフォルトの名無しさん:03/05/16 05:56
Windowsを破壊といっても抽象的すぎてわかりません。

524 :デフォルトの名無しさん:03/05/16 05:56
>>521
封書が届くはず。

525 :デフォルトの名無しさん:03/05/16 06:12
物理的に爆発するやつです

526 :デフォルトの名無しさん:03/05/16 07:19
>>522
サンクスです。ちなみに赤版からでもアップグレードできますか?


527 :デフォルトの名無しさん:03/05/16 07:38
最近、デルファイをはじめました。
効果音ファイルなどを再生するときに、
ボタンを押した瞬間から読み込んでいるらしく、
実際に音がなるまでに時間がかかってズレてしまうのですが、
これは仕方ないんですか?

528 :デフォルトの名無しさん:03/05/16 07:41
>>527
あなたの作り方が悪いのです。

529 :毛の生えたフサギコ:03/05/16 07:52
>>527
コードをアップすればアドバイスがいただけるかものはし。

530 :527:03/05/16 07:53
>>528あっそ、くだらない回答してる暇あったら、さっさとやり方教えろやボケ氏ね!

531 :デフォルトの名無しさん:03/05/16 08:01
放置。

532 :デフォルトの名無しさん:03/05/16 08:01
激しく豹変

533 :デフォルトの名無しさん:03/05/16 08:01
>>527
2度目の再生は早いの? 2度目が速いのなら、先にファイルをファイルとして前半少しだけ読み込んでおいたら?
そうしたらWindowsにキャッシュされるから早くなるよ。

534 :デフォルトの名無しさん:03/05/16 08:02
>>531-532
もしかして530本人? 最近騙りで煽ってるの多いけど面白いのかな?


535 :デフォルトの名無しさん:03/05/16 08:21
>>526
たぶんできまつ。うちにも封筒来た。捨てたけどw。

536 :毛の生えたフサギコ:03/05/16 08:23
みなさんへ

Delの情報交換スレで他のものはほとんどプログラミングテクニックと
関係ない話しで進行しているので、ここだけでも、初心者向けに
まともなレスの応酬で機能させたいので、どうかご協力をおねがいします。

537 :デフォルトの名無しさん:03/05/16 08:23
どんなことにも面白みを感じない人がいるらしいけど、つまらなくないのかな?

538 :デフォルトの名無しさん:03/05/16 10:25
viewItem にテキストを読み込ませ、
それをボタンなどを押す事で、オートスクロールさせたいのですが、
どのようにしたらよいですか?


539 :538:03/05/16 10:29
あ、書き忘れすいません。
テキストを読み込ませるまでは出来てます。
オートスクロールの部分だけ良く判らないのです。


540 :デフォルトの名無しさん:03/05/16 10:57
そのviewItem は?

541 :デフォルトの名無しさん:03/05/16 18:31
ある文字列をTStringList内の文字列の一列目に挿入する、
という動作をさせたいのですが。

000
111

というTStringListの一列目に333という行を挿入したいのです

333
000
111

こういうふうに。どのようにすればいいでしょうか?

542 :デフォルトの名無しさん:03/05/16 18:40
TStringList.Insert を使えばいいと思うが?

ただし、これを使ったプログラムはパフォーマンスが悪い事がおおいよ。


543 :デフォルトの名無しさん:03/05/16 19:34
自作クラスのデストラクタの宣言で
Destructor Destroy;
とするのと
Destructor Free;
とするのでは、何か違いはありますか?

Freeという名前のデストラクタを作っていなくてもFreeが使えるのですが、
もしかして、クラスで用意したデストラクタを使いたくない時は宣言と違う
開放メソッドを呼び出すなどという使い方をしますか?


544 :デフォルトの名無しさん:03/05/16 19:47
>>543
Freeはデストラクタではありません。
FreeがDestroyを呼び出します。

ですからデストラクタとして再宣言してはいけません。
基本的にFreeを継承して変更も、しない方がいいです。


545 :543:03/05/16 19:59
>>544
レスクス。
なるほど。今までクラス作る時はデストラクタのメソッド名にFreeとかしてましたが、
それはダメなんですね。

では自作クラスの場合のデストラクタの名前は
Destroyにするのが一番良いのでしょうか?

それと、継承したクラスを作った場合、
コンストラクタでCreateを作り、それが上位クラスのCreateと
引数が違う場合は隠してしまいますよね?

その状態でデストラクタのみ継承するのは止めた方が良いのでしょうか?

546 :デフォルトの名無しさん:03/05/16 20:05
freeをデストラクタにしてはダメです。
xx.free; は もし xxがnilならデストラクタを呼ばないようになっています。
if xx<>nil then xx.Destroy; と書く代わりに使う訳です。
そういう作法になっているので、既に解放したクラスでも 他人はfreeを呼び出します。
といっても、実際にはライブラリがが操作する場合は、 xx は上位クラスにダウンキャストして
操作されるでしょうから自分が使う分には実際に問題にはならないでしょうが・・・

基本的にデストラクタは
destructor Destroy; override;
とオーバライドして使わなければいけません。

デストラクタのみ継承するのは全く問題ありません。

547 :デフォルトの名無しさん:03/05/16 20:08
>Freeという名前のデストラクタを作っていなくてもFreeが使えるのですが、
 そりゃ最上位のTObjectで宣言されているメソッドですから

>クラスで用意したデストラクタを使いたくない時は
>宣言と違う開放メソッドを呼び出すなどという使い方をしますか
 そういう状況が、具体的にあるの?
 Destroy以外にクラスを解放する方法ない。
 (あることすればできるが、面倒なだけで意味ない)

548 :543:03/05/16 20:19
重ね重ねレスありがとうございます。
>>546
>デストラクタのみ継承するのは全く問題ありません。
そうなんですね。これで安心して上位のCreateを隠せます。
(隠しちゃっても良いのだろうか・・(^^;)

>>547
>そういう状況が、具体的にあるの?
ごめんなさい。Freeが単なるメソッドじゃなくデストラクタだと思っていたので
何か分ける意味があるのかなぁと、無意味な事を想像してしまいました。

549 : :03/05/16 21:03
http://www.borland.co.jp/delphi/personal/にいってDelphi6の
インストールのためのファイルを落としてきました。

で、それをインストールしようとしてファイルを実行したのですが、
実行するとすぐ、「不正な処理を行ったので・・・強制終了しました」の
エラーが2回でます。
そのあと、普通にインストールのためのダイアログがでるのでインストールは続行でき
るのですが、その変なエラーが気になってその先には進んでいません。
試しにSAFEモードで立ち上げて、同様にインストールを試みましたが同じエラーがでます。
ファイルも何度も落としなおして試しましたが変わりません。
なぜこんなエラーがでるのでしょうか?
このまま気にせずインストールしていいのでしょうか?
教えてやってください。

OSはWIN98です。

550 :コピペ推奨:03/05/16 21:05
VB.NET 2003の価格が発表されました。
http://www.microsoft.com/japan/presspass/releases03/051503_VS03_t1.asp

なんと7,800円と、Delphi Personalよりも安いではありませんか!
しかも商用開発できないなどとのクソマヌケな制限もありません!
7,800円がすぐに払えない人には無料のSDKもあります!

どうしてDelphiなんか続ける理由があるのでしょうか?
今すぐVB.NETで最先端の開発環境を体験しましょう!
LonghornのGUIは.NETでこそ最良のエクスペリエンスを受けることができます!

551 :デフォルトの名無しさん:03/05/16 21:08
>>549
 それだけじゃ判らんよ。とりあえず気にせずにインストールしてみたら?
 Delphiは特にWindowsを弄ったりはしない筈だから、他のアプリが変になったりの可能性は少ないし。

552 :549:03/05/16 21:11
>>551
即レスありがとうございます。
「それだけじゃわからん」・・・とは、では他にどういう情報が必要でしょうか?

とりあえず、インストールするのはなにか少し怖いのですが・・。

553 :デフォルトの名無しさん:03/05/16 21:18
アカデミックで商用開発は無理だろ。

554 :デフォルトの名無しさん:03/05/16 21:22
>>552

こんなダイアログ? 
http://www.borland.co.jp/delphi/devsupport/d6issues.html

とりあえず自分のHDDScanDiskをかけてみて、それで問題なくて、
,InstalShealed Wizard がファイルの保存場所 ってのから始まっているならインストールしてみたら?



555 :デフォルトの名無しさん:03/05/16 21:24
それから、インストールが終ったら
http://www.borland.co.jp/delphi/devsupport/
ここからアップデートファイル落としてアップデートした方がいいよ。

556 :549:03/05/16 21:27
>>554

そのHPにあるようなのをでてません。
ただ・・・ファイルの保存場所ってのはでるので、ではこわいですが、
試しにインストールしてみます。

557 :デフォルトの名無しさん:03/05/16 21:29
Delphi6PersonalならIDE付きでタダだよ。

558 :デフォルトの名無しさん:03/05/16 21:32
>>556
当然、 ウイルスチェックはしてるよね? ScanDiskのかけてるよね?

細かい手順はここにあるから比べて確認してみたら?
http://www.ss.u-tokai.ac.jp/~oomori/news/del6install.html


559 :549:03/05/16 21:36
>>558
ありがとです。
ウイルスチェックと、スキャンディスクはしました。
他に何か試してみることはありますか?

そのHP見てみます。

560 :デフォルトの名無しさん:03/05/16 21:48
Del厨必死だな。(藁
商用開発もできないインチキIDEを広めるなよ。(ワラ
どうせ将来は.NET化するんだから今のうちに.NETやっておいた方がいいだろ。(ゲラ

561 :毛の生えたフサギコ(実はブリーフ):03/05/16 21:48
言語ガイドObjectPascalの本を読んでいて、たった今、気づいたのだけど、

2−6から2−7にかけてのサンプルプログラム、例外が発生します。
どこがいけないのでしょう?

562 :デフォルトの名無しさん:03/05/16 21:49
>>560
何か仕事で嫌なことでもあったのかい?

563 :デフォルトの名無しさん:03/05/16 21:54
放置しましょう。

564 :デフォルトの名無しさん:03/05/16 22:01
リンク集


ゼロから始めるDelphi講座
http://www.text2music.com/text/delphi/zero/index.htm

Delphi-ML過去ログ
http://www2.big.or.jp/~osamu/Delphi/

Delphi広場
http://www.sakaki.keiaikai.or.jp/

565 :デフォルトの名無しさん:03/05/16 22:10
Stringの一文字目を削除するには
どう書けばいいですか?
例えば
String := 'abcdefghijk';
だったとすると、
『a』を削除して'bcdefghijk'にしたいです。
どうかお教え下さい<(__)>

566 :デフォルトの名無しさん:03/05/16 22:13
Delete(String, 1, 1);

567 :デフォルトの名無しさん:03/05/16 22:20
ありがとうございました<(__)>
素早いレスを感謝です<(__)>

568 :ななしへたぐらま ◆XcB18Bks.Y :03/05/16 22:22
>>527
ファイルからの読み込みによる再生の遅れは
あらかじめメモリの読み込むことで解決できると思いますが

sndPlaySound APIで再生する場合,
どうもファイルの読み込み時間とは別に
実行時の1回目の呼び出しのみ遅れが発生する場合があるみたいです.
(職場でメインマシン(Win XP)で発生,別マシン(Win 95/PC-9821系))
うちの環境では↓こんな風に実行して回避しましたが
sndPlaySound(nil, SND_ASYNC or SND_MEMORY);
他はどうなのかなぁ.

>>542
大量・高速な処理が求められるのでなければ
特に気にしなくてもよいと思いますが,どうでしょう?
>>550
19800円の版は商用開発できるのかな?
だったら昔のDelphiみたいでいいなぁ.



569 :ななしへたぐらま ◆XcB18Bks.Y :03/05/16 22:34
メモリに読み込む例

// メモリストリームのリストクラス
TMemoryStreamList = class(TObjectList)
private
function GetItems(index: integer): TMemoryStream;
public
function Add(NewStream: TMemoryStream): integer;
property Items[index: integer]: TMemoryStream read GetItems; default;
end;

// フォーム:FileListBox をはりつけています
TForm4 = class(TForm)
FileListBox1: TFileListBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FileListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
FWaveStreamList: TMemoryStreamList;
procedure LoadWaves;
procedure PlayWave(Number: integer);
public
end;

(つづく)

570 :ななしへたぐらま ◆XcB18Bks.Y :03/05/16 22:35
(続き.以下実装)
// Windowsのフォルダを\付きで返す
function WindowsPath: string;
var
p: array [0..MAX_PATH] of char;
begin
Windows.GetWindowsDirectory(p, MAX_PATH);
Result := IncludeTrailingBackslash(p);
end;

{ TMemoryStreamList }

function TMemoryStreamList.Add(NewStream: TMemoryStream): integer;
begin
Result := inherited Add(NewStream);
end;

function TMemoryStreamList.GetItems(index: integer): TMemoryStream;
begin
Result := inherited Items[index] as TMemoryStream;
end;

(つづく)

571 :ななしへたぐらま ◆XcB18Bks.Y :03/05/16 22:38
(つづき)
procedure TForm4.FormCreate(Sender: TObject);
begin
FileListBox1.Directory := WindowsPath + 'media'; // WAVEファイルのある場所
if FileListBox1.Items.Count >= 1 then
FileListBox1.ItemIndex := 0;
FWaveStreamList := TMemoryStreamList.Create;
LoadWaves;
end;

procedure TForm4.FormDestroy(Sender: TObject);
begin
FWaveStreamList.Free;
end;

// WAVEファイルを片っ端から読み込む
procedure TForm4.LoadWaves;
var
i: integer;
iNew: integer;
begin
FWaveStreamList.Clear;
for i := 0 to FileListBox1.Items.Count - 1 do
begin
iNew := FWaveStreamList.Add(TMemoryStream.Create);
FWaveStreamList[iNew].LoadFromFile(FileListBox1.Items[i]); // メモリストリームにWAVEファイルのイメージを読み込む
end;
sndPlaySound(nil, SND_ASYNC or SND_MEMORY); // 無音再生.これを実行しないと1回目の再生が遅れることがあるようです
end;
(まだつづく,すいません)

572 :ななしへたぐらま ◆XcB18Bks.Y :03/05/16 22:39
(つづき)
procedure TForm4.PlayWave(Number: integer);
begin
sndPlaySound(nil, SND_MEMORY); // 再生してたら止める
sndPlaySound(FWaveStreamList[Number].Memory, SND_ASYNC or SND_MEMORY); // 再生(再生が終わるのを待たない)
end;
(おわり)


573 :デフォルトの名無しさん:03/05/16 23:01
ながい

574 :デフォルトの名無しさん:03/05/16 23:04
>>573
安い燃料だ。

575 : :03/05/17 00:39
つーか、サイズがデカイんじゃない?<サウンド
レート下げてやってみたら?

576 :デフォルトの名無しさん:03/05/17 01:31
TFormのBorderStyleをbsDialogにすると、そのフォームのMainMenu
が実行時に見えなくなるのは仕様ですか?

577 :デフォルトの名無しさん:03/05/17 10:50
Del5インストールした後、BDEを5.2にUpDateしたのですが
BDEの設定画面でバージョンを見ると5.0.1のままなのですがUpDate出来てるのでしょうか?
何処を確認すればいいのでしょうか?

578 :デフォルトの名無しさん:03/05/17 11:59
>>576
仕様です。ていうか普通ダイアログボックスにメニューは付かない?
どうしても似たような事がやりたければToolBar+PopupMenuで似たようなことが出来る。

579 : :03/05/17 12:17
Delphi完全な初心者です。
一から勉強したいのですが、お勧めのいい本はないでしょうか?
教えてください。

580 :デフォルトの名無しさん:03/05/17 12:18
>>579
HSPの方が良いよ。自分で情報を探すって言うプログラミングを学ぶための最低条件満たせない人。


581 :デフォルトの名無しさん:03/05/17 12:18
>>597
Delphi付属のマニュアル熟読。
プログラミング中にどうしてもコンポの動作がわからないときは、
VCL内をデバッガで追っかけ。

582 :デフォルトの名無しさん:03/05/17 12:32
>>580

ここで人に聞くというのもある意味自分で情報を探してるわけだがw

583 :デフォルトの名無しさん:03/05/17 12:40
>>579
Googleで検索すれば大体のことは分かる

584 :デフォルトの名無しさん:03/05/17 12:51
ありがちなDelphi入門
チュートリアルをみてテキストエディタを作る→作れない→検索→Σ(゚д゚lll)ガーン→WEBで同じような入門ページをハッケソ→(゚д゚)ウマー

585 :579:03/05/17 13:05
レスサンクスです。
ググって自分で探してみますです。

586 :579:03/05/17 13:12
今とりあえず、チュートリアル見ながらテキストエディタ作ってるんですが

>コンポーネントパレットの[Additional]ページにある
>ActionManager コンポーネントをダブルクリックして,

のところがわかりません。
[Additional]ページにActionManager コンポーネントなんてないのですが・・。

587 :デフォルトの名無しさん:03/05/17 13:15
キタキタ

588 :541:03/05/17 13:33
>>542
思い通りの動作にする事が出来ました。
ありがとうございました。

589 :デフォルトの名無しさん:03/05/17 13:39
>>577をおしえてくんろ


590 :Delフサギコ ◆A6VzDeLphI :03/05/17 14:09
 ∫,,,,,,,,,∧,,∧    休日
⊂,,,,,,,,,つ,,゚Д゚ミつ   マタリ自作ツール開発です

質問っす。

このあたりの
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1001489683&res=7&fi=no
CUIプログラムを作っているですが、
このプログラムをAとして
コマンドラインで表示するのではなく

違うプログラムBからAを起動して
Aがコマンドラインで出力する値を
プログラムBで受け取るにはどうしたらいいですか?

すまそ、検索ワードが思いつかないので聞いてみるです。

591 :デフォルトの名無しさん:03/05/17 14:32
過去のDelphiアカデミック版からDelphi7までのアップグレード
料金をご存知の方教えていただけませんか。
これからDelphiを買おうと思っているのですが、アップグレード
料金によって、製品版を買うかアカデミック版を買うか迷っているので。

592 :デフォルトの名無しさん:03/05/17 14:54
>>591
某のホームページからメルすると見積もり金額FAXしてくる。
で、ユーザは振り込み前に製品郵送して貰えるぞ。
自分とこは、安売り案内に書かれてない別製品買うのでだったので諦めてたが、
2マソ安くなった。

593 :デフォルトの名無しさん:03/05/17 15:02
標準出力の事?

594 :デフォルトの名無しさん:03/05/17 15:05
>>590
検索キーワード
CreatePipe
名前なしパイプ

595 :Delフサギコ ◆A6VzDeLphI :03/05/17 15:33
 ∫,,,,,,,,,∧,,∧    
⊂,,,,,,,,,つ,,゚Д゚ミつ旦~~

調べてみます。アリガトです
PopupMenuを開くCUI形式でプログラム作ってて
あるプログラムから起動かけて
Popupで選んで、何を選んだかを
呼び出したプログラムに返すっつのを
つくってるです。
Popupが消えてくれなくて、難しいっすね。


596 :デフォルトの名無しさん:03/05/17 15:56
>>595
Windowsの作法だと、そういうのは普通DLLにするもんじゃないの?

597 :デフォルトの名無しさん:03/05/17 16:01
>>586
ActionManagerを検索

598 :586:03/05/17 16:19
>>597

ありがとう。
↓ということですね・・・
-------------------
チュートリアルで使っているコンポーネント、ActionManagerが無いんです・・。
これはProfessional版以上に付属しています。 ActionManagerが無くても何とかなるのですが、チュートリアルとしては難しそう(^^;;
まぁ、このチュートリアルは放っておいて、他の事から挑戦する方がいいかも。
-------------------

しかし、まいったな・・・「他のことから挑戦」と言われてもどうしたらいいんだか。

599 :デフォルトの名無しさん:03/05/17 16:22
(/o\)カワイイ!
http://homepage3.nifty.com/coco-nut/

600 :Delフサギコ ◆A6VzDeLphI :03/05/17 16:29
 ∫,,,,,,,,,∧,,∧   >>596
⊂,,,,,,,,,つ,,゚Д゚ミつ EmEditorPluginのPopupメニューつき
           機能のDLLサイズがでかいので
          それだけ別Exeにしようとしてまして。

601 :Delフサギコ ◆A6VzDeLphI :03/05/17 16:55
 ∫,,,,,,,,,∧,,∧   普通のアプリはどうやって
⊂,,,,,,,,,つ,,゚Д゚ミつ  Popupを消してるんでしょか・・・

program Project2;
uses
 SysUtils, Dialogs, Controls, Forms,
 Unit1 in 'Unit1.pas' ;
begin
 DataModule1 := TDataModule1.Create(Application);
 try
  DataModule1.PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
  Application.ProcessMessages;
 finally DataModule1.Free; end;
end.

このようにして、PopupMenuを
表示させているのですが、
普通の動作のように
他のアプリにフォーカスが移動しても
menuを選択するまで表示が消えません。

どうやったら普通の挙動のように
動かすことができるでしょうか?

602 :デフォルトの名無しさん:03/05/17 17:07
>>600
別exeにするくらいなら VCL使わずにプログラムした方がいいように思うのだが?

603 :Delフサギコ ◆A6VzDeLphI :03/05/17 17:23
 ∫,,,,,,,,,∧,,∧   と、いうても、APIのみで
⊂,,,,,,,,,つ,,゚Д゚ミつ  PopupMenuを表示させる方法を
            知らないので。
            あと楽なRADも使いたかったと。

604 :デフォルトの名無しさん:03/05/17 17:26
>>603
VCLのPopupMenuのソースの中を出刃蛾でおいかけろ

605 :デフォルトの名無しさん:03/05/17 18:14
>>598
何の為にDelphiやるの?
何を作りたいの?
プログラミング自体が初心者ならジャンケンゲームとか作ってみれば?

606 :598:03/05/17 19:05
>>605

↓みたいなことをやりたいのです。道のりは長そう・・・
あるアプリケーションの画面情報(おもに数字)を読みとって、ある特定の
変化が起きたら(例えば「5」という数字が表示されたら)音を鳴らす。

そういうプログラムを組みたいのです。

欲を言えば、「音をならす」だけでなく、さらに
プログラムが自動的にネットにアクセスしてある操作を行う

607 :598:03/05/17 19:09
ヘルプのチュートリアルはアクションマネジャーがないと先に進めないことが
わかり、あきらめました。
代わりに解説書で頑張ってみようと思い、さっき本屋に行って来ました。
しかし・・・デルフォイの解説書が全くありませんでした。

大きな本屋じゃないとおいてないのかな。
というより、ちょっと不安になったのは、本が全くないってことは、
デルフォイってすごくマイナーなのですね。
C#とかVBとか言うやつの本は一杯あった。うーん、そっちの方が情報が手に入れやすくて
初心者には向いているのでしょうか?

608 :デフォルトの名無しさん:03/05/17 19:17
>>607
初心者に留まらせるに向いている。
一生初心者で良いならどーぞ。

609 :608:03/05/17 19:20
言葉が抜けてたか。

C#やVBをやって、初心者に留まるなら〜

ドトネトはクラスライブラリのコードが無いから、外からプロパティやメソッドを使うしかない。
悪いコーディングが身に付く。

610 :デフォルトの名無しさん:03/05/17 19:20
>>608
ムキになるな。 初心者向けから上級者まで幅広くあるのと、
いい本かどうかさえ分からない本が少数しかないのでは全然違うぞ。

611 :デフォルトの名無しさん:03/05/17 19:21
>>609
> ドトネトはクラスライブラリのコードが無いから、外からプロパティやメソッドを使うしかない。
> 悪いコーディングが身に付く。
言っていることが論理的ではないな。
Delphi 6 Personalでは悪い癖がつくといっているみたいだ。


612 :608:03/05/17 19:23
>>611
あたりー。

ま、クラス派生したコンポーネントのプログラムはここから取って来い。
http://home1.infonia.ne.jp/~delphian/delphi/

613 :デフォルトの名無しさん:03/05/17 19:26
>>612
なんだ? 別に標準のクラスライブラリである必要はないのか?
ならC#でもVB.NETでもソース公開のライブラリあるだろ。

614 :デフォルトの名無しさん:03/05/17 19:28
>>612
ブリンクうぜー(T_T)

615 :デフォルトの名無しさん:03/05/17 19:28
>>613
そんなコンポどころかアプリが出てない言語だしてどうするよ。

616 :デフォルトの名無しさん:03/05/17 19:29
>>603
 ポップアップを表示させるだけなら

hPopup:=CreatePopupMenu;
AppendMenu(hPopup,MF_STRING,101,'Menu1');
AppendMenu(hPopup,MF_STRING,102,'Menu2');
TrackPopupMenu(hPopup, 0 , X, Y, 0 , Handle , nil);

こんな感じで、そんなに不便じゃないでしょ。
ただし、問題は、Handleに親窓のハンドルが必要で、しかもそちらにメッセージWM_COMMANDが送られる事。


617 :598:03/05/17 19:31
知識がないモノで、みなさんの言ってることが正直ほとんど理解できないのですが・・・
>>610さんの言うように、やっぱり解説書が豊富な言語使ってる方が無難なのでしょうか。
独学で学ぶので、解説書だけが頼りですから。

618 :デフォルトの名無しさん:03/05/17 19:31
ブリンクなんてかけているあたり、http://home1.infonia.ne.jp/~delphian/delphi/の管理人の無能さがうかがえる。

619 :デフォルトの名無しさん:03/05/17 19:35
>>617
旧VBの解説書は膨大にあったし、ユーザも多かったが、
M$がVBの出荷を停止する。
で、Delphiに置き換える案件が増えてるらしい。
コンパイラにとって本の数やユーザ数は関係無い。

620 :デフォルトの名無しさん:03/05/17 19:39
すでに.NETの本はDelphiの量を超えてるな。

> で、Delphiに置き換える案件が増えてるらしい。
これ捏造。ソース提供できないはずだから。

> コンパイラにとって本の数やユーザ数は関係無い。
そりゃそうだ。”コンパイラ”は関係ない。
本の数やユーザ数が関係あるのは人間。

621 :デフォルトの名無しさん:03/05/17 19:40
DMonkeyScriptの質問はアリですか?
VCLについて聞きたいんですが・・

622 :デフォルトの名無しさん:03/05/17 19:41
VBの代わりとしてDelphiを提案する人がいるのかね。

623 :デフォルトの名無しさん:03/05/17 19:41
>>617
 まず

ゼロから始めるDelphi講座
http://www.text2music.com/text/delphi/zero/index.htm

ででも試しながら、 画面上判らない個所でF1を押してゆくという方式で勉強しては?
それで判らない事があれば、このスレで聞いて下さい。


624 :デフォルトの名無しさん:03/05/17 19:42
ひまわりのサイトじゃん・・・

625 :デフォルトの名無しさん:03/05/17 19:46
本の数を信用するとこんなことになるぞ。

http://japan.cnet.com/news/special/story/0,2000047679,20051963-5,00.htm
>ガートナーによると、古いアプリケーションを.Netに移行する場合、
>「驚く程多くの変更」を加える必要があるかも知れないという。
>例えば、Visual Basicの場合、VB.Netに統合することができるのは、
>既存のVisual Basic 6プログラミングツールのせいぜい40%程度だという。
>マイクロソフト側の説明によると「重要なデザインやコーディングの変更はない」という。

626 :デフォルトの名無しさん:03/05/17 19:49
Delphiなら、今年Delphi.NETが発売されるし、
LinuxコンパイルするならKylixがDelphi7にバンドルされてる。

627 :デフォルトの名無しさん:03/05/17 19:49

>>606 って スレたてるまでもない質問スレの人ですよね?

>>606のような事をやりたいなら、大抵のツールで出来るけど、
 パソコン がWin98でメモリ128M
という条件で、今手に入る中では Delphiが一番簡単ですよ。
だからガンバッってこれでやるしかないと思います。

まず、最初にツール(IDE)の使い方を覚えてから、
言語の方は必要なときにヘルプを見ながらゆっくり覚えるといいでしょう。


628 :デフォルトの名無しさん:03/05/17 19:52
>>625
CもJavaも本の数は多いぞ。
その話と本の数は無関係だろ。
Delphiの本の少なさは致命的だって

629 :デフォルトの名無しさん:03/05/17 19:53
Delphiが最もコンポーネント多いし、
ポトペタはりやすいし、これでねをあげたら終り。

630 :デフォルトの名無しさん:03/05/17 19:55
>>628
本が多いことを信用するなということ。
だから、
>その話と本の数は無関係だろ。
は無意味。
628は他人を騙そうと必死になってる。

631 :デフォルトの名無しさん:03/05/17 19:59
>>630
必死になるなよ。要するにおんなじことを言っていることだろ?
Delphiの本の少なさは致命的だって。

632 :デフォルトの名無しさん:03/05/17 20:00
>>629
馬鹿用言語ということですね

633 :デフォルトの名無しさん:03/05/17 20:03
気になるVisual Basic/VBAの今後
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20030331/1/
VBユーザーが徐々に減っている?
(3)Visual Basicを“卒業”して,Visual C++やDelphiなどに移行した──などが考えられる。



634 :デフォルトの名無しさん:03/05/17 20:04
オープンソースってのは大概CかC++だからねぇ。

635 :633:03/05/17 20:05
>例えば,Visual C#を使っている読者は,1年たった今でも10%を大きく超えることがない。
>そうした現状に危機感を感じたのか,マイクロソフトはキャンペーンを開始した。

636 :デフォルトの名無しさん:03/05/17 20:07
>>634
オプソしらない香具師はっけそ。
COBOLみたいなゴミ言語のものもある。

637 :デフォルトの名無しさん:03/05/17 20:09
>>634
pascalものなら無限にあるが。

が、ドトネトサイアク。C/C++もmanagedにしなきゃならんので、
オプソのソースをコンパイルできん。

638 :デフォルトの名無しさん:03/05/17 20:10
C++にしとけ。Delphiはマイナーすぎる。

639 :デフォルトの名無しさん:03/05/17 20:12
>>638
>>633で今までの会話に勝負ついたからって、
いきなりC++を出すなんて。
精神障害でしか?
ま、あなたはブビ厨でしょ。

640 :デフォルトの名無しさん:03/05/17 20:14
>>636
CとC++以外無いとは言って無いだろ。少ないだけ。
日本語わかるか?

641 :デフォルトの名無しさん:03/05/17 20:16
>>637
> C/C++もmanagedにしなきゃならんので、
> オプソのソースをコンパイルできん。
managedにしなきゃいいじゃん。
知らないかもしれないけど、一部分だけunmanagedってのもできるんだよ。


642 :598=617:03/05/17 20:18
皆様レスありがとです。
色々意見を聞いてるとよけい分からなくなりますね・・・。
いい解説書があればデルフォイでもいいのですが。

>>623
>ゼロから始めるDelphi講座

そのHPいったのです。でも、第2章で挫折しました。
書いてあるとおりにやってるのにうまくいかないのです。
どうも説明がかなりハショられてるっぽいので。それとも私のやり方がまずいのか・・。
F1押すとヘルプでるのですか?試してみます。

>>627
>パソコン がWin98でメモリ128Mという条件で、

前のスレでも書いたのですが、パソコンをグレードアップする気はあるのです。確かにグレードアップは金も手間もかかって大変ですけど、もしデルフォイより他の方がいいのなら、グレードアップする価値はあるのかなぁと。

643 :デフォルトの名無しさん:03/05/17 20:18
>>640
うわ。恥の上塗り。
オプソは無限の文献のようなもの。必要なものを取り出して棄てるのが大変なもの。
Delphiのプロ版で、200のコンポがあって派生されたコンポが無限に公開されてる

644 :デフォルトの名無しさん:03/05/17 20:18
>>639
はぁ? お前誰と勘違いしてるんだよ?
お前VBにそうとうコンプレックス持ってるだろ。

645 :デフォルトの名無しさん:03/05/17 20:22
>>643
お前、知能傷害起こしてるだろ。
もう言っていることが支離滅裂。



646 :デフォルトの名無しさん:03/05/17 20:23
>>642
Delphiより敷居の低いものは無いんだが。
教育用pascal言語で、細部から大局まで普通に記述出来て、
コンポーネントが膨大にあって、Exe1個で動作して。

647 :デフォルトの名無しさん:03/05/17 20:23
ブビ厨死ね消えろウザ イスレ違い荒らすな

648 :デフォルトの名無しさん:03/05/17 20:28
でもDelphiマイナーだしなー。
本全然ないし。
pascalの教育用ってのは昔の話だし。

649 :デフォルトの名無しさん:03/05/17 20:31
マイナーよりVBみたいに販売停止になって死滅する方が怖いな。

米の大学でM$の売り込みで、教育にC#を導入しようとしたところ、
学生が反対キャンペーンで中止になったし。

やっぱ、Delphiか。

650 :デフォルトの名無しさん:03/05/17 20:33
でもボーランドも今度からDelphiよりもC#を先に出すみたいだし。
もうすぐ死滅するんじゃない?

651 :デフォルトの名無しさん:03/05/17 20:34
言語資産が重要なんであって、古くから有名アプリがあるDelphiは全然マイナーじゃない。
Linuxコミュニティ側がWindowsから移植して欲しい言語としてDelphiが選ばれて、Kylixになったわけだし。
Windows上ではメジャー。

652 :598=617:03/05/17 20:34
とにかく本がなくて、ヘルプは役に立たなくて、で、唯一頼りの
http://www.text2music.com/text/delphi/zero/3.htm
なんですが、ここも表記がアバウトでけっこう読み進みにくいのです。
例えば・・・

>Delphi5以降 をお使いの方は、[ファイル|アプリケーションの新規作成]からコンソール・アプリケーションを選んでもらえれば良いのですが

ということを書いてあるのですが、そんな選択肢がないのです。
で、30分くらい思案の末、ファイル→新規作成→その他 の中にやっと発見。
バージョンが違うのか、とにかく記述が違うところが多いのです。
もちろん、善意でやってるHPにけちつける気はないのですが、やっぱりきちんとした
本の方が情報量も多いし、画面写真も多いからわかりやすいのかなぁと。

653 :デフォルトの名無しさん:03/05/17 20:39
>>652
まぁ、開発環境というのはGUIに限らず大きな障害が沢山ある。
Delphiはプログラミング言語、OOPやWindowsのツマヅク部分を綺麗に回避している。
Delphiは身に付けたほうが将来のため。

654 :デフォルトの名無しさん:03/05/17 20:40
>>642
ではこれは?
http://www.butaman.ne.jp/~yuhta/COMPUTER/CHAP01/JCOM01_05.html

とりあえず、まず、

1、ファイル -> 新規作成->アプリケーション の後 F9を押してみて下さい。

これでどうなりましたか?

655 :デフォルトの名無しさん:03/05/17 20:44
これ見るとやっぱりDelphiは使われてないみたいだね。
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160

656 :デフォルトの名無しさん:03/05/17 20:46
>>651
でもKylix使われてないよ。

657 :デフォルトの名無しさん:03/05/17 20:46
>>655
>Delphi/Kylix (1087 projects)
こう見えるんだが...

658 :デフォルトの名無しさん:03/05/17 20:48
>>656
>>657

659 :デフォルトの名無しさん:03/05/17 20:50
アンチDelphiな香具師のいうことを反するソースばかり。

ま、VBは死滅したし、C#やVB.NETはLinuxどころかWindowsアプリも作れないし。

660 :デフォルトの名無しさん:03/05/17 20:51
> C (10872 projects)
> C++ (10564 projects)
> PHP (6577 projects)
> Perl (4590 projects)
やっぱりDelphiはマイナーだよ。

661 :デフォルトの名無しさん:03/05/17 20:52
>>659 ネタはいらん

662 :デフォルトの名無しさん:03/05/17 20:53
>>660
恥の上塗りの2回目。
オマエは10000プロジェクトダウソしてコード読むつもりか?

663 :デフォルトの名無しさん:03/05/17 20:53
> C#やVB.NETはLinuxどころかWindowsアプリも作れないし。
実際に作れて動いてるしなぁ。WindowsでもLinuxでも。ポリポリ


664 :デフォルトの名無しさん:03/05/17 20:55
>>662
お前頭悪すぎ。ネタにしても面白くない。
無限にあるコンポーネントダウソしてコード読むつもりか?

665 :デフォルトの名無しさん:03/05/17 20:55
>>663
それはドトネトアプリであってWindowsアプリといわない。

ポリポリって貧乏が匂ってきそうでキショ居。

666 :デフォルトの名無しさん:03/05/17 20:55
>>598
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
の初心者向けのところをざっと読むべし。


667 :デフォルトの名無しさん:03/05/17 20:57
>>665
なんか屁理屈言っているけど、WindowsでもLinuxでも動くことには違いないじゃん。

668 :デフォルトの名無しさん:03/05/17 20:59
660でプロジェクト数が出て、
662で、どのプロジェクトも多くて見切れない、と書いているのに、

664で
>お前頭悪すぎ。ネタにしても面白くない。
>無限にあるコンポーネントダウソしてコード読むつもりか?

664は頭を論理破壊されたようです。ガクガクブルブル



669 :デフォルトの名無しさん:03/05/17 21:01
>>668
頼むからちゃんと意味のあること言えよ。
そのうち荒らしと言われるぞ。

670 :デフォルトの名無しさん:03/05/17 21:02
>>667
で、
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20030331/1/
>VBユーザーが徐々に減っている?
>(3)Visual Basicを“卒業”して,Visual C++やDelphiなどに移行した──などが考えられる。
>例えば,Visual C#を使っている読者は,1年たった今でも10%を大きく超えることがない。
に戻る。

671 :デフォルトの名無しさん:03/05/17 21:03
>>669
ここはDelphiスレだから反Delphiが荒らしなんだが。

672 :デフォルトの名無しさん:03/05/17 21:04
大体>>662が言っていることおかしいよね。
>>660でDelphiはプロジェクト数が少ない、と書いてるのに、

>>662
> オマエは10000プロジェクトダウソしてコード読むつもりか?

662は頭を論理破壊されたようです。ガクガクブルブル

673 :642:03/05/17 21:04
>>654

言われたとおりやってみました。空白ページがでるだけです。なぜだろう?
とりあえず、自分でもう少し考えて、なにが問題点かきちんとまとめてから
もう一度質問してみますです・・・。
しかし、先が思いやられるw

>>666
それいいリンク集ですね。ちょっと色々あさってみます。

674 :デフォルトの名無しさん:03/05/17 21:05
>>670 想像記事なんか要らない。

675 :デフォルトの名無しさん:03/05/17 21:06
>>671
馬鹿なことを言っている奴はどちらにしろ荒らし。
Del使いに扮したアンチDelの可能性が高い。

676 :デフォルトの名無しさん:03/05/17 21:06
674=負け犬の遠吠え

677 :デフォルトの名無しさん:03/05/17 21:08
>>676
はぁ?
> などが考えられる
これは想像のときに用いられる言葉だろ。日本語(略

678 :デフォルトの名無しさん:03/05/17 21:10
677=負け犬の駄目押し、恥の上塗り

679 :嘲笑激藁・大爆笑仮面:03/05/17 21:11
そろそろ出番ですか?

680 :デフォルトの名無しさん:03/05/17 21:12
>>678
いいからもう寝ろよ。お前がいるからこのスレが荒れる。
恥の上塗りをしているのはお前。

681 :デフォルトの名無しさん:03/05/17 21:15
>>673
空白ページが出るだけで OK です。 
インストールが巧くいかなかったというので心配してたのです。

数字に変化があったらという事ですが、それには

1、監視のアプリの窓ハンドルを取得する
   マウスで指示した位置からWindowFromPoint で取得する
   この方法で文字を事前調査しておいて、FindWindowで取得する方が後は楽

2、画面の監視は
  コントロールであれば窓ハンドルに対して WM_GETTEXT で取れる場合もある
  ダメならBitBltを使うかして、ビットイメージで取得する
  変化があったら程度の事ならこれも簡単でしょう

という部分を乗り越えないといけません。


682 :デフォルトの名無しさん:03/05/17 21:38
Del厨必死だな。(藁

683 :デフォルトの名無しさん:03/05/17 21:40
俺は6Perから始めて、インターネットだけでなんとかなってる。
最初の頃(1、2週間)は苦労したけど、どれ選んでも似たような苦労はすると思う。

684 :デフォルトの名無しさん:03/05/17 21:40
Javaスレに続いてDelスレでもVB使いに論破されて負けたのか。

685 :673:03/05/17 21:41
>>681

核心の部分の解説たすかります。
ただ・・、申し訳ないですが、現時点ではその説明は全く理解できんです・・・・。
もうすこし、デルファイの理解が進んでから、もう一回読み直すのでその時
分からなかったらまた教えてください。

686 :デフォルトの名無しさん:03/05/17 21:46
Delphi初心者に勧めるって、罪悪感はないのかね?

687 :デフォルトの名無しさん:03/05/17 21:47
次のバージョンはない言語なのにね

688 :デフォルトの名無しさん:03/05/17 21:48
>>682
Delphi スレで必死にならずにどこで必死になれと?

689 :デフォルトの名無しさん:03/05/17 21:52
Delphiなんかに手を出しちゃダメだよ。

VB開発者が次に選ぶ言語の行方は?
http://www.atmarkit.co.jp/fdotnet/questionnaire/2002-11/2002_11.html

現在使用している言語 (Delphi : 0)
http://www.atmarkit.co.jp/fdotnet/questionnaire/2002-11/dotnet1.gif
今後利用したい言語 (Delphi : 2)
http://www.atmarkit.co.jp/fdotnet/questionnaire/2002-11/dotnet4.gif

690 :デフォルトの名無しさん:03/05/17 21:52
>>686-687
こいつらって、一つの言語しか覚えられない厨房ってことでいい ? > ALL

691 :デフォルトの名無しさん:03/05/17 21:54
>>689
おいおい。Delphi全然人気ないじゃん。
このスレ嘘つきが多いな。

692 :デフォルトの名無しさん:03/05/17 21:57
初心者で何も知らないことをいいことに嘘教えるのは良くないよ。
初心者ならVB.NETとかC#の方がいいよ。

693 :デフォルトの名無しさん:03/05/17 21:57
>>689
VB 開発者って何だよ。MS の人間か ?
VB の単なる利用者だろ ?
そんなオチこぼれ厨の意見を参考にする方がダメダメだろ。

694 :デフォルトの名無しさん:03/05/17 21:59
>>693
>>579に失礼ですよ。これだから閉鎖的なDel厨は嫌ですね。

695 :デフォルトの名無しさん:03/05/17 21:59
>>685
そうですね。
といっても、ちょうどこのスレにいるかどうか判らないので
サンプルコードを置いておきます。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1032435179_4/TestProg.lzh

実行させて
実行したら、マウス左ボタンでフォームの部分を押したまま
見たいアプリの上に持ってきてボタンを放します。
 
押したままマウスを動かして目的の位置で放すすのを ドラッグ&ドロップというのですが、
仕様上、ドラッグ動作でないと、マウス座標を簡単に取れない為です。


696 :コピペ推奨:03/05/17 22:01
VB.NET 2003の価格が発表されました。
http://www.microsoft.com/japan/presspass/releases03/051503_VS03_t1.asp

なんと7,800円と、Delphi Personalよりも安いではありませんか!
しかも商用開発できないなどとのクソマヌケな制限もありません!
7,800円がすぐに払えない人には無料のSDKもあります!

どうしてDelphiなんか続ける理由があるのでしょうか?
今すぐVB.NETで最先端の開発環境を体験しましょう!
LonghornのGUIは.NETでこそ最良のエクスペリエンスを受けることができます!

697 :デフォルトの名無しさん:03/05/17 22:02
>>696
だからC#とVB.NETなら将来性のあるC#買うよ。

698 :デフォルトの名無しさん:03/05/17 22:07
マジレスすると初心者はperlから始めるのがいいと思う。
出来るだけ汎用性があってお手軽と言う部分で一つ抜けているから。
perlでstrict出来るようになったらCを勉強。
そうすればJavaだろうがDelphiだろうがすぐに覚えられる。
基本的に言語は同じものだから。

699 :デフォルトの名無しさん:03/05/17 22:10
>>698
>基本的に言語は同じものだから。

彼にLISPとPrologをプレゼントしたい。

700 :デフォルトの名無しさん:03/05/17 22:12
>>698
そうだね。時代はWeb開発だし。
それにGUIがないと開発できないなんてプログラマじゃないもんな。(ギャハ

701 :デフォルトの名無しさん:03/05/17 22:13
やっぱり基礎が一番重要だな。
DELとかVBとか言う前に基礎を勉強しろと小一時間問い詰めたい。
木を見るのではなく森を見ろ。

702 :デフォルトの名無しさん:03/05/17 22:16
>>701
アホアンチに言ってやりたい一言ですね。

703 :デフォルトの名無しさん:03/05/17 22:17
アホアンチは木も森も見てないから。(プ
見てるのはMSかどうかだけ。(ゲラ

704 :デフォルトの名無しさん:03/05/17 22:19
ゲラ厨キター

705 :デフォルトの名無しさん:03/05/17 22:26
アホアンチはどのスレ行っても馬鹿にされ・・・プププ

706 :Delフサギコ ◆A6VzDeLphI :03/05/17 22:30
 ∫,,,,,,,,,∧,,∧    をぉ!!>>616
⊂,,,,,,,,,つ*゚Д゚ミつ  サンクス子。

めちゃめちゃ小さいサイズでPopupMenuが実現できるです!!
幸いにも、親窓はEmEditorがハンドルを提供してくれているので
使えます。

TrackPopupMenuでループしてくれるのですね!

あとは、Menu1を選んだのかMenu2を選んだのかを
判断できればばっちりです。
検索してみるです。(気が向いたら教えてください。)


707 :デフォルトの名無しさん:03/05/17 22:41
Delphi、いいですね!
こんなすばらしいツールを作ったのは一体どこの人なんだろうと思ってしまいます。

708 :デフォルトの名無しさん:03/05/17 22:51
>>642
>そのHPいったのです。でも、第2章で挫折しました。
>書いてあるとおりにやってるのにうまくいかないのです。
なぜそこを質問しない?
「うまくいかないから挫折しました」じゃDelphiに限らず習得するのは不可能。

709 :Delフサギコ ◆A6VzDeLphI :03/05/17 22:52
 ∫,,,,,,,,,∧,,∧    >>616
⊂,,,,,,,,,つ;゚Д゚ミつ  

選択結果については親ハンドルに投げられるのか…
困ったな。受け取る方法がないや…

710 :デフォルトの名無しさん:03/05/17 23:04
>>694
わけわからん。
どこが失礼なんだ ?

>>696
推定小売価格と、希望販売価格の違いってわかってる ?

>>698
最初に perl はやめとけ。
表現方法が多様な (=読みにくい) 言語は勉強に向かない。
perl で「○○やりたいんですけど」とか質問したら、回答が山ほど来て混乱するのは目に見えてるよ。

711 :デフォルトの名無しさん:03/05/18 00:07
ドトネトvsDelの話題はオナニースレでやれよ
いい加減ウザイ

712 :Delフサギコ ◆A6VzDeLphI :03/05/18 00:12
 ∫,,,,,,,,,∧,,∧    とりあえず次のような
⊂,,,,,,,,,つ,,゚Д゚ミつ   コードでPopupMenuだけ表示して
終了するExeができますた。
すげーいい加減だけど....
Form2はCaptionBarなしのにしてます。
これで、Pipeで呼び出せばDLL処理部分とExeでPopup処理部分がわけられるかな・・・
(もう初心者向けじゃなくて、スマンコ)

program Project2;
uses
SysUtils, Dialogs, Controls, Forms, Windows,
Unit1 in 'Unit1.pas' ,
Unit2 in 'Unit2.pas' ;
function ApiMsgBox(Text, Caption: String; Flags: Longint): Integer;
begin Result := Windows.MessageBox(0, PChar(Text), PChar(Caption), Flags); end;
begin
Form2 := TForm2.Create(nil); try
Form2.Height := 0;
Form2.Show;
DataModule1 := TDataModule1.Create(Form2); try
ApiMsgBox(BoolToStr(DataModule1.Result, True), 'テストプログラム', MB_OK);
DataModule1.PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
ApiMsgBox(BoolToStr(DataModule1.Result, True), 'テストプログラム', MB_OK);
finally DataModule1.Free; end;
finally Form2.Release; end;
end.
procedure TForm2.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;

713 :デフォルトの名無しさん:03/05/18 00:34
WebBrowserのVisibleが切り替わらないのですが…
Falseを代入しても普通に表示されています。
一時的にフォームから消したいのですが、どうすればいいのでしょうか?

714 : :03/05/18 00:38
>>713
「monazilla.org (w」ってとこに、TIPSがあったと思う。

715 :713:03/05/18 00:48
>>714
WebBrowserと名の付くリンクを見てみたのですが
特に見当たりませんでした、すいません

716 :714 ◆YQwpJeMWgo :03/05/18 00:55
>>715
いや、あやまらなくてもええがなぞなもし(^^;。

TOleControl(WebBrowser1).visible := false;

探してみたら、↑があった。
MLから昔、DLしたヤツの中にあった。
これでは?

717 :713:03/05/18 01:06
>>716
あっ、いまくいきました!ありがとうございました。
こんなやり方があったんですね。

718 :A:03/05/18 01:09
>>652
なんだか、いろいろごちゃごちゃと、議論が起きてるけど、気にしないほうがいいよ。

バージョンが違うと、メニューの配置がかわったりするのは、別にDelphiだけじゃなく、
どんなアプリでもあることだから、しかたない。
あんまり几帳面に、まったく同じことだけ、って思わずに、
見つからない時は、片っ端からそれっぽいのを探してみる、ぐらいにしたほうがいい(笑)

Delphiはマイナーで、販売本数では、MS製のほかの言語ソフトに比べて少ないし、
本の種類も圧倒的に少ないのは、確かに事実。
でも、プログラムを覚えるのに、そのことはそんなに大きな問題じゃないよ。
本は、最初は、いい本が1冊か2冊あれば十分。

本屋に数百冊あったって、全部読むわけでもないんだから(笑)
Delphi6を使ってるんだよね? Delphi6は無料で配られただけあって、
Delphi6を本に付属して、それを対象にした、入門用の本がたくさん発売されているよ。
マイナーだけあって、そこら中の本屋に置いてあるとは行かないけど、
今は、ネット通販を使えば、簡単にどこでも買える。
どれを買うかの推薦は、他の人にませるけど、1冊買えばしばらくはそれだけで
勉強には十分なはず。
入門書を卒業する頃には、ネットにある他のDelphi情報をなんとなく理解できる程度にはなってるよ。

マイナーな言語は、勉強しても…って思うかもしれないけど、Delphiをある程度使えるまで勉強したら
それからC++とかの難しい言語に移ることも、比較的楽だから。
Delphiは、始めは非常に簡単で、そこからゆっくりと少しずつ、深い世界に進んでいける。
しかも、高度なIDE付きで、無料で使える。勉強には最適な言語だと思う(笑)
(基礎勉強に使うのに、商用開発できないことなんて、全然問題にならないと思うし(笑))

719 : :03/05/18 01:26
長ッ!(^^;。

つーか、ちょっと高度(オレにとって)な本を探すと、けっこう無いんだよなぁ。
初心者用はそこそこあるけど。
Cのヤツ読んでも、いまいちピンと来ない(藁

720 :デフォルトの名無しさん:03/05/18 01:47
長文荒らしキター

721 :デフォルトの名無しさん:03/05/18 02:18
>>652
当方地方都市在住だが・・・

Delphiの本、本屋に普通に置いてあるぞ?
どこに住んでるの?

722 :デフォルトの名無しさん:03/05/18 07:20
地方でも「都市」といえる規模ならあるだろ。
単なる市町村レベルだとプログラミングコーナー自体めちゃくちゃ小さいのよー。

723 :デフォルトの名無しさん:03/05/18 07:29
Del本はネットで情報得てからクロネコヤマトのブックサービスで買え。
カードもって無くても買えておすすめだ。

724 :デフォルトの名無しさん:03/05/18 08:03
>>706
Delフサギコ さん 
TrackPopupMenuのヘルプは読みましたか?
> hwnd ポップアップ メニューを所有するウィンドウを識別します。
> このウィンドウは、 メニューから送られるすべてのメッセージを受け取りますが、
>  関数が制御を戻すまではWM_COMMANDメッセージを受け取りません。

つまり WM_COMMANDはPostされるという事です。

ですので、
var Msg: TMsg;
begin
hPopup:=CreatePopupMenu;
AppendMenu(hPopup,MF_STRING,101,'Menu1');
AppendMenu(hPopup,MF_STRING,102,'Menu2');
TrackPopupMenu(hPopup, 0 , X, Y, 0 , Handle , nil);
  if PeekMessage(Msg , Handle , 0, 0, PM_REMOVE) then
  case Msg.message of
  WM_COMMAND:
  Result:=Msg.wParam; //選択された ら 101 とか 102 とか AppendMenuで指定したIDが返る
  end;

とやれば大丈夫です。

あ! PeekMessageの 0,0 は WM_COMMAND,WM_COMMANDでもいいです。


725 :デフォルトの名無しさん:03/05/18 08:32
>>617
どっちにしても、
他のツール用の解説書の範囲じゃ >>681 >>695 が出来るようにはならない。
このレベルまで含めて考えれば Delphiが一番楽。 よそ見しないでDelphi一本に絞るべし

726 :デフォルトの名無しさん:03/05/18 10:12
HighColorの画像を

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BitBlt(image2.Canvas.Handle,0,0,448,480,image1.Canvas.Handle,0,0,SRCCOPY);
Image2.Repaint;
end;

な感じで、Image2に表示させているのですが、転送された画像が
色褪せて表示されてしまいます… 何ででしょうか? 上記
プログラム以外は全く弄ってません。

727 :デフォルトの名無しさん:03/05/18 11:10
>>724

> TrackPopupMenu(hPopup, 0 , X, Y, 0 , Handle , nil);
>   if PeekMessage(Msg , Handle , 0, 0, PM_REMOVE) then
>   case Msg.message of
>   WM_COMMAND:
>   Result:=Msg.wParam; //選択された ら 101 とか 102 とか AppendMenuで指定したIDが返る
>   end;
> とやれば大丈夫です。

無理…

> 関数が制御を戻すまではWM_COMMANDメッセージを受け取りません。
て書いてあるじゃない

もし同じ事がしたいなら

Result:=Integer(TrackPopupMenu(hPopup, TPM_RETURNCMD , X, Y, 0 , Handle , nil));

じゃないの?
俺はこれよく使ってたけどなぁ

728 :デフォルトの名無しさん:03/05/18 13:57
Delphiって本が売ってないどころか、肝心のDelphi本体を見かけないんだけど。
これじゃあ初心者も始めようがないよね。

729 :デフォルトの名無しさん:03/05/18 14:32
いきなり初心者にパッケージ買わせるか?

730 :デフォルトの名無しさん:03/05/18 15:01
>>728
うむ、どっちかというと中級者以上向けの製品だしな。

731 :デフォルトの名無しさん:03/05/18 15:06
MXなら品揃え豊富だよ

732 :ミ,,゚Д゚ミノ ◆A6VzDeLphI :03/05/18 15:54
ぉおお。ありがとです。>>724>>727
どっちも試してみます。

ちまたの、SDK的ホームページを探っていても
TrackPopupMenuは
元Windowでメッセージ受けてるだけだから
無理かと思ってました。

昨日はPopupだけ分離したExeと
その呼び出し側Exeで通信をどうやろうかと試行錯誤してました。
当初はPipeでやろうとしたんですが、なにやらややこしくて…
中村タンのShearedMemoryを使って通信してうまくやれたです。



733 :デフォルトの名無しさん:03/05/18 16:11
IEやメモ帖などのテキストの上にマウスカーソルを合わせてクリックすると単語が選ばれますよね。
それをクリックせずにマウスカーソルを合わせただけで単語として取得するにはどうしたらいいでしょうか。

734 :デフォルトの名無しさん:03/05/18 18:28
前から気になってたんだけどフサギコって英語大丈夫なの?

735 :726:03/05/18 18:47
ttp://cgi.2chan.net/up2/src/f3970.jpg

比較画像上げてみますた。双葉なので消えるの早いかもです…
誰か分かる方いませんか(ノД`) 726のとはソースは若干違うんで再掲
画像加工失敗してますが、そこら辺は気にしないでくだしぃ…

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BitBlt(image2.Canvas.Handle,0,0,448,480,image3.Canvas.Handle,0,0,SRCAND);
BitBlt(image2.Canvas.Handle,0,0,448,480,image1.Canvas.Handle,0,0,SRCPAINT);
Image2.Repaint;
end;

// Image1が黒背景のキャラ画像、Image3が白背景のキャラ黒抜きで
// 背景画像のあるImage2に表示させてます。

736 :デフォルトの名無しさん:03/05/18 22:30
moumirenakattayo

737 :デフォルトの名無しさん:03/05/18 22:47
HighColorって具体的に何を指してる?

738 :726:03/05/18 22:50
ttp://cgi.2chan.net/up2/src/f4052.jpg
再掲しますた。こんな感じになってしまうのですが…

739 :726:03/05/18 23:57
他の方が見てそうな時に再うpったんですが、誰も見てくれてないようで(´・ω・`)
一週間ほど家を空けるので今日中にレスが欲しかったのでした…
書き込み多くてスマソ 帰ってくる頃に解決レスが付いてればいいな…

740 :デフォルトの名無しさん:03/05/19 01:10
問題が起きる最小限のコードを提示してくれないと面倒で試せない。
断片じゃなくて。

741 :726:03/05/19 01:24
まだいたり… 今日の朝には出ます。

>>740
それこそ>>726>>735ぐらいのコードしか書いてません…
Delphi起動→FormにボタンとTImageを2個配置→726のコード書く
→コンパイル しかしてないのですが…(ノД`)
(初BitBlt使用のお試しプログラムなので)

あ、書くの忘れてたことが一つ。726ではImage1に背景画像、
Image2は背景の上に載せるグラフィックを、オブジェクト
インスペクタのプロパティからコンパイル前に設定してます。
>>735のその辺の情報は書き込んであるので、とりあえず
自分が弄くった範囲はこれが全てです。

742 :ねこま:03/05/19 02:11
やってみたけど変な結果にはならなかった
procedure TForm1.Button1Click(Sender: TObject);
var
 jpg: TJPEGImage;
begin
 Image1.Picture.LoadFromFile('G:\test_.bmp'); // 画像
 Image2.Picture.LoadFromFile('G:\test_A.bmp'); // マスク

 jpg := TJPEGImage.Create;
 jpg.LoadFromFile('G:\bg.jpg');
 PaintBox1.Canvas.Draw(0,0,jpg); // 背景
 jpg.Free;
 BitBlt(Paintbox1.Canvas.Handle,0,0,360,480,image2.Canvas.Handle,0,0,SRCAND);
 BitBlt(Paintbox1.Canvas.Handle,0,0,360,480,image1.Canvas.Handle,0,0,SRCPAINT);
end;
わたしはこれ以上時間かけてあげられない
ごめんね.おやすみ


743 :Delフサギコ ◆A6VzDeLphI :03/05/19 04:27
            _____________
 ∩∧,,∧∩   /
  ゙ミ*゚Д゚*ミノ < できまった!
  ミ  ミ    \____________
  ミ ,, ミ
 ノ∪ ∪ バザーイ

>>724
hPopup := CreatePopupMenu;
AppendMenu(hPopup, MF_STRING, 101, 'Menu1');
AppendMenu(hPopup, MF_STRING, 102, 'Menu2');
Windows.GetCursorPos(MousePoint);
TrackPopupMenu(hPopup, 0, MousePoint.X, MousePoint.Y, 0, hwnd, nil);
if PeekMessage(Msg , hwnd , WM_COMMAND, WM_COMMAND, PM_REMOVE) then
case Msg.message of
WM_COMMAND:
MenuSelect:=Msg.wParam;
end;

>>727
hPopup := CreatePopupMenu;
AppendMenu(hPopup, MF_STRING, 101, 'Menu1');
AppendMenu(hPopup, MF_STRING, 102, 'Menu2');
Windows.GetCursorPos(MousePoint);
MenuSelect := TrackPopupMenu(hPopup, TPM_RETURNCMD, MousePoint.X, MousePoint.Y, 0, hwnd, nil);

どちらも動きましたよ。ありがとうです。

>>734 英語は無理Po

744 :726:03/05/19 08:23
>>742
うぉ、TPaintBox使うと色が変になりませんですた!( ゚д゚) ありがとうございます。
ただこれだと、画面外に出たときや何かのウィンドウが重なると、
Canvasに描画した画が消えちゃうのが難ですね… 常に自分で
書き直さないとダメっぽいですが(;´Д`)  そこら辺帰ってきたら
もうちょと弄ってみます…

745 :デフォルトの名無しさん:03/05/19 08:31
Delphiで作ったソフトはやたらと
メモリを食うのですが
メモリの浪費を最小限にする方法はありませんか?
Delphiで作っているとこれは仕方のないことですか?
メールチェッカーを作っているのですが
タスクマネージャーで監視したところ
普段で8,4KBもメモリを使用してしまいます。
どうかアドバイスよろしくお願いします<(__)>

746 :デフォルトの名無しさん:03/05/19 09:01
>>745
VCL禁止にしてWin32APIだけで作れ。

747 :デフォルトの名無しさん:03/05/19 09:55
ちょっとみなさんのご意見をばいたたきたいんです。

自分は大学生だからDelphi6pro版をアカデミック版で購入しております。
でも、それは先月のはなしで、現在Delphi7が販売されていることは知っておりました
が、BBS等で7のいいはなしを聞かなかったのでわざと旧バージョンを買ったのです。
年末に8がでるそうですが、今のうちに7を買っておいたほうが後々良いことがあるで
しょうか? 自分は6しかもってないからわかりませんが、BBSによると6と5を併用
している人がいるので、旧バージョンには旧バージョンの良さがあるのかなと思っております。

別にコレクションで高価なものを買う気はありませんが、7を買っていたら8が出てもこんな
点で便利だよというものがありましたら教えてください。

748 :747:03/05/19 09:56
一太郎7を買って屁たったことがあるので、バージョン7は怖いです。

749 :747:03/05/19 10:10
VB.NET 2003の価格が発表されました。
http://www.microsoft.com/japan/presspass/releases03/051503_VS03_t1.asp

なんと7,800円と、Delphi Personalよりも安いではありませんか!
しかも商用開発できないなどとのクソマヌケな制限もありません!
7,800円がすぐに払えない人には無料のSDKもあります!

どうしてDelphiなんか続ける理由があるのでしょうか?
今すぐVB.NETで最先端の開発環境を体験しましょう!
LonghornのGUIは.NETでこそ最良のエクスペリエンスを受けることができます!

>>747さんもこの際ですから、
滅びる運命にあるDelなんてやめてVB.NETに乗り換えましょう!

750 :デフォルトの名無しさん:03/05/19 10:13
ハァ?

751 :デフォルトの名無しさん:03/05/19 10:21
ちゃんと FUD 対策もしないとなぁ。
7800円は、今回無料アップデートにならなかったアカデミック版の値段。
正規版は、通常パッケージ 19,800円 。
7800 円でどこまでのものが手にはいるのかは、自分で調べてみなさい

752 :デフォルトの名無しさん:03/05/19 10:29
事実誤認に基づくFUDしてるとタイーホされますよ

753 :デフォルトの名無しさん:03/05/19 10:46
>>747
漏れは逆で、7はパスで8待ち。
6→7はXP正式対応くらいで目玉機能がなかったけど
7→8は激変するからね。
8が気に入らなかった部分は6で作ればいいし。

754 :747:03/05/19 12:25
>753

XP対応だけですか・・・。では、パスですね。

どこかでDelphi2からDelphi7に至るまでのDelphi言語の変化を
解説したページありませんかね。Delphi6から列挙型で自由に整数値が
当てはめられるようになったそうで、5では使えないテクなのですね。

755 :デフォルトの名無しさん:03/05/19 12:50
Del2:32Bit対応 長いString型 Variant型 その他多数
Del3:インターフェース型
Del4:Int64,overload
Del5:(わからない)
Del6:拡張命令対応ASM
Del7:(しらない)

756 :デフォルトの名無しさん:03/05/19 13:11
WebBrowserコンポーネントでフルスクリーン表示にするにはどうすればいいんでしょうか?

757 :デフォルトの名無しさん:03/05/19 13:50
48: IEコンポーネントを使い倒すスレ (794)
http://pc2.2ch.net/test/read.cgi/tech/982930049/l50


758 :A:03/05/19 14:17
>>755
4にはたしか、動的配列なんてのもあった。

759 :デフォルトの名無しさん:03/05/19 16:00
Del5:フレーム, IBX


760 :デフォルトの名無しさん:03/05/19 16:01
言語の変化ではないな
スマソ

761 :デフォルトの名無しさん:03/05/19 16:43
Del7 は Delphi.NETに向けて ワーニングを出すだけ

762 :デフォルトの名無しさん:03/05/19 18:06
Del7>>>>>>>>>>>>>>>>>>>>>>>>>>>Del6

763 :デフォルトの名無しさん:03/05/19 18:10
Del7って買っても意味無いのか

764 :デフォルトの名無しさん:03/05/19 18:18
複数のチェックボックスの中から特定個数までしかチェックできないようにするにはどうしたらいいのでしょうか?
たとえば、チェックボックスが10個あって、その中から3個しかチェックできないようにしたい。

765 :デフォルトの名無しさん:03/05/19 18:34
>>764
チェックがつく度に未チェックの個数を調べ、チェック可能個数に満たなくなれば
未チェックのチェックボックスを使用不可にする。

あらかじめ参照を配列に代入しとけばやり易い。

766 :745:03/05/19 19:13
>>746
ありがとうございました。
やってみます!!

767 :デフォルトの名無しさん:03/05/19 19:16
8.4KBってこれよりメモリ使用量少ないメーラあるの?Win9x?

768 :デフォルトの名無しさん:03/05/19 19:25
D7pro以上ならライブラリが多少増えてるけどね

769 :デフォルトの名無しさん:03/05/19 19:29
あとIntraWebとか
フォーム1個でコンパイルしたときのEXEサイズが減ってるとか。

770 :デフォルトの名無しさん:03/05/19 20:08
どのくらい小さくなるのかを、具体的に書いてもらえば、なお良かった。

771 :デフォルトの名無しさん:03/05/19 20:38
>>770
図々しいんだよ禿!


772 :デフォルトの名無しさん:03/05/19 20:50
禿って言う奴が禿

773 :デフォルトの名無しさん:03/05/19 21:28
禿丸

774 :デフォルトの名無しさん:03/05/19 21:56
>>771-773
盛り上がっているところすまないが >>733 もお願いします

775 :デフォルトの名無しさん:03/05/19 23:12
こんばんは。宜しくお願いします。

ファイル名だけを取得するにはどうすればいいんでしょうか?
オープンダイアログボックスでfilenameから取得しようとすると、
フォルダも含んだフルパスになってしまいます。

どうかご教授お願い致します。

776 :デフォルトの名無しさん:03/05/19 23:37
Extract系関数。

777 :デフォルトの名無しさん:03/05/19 23:50
var
AoB:array of byte;
FN:string;
i,ln:integer;
begin
if opendialog1.Execute then
begin
FN := opendialog1.FileName;
LN := Length(FN);
SetLength(AoB,LN);
for i := LN -1 downto 0 do
AoB[i] := ord(FN[LN - i]);
while AoB[i] <> 92 do
inc(i);
edit1.Text := RIGHTSTR(FN,i);
end;

778 :デフォルトの名無しさん:03/05/19 23:53
>775
単にExtractFileName(fullpath)でいいのでは

779 :775:03/05/20 00:01
解決致しました。
>778さんの仰るとおり、単にそれだけでできました。
helpにも載っていたのに、見落としていたようです。
どうもありがとうございました。

780 :777:03/05/20 00:07
OpenDialog を開きまくっていたら、
システムリソースがおかしくなりハングりました。

781 :デフォルトの名無しさん:03/05/20 01:59
>>744
Windowsなどのマルチウィンドウシステム自体が
『隠されたウィンドウが表に出てきたときは自分で描き直す』
という仕組みなのです.
(昔はメモリが非常に少なかったのでこうでもするしかなかった)

必要なときに1から全部書き直す手段を用意するか
画面に直接描くのをやめて
別に用意したビットマップに描いてからそれを画面に転送するようにして,
描き直しの必要があるときはこのビットマップを転送します.
(イメージコンポもおおざっぱにいえば後者の方法で描画しています)

>>767
うちは鶴亀メールを使っていますが
メモリ食いのWindows XPにもかかわらず8k切っています.


782 :デフォルトの名無しさん:03/05/20 02:21
メモリくらい買い足せよ貧乏人が!

783 :デフォルトの名無しさん:03/05/20 04:09
delphiでdirectXって漏れみたいなど素人でも使えるようにならないのかなあ

784 :A:03/05/20 05:03
特定のアプリが出している音だけを録音する、ってのは、できるのだろうか…?

785 :seven:03/05/20 05:48
>>783
DelphiX(そりゃ、ど素人にはムリだな)
>>784
「特定のアプリ」依存
線で繋ぐなら、そこそこ汎用

786 :デフォルトの名無しさん:03/05/20 08:35
>>784
785の言ってるのはVirtualAudioCableかな。おすすめ。

プログラムからプログラムへ直接読むならバッファを探して読み出すしか無いかな。
リングバッファだと内部でどう管理してるか分からないし、実質無理。

787 :デフォルトの名無しさん:03/05/20 08:59
高レベルオーディオなら音源ファイルがどこか(外に無ければリソースにでも)あるだろう。

低レベルオーディオなら、フックをかける方がいいのでは
ただ、コールバックなのか、窓ハンドルに対するメッセージなのかで楽さが違うかも

788 :デフォルトの名無しさん:03/05/20 11:58
CheckBoxのチェックが変化したときだけ呼び出されるイベントってつくれないのでしょうか?
MouseClickとかMouseDownだとチェックがつかなくても呼び出されるし、
キーボードからチェックつけたら今度は呼び出されないし・・・。こまってます。

789 :A:03/05/20 12:08
>>785-787
やっぱり普通は無理っぽい…ですか
線で繋ぐ。とは?
VirtualAudioCable……なるほど、サウンドカードの振りをしてデータを送ってもらう
って感じですかね。
リソースというか、音の元は、ストリーミングでネットの向こうから流れてくるので…
このフックを実現したのが、上のソフトかな?


790 :デフォルトの名無しさん:03/05/20 12:35
>>788
TControl::OnClickのヘルプ嫁

791 :デフォルトの名無しさん:03/05/20 12:37
>>788
TCheckBoxのOnClickがそれ。

792 :デフォルトの名無しさん:03/05/20 12:37
>>788
OnClickでイベントを拾い、比較用の変数と比較すればよろし。
OnClickはキーボード入力でも反応する。


TForm1 = class(TForm)
private
  ChkValue:Boolean;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if ChkValue<>CheckBox1.Checked then
  begin
    {やりたい事}
    ChkValue := CheckBox1.Checked;
  end;
end;


793 :デフォルトの名無しさん:03/05/20 14:26
フォーカスを設定できる状態かそうでないかを判断するためにはどうすればいいでしょうか?

794 :デフォルトの名無しさん:03/05/20 14:47
すんげぇ、初歩的な質問かもしれませんが、
作成したアプリの中にキャンバスなり、なんなりを作って、
その中に、作成したアプリの下にある画面(デスクトップの背景とか)
を表示させることって出斬るんでしょうか。

delphi5なんですけども、どなたかわかる方居ましたらおながいします。

795 :794:03/05/20 14:54
>>793

漏れも初心者なので間違ってるかもしれませんが、

フォ−カスが受けられるか受けられないかは、
ActiveControlプロパティにフォ−カスを受けられるコンポ−ネントの参照が
入っているらしいので、そのへんを引っ張ってくれば判断できるんじゃないでせうか?。

全然違ってたらすまそです。

796 :デフォルトの名無しさん:03/05/20 14:59
>>794
初歩的というより結構難しいと思いますよ。
リージョンを定義してとか・・・
Windows2000以後なら半透明 WS_EX_LAYERED を使うとか

それに、longhornではアプリ毎に別の描画面を持つようですしね。

797 :794:03/05/20 15:05
>>796

レス有難うございます。
ちょっとググってみたら結構難しそうだなあ、と。
VBなんかだとわりと出来るっぽいんですが。

アプリの中に枠を作ってその中に背景を表示。
イメ−ジとしては拡大鏡の拡大しない感じのを作ろうと思ったんですが。
delphiじゃ難しいんスかね。

当方、今までJAVA教徒だったんですが、結構delphiも面白いじゃん。
と思ってる今日この頃です。(でもまだまだ未熟ですが)

798 :デフォルトの名無しさん:03/05/20 15:09
>>797
いやだから、そのアプリだけ D6パーソナルで作ればいいじゃない。

799 :794:03/05/20 15:19
>>798

そういうテもありましたね。うっかりしてますた。
ちょっとD6で調べてみます。てか、D7でもいいのかな?。

800 :デフォルトの名無しさん:03/05/20 15:27
D5でも

SetWindowLong(Handle, GWL_EXSTYLE , GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);

でダメかな?

801 :794:03/05/20 17:22
D5とD6って互換性あんま。無いぽですね。。。

>>800

アドバイス有難うございます。
ちょっと今すぐは試せないんで、時間のあるときに試してみたいと思い鱒。

802 :デフォルトの名無しさん:03/05/20 17:37
D3で試したコード

function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF
; bAlpha: Byte; dwFlags: DWORD): Boolean; stdcall;
external user32 name 'SetLayeredWindowAttributes';

procedure TForm1.FormCreate(Sender: TObject);
const
  WS_EX_LAYERED = $80000;
  LWA_COLORKEY = $00000001;
  LWA_ALPHA = $00000002;
begin
 SetWindowLong(Handle, GWL_EXSTYLE , GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
 SetLayeredWindowAttributes(Handle,ColorToRGB(Color),0,LWA_COLORKEY);

end;

803 :デフォルトの名無しさん:03/05/20 17:47
あの、言語の難易度として
C++>C>Java>VB
というのはわかるんですが、Delphiはどのくらいなんですか。
VB以上Java未満?

804 :デフォルトの名無しさん:03/05/20 17:49
>>801
> D5とD6って互換性あんま。無いぽですね。。。
はぁ?

805 :デフォルトの名無しさん:03/05/20 17:50
>>803
C++>Java=Delphi>C>VB

806 :デフォルトの名無しさん:03/05/20 17:52
>>803

漏れの主観でもそんな感じ。

>>804
D5で作ったものがD6で動かないことはある。
上位互換と下位互換で違ってくるんだろうけど。

807 :seven:03/05/20 19:31
この[スレ|板]には、Delphiの神が、何故かウジャウジャいるので、ちょっと混み入った案件では、VBよりもDelphiが簡単なのかも。
つーか、すみません、VBのほうが簡単な案件が、今ちょっと思いつかないです。

808 :デフォルトの名無しさん:03/05/20 19:40
サーバーソケット使ったプログラムで、Openメソッドを呼び出すと
必ず終了時にEAccess〜クラスの例外が発生してしまいます。
でもこれ書いとかないと使えないのですが、どうすれば回避できますか?
お願いします。

809 :デフォルトの名無しさん:03/05/20 20:24
RichEditやMemoコントロールのスクロールバーをHotTrack形式に出来ないんですか?
上のコンポーネントに限らず他のも含めて。

810 :デフォルトの名無しさん:03/05/20 20:38
TScrollBarを使ったらどうですか?

811 :デフォルトの名無しさん:03/05/20 21:14
TFormにOnMinimizeやOnMaximizeが無いのは何故ですか?
デルファイの限界が垣間見えました。

812 :デフォルトの名無しさん:03/05/20 22:02
>>811
Delphiの限界じゃなくて君の限界だろw


813 :デフォルトの名無しさん:03/05/20 22:06
>>811
残念ながらそこが君の限界です。
悪いこと言わないので、VBに専念したほうがよいでしょう。

ちなみWindowsの仕組みさえ知っていれば、
WM_SIZEメッセージのwParamを調べれば、
いつ最大化、最小化したかすぐに知ることが出来ますけどね。

814 : :03/05/21 00:27
>>813
そんなイヤミ書いたら811がかわいそう(藁

815 :デフォルトの名無しさん:03/05/21 00:47
811は質問してるんじゃなくてDelをけなそうとしてるいつもの椰子だと思うけどな

とりあえず
procedure TForm1.WMSize(var Message: TWMSize);
begin
 case Message.SizeType of
  SIZENORMAL : DoSometing;
  SIZEICONIC : DoNothing;
  SIZEFULLSCREEN: DoAnything;
 end;
end;

Windowsアプリに関してはDelはほとんどオールマイティなんだから
アラを探しても無駄だよ
APIを使うのにいちいち自分で道を作らなくちゃいけない某人気開発環境とは違って
初めから道ができてて、しかもきれいに舗装してあるからね

816 :815:03/05/21 00:50
もし本当の質問者だったら
インターフェース部の書き方は自分で調べてみてほしい
procedure WMSize(var Message: TWMSize);
ではだめだよ

817 : :03/05/21 00:54
>>816
大丈夫。つまんねーネタだって(藁

818 :ミ;゚Д゚彡 ◆A6VzDeLphI :03/05/21 01:18
すません。
もう初心者向けではないのですが
APIでPopupMenuを出した場合
PopupMenuのフォントを変更するには
どうしたらいいのでしょうか?

ポインタでもいいので、教えてください。

819 :デフォルトの名無しさん:03/05/21 06:40
初心者向けではないと自覚してのカキコはだめです。
超初心者向けだよねと思い込んでカキコするのは可です。

話し変わるけど、Del6pro持っているのに、Del7per買っちゃった。
コンパイラがDCC32からDelphi32に変わっているのにビックルぐぃ。

820 :デフォルトの名無しさん:03/05/21 08:26
>>818 APIでなければ可能なのか?
WM_SETFONTを送ろうにもポップアップの窓ハンドルは取得出来ないし
SYSTEM_FONTを変更すれば全部変更されてしまう

821 :デフォルトの名無しさん:03/05/21 08:35
>>818
オーナードローする。WM_DRAWITEMとか参照。
かなりややこしい上、特定アプリでだけメニューのフォント変えられても
ユーザー混乱させるだけなので、多分やらない方がいいような気も。

なお、デフォルト項目を太字にしたいというのであれば別のフラグがあります。

822 :820:03/05/21 08:35
ああ、ゴメン。オーナDrawなら可能だね。
でも、WM_DRAWITEMメッセージは親窓に送られる。
だから、隠れた小窓を作ってそれを受け取らないといけない。
クラスを作って、メッセージディスパッチで処理させて
AllocateHWndでメソッドを登録してそれをTrackPopupMenuに渡したら? 



823 :821:03/05/21 08:46
TrackPopupMenuは、親ハンドルがアクティブで無い時の挙動が怪しかったり…。
というかAllocateHWndが使える→VCL使ってる→TPopupMenu使えばいいじゃん、になるので
素直に親ウィンドウのウィンドウ関数に書き足せばいいと思う。

824 :820:03/05/21 09:03
>>823
フサギコは小さなDLLを作りたいんだそうだ。
つまり親窓はアプリ側のハンドル。
確かにClasses を追加すれば多少大きくなるけど uses Menuするよりはマシだし
でも、AllocateHWndして SetParent で親子関係作ったんじゃうまくゆかないかな?


825 :821:03/05/21 09:15
>>824
>AllocateHWndして SetParent
やったことないなあ…。WS_POPUP付けてSetParentしてSetForegroundWindowして…ってやればできそうな気も。
ただ、そういう条件なら、スレッド限定のフックを試みるという手もある。

826 :820:03/05/21 09:23
そうだな。親窓のハンドル持ってるんだから SetWindowLongでフックしてしまうのも手か

827 :デフォルトの名無しさん:03/05/21 10:50
Del6にIndy9をインストしたんだけど
[致命的エラー] Project1.dpr(5): ユニット IdGlobal は異なるバージョン System.RTLVersion によりコンパイルされています
....とエラーが出て止まるんだけど対処方無いですか?

828 :デフォルトの名無しさん:03/05/21 12:20
>>827
US のサイトにある、日本語用の D6 Update3 を宛てる。
かな?

829 :Dale L. Fuller:03/05/21 12:21
日本側で公開されないね
オオノタンにメールでもしてみよう。


830 :ななしへたぐらま ◆XcB18Bks.Y :03/05/21 13:54
ここは超初心者向けスレッドだということが忘れさられつつある気が….
(…という私の書き込みも難しすぎたかなぁ,と反省.)

#超初心者向けではないスレッドが壊滅させられているので
 ここが避難所になっている状況も考えなければいけませんが….


831 :デフォルトの名無しさん:03/05/21 14:56
レベル的には「オブジェクトインスペクタ」って何ですか?。
位が丁度いいのか?。俺、丁度そんなレベルだし。。。

832 :デフォルトの名無しさん:03/05/21 14:59
クリックされてもフォーカスを受け取らないというか
アクティブにならないフォームを作りたいのですが
どうやったらよいのでしょうか?
ヒントだけでもください。

833 :ねこま:03/05/21 15:08
直前にフォーカスを持っていたウインドウにパスしたらどうでしょう

もしかしてエクスプローラのドラッグ開始みたいな事がしたいの?
だったら違うけど

834 :デフォルトの名無しさん:03/05/21 15:13
直前のウインドウが無くなっていたら?

835 :デフォルトの名無しさん:03/05/21 15:16
editで文字を右寄せする方法がわからないです。

836 :デフォルトの名無しさん:03/05/21 15:25
ttp://www.borland.co.jp/qanda/delphi/d0000090.html
Editのままする方法もあるけど、これでいいんじゃないの? 元は同じコントロールだし

837 :デフォルトの名無しさん:03/05/21 15:31
>>835
>>835著作権法上問題かも知れんけどな〜
↓行数が多すぎだったのでかなり削ったけど参考になるとは思うよ
published
 property Alignment: TAlignment read FAlignment write SetAlignment default taRightJustify;
end;

constructor TMyEdit.Create(AOwner: TComponent);
begin
 inherited;
 FAlignment:=taRightJustify;
end;
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.Style:=Params.Style or ES_MULTILINE;
 case FAlignment of
  taLeftJustify : Params.Style:=Params.Style or ES_LEFT;
  taCenter   : Params.Style:=Params.Style or ES_CENTER;
  taRightJustify: Params.Style:=Params.Style or ES_RIGHT;
 end;
end;
procedure TMyEdit.SetAlignment(const Value: TAlignment);
begin
 if FAlignment <> Value then
 begin
  FAlignment := Value;
  RecreateWnd;
 end;
end;

838 :832:03/05/21 15:38
>>833
どちらかというとWindowsにアクセサリでついてくる
スクリーンキーボードみたいなことがしたいです。

>直前にフォーカスを持っていたウインドウにパスしたらどうでしょう
これだとタイトルバーが一瞬青くなってまた灰色に戻るのですが
できれば全くフォーカスを移さないでやりたいです。

839 :デフォルトの名無しさん:03/05/21 15:58
Delphiみたいなマイナー言語やっても仕事は無いから
趣味以外では使えんぞ。エロゲ会社行くなら別だが。

840 :デフォルトの名無しさん:03/05/21 16:01
ここは学生とか引きこもり位しかいないから
情報を良く見極めたほうがいいぞ。
無駄な努力は出来るだけしないほうがいいに決まってる。

841 :デフォルトの名無しさん:03/05/21 16:20
いちおう書いとくが、ES_RIGHT は一行 Edit コントロールに対しては Win95/NT4 では
サポートされていません。Win98 / NT2000 以降。
もう気にしなくても良いプラットフォームだけどね。

842 :デフォルトの名無しさん:03/05/21 16:21
839=840
頑張って生きてね。

843 :835:03/05/21 16:24
>>836-837
ありがとうございます。なんとかできそうです。
もうひとつお聞きしたいのですが、editに数値以外を入力させない方法でいいのがありませんか?
今は、edit.textをint型にキャストして、エラーが起きたら再入力させる。みたいなことをやっているのですが、これだとイマイチって感じがします。


844 :ななしへたぐらま ◆XcB18Bks.Y :03/05/21 16:24
>>831
まさにそういうスレだと思います.たとえばオブジェクトインスペクタだと…

オブジェクトインスペクタというのはコンポーネントの表示を書きかえたり,ユーザーがコンポーネントに対してクリックとかの操作をしたときの処理を書いたりするときに使う.
Delphiを起動するとのっぺらぼう(死語か?)のフォームとその左にオブジェクトインスペクタが出てくるよ.
オブジェクトインスペクタの一番上のドロップダウンリストには Form1: TForm1 と表示されていると思うけど,これはForm1という名前で,TForm1という種類のコンポーネントの設定を表示していますよ,ということなんだ.

設定にはプロパティとイベントの2種類があって,表示内容などの設定がプロパティ,ボタンを押したときなどの動作がイベント.
たとえばフォームの見出しを書き換えたい場合はCaptionというプロパティで見出しの表示内容が決まるのでここを書き換える.
Delphiを起動したとき,オブジェクトインスペクタにはプロパティの一覧が表示されているのでCaptionと書いてあるところをさがしてみよう.
この欄の右側の文字列が見出しの内容をあらわしている.ここを書き換えるとフォームの見出しも変わるよ.

…って,こんな説明で大丈夫かなぁ.


845 :デフォルトの名無しさん:03/05/21 16:35
>>844みたいに、ネタとか釣りとか言わないで優しく答えてくれる人ばかり
だったら楽しいだろうなあと思いつつ、何も調べない教えて君の増加を懸念したり。

仕事レベルとか趣味レベルとか、んなこたーどうでもいいのにさ。
ただDelphi習いに来てるだけ・゚・(ノД`)・゚・。

846 :デフォルトの名無しさん:03/05/21 17:21
あほか(ゲラ

847 :デフォルトの名無しさん:03/05/21 17:31
↓ ↑
 →

848 :デフォルトの名無しさん:03/05/21 17:41
さいきんプログラムはじめました。
で、Label1.Captionの中で改行させたいんですけど、できないようなんです。
デルファイの限界が垣間見えました。

849 :831:03/05/21 17:51
>>844
すげぇ、わかりやすいっす。

>>848

改行させたかったら、CRLF入れれ。#13#10だっけ。


850 :デフォルトの名無しさん:03/05/21 18:01
>>848
その話題は以前やった
結論=できる
以上

851 :限界厨は ◆adhRKFl5jU :03/05/21 18:07
だよね

852 :デフォルトの名無しさん:03/05/21 18:42
>>848
つまらないからもう来るなよ。

853 :デフォルトの名無しさん:03/05/21 19:02
>>843
OnKeyDownイベントの中で、
if not (Key in ['0'..'9']) then Key := #0;
とかではダメですか?
バックスペースキーは許可した方がいいかもしれません。

854 :835:03/05/21 19:09
>>853
同時にバックスペースも許可するにはどうしたらいいでしょうか?

855 :831:03/05/21 19:19
すいません、質問なんですが、

ListBoxでスクロ−ルバ−が表示されてる時に、そのスクロ−ルバ−が
動いたことを読み取る方法はあるのでしょうか?。

スクロ−ルバ−が動いた時にイベントを発生させようと思ったのですが。
どなたかわかる方が居ましたら、宜しくお願いします。

856 :853:03/05/21 19:19
思い出せなかったので、調べてみたら、#8のようでした。あと、ハイフンも必要だという場合は#45です。
あと、OnKeyDownではなくOnKeyPressに書いてください。ごめんなさい。

857 :831:03/05/21 19:33
Delphiの限界が垣間見えました。

858 :デフォルトの名無しさん:03/05/21 19:36
Delphiなんか止めとけって。
金にならない物を時間かけてやって将来どうするんだ?
まだVBのほうが金になるぞ。
俺のお勧めはC,C++ Javaこの辺りがいいと思うぞ。
特にJavaは簡単だからDelphiやるならJavaやっとけ。
あとはLinux使えるようになれ。
*BSDは金にならんから辞めとけ。
就職、転職、派遣何でも役に立つぞ。
派遣でも時給4000円程度になるから
結構いい金になる。
Delphiだといくら出来ても企業じゃハァ?で終わりだぞ。

859 :デフォルトの名無しさん:03/05/21 19:36
>>849
ありがとう。なんとか限界を超えることができました。

860 :831:03/05/21 19:40
>>858

洩れ、企業でdelphiなんですが。。。それもバ−ジョン5限定です。
2カ月前までJAVAやってたんすけど、こういう人も居るんでdelphiでもいいんじゃないですかね。

>>859

良かったね。洩れも限界超えたいっす。

861 :デフォルトの名無しさん:03/05/21 19:42
あと、.NETはまだ将来が不透明だから手を出さんほうがいい。
簡単な物はVB、serversideはJavaとスクリプト言語
合間にC,C++を勉強しておけ。
これが一番金になる。

862 :デフォルトの名無しさん:03/05/21 19:46
>>860
珍しい企業だな。でも将来どうする?
潰しが利かんぞ。
あと、全角で英文字を書くな。
SEの基本だからな。

863 :デフォルトの名無しさん:03/05/21 19:48
こんなこと書かんでも良かったかな。
ライバルが増えるだけかもな。
お前らは大人しくDelphiやっとけ。
Delphi最高!!

864 :デフォルトの名無しさん:03/05/21 19:51
>>831
大体2通り方法があって、一つは
procedure XX.XXX(var message: TMessage);
begin
 if message.msg = WM_VSCROLL then ... //縦スクロールのとき。横ならWM_HSCROLL
 ListBox.WndProc(message);
end;
見たいなメソッドを用意して、ListBox.WindowProc := X.XXXとしてやる(XはXXのインスタンス)

865 :デフォルトの名無しさん:03/05/21 19:55
あとはスクロールイベントつきのListBoxコンポーネントを作る奴で
TMyListBox = class(TListBox)
procedure WMVScroll(var message: TWMVScroll); message WM_VSCROLL;
end;
procedure TMyListBox.WMVScroll;
begin
...
inherited;
end;
という感じ(残りの部分はウィザードが吐いてくれる)


866 :デフォルトの名無しさん:03/05/21 19:59
これはIDEでイベントを使えるようにしたもの
TMyListBox = class(TListBox)
private
 FOnVScroll: TNotifyEvent;
 procedure WMVScroll(var message: TWMVScroll); message WM_VSCROLL;
end;
procedure TMyListBox.WMVScroll;
begin
 if Assigned(FOnVScroll) then FOnVScroll(Self);
 inherited;
end;
久しぶりにDelのコード書いた。



867 :デフォルトの名無しさん:03/05/21 20:01
866の失敗。ごめん。
TMyListBox = class(TListBox)
private
 FOnVScroll: TNotifyEvent;
 procedure WMVScroll(var message: TWMVScroll); message WM_VSCROLL;
published
 property OnVScroll: TNotifyEvent read FOnVScroll write FOnVScroll;
end;
procedure TMyListBox.WMVScroll;
begin
 if Assigned(FOnVScroll) then FOnVScroll(Self);
 inherited;
end;


868 :デフォルトの名無しさん:03/05/21 20:10
失敗してしまうとは情けない。

869 :デフォルトの名無しさん:03/05/21 21:11
しんでしまうとはふがいない

870 :デフォルトの名無しさん:03/05/21 21:53
飲んでしまうとはもったいない。

871 :Delフサギコ ◆A6VzDeLphI :03/05/21 23:07
         アリガトウ アリガトウ  
 ∫,,,,,,,,,∧,,∧   Pluginな仕様の脳内保管まで
⊂,,,,,,,,,つ,,゚Д゚ミつ  してくれたアラガトウ>>823、他みなさん

"TPopupMenuだったらフォント変更は簡単なんだ"
と勝手に思ってますた。
そうか、OSでMenuのフォントは管理されてるんでしたか。

メニューを表示させたときに
[ >  ]挿入
[ '  ]挿入
[ // ]挿入
として、文字幅がそろわない
のが気になったんで等幅フォントにしたいなと。

スマソ、今日は疲れきってるので
スレを全部追うのもつらいす。


872 :いつも思うのだが:03/05/22 01:21
>スマソ、今日は疲れきってるので
みたいな「誰も聞いてないようなこと」を読ませる人って、
基本的に構って欲しいんだろうなぁ…って思う。
掲示板に「風邪をひいちゃって」とか書く人と同じ。
知らんて。
聞かれたら書けよ、って思う。

873 :デフォルトの名無しさん:03/05/22 01:48
そんなことにいちいち突っ込む君も(ry

874 :872 ◆ErG3fI.u3U :03/05/22 02:00
>>873
うむ。そーツッコミ来るとは思ったけど、素直な感想。

875 :ミ;゚Д゚彡 ◆A6VzDeLphI :03/05/22 02:06
許したもれ...
レスってくれた内容を試してからレスしたいんだけど
今日、無理ってことを言いたかったので。
ネタは質問スレではふらないですよ。

876 :デフォルトの名無しさん:03/05/22 03:48
>>872
お前は何故コテハンしてる時点で構って君だと見抜けない?

877 :876:03/05/22 04:19
名無しで通すオレってシニカル

878 :デフォルトの名無しさん:03/05/22 09:36
パソコンの処理が重いときにプログラムの処理が実行されると、
上に書いた行から一つ一つ実行されてるのが丸見えになってしまいます。
(たとえばボタンを押して、フォームのサイズが変わるものだと、まずHeightが変更されてから、Widthが変更されてるという順番が肉眼で分かったりする)
これを、一気にやる方法はないんでしょうか?

879 :デフォルトの名無しさん:03/05/22 09:41
変だねえ・・・処理が重い時には普通 WM_PAINTは溜められて一挙に変更される筈だが?

880 :デフォルトの名無しさん:03/05/22 10:05
SetBoundsで縦横同時に変更できるYO!

881 :デフォルトの名無しさん:03/05/22 10:18
う〜ん(--;)、一挙に変更されてるのに肉眼で見えてしまう私の動体視力が特異なだけでしょうかね?

>SetBounds
サイズ変更に限った話ではなかったけど、これは便利そうですね。いいこと知りました。
どうも。

882 :デフォルトの名無しさん:03/05/22 11:33
ほとんどのコンポーネントにはBeginUpdateみたいな機能もあるけど、
出来ない奴はウィンドウハンドルにWM_REDRAWFLAGメッセージ送って再描画をさせないようにする方法もある。


883 :デフォルトの名無しさん:03/05/22 12:22
プロジェクト オプションのコンパイラのオススメの設定を教えてください

884 :831:03/05/22 13:17
>>864

ありがとうございます。ちょっと試してみます。

885 :毛の生えたフサギコんだ中年戦士:03/05/22 13:28
Del7を買ったらエディタがおもしろい。それと誰か
Del.NETの解説ページ作りませんか。

886 :デフォルトの名無しさん:03/05/22 16:09
自分自身のプログラムが非アクティブ状態にある時、
タイマーイベントでアクティブにしたいんですが、どうすればいいんですか?

887 :デフォルトの名無しさん:03/05/22 16:10
const
IniFile = TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));

こんなふうにやりたいのですが、定数式が必要らしいです。
複雑になりそうですか?

888 :デフォルトの名無しさん:03/05/22 16:23
>>886
FormのOnDeactivateでタイマーを動かして
TimerのOnTimerでApplication.BringToFrontすればいいかも

889 :デフォルトの名無しさん:03/05/22 16:38
>>887
var IniFile :TIniFile;
として

initialization
IniFile = TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
finalization
IniFile.Free;IniFile:=nil;
end.
とするしかないかもね


890 :デフォルトの名無しさん:03/05/22 17:00
Delphi勉強開始には、どれがいいですか?
Personal
Studio Professional
Studio Enterprise
エンタープライズ高い…


891 :デフォルトの名無しさん:03/05/22 17:04
Enterpriseって言った所で買わないだろ?

892 :デフォルトの名無しさん:03/05/22 17:06
>>891
ん〜、今年のボーナス次第、です
会社で買ってくれと言っても、
Delphi開発できる人いないし


893 :デフォルトの名無しさん:03/05/22 17:07
勉強開始なら D6Personal だろ無料だしね
少し突っ込んで勉強したいなら Studio Professional がぜひ欲しい所だね。

894 :デフォルトの名無しさん:03/05/22 17:08
実はStudio Architect Trialっていうバージョンもある

895 :デフォルトの名無しさん:03/05/22 17:15
>>893
無料!?
とりあえずボーランドサイトに逝ってきます!!

>>894
名前から察するに、
エンタープライズより格上デツカ?
つ〜ことはさらにお値段の方も…
((((((;゚Д゚))))))ガクガクプルプル

896 :デフォルトの名無しさん:03/05/22 17:18
Integer型であり、またString型でもあるデータを保持するときにIntegerで保持してるのとStringで保持してるのではどちらが有利なんですか?

897 :デフォルトの名無しさん:03/05/22 17:20
有利というのは?

898 :デフォルトの名無しさん:03/05/22 17:20
>>895
気にするな。
Pro版で十分過ぎるコンポーネント。

899 :デフォルトの名無しさん:03/05/22 17:21
TQueryでRDBにUNICODE文字列を格納したいです。
AsStringで格納できますか?
出来れば、数行サンプルコードが欲しいでつ。

900 :899:03/05/22 17:23
ついでに、UNICODEとWideStringの関係も良く分かりません。
今までイコールだと思ってました。

901 :デフォルトの名無しさん:03/05/22 17:31
あれ、日本のサイトではArchitect紹介されてない?
USに日本語の対鍵盤あるのに

902 :896:03/05/22 17:32
忘れてください。

903 :896:03/05/22 17:41
型によって負担が大きいのとそうでのないのがあるのかなと思いまして。StringでいいのにWideStringを使ってみたり。

904 :896:03/05/22 18:02
> Integer型であり、またString型でもあるデータを保持するときに

プログラムが大規模になるとstringではサイズがでかすぎる、
intにするべきである、という場面は確かに存在します。
そういう時は「crc32.c」でgoogleしてみましよう。

905 :デフォルトの名無しさん:03/05/22 18:29
>>901
日本のサイトでは、
>>890
の3種類だけでした
見るところ間違った?だけかもしれませんがNE(;^_^ A


906 :デフォルトの名無しさん:03/05/22 19:02
>>890
クライアントサイドのDBアプリだとPro板
サーバーサイドだとEnt版
でないとライセンス違反になっちゃうよ
Personalやらは、DBをつかうコンポ無し。注意されたし


907 :890:03/05/22 19:07
>>906
了解シマスタ!!
って、まだソコまでのレヴェルでわ…


908 :デフォルトの名無しさん:03/05/22 19:25
Delphiなんて趣味でしか使(ry

909 :デフォルトの名無しさん:03/05/22 19:34
>>908
しっ!
それを言っちゃぁ(ry

910 :デフォルトの名無しさん:03/05/22 20:08
質問です。

NetWare3.12(だったと思う)サーバー上の上のOracle6.3に
アクセスするアプリをDel5Proで組みたいのですが、何が
必要になるのでしょうか?
今までDB系は扱ったことがなくてまず何をそれえればいい
のかもわからん状態でして。

よろしくお願いします。

911 :デフォルトの名無しさん:03/05/22 21:03
>>904
>プログラムが大規模になるとstringではサイズがでかすぎる、intにするべきである、という場面は確かに存在します。
CRCのxor用のテーブルのことでしょうか・・・・・・
それはサイズというより計算速度の問題で数値型が求められてるのだと思いますが。

912 :ちいさいアプリに挑戦中:03/05/22 21:09
var
 i: Integer;
begin
 i := 1;
 while i <> 0 do
end.
でループさせているのですが
CPU使用率が100%になってしまいます。
あ、私はメールチェッカーを作っています。
タスクトレイに入れる前に
まず終了しないためのループでつまずいてしまいました…
普通はどのようにループというのをやるのですか?

913 :デフォルトの名無しさん:03/05/22 21:10
TListViewをIconスタイルで使っていますが、
プログラムからフォーカスを
ListView1.ItemFocused := item;
ListView1.Selected := item;
として移動してもListViewの画面外に指定されたアイテムがあるままなのですが、
どうすればListViewの画面内にプログラムから指定したアイテムが表示される所まで
スクロールできますか?


914 :デフォルトの名無しさん:03/05/22 21:18
>>912
GetMessageやWaitForXXXXで、何か起きるまで待つ。

while 終了条件 do
begin
 何か起きるまで待つ
 何が起きたかに依って色々する
end

915 :デフォルトの名無しさん:03/05/22 21:33
>>912
[小さいタスクトレイ常駐アプリケーションを作りたい!!]  は試してみたの?
procedure TTaskTrayApp.Run; がその部分で

repeat
  if not ProcessMessage(msg) then WaitMessage;
until Terminated;

今度は、
TTaskTrayApp.ProcessMessag を見て。
  WM_QUIT が来たら Terminated:=Trueにして終了してるね?


916 :912:03/05/22 21:41
>>914
WaitForがばっちりですありがとうございます。
>>915
試してみましたが、
勉強のために作っていますので、
ShellAPIを使って自分で書こうと思っています。
ありがとうございます<(__)>

917 :デフォルトの名無しさん:03/05/22 22:03
Delphi IDEのバグにやられちまったよ
3時間の労働が無駄になった

918 :912:03/05/22 22:17
小さいタスクトレイ常駐アプリケーションを作りたい!!
はすごいメモリ消費しますね。
普通にアイコンはいるようにして作って3K程も
消費してます。
これならふつうにVCLのっけて作ったのと変わらないや…
メモリの掃除屋さんとか
全然消費してないけど
どうやってアイコンをタスクトレイに入れてるんだろう…
どなたかご存じないですか?

919 :デフォルトの名無しさん:03/05/22 22:58
Windows XPの最小必要メモリが64MBだから3Kは許容範囲ではないでしょうか

920 :デフォルトの名無しさん:03/05/22 23:01
アイコン画像が3k程あるとか言わないでね.。

921 :デフォルトの名無しさん:03/05/23 00:12
Mには単位を付けてKには付けない。か。Delphiユーザもレベルが下がったものだ・・・。

922 :デフォルトの名無しさん:03/05/23 03:17
>>921
思いっきりレベルの低いツッコミですね。

923 :デフォルトの名無しさん:03/05/23 06:20
>>922
レベルの低い人には添う見えるんでしょうね。

924 :デフォルトの名無しさん:03/05/23 08:33
>>923
添うなんですか。

925 :デフォルトの名無しさん:03/05/23 08:47
>>924
添うなんですよ、川崎さん。

926 :デフォルトの名無しさん:03/05/23 08:53
>>912
3K?3M(バイト)では?
ほとんど何もしないexeからでも、USER32.dllのウィンドウ作成とかメッセージ処理系のAPIを呼ぶと、
それだけで2Mぐらい消費しない?(Win2000)

927 :デフォルトの名無しさん:03/05/23 09:57
レベルの低い突っ込みですね

928 :毛の生えたフサギコ:03/05/23 12:11
さて、ゴールが見えてきました。

このスレッドはPart2はありません。

スレッドを使い切ったら相談室へどうぞ。

929 :デフォルトの名無しさん:03/05/23 17:20
>>918 そのた

今時主記憶 1G byte も当たり前。って時代なので考え方も変えていかなければならないのだけど。
仮想記憶が前提の Windows メモリマネージャーでの話。
メモリ割り当ては他の Win32 API に比べても処理速度が遅いため、できれば呼ばないほうが
アプリ全体の速度が上がる。だからといってメモリを消費しないわけには行かないから、多くの
アプリケーション(実際は処理系付属のランタイム)がある程度の大きさのメモリを起動時に確保し、
それをライブラリ内で小分け、および再利用します。
4K 以下のメモリを多量に消費するアプリケーションの場合、劇的な速度向上が見込まれます。

処理系付属のメモリマネージャーは、多くのアプリでそれなりの性能を出すように設計されているため
特殊用途には向きません。つーか特殊なことをおこなうにはメモリマネージャーをチューンナップする
必要があるわけだ。

ソースコードを持っているなら、メモリマネージャーのコードを読む。全部理解しなくても良いから
メモリの初期割当量、および割り当てメモリが足りなくなったときの再取得量を調整してごらん。
初期消費量が小さいアプリケーションを作ることができます。

ただ、それで VCL アプリを作っても、結局必要とするメモリ量は変わらないので最後には同程度の
消費量になるでしょう。その場合は非 VCL アプリを作るしかない。



930 :デフォルトの名無しさん:03/05/23 18:07
マイク端子から音声データを取り込みたいのですが
どういう風にすればよいでしょうか?

931 :デフォルトの名無しさん:03/05/23 18:17
MultiMediaAPIについて学習しる

932 :デフォルトの名無しさん:03/05/23 18:36
HeyMike(RECODING, START);

HeyMike(RECODING, STOP);

933 :デフォルトの名無しさん:03/05/23 19:02
>>917
3時間作業してバックアップのひとつもとらない椰子が悪い

934 :激裏情報さん:03/05/23 19:23
全く関係ないファイルをドロップしてもソフトが起動してしまうんですが、
これを防ぐにはどうすればいいんでしょうか?

935 :A:03/05/23 19:29
>>934
さすがに、起動すら防ぐことは出来ないと思うから、
プロジェクトファイルで、一番最初に、ファイルをチェックして
もし関係ないファイルだったら、そのまま終了すればいいんじゃない?

936 :デフォルトの名無しさん:03/05/23 19:40
想像以上の良スレにつき、くだスレシリーズを当分続けたいと思います

937 :激裏情報さん:03/05/23 20:57
>プロジェクトファイルで、一番最初に

それを前提としての質問だったのですが

938 :デフォルトの名無しさん:03/05/23 21:12
beginの直後に
ParamCount/ParamStr で引数を確認して、引数があってかつ拡張子が期待と違ったらダイアログだしたら?


939 :デフォルトの名無しさん:03/05/23 23:00
>>930
おれの知ってる限り、やり方は3種類あって。
1.TMediaPlayerを使う。
2.MCIコマンドを使う。
3.低レベルAPIを使う。

1.はヘルプ見ろ。
2.3は、下のページや書籍を参考に。
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
http://www.ascii.co.jp/pb/msp/36001/36001.htm


940 :デフォルトの名無しさん:03/05/23 23:04
どうも、まずはParamCount等について調べてからやってみます

941 :デフォルトの名無しさん:03/05/24 00:11
Bool型の変数に何も代入しなかった場合、Trueとして扱われるんですか?Falseとして扱われるんですか?

942 :デフォルトの名無しさん:03/05/24 00:12
試せよ。

943 :デフォルトの名無しさん:03/05/24 00:57
試した。

944 :デフォルトの名無しさん:03/05/24 00:57
試された。

945 :デフォルトの名無しさん:03/05/24 01:00
試す時。

946 :デフォルトの名無しさん:03/05/24 01:01
Formを使用せずに小さなアプリを作っています。
windowを表示する場合の無限ループのサンプルは
たくさんあるのですが
windowを作っていない場合の
無限ループの仕方がわかりません。
簡単なものはありませんか?
サンプルとして書いて頂けると嬉しいです。

947 :デフォルトの名無しさん:03/05/24 01:04
http://pc2.2ch.net/test/read.cgi/tech/1009080085/l10

948 :デフォルトの名無しさん:03/05/24 01:18
いま、Windowをウンコの形にしようと頑張ってます
メディアプレイヤーのように形が普通じゃないのを作るのは難しいですね

949 : :03/05/24 01:20
>>948
がんばれ。

950 :デフォルトの名無しさん:03/05/24 06:58
case ○○ of
1 : △△;
2 : □□;
end;


1 : △△;
2 : □□;
この部分だけを他のcase文で使い回ししたいのですが、何か良い方法はありますか?

951 :デフォルトの名無しさん:03/05/24 06:59
>>950
関数にでもしとけば?後設計見直すか。

952 :950:03/05/24 07:18
Imageをクリックした時の動作をTagごとに分けたいんです。
Imageは50個ぐらいでTagが1〜90ぐらいまであるので、caseの中身だけ使い回しできたら早いんですが。。
Image50個全部に↓を書いたら何千行になってしまいますよね。

case Image1.Tag of
 1 : 関数A;
 2 : 関数B;
 (以下略)
end;

この場合、caseで良いんでしょうか?
まだプログラミング始めて1週間なので、これ以外思いつきません。

953 :デフォルトの名無しさん:03/05/24 07:33
>>952
関数なら関数ポインタとTagとを型キャストで相互変換するとか
メソッドならメソッド配列を作って配列引数として呼び出すとかさ


954 :デフォルトの名無しさん:03/05/24 07:35
と書いた後で思ったのだが、Image.OnCickをTag毎に設定すればいいんじゃないの?

955 :デフォルトの名無しさん:03/05/24 07:39
>Imageは50個ぐらいで

モグラたたきゲームか?
どっちにしろ、アプローチの仕方が悪いぞ。

956 :デフォルトの名無しさん:03/05/24 07:44
DelphiのUTF-8ライブラリってみなさん何使ってますか?

957 :950:03/05/24 08:43
>>953
全然意味がわかりません(´Д⊂

>>955
もぐらたたきじゃないんですけど、どうしてもImageを使わないといけないツールなんです。

958 :950:03/05/24 08:57
自己解決です。

case (Sender as TImage).Tag of
 1 : 関数A;
 2 : 関数B;
 (以下略)
end;

でできました。
ありがとうございました。

959 :デフォルトの名無しさん:03/05/24 09:07
>>956
System.UTF8Decode/UTF8Encode
AnsiToUTF8 / UTF8ToAnsi
では足りない?どういった処理をしたい?

960 :デフォルトの名無しさん:03/05/24 09:18
>>959
おい。先に言って下さい。

今し方UCS2<->UTF-8変換ルーチン書き終えてマターリしてたのに・・・。

961 :デフォルトの名無しさん:03/05/24 09:58
すみません限界です。
メールチェッカーを作っている者ですが
アイコン上にマウスをもっていくと
エラーダイアログが大量に出て落ちてしまいます。
ソースを見て頂けませんか?
もう自分ではどこが悪いのかが分かりません…
ttp://isweb41.infoseek.co.jp/computer/ultra-k/test.txt
ここにテキスト形式であげました。
どうかよろしくお願いします<(__)>

962 :たぶん:03/05/24 10:19
TaskTrayWndProc 内で CheckIT 変数を参照していますが、
CheckIT変数には代入されないでしょう。

問題は、
1、コンストラクタ中でループしてる為に
  たとえば、  CheckIt:= TCheckIt.Create; としたとしても、TaskTrayWndProc メソッドが呼ばれる時には代入されてない

2、そもそも
if (Msg.LParam = LongInt(TaskBarReCreate)) then
 と Self を使えば CheckItを参照する必要はない


という事では?

963 :デフォルトの名無しさん:03/05/24 10:31
>>961
>エラーダイアログが大量に出て落ちてしまいます。

エラーメッセージ読まぬものにプログラムする資格無し。

964 :デフォルトの名無しさん:03/05/24 10:34
>>952
Image1にそれを書いて、
他のImageNのOnClickにImage1Clickを割り当てたらいいと思う。
またはActionList使う。

965 :デフォルトの名無しさん:03/05/24 10:42
>>961
一行目の時点でミスってるからじゃないの?

966 :デフォルトの名無しさん:03/05/24 11:43
>>965
ワラタ

967 :デフォルトの名無しさん:03/05/24 13:43
Delphi 6 RTL アップデート #3 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

968 :950:03/05/24 14:15
>>964
それだと、Image2の時もImage1のTagを参照してしまうと思うんですが。

969 :ななしへたぐらま ◆XcB18Bks.Y :03/05/24 14:17
>>941
 手続きまたは関数の中で宣言する変数(ローカル変数)の場合は最初の値はどちらかはわかりません.それ以外の場合はFalseです.
type
TForm1 = class(TForm)
private
FNantoka: boolean; // フィールド変数.初期値はFalse
procedure Foo;
end;

var
Kantoka: boolean; // グローバル変数.初期値はFalse

function HoeHoe: boolean; // 関数の場合.戻り値も初期値は不定.戻り値は必ず代入しなければならない.
var
Flag: boolean; // ローカル変数.初期値は不定
begin
(略)
end;

procedure TForm1.Foo; // メソッドの場合
var
Done: boolean; // ローカル変数.初期値は不定
begin
(略)
end;

 実際には毎回同じ値が返ってくるので一見大丈夫そうですが,保証されていない以上,同じ値が返ってくることを当て込んではいけません.(コンパイラオプションによっては値が変わるようです) また,ローカル変数の初期値が不定なのはboolean型変数以外でも同じです.


970 :デフォルトの名無しさん:03/05/24 14:23
Readmeを見てもアップデートの仕方が良く分かりませんでした。
なぜ、今までと違う複雑な形式でアップデートさせようとしているのでしょうか?
デルファイの限界が垣間見えまし(ry

971 :デフォルトの名無しさん:03/05/24 14:25
>>968
もっと頭使ってください・・・
Image1.Tagじゃなくて、Form1.Tagを使うとか

972 :デフォルトの名無しさん:03/05/24 14:27
次スレはこちら
http://pc2.2ch.net/test/read.cgi/tech/1052312038/l50

973 :デフォルトの名無しさん:03/05/24 14:30
脳内保管で意味分かんないこと書いてしまった(↑2行目)
何やりたいのか見えてこない。頭使えとしか言えない

974 :A:03/05/24 14:30
>>968
その為の、
case (Sender as TImage).Tag of
だと思うぞ。
解決したんじゃ……?

975 :950:03/05/24 14:33
>>971
頭使ったんですけど、自分の力ではどうしようもないから先人の知恵をお借りしようとここへ来たわけです。

>>974
解決したんですが、後レスだったんで、そっちの方が良いのかなぁと思ったんです。

976 :デフォルトの名無しさん:03/05/24 14:33
っていうか、もう上のほうで教えられてるのに、
それを調べもせず、分かろうともせずに「意味が分かりません」で終わらせているのはどういうことなんだろう。
ネタなんだろうか。

977 :デフォルトの名無しさん:03/05/24 14:47
>>972「フサギコとモナーの」って何か幼稚(というよりマニアック)な感じがするんだけど、なんとかならんか

978 :デフォルトの名無しさん:03/05/24 14:49
ギコ猫の相談室というスレがこの板が出来る前からあった。
その流れでフサギコやモナーが使われている。

979 :デフォルトの名無しさん:03/05/24 14:55
a

980 :デフォルトの名無しさん:03/05/24 14:55
aa

981 :デフォルトの名無しさん:03/05/24 14:56
aaa

982 :デフォルトの名無しさん:03/05/24 14:56
aaaa

983 :デフォルトの名無しさん:03/05/24 14:56
aaaaa

984 :デフォルトの名無しさん:03/05/24 14:56
aaaaaa

985 :デフォルトの名無しさん:03/05/24 15:04
そいつは知らなかったぜ

986 :デフォルトの名無しさん:03/05/24 15:08
そろそろ新スレ.....

987 :デフォルトの名無しさん:03/05/24 15:13

「くだらないDelphiはここに書き込め Part2」

988 :デフォルトの名無しさん:03/05/24 15:16
次スレ
http://pc2.2ch.net/test/read.cgi/tech/1052312038/l50

989 :デフォルトの名無しさん:03/05/24 15:16
sage

990 :デフォルトの名無しさん:03/05/24 15:17
sagege

991 :デフォルトの名無しさん:03/05/24 15:17
1000

992 :デフォルトの名無しさん:03/05/24 15:20
必見
http://www.microsoft.com/japan/msdn/vbasic/

993 :デフォルトの名無しさん:03/05/24 15:20
VB.NET最高

994 :デフォルトの名無しさん:03/05/24 15:22
993に釣られてみるか。

>>993
VB厨のふりしたDel厨死ね

995 :デフォルトの名無しさん:03/05/24 15:23
ランタイムエラー出るんでないの?

996 :デフォルトの名無しさん:03/05/24 15:25
Visual Basic .NET 2003 製品概要
http://www.microsoft.com/japan/msdn/vbasic/productinfo/overview/default.asp

Visual Basic .NET 2003 機能概要
http://www.microsoft.com/japan/msdn/vbasic/productinfo/features/default.asp

Visual Basic .NET 2003 にアップグレードする 10 の理由
http://www.microsoft.com/japan/msdn/vbasic/productinfo/topten/upgrade.asp

997 :デフォルトの名無しさん:03/05/24 15:27
Borland C#Builder
http://www.borland.com/csharpbuilder/

998 :デフォルトの名無しさん:03/05/24 15:28
次スレ
http://pc2.2ch.net/test/read.cgi/tech/1052312038/l50

999 :デフォルトの名無しさん:03/05/24 15:28
( ´д)ヒソ(´д`)ヒソ(д` )

1000 :デフォルトの名無しさん:03/05/24 15:29
100!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

260 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)