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

モナーの *やさしい* Delphi質問スレ Ver3

■ このスレッドは過去ログ倉庫に格納されています
0001DELモナーNGNG
01/10/15 11:36
DELモナーがどんな厨房疑問でもやさしく答えます。
DELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 ∧ ∧
( ´∀`)(    )


■前スレ

モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/

モナーの *やさしい* Delphi質問スレ Ver2
http://pc.2ch.net/test/read.cgi/tech/1011649179/
0002ヲッチャーNGNG
お疲れー>>1
で、誰なんだ?全くその通りだとは思うが厳しいな<Hotkeyちゃんの掲示板
2ちゃんねらじゃないのか?
0003デフォルトの名無しさんNGNG
毎回思うのだが、>>1よ

 ∧ ∧
( ´∀`)(    )

を

 ∧ ∧
( ´∀`)
(    )

に治してやれよ。モナー分割されたままだぞ。
0004デフォルトの名無しさんNGNG
 ∧ ∧
( ´∀`)(    )
0005デフォルトの名無しさんNGNG
>>3
C++相談室の v(^・^)v みたいなもんだ。気にするな。
0006デフォルトの名無しさんNGNG
 ∧ ∧
( ´∀`)(    )

 ∧ ∧  ∧ ∧
( ´∀`)(    )

 ∧ ∧  ∧ ∧
( ´∀`)(´∀` ) <オマエDelモナー
  ∧
Delモナー
0007デフォルトの名無しさんNGNG
奈々子さぁーん ハァハァハァハァ
0008ヲッチャーNGNG
しかし、言ってることも分かるしなぁ。
難しいところだ。彼のセンスは20年くらい前みたいだ。
もしかしてすごい年取ってるor子供なのか?
って、誰も知らんのか?
0009デフォルトの名無しさんNGNG
一応、
Borland 言語処理系プログラマー Watch スレ Part2
Delphi/CBuilder/JBuilder などの Borland 製品を使っている
プログラマーを観察するスレです。

http://pc.2ch.net/test/read.cgi/prog/1014384974/

があります。
0010 ◆10000jp. NGNG
(´∀`)<新スレ乙です〜 えへへ
0011デフォルトの名無しさんNGNG
くだらない質問でゴメンナサイ
personalでフリーソフトを作って配布してはいけないのでしょうか?
あと、データベース関連やWebアプリ関連以外でpersonalではできないことは
あるのでしょうか?
要するに、personal版で本格的なフリーソフトを作ってはいけない(作れない)のでしょうか?
0012デフォルトの名無しさんNGNG
>>11
そういう質問を匿名掲示板でされてもなぁ。返ってきた答えを信じるの?
D6 Personal を所有しているのなら、License.txt を読めばよい。

ここに最新のライセンスファイルがある。
http://www.borland.co.jp/delphi/del6/license.txt
001311NGNG
>12
フリーソフトだったらいい、としか読めないのですが・・・
解釈が間違っていますか?(ネタや煽りではありません)
0014デフォルトの名無しさんNGNG
>>13
いいんでない?

で、本格的なフリーソフトってなによ?
001511NGNG
元々VisualC++を使っていて、最近Delphipersonalを使い出したクチですけど
フリーソフトを作るならDelphiの方が作りやすいのは自明なので
Delphiでフリーソフトを作ろうと思っています。

しかし作っている内にpersonalの機能制限やライセンス制限の壁に
ぶち当たってしまうのでは、という不安があるわけです。

そもそもシェアにしようなどという考えはありません。

でも、「Delphiを使い倒したら、嫌でもprofessional版を買いたくなるよ」
という発言が過去にありましたね・・・
0016デフォルトの名無しさんNGNG
んだから、本格的なフリーソフトってなによ?

本格的でないフリーソフトとの違いを説明してくれ。
0017デフォルトの名無しさんNGNG
直接的にも間接的にも対価を受け取らなければよいというライセンスだと思う。
只で配るなら抵触しない。(CD-R代とか)実費程度でも受取ったらダメ。
0018デフォルトの名無しさんNGNG
>>17
配布HPでバナー広告を表示するのはどうだろう?
0019デフォルトの名無しさんNGNG
>直接的にも、間接的にも、アプリケーションプログラムの配布または使用について、
>いかなる報酬も受け取ってはなりません。

です。契約文章の最終判断は契約当事者間(この場合特定プログラマーとボーランド)との
話し合い、および食い違った場合には裁判所のみが介入できますから、第三者の私が答えを出すことは
不可能です。

「アプリケーションをダウンロードさせるページでバナー収入を得る」のは
グレーゾーンでしょう。まぁボーランドがいちいちチェックすることもないでしょうけど。

... バナーって儲かるの?ちょっと心が揺れたぞ。
0020デフォルトの名無しさんNGNG
バナー広告の場合は、プログラムの配布や使用の見返りとして
ユーザから報酬を受け取るわけではないので可なのでは?

あくまでWebページの一部を広告スペースとして提供することに対して
広告代理業者から対価を受け取っているに過ぎない・・・と言ってみるテスツ

0021デフォルトの名無しさんNGNG
>>20
自分もそう思う。ソフトの見返りとしての報酬ってわけじゃないし。
0022デフォルトの名無しさんNGNG
じゃあすんごいソフト作って
「雑誌に載せさせてくれ」って言ってきた出版社から謝礼もらうのは禁止か・・・な。
0023デフォルトの名無しさんNGNG
>>22 といわれてから買ってもまにあうでしょ

ところで、personalでもWindoewsAPIに精通さえしていれば機能的には問題ないけど
コンポーネントを自作しようという場合にはVCLソースが無いと厳しいと思うよ
0024デフォルトの名無しさんNGNG
>>22
そんな礼儀を知る雑誌など日本には無い
0025デフォルトの名無しさんNGNG
つーかそんなすごいソフト作れるようになったらProfessional欲しくなるって絶対。
機能的にはPersonalも十分だけど、バリバリ使うならやっぱりコードエクスプローラ欲しいもんね。
0026デフォルトの名無しさんNGNG
>>22
それはどう見ても「配布の見返りとしての報酬」ではないかな?
相手はそういう名義で領収書送ってくるぞ。
0027デフォルトの名無しさんNGNG
まぁまずはすんごいソフト作らなきゃいけ無いなぁ
0028名無しヘタぐらま ◆B18Bks.Y NGNG
>>15
フリーソフトの開発ツールとしてのpersonalとprofessionalの差は
・ライブラリのソースコードがない
・統合環境の一部の支援機能がない
くらいしかないように思います.

どちらもあると便利ですがなくても何とかなるものではないかと思います.
後者はDelphi3や4でついた機能ですし.

私は初代と2.0までは一番安いやつでしたが困らなかったです.
(あのころは一番安いやつにもデータベースがついてましたが全然使ってなかった)
むしろVBと違ってこれだけで何でもできるのが嬉しくて….

3からプロ版を使っていますが,
バージョンアップ時は一番安いやつからプロ版への移行がかなり安かったからという
消極的な理由でした.(会社のお金でしたし)
0029名無し募集中。。。NGNG
Delphiのライブラリソースは理解を深めるのに大切。
D1の時に悲しい思いをしたので、D2でプロ版に変えた。
0030デフォルトの名無しさんNGNG
厨房な質問でスマソ
TreeviewにImagelistでイメージ(アイコン)を割り当てて表示すると
ノードを選択したとき割り当てたイメージでなくImagelistの0番目
のイメージに変わってしまうのですが仕様なんですか?
0031デフォルトの名無しさんNGNG
>30
イメージ用のインデックスって通常と選択時の二つがあって
選択時の値が0なんでは。
ツリービューの項目設定するフォームで指定できる。
0032デフォルトの名無しさんNGNG
他にイメージリストとが設定できる項目はStateImagesだけなので
これもImagesと同じイメージリストにしておいたのですが・・・
0033デフォルトの名無しさんNGNG
>>30-32
すいません。解決しました(自己レス)
ノードの方にindexを指定し忘れていただけでした。
間抜けでゴメン
0034デフォルトの名無しさんNGNG
いいんじゃん、とりあえずパーソナル版で作っても。
後でプロ版が必要になっても、べらぼうに高えわけでもないし。
0035デフォルトの名無しさんNGNG
.NETって、まじ、何者なんですか?
DELPHI.NET とか…?
0036デフォルトの名無しさんNGNG
みなさん、こんばんは

ボタンをクリックすると「へこんだ状態」
再度ボタンをクリックすると「でっぱった状態」といった、
ボタンの形状でOn/Offを切り替えられるような
ボタンを使いたいのですが、Delphiではどうすればよいのでしょうか?

VBから移行してDelphiを使っているのですが、
こういったトグルボタンってVBだけなのでしょうか・・・
0037デフォルトの名無しさんNGNG
>>36
TToolBar を使ってみるとか
003842NGNG
>>36
 色んな方法があります。
 一つの方法は、パネルを貼り付けて
ダブルクリックして

procedure TForm1.Panel1Click(Sender: TObject);
begin
with Sender as TPanel do BevelOuter:=TBevelCut(ord(BevelOuter) xor 3);
end;
0039デフォルトの名無しさんNGNG
>>36
SpeedButtonとか
0040名無しさんですNGNG
IEなどの検索のようなモーダル表示のフォームはDelでは
どうやるのでしょうか?
0041デフォルトの名無しさんNGNG
>>40
死ぬほど検索して質問してるのだろうな?マジで。
0042デフォルトの名無しさんNGNG
>40
IEの検索はモードレスだわさ。
だからShowModalせずにShowすれ。
0043デフォルトの名無しさんNGNG
なんで「delphi モーダル 表示」って検索しないのかが分からん。
http://www.google.co.jp/search?q=%82%84%82%85%82%8C%82%90%82%88%82%89%81@%83%82%81%5B%83_%83%8B%81@%95%5C%8E%A6&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=
好きなだけ死ぬまで検索してこい。
00449NGNG
>>43
飛び先がグロ画像だったら笑える。
004543NGNG
即興でデコードするツール作って調べてみやがれ(藁
004640NGNG
showにすると親ウインドウにフォーカスが移せないですが…。
例えばVBだと 「show 0」とすると呼び出し側を操作できるように
なるのですが。
0047デフォルトの名無しさんNGNG
>>36
>ボタンをクリックすると「へこんだ状態」
>再度ボタンをクリックすると「でっぱった状態」といった、

これは、本来、チェックボックスの機能です。「へこんだ状態」が Checked
:= true; に相当しています。見かけをお望みのようにするには、スタイルに
BS_PUSHLIKE を加えます。たとえば、Form1 に CheckBox1 を置いて

procedure TForm1.FormCreate(Sender: TObject);
var
ST:LongInt;
begin
ST := GetWindowLong(CheckBox1.Handle,GWL_STYLE);
ST := ST or BS_PUSHLIKE;
SetWindowLong(CheckBox1.Handle,GWL_STYLE,ST);
end;

とすると外観がプッシュボタンのチェックボックスになります。
TCheckBox を継承して、property Pushlike:Boolean のような
プロパティーを持つようなコンポーネントを作るのは簡単です。
0048デフォルトの名無しさんNGNG
>>46
VBやってろ。
0049デフォルトの名無しさんNGNG
アプリケーションのタイトルを表示後、
3秒後にCloseしてメニュー画面を表示させたいのですが、
タイトルフォームがメインフォームに設定されているため、
タイトルのCloseの段階でアプリケーションが終了してしまいます。

1.タイトル表示(メインフォームに設定されている)
2.タイマーイベントでClose
3.メニューを表示

2.3を入れ替えてみましたが同様でした。

こういった場合は、どのようにすれよいのでしょうか?

005040NGNG
>>48
Delではできないと言うことですか?

Del製のエディタなどの検索フォームは一回一回閉じるのが
多かったのでもしかして特殊なことをしないとできないのかと
なんとなく思いました。
ただ単にDelではこのやり方が流行ってるの?
0051デフォルトの名無しさんNGNG
>>40
>showにすると親ウインドウにフォーカスが移せないですが…。
そんなことはありません。たとえば Form1 から Form2 を Show するとき

uses
Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
SetFocus;
end;

とします。検索のダイアログのようにしたければ、 Form2 の BorderStyle を
bsDialog に設定し、CreateParams() を以下のように override します。

type
TForm2 = class(TForm)
private
{ Private 宣言 }
public
procedure CreateParams(var Params: TCreateParams); override;
end;

var
Form2: TForm2;

implementation

{$R *.DFM}

uses
Unit1;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := Form1.Handle;
end;
0052デフォルトの名無しさんNGNG
>>40
放置決定

>>49
スプラッシュ?
0053デフォルトの名無しさんNGNG
>>49
>1.タイトル表示(メインフォームに設定されている)
>2.タイマーイベントでClose
>3.メニューを表示

意味が分かるのは2だけです。
1はひょっとしてスプラッシュのことかな?
3は意味がわかりません。メニュー単独で表示、ということ?

0054デフォルトの名無しさんNGNG
delphiとかIEみたいに、起動に時間がかかるヤツの前に
表示させて起動したら消すってヤツをしたいんじゃないの?
よーするにスプラッシュでしょ?違うの?
だったら検索すれ。「スプラッシュ」で。
0055デフォルトの名無しさんNGNG
>>49
>タイトルフォームがメインフォームに設定されているため、

Delphi では、プロジェクトファイルで最初につくられるフォームが
Application.MainForm になります。MainForm が閉じるとアプリケーションが
終了してしまいます。スプラッシュウィンドウは、MainForm 以外の Form で
作るべきです。
005640NGNG
>>51
おかげさまでできました。ありがとうございます。
ただ後半の部分は何をやっているかサッパリなので
調べてみます。
005751NGNG
>>56
>ただ後半の部分は何をやっているかサッパリなので

Delphi では、デフォルトですべての Form は、Application ウィンドウに
所有されています。Form2 をつねに Form1 より手前に表示させるために、
CreateParams() を override して、Form2 のオーナーを Form1 にしている
わけです。
0058デフォルトの名無しさんNGNG
>>常に手前に表示
Form2.FormStyle = fsStayOnTop

>>スプラッシュ
frmTitle, frmMain の2つがあったとしよう。
どっちがどっちかは名前から連想。

プロジェクト→オプション→フォームで、
frmTitle を「自動生成」から「選択可能」へ移動する。

つぎに、表示→ユニットを表示→Project1.dpr (デフォルトでの名前)に
uses
 ShellApi;
var
 Start:Integer;
try
 { 開始時刻を記録 }
 Start := GetTickCount;
 { 表示 }
 frmTitle.Create( Application );
 frmTitle.Show;
 { 時間のかかる処理 }
 Application.CreateForm( TfrmMain, frmMain);

 { 最低3秒たつまで待つ }
 while GetTickCount-Start < 3000 do;

 { 後始末 }
 frmTitle.Close;
 frmTitle.Free;

 { 本体を実行 }
 Application.Run;
0059デフォルトの名無しさんNGNG


try→begin
006040NGNG
>>57
わかりやすい説明ありがとうございました。
006136NGNG
>>37 >>38
 ありがとうございます、両方試して>>38さんの方法を使うことにしました。
 
>>39
 SpeedButtonをどのようにすれば実現できるかわからなかったので、
 試すことができませんでした、すいません

みなさん、ありがとうございました。
 
0062デフォルトの名無しさんNGNG
>>61  >>47 も無視してやるなよ

0063デフォルトの名無しさんNGNG
THotKeyで、バックスペースキーをショートカットとして入力したいのですが、
「なし」になってしまいます。
バックスペースはショートカットとして入力できないのでしょうか?
0064デフォルトの名無しさんNGNG
>>61
遅レスだが、CLXアプリだとそのものずばりのTButton.ToggleButtonがある。

TSpeedButtonだとGroupIndexを0以外にしてAllowAllUpをtrueにすれば良し。
0065ねこまNGNG
'BkSp'
0066デフォルトの名無しさんNGNG
>>65
ユーザがどうやって入力するの?
0067デフォルトの名無しやんNGNG
今日基礎からわかるDelphi6買ったんですが、
途中から分からなくなってしまいました。
どこが分からないかと言いますとObjctPascal入門というとこです。
16進数やら文字型等です。まだ44ページ目なのですが・・・。
どうゆう風に学んでいけばいいのでしょうか?
0068デフォルトの名無しさんNGNG
>>67
気にしないでどんどん前進する。最後まで行ってから、
また戻ってくる。これを繰り返す。あとは、とりあえず、
なにを作りたいか、目的を定めて、それから、具体的な
問題を設定し、解決してゆくにはどうしたらよいかを考
える。
0069デフォルトの名無しやんNGNG
>>68
どうも。しかし何も分からないんですよ。
例えばいくつか命令が分かればそれを組み合わせていろいろ作れると
思うのですが、ほとんど分からない状態でして・・・。
今分かるのはShowmessage('Hello The World');
くらいです(藁
0070デフォルトの名無しさんNGNG
じゃあひたすらいろんなshowmessageしろ
0071デフォルトの名無しさんNGNG
ShowMessage長いよね。俺が一番最初に作った関数はSayだったよ
Say(Integer)とSay(String)のオーバーロードで。
0072デフォルトの名無しさんNGNG
showmessage('Who');
showmessage('are');
showmessage('you?');
0073デフォルトの名無しさんNGNG
ほんと初心者的質問で悪いのですがDUMP(スペル違ってるかも・・)
ってなんですか?
前から気になってました・・・
0074デフォルトの名無しさんNGNG
沖縄アクターズスクール初の男のダンスユニットです。
0075デフォルトの名無しさんNGNG
それはあなたの心の中に潜むもう一人のあなたです。
007667NGNG
Webページでも作って頑張るかな。
007768NGNG
>>69
じゃ、オレが具体的な課題を出す。

1.Form1 に3コのTEdit、つまり Edit1、Edit2、Edit3、と Button1 を配置
2.Edit1 と Edit2 には整数の文字列を入力するものとする
3.Button1 を押すと Edit1 と Edit2 の数値の和を求めて、Edit3 に表示

ヒント
・TEdit クラスの Text プロパティーについてヘルプを調べる
・IntToStr( ) 関数 と StrToInt( ) 関数について調べる

以上の課題を解いて、Button1Click ハンドラをここに示せ
0078HotKey!NGNG
HotKey!
007967NGNG
すいません、1.しかできません。
本当に情けないです。
008067NGNG
又明日出直してきます。
0081Button1Click ハンドラNGNG
10 print "オマンコ"
20 goto 10
008268NGNG
>>67
うん、そうか、ではここを出発点としよう。
1.までできたなら Button1 をダブルクリックする。そうすると
コードエディタに Button1Click ハンドラが自動的に生成する。

そうしたら、

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := IntToStr(StrToInt(Edit1.Text)+100);
end;

と書いたら、F9 を押して実行する。
そして、実行時に Edit1 に、たとえば 333 と入力して、Button1 を
押すと Edit3 に 433 と表示されるのを確認。

とりあえず、ここまで。OK?


008368NGNG
>>67

おいこら! まだ寝るな!
0084デフォルトの名無しさんNGNG
寝られた68に乾杯(藁
008568NGNG
>>84
乾杯!!
まぁーったく、もう。
ここでチュートリアルしようとしたことに
無理があったかなぁ?
0086デフォルトの名無しさんNGNG
1.本当に眠たかった。
2.「教えてやるから」という上からの態度に67がカチン!と来た。
3.分からんし、面倒だ。後は見てよう。

どれかであろう。2じゃねーのか(藁
0087デフォルトの名無しさんNGNG
16進数とか文字型とか言ってるから、まだボタン配置とかまで
行ってないんじゃ?

うちのDelphi5の本だと
型の説明→条件文など→コンポーネントの使い方
ってなってますよ。
008868NGNG
>>86
>2.「教えてやるから」という上からの態度に67がカチン!と来た。

ふーん、これだとすると、オレにはもうこれ以上のことはできないね。
なるほど......
008967NGNG
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text))
end;
009068NGNG
>>67

ぱちぱちぱち....

もう寝ます
009167NGNG
また、明日もよろしくお願いします。
0092デフォルトの名無しさんNGNG
おいおい、おまえは67が一人前になるまで面倒見る気かよ
バカじゃねーの
0093デフォルトの名無しさんNGNG
--GridのカラムでComboBoxスタイルで入力したい-----------
今までは、毎回非表示のComboBoxを実行時に乗せてやる
よく使われる方法でやってましたが、最近Grid使う事が多くて
毎回だと無駄な気がしてきまして挑戦中です。

そんなこんなで、
StringGridから派生させた自作のGridコンポを作成して、
カラム毎に属性をTInplaceEditListで保存してやって、
それを使ってコンボのカラムなのかを判断させようと考え
ています、でも、そもそも属性の設定とか出来ても、
ComboBox形式にするってのが雲をつかむような感じで
困ってます。

0094デフォルトの名無しさんNGNG
>>93
なんだそのコピペまるだしなのは?
0095デフォルトの名無しさんNGNG
コピペじゃないんですが・・・。
0096デフォルトの名無しさんNGNG
VCLソースのTDBGridの実装を参考にな。
0097デフォルトの名無しさんNGNG
68は偉いなあ・・・。乾杯したい
0098 ◆10000jp. NGNG
(´∀`)<乾杯
0099デフォルトの名無しさんNGNG
TDBGridのAnchorsプロパティを
akLeft = True
akRight = True として、
フォームのリサイズにあわせてGridの幅きさを変わる様にしているのですが、
Gridの各項目の列幅はリサイズされません。

Gridの列幅リサイズできないものなのでしょうか?
0100デフォルトの名無しさんNGNG
DelphiでCGI使いたいんですけど、GETを変数にしたいです。
どうすればいいですか?Delphi6使ってます
0101質問!NGNG
本日からDelphiの勉強を始めました。
色々聞きたいこともあるのですが・・・まず。

えっと、「Delphi」
読み方はデルファイですか?デルフィですか?
あんまりな質問ですがなにとぞよろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています