モナーの *やさしい* Delphi質問スレ Ver3
レス数が1000を超えています。これ以上書き込みはできません。
0001DELモナー
NGNGDELモナーがどんな厨房疑問でもやさしく答えます。
DELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
∧ ∧
( ´∀`)( )
■前スレ
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/
モナーの *やさしい* Delphi質問スレ Ver2
http://pc.2ch.net/test/read.cgi/tech/1011649179/
0002ヲッチャー
NGNGで、誰なんだ?全くその通りだとは思うが厳しいな<Hotkeyちゃんの掲示板
2ちゃんねらじゃないのか?
0003デフォルトの名無しさん
NGNG∧ ∧
( ´∀`)( )
を
∧ ∧
( ´∀`)
( )
に治してやれよ。モナー分割されたままだぞ。
0004デフォルトの名無しさん
NGNG( ´∀`)( )
0005デフォルトの名無しさん
NGNGC++相談室の v(^・^)v みたいなもんだ。気にするな。
0006デフォルトの名無しさん
NGNG( ´∀`)( )
∧ ∧ ∧ ∧
( ´∀`)( )
∧ ∧ ∧ ∧
( ´∀`)(´∀` ) <オマエDelモナー
∧
Delモナー
0007デフォルトの名無しさん
NGNG0008ヲッチャー
NGNG難しいところだ。彼のセンスは20年くらい前みたいだ。
もしかしてすごい年取ってるor子供なのか?
って、誰も知らんのか?
0009デフォルトの名無しさん
NGNGBorland 言語処理系プログラマー Watch スレ Part2
Delphi/CBuilder/JBuilder などの Borland 製品を使っている
プログラマーを観察するスレです。
http://pc.2ch.net/test/read.cgi/prog/1014384974/
があります。
0011デフォルトの名無しさん
NGNGpersonalでフリーソフトを作って配布してはいけないのでしょうか?
あと、データベース関連やWebアプリ関連以外でpersonalではできないことは
あるのでしょうか?
要するに、personal版で本格的なフリーソフトを作ってはいけない(作れない)のでしょうか?
0012デフォルトの名無しさん
NGNGそういう質問を匿名掲示板でされてもなぁ。返ってきた答えを信じるの?
D6 Personal を所有しているのなら、License.txt を読めばよい。
ここに最新のライセンスファイルがある。
http://www.borland.co.jp/delphi/del6/license.txt
001311
NGNGフリーソフトだったらいい、としか読めないのですが・・・
解釈が間違っていますか?(ネタや煽りではありません)
0014デフォルトの名無しさん
NGNGいいんでない?
で、本格的なフリーソフトってなによ?
001511
NGNGフリーソフトを作るならDelphiの方が作りやすいのは自明なので
Delphiでフリーソフトを作ろうと思っています。
しかし作っている内にpersonalの機能制限やライセンス制限の壁に
ぶち当たってしまうのでは、という不安があるわけです。
そもそもシェアにしようなどという考えはありません。
でも、「Delphiを使い倒したら、嫌でもprofessional版を買いたくなるよ」
という発言が過去にありましたね・・・
0016デフォルトの名無しさん
NGNG本格的でないフリーソフトとの違いを説明してくれ。
0017デフォルトの名無しさん
NGNG只で配るなら抵触しない。(CD-R代とか)実費程度でも受取ったらダメ。
0018デフォルトの名無しさん
NGNG配布HPでバナー広告を表示するのはどうだろう?
0019デフォルトの名無しさん
NGNG>いかなる報酬も受け取ってはなりません。
です。契約文章の最終判断は契約当事者間(この場合特定プログラマーとボーランド)との
話し合い、および食い違った場合には裁判所のみが介入できますから、第三者の私が答えを出すことは
不可能です。
「アプリケーションをダウンロードさせるページでバナー収入を得る」のは
グレーゾーンでしょう。まぁボーランドがいちいちチェックすることもないでしょうけど。
... バナーって儲かるの?ちょっと心が揺れたぞ。
0020デフォルトの名無しさん
NGNGユーザから報酬を受け取るわけではないので可なのでは?
あくまでWebページの一部を広告スペースとして提供することに対して
広告代理業者から対価を受け取っているに過ぎない・・・と言ってみるテスツ
0021デフォルトの名無しさん
NGNG自分もそう思う。ソフトの見返りとしての報酬ってわけじゃないし。
0022デフォルトの名無しさん
NGNG「雑誌に載せさせてくれ」って言ってきた出版社から謝礼もらうのは禁止か・・・な。
0023デフォルトの名無しさん
NGNGところで、personalでもWindoewsAPIに精通さえしていれば機能的には問題ないけど
コンポーネントを自作しようという場合にはVCLソースが無いと厳しいと思うよ
0024デフォルトの名無しさん
NGNGそんな礼儀を知る雑誌など日本には無い
0025デフォルトの名無しさん
NGNG機能的にはPersonalも十分だけど、バリバリ使うならやっぱりコードエクスプローラ欲しいもんね。
0026デフォルトの名無しさん
NGNGそれはどう見ても「配布の見返りとしての報酬」ではないかな?
相手はそういう名義で領収書送ってくるぞ。
0027デフォルトの名無しさん
NGNG0028名無しヘタぐらま ◆B18Bks.Y
NGNGフリーソフトの開発ツールとしてのpersonalとprofessionalの差は
・ライブラリのソースコードがない
・統合環境の一部の支援機能がない
くらいしかないように思います.
どちらもあると便利ですがなくても何とかなるものではないかと思います.
後者はDelphi3や4でついた機能ですし.
私は初代と2.0までは一番安いやつでしたが困らなかったです.
(あのころは一番安いやつにもデータベースがついてましたが全然使ってなかった)
むしろVBと違ってこれだけで何でもできるのが嬉しくて….
3からプロ版を使っていますが,
バージョンアップ時は一番安いやつからプロ版への移行がかなり安かったからという
消極的な理由でした.(会社のお金でしたし)
0029名無し募集中。。。
NGNGD1の時に悲しい思いをしたので、D2でプロ版に変えた。
0030デフォルトの名無しさん
NGNGTreeviewにImagelistでイメージ(アイコン)を割り当てて表示すると
ノードを選択したとき割り当てたイメージでなくImagelistの0番目
のイメージに変わってしまうのですが仕様なんですか?
0031デフォルトの名無しさん
NGNGイメージ用のインデックスって通常と選択時の二つがあって
選択時の値が0なんでは。
ツリービューの項目設定するフォームで指定できる。
0032デフォルトの名無しさん
NGNGこれもImagesと同じイメージリストにしておいたのですが・・・
0033デフォルトの名無しさん
NGNGすいません。解決しました(自己レス)
ノードの方にindexを指定し忘れていただけでした。
間抜けでゴメン
0034デフォルトの名無しさん
NGNG後でプロ版が必要になっても、べらぼうに高えわけでもないし。
0035デフォルトの名無しさん
NGNGDELPHI.NET とか…?
0036デフォルトの名無しさん
NGNGボタンをクリックすると「へこんだ状態」
再度ボタンをクリックすると「でっぱった状態」といった、
ボタンの形状でOn/Offを切り替えられるような
ボタンを使いたいのですが、Delphiではどうすればよいのでしょうか?
VBから移行してDelphiを使っているのですが、
こういったトグルボタンってVBだけなのでしょうか・・・
0037デフォルトの名無しさん
NGNGTToolBar を使ってみるとか
003842
NGNG色んな方法があります。
一つの方法は、パネルを貼り付けて
ダブルクリックして
procedure TForm1.Panel1Click(Sender: TObject);
begin
with Sender as TPanel do BevelOuter:=TBevelCut(ord(BevelOuter) xor 3);
end;
0039デフォルトの名無しさん
NGNGSpeedButtonとか
0040名無しさんです
NGNGどうやるのでしょうか?
0041デフォルトの名無しさん
NGNG死ぬほど検索して質問してるのだろうな?マジで。
0042デフォルトの名無しさん
NGNGIEの検索はモードレスだわさ。
だからShowModalせずにShowすれ。
0043デフォルトの名無しさん
NGNGhttp://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=
好きなだけ死ぬまで検索してこい。
004543
NGNG004640
NGNG例えばVBだと 「show 0」とすると呼び出し側を操作できるように
なるのですが。
0047デフォルトの名無しさん
NGNG>ボタンをクリックすると「へこんだ状態」
>再度ボタンをクリックすると「でっぱった状態」といった、
これは、本来、チェックボックスの機能です。「へこんだ状態」が 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デフォルトの名無しさん
NGNGVBやってろ。
0049デフォルトの名無しさん
NGNG3秒後にCloseしてメニュー画面を表示させたいのですが、
タイトルフォームがメインフォームに設定されているため、
タイトルのCloseの段階でアプリケーションが終了してしまいます。
1.タイトル表示(メインフォームに設定されている)
2.タイマーイベントでClose
3.メニューを表示
2.3を入れ替えてみましたが同様でした。
こういった場合は、どのようにすれよいのでしょうか?
005040
NGNGDelではできないと言うことですか?
Del製のエディタなどの検索フォームは一回一回閉じるのが
多かったのでもしかして特殊なことをしないとできないのかと
なんとなく思いました。
ただ単にDelではこのやり方が流行ってるの?
0051デフォルトの名無しさん
NGNG>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;
0053デフォルトの名無しさん
NGNG>1.タイトル表示(メインフォームに設定されている)
>2.タイマーイベントでClose
>3.メニューを表示
意味が分かるのは2だけです。
1はひょっとしてスプラッシュのことかな?
3は意味がわかりません。メニュー単独で表示、ということ?
0054デフォルトの名無しさん
NGNG表示させて起動したら消すってヤツをしたいんじゃないの?
よーするにスプラッシュでしょ?違うの?
だったら検索すれ。「スプラッシュ」で。
0055デフォルトの名無しさん
NGNG>タイトルフォームがメインフォームに設定されているため、
Delphi では、プロジェクトファイルで最初につくられるフォームが
Application.MainForm になります。MainForm が閉じるとアプリケーションが
終了してしまいます。スプラッシュウィンドウは、MainForm 以外の Form で
作るべきです。
005640
NGNGおかげさまでできました。ありがとうございます。
ただ後半の部分は何をやっているかサッパリなので
調べてみます。
005751
NGNG>ただ後半の部分は何をやっているかサッパリなので
Delphi では、デフォルトですべての Form は、Application ウィンドウに
所有されています。Form2 をつねに Form1 より手前に表示させるために、
CreateParams() を override して、Form2 のオーナーを Form1 にしている
わけです。
0058デフォルトの名無しさん
NGNGForm2.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デフォルトの名無しさん
NGNGtry→begin
006136
NGNGありがとうございます、両方試して>>38さんの方法を使うことにしました。
>>39
SpeedButtonをどのようにすれば実現できるかわからなかったので、
試すことができませんでした、すいません
みなさん、ありがとうございました。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG「なし」になってしまいます。
バックスペースはショートカットとして入力できないのでしょうか?
0064デフォルトの名無しさん
NGNG遅レスだが、CLXアプリだとそのものずばりのTButton.ToggleButtonがある。
TSpeedButtonだとGroupIndexを0以外にしてAllowAllUpをtrueにすれば良し。
0065ねこま
NGNG0066デフォルトの名無しさん
NGNGユーザがどうやって入力するの?
0067デフォルトの名無しやん
NGNG途中から分からなくなってしまいました。
どこが分からないかと言いますとObjctPascal入門というとこです。
16進数やら文字型等です。まだ44ページ目なのですが・・・。
どうゆう風に学んでいけばいいのでしょうか?
0068デフォルトの名無しさん
NGNG気にしないでどんどん前進する。最後まで行ってから、
また戻ってくる。これを繰り返す。あとは、とりあえず、
なにを作りたいか、目的を定めて、それから、具体的な
問題を設定し、解決してゆくにはどうしたらよいかを考
える。
0069デフォルトの名無しやん
NGNGどうも。しかし何も分からないんですよ。
例えばいくつか命令が分かればそれを組み合わせていろいろ作れると
思うのですが、ほとんど分からない状態でして・・・。
今分かるのはShowmessage('Hello The World');
くらいです(藁
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGSay(Integer)とSay(String)のオーバーロードで。
0072デフォルトの名無しさん
NGNGshowmessage('are');
showmessage('you?');
0073デフォルトの名無しさん
NGNGってなんですか?
前から気になってました・・・
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG007667
NGNG007768
NGNGじゃ、オレが具体的な課題を出す。
1.Form1 に3コのTEdit、つまり Edit1、Edit2、Edit3、と Button1 を配置
2.Edit1 と Edit2 には整数の文字列を入力するものとする
3.Button1 を押すと Edit1 と Edit2 の数値の和を求めて、Edit3 に表示
ヒント
・TEdit クラスの Text プロパティーについてヘルプを調べる
・IntToStr( ) 関数 と StrToInt( ) 関数について調べる
以上の課題を解いて、Button1Click ハンドラをここに示せ
0078HotKey!
NGNG007967
NGNG本当に情けないです。
008067
NGNG0081Button1Click ハンドラ
NGNG20 goto 10
008268
NGNGうん、そうか、ではここを出発点としよう。
1.までできたなら Button1 をダブルクリックする。そうすると
コードエディタに Button1Click ハンドラが自動的に生成する。
そうしたら、
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := IntToStr(StrToInt(Edit1.Text)+100);
end;
と書いたら、F9 を押して実行する。
そして、実行時に Edit1 に、たとえば 333 と入力して、Button1 を
押すと Edit3 に 433 と表示されるのを確認。
とりあえず、ここまで。OK?
0084デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG2.「教えてやるから」という上からの態度に67がカチン!と来た。
3.分からんし、面倒だ。後は見てよう。
どれかであろう。2じゃねーのか(藁
0087デフォルトの名無しさん
NGNG行ってないんじゃ?
うちのDelphi5の本だと
型の説明→条件文など→コンポーネントの使い方
ってなってますよ。
008967
NGNGbegin
Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text))
end;
009167
NGNG0092デフォルトの名無しさん
NGNGバカじゃねーの
0093デフォルトの名無しさん
NGNG今までは、毎回非表示のComboBoxを実行時に乗せてやる
よく使われる方法でやってましたが、最近Grid使う事が多くて
毎回だと無駄な気がしてきまして挑戦中です。
そんなこんなで、
StringGridから派生させた自作のGridコンポを作成して、
カラム毎に属性をTInplaceEditListで保存してやって、
それを使ってコンボのカラムなのかを判断させようと考え
ています、でも、そもそも属性の設定とか出来ても、
ComboBox形式にするってのが雲をつかむような感じで
困ってます。
0094デフォルトの名無しさん
NGNGなんだそのコピペまるだしなのは?
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGakLeft = True
akRight = True として、
フォームのリサイズにあわせてGridの幅きさを変わる様にしているのですが、
Gridの各項目の列幅はリサイズされません。
Gridの列幅リサイズできないものなのでしょうか?
0100デフォルトの名無しさん
NGNGどうすればいいですか?Delphi6使ってます
0101質問!
NGNG色々聞きたいこともあるのですが・・・まず。
えっと、「Delphi」
読み方はデルファイですか?デルフィですか?
あんまりな質問ですがなにとぞよろしくお願いします。
0102デフォルトの名無しさん
NGNG0103質問!
NGNG>>102さん。どもです。
自己レス。
ちょっとgoogleで調べればわかりますね。すみません。
デルファイ。覚えました。
また何かありましたらよろしくです。
0104デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
0105Delフサギコ ◆zE1iiRdQ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡< >>99がんばって、コーヂングするべし。
UU""" U U \_______________
0106Delフサギコ ◆zE1iiRdQ
NGNG,,,,,,,,,,,,,∧,,∧ />>100
〜′,,,,,,,ミ,,゚Д゚彡< Request.QueryFieldsかしら。
UU""" U U \>>104
ヨクシラン MLか広場で話題に上っていた気がシル
0107デフォルトの名無しさん
NGNGどーすればいいのでしょうか?
0108デフォルトの名無しさん
NGNGなんだそのコピペまるだしなのは?
0109デフォルトの名無しさん
NGNG(?)とあなたにしかわからない書き方をされても、我々には何のことやらわかりません。
具体例きぼん。
0110デフォルトの名無しさん
NGNGあんたコピペに向かって何いっ�dの?
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG定数ならこんな書き方が出来る
type TMoge = record
Hage: Boolean;
Mage: Integer;
end;
const Moges: array [0..2,0..1]: TMoge = (
((Hage: True; Mage: 0), (Hage: True; Mage: 0)),
((Hage: False; Mage: 2), (Hage: True; Mage: 1)),
((Hage: True; Mage: 3), (Hage: False; Mage: 2))
);
定数じゃないなら、一個一個入れていこう。
もとのデータが多いなら、ファイルから読み込んでループ回すとかいろいろやり方はある
011461
NGNG>>47
教えて頂いた方法で確認しました。
チェックボックスの様に使いたかったので丁度良い形で実現できました。
教えていただいた方法で試してみます。
ありがとうございます。 m(__)m レス遅くなってごめんんさい
0115 ◆XZOGuG76
NGNG助けて下さい!
横x13
縦x16
と言う特殊なピクセルなんです。
マス目などはどのような物で作成したら良いでしょうか?
0116デフォルトの名無しさん
NGNG( ´∀`)< >>107 逝って良し
∧ ∧
( ´∀`)< >>115 逝って良し
0117デフォルトの名無しさん
NGNGモナーの *やさしい* Delphi質問スレって言うのは嘘ですか?
0118デフォルトの名無しさん
NGNG○易しいDelphi質問スレ
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGTGrid / TStringGrid から派生するのが簡単では?
0121デフォルトの名無しさん
NGNG0122幼稚園児
NGNG早速ボタン作って押してみると
「こんにちわ、せかい」が!!
ぶったまっげたーーーーーーーーーーー
俺みたいな幼稚園児でもアプリ作れるなんて、かんげきぃ!
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGお前、ここの1だろ
幼稚園児が必死にデルファイを勉強するすれ
http://pc.2ch.net/test/read.cgi/tech/1014878810/
0125デフォルトの名無しさん
NGNGいや、TDrawGridの方が良いと思う。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG業界用語では、データをフォーマットせずにドサっと出力する事
というか検索しろよ
0128デフォルトの名無しさん
NGNG生のデータを印刷する時にダンプリストでチェックしたか!とかっ
て言ってるだろ、印刷だけじゃなくて、バックアップとかでも
テープへデータベースのダンプ取っておいてくれ!とかあるだろ。
0129ダンプ松本
NGNG0130クレーンユウ
NGNG0131モンスターロシモフ
NGNG0132プログラム初心者
NGNG商品名 , 在庫数
...
↑のようなレコードを持つクラスを自作中です。
とある商品の在庫数を x増やすメソッドを
procedure TSyohin.add(商品名, x)
と作ったのですが
減らす場合のメソッドの識別子はなんと名付けたらよいでしょうか?
長すぎず3〜6文字程度にしたいのですが自分では「del」ぐらいしか思いつきません。
なんかプログラミング以前の質問ですが、どうかやさしいレスをお願いします。
0133デフォルトの名無しさん
NGNGinc, dec ……だと標準手続き名とかぶるから、incr, decr ではどう?
0134デフォルトの名無しさん
NGNGaddでは、新たな商品をリストに追加すると受け止められる。
ZaikoFuyasu、ZaikoHerasu がいい。
0135デフォルトの名無しさん
NGNGそれと procedure ではなくfunctionにして 帰り値で結果を渡せるようにすれば
そのメソッド一つで 0を渡せば値も返せるし
0136132
NGNGinc,dec も一応浮かんだのですが、
「1増加する」「1減らす」と言った印象が強いので避けてました。
>134
ああっすいません。
実は商品リストなんです。TSyohin ではなくて TSyohinList とすべきでした。
商品名がリスト内に存在すれば、その商品の在庫数を x増加する。
リスト内に見つからなければ、リストの最後に商品名を作成し在庫数を xと設定し、商品リスト登録件数を1増やす。
↑ .addはこういうメソッドです。
>135
これは便利そうですね。
そのように改良してみます。
>133-135
叩かれるかとビクビクしてましたが
こんなマヌケな質問にやさしく答えていただいてありがとうございました。
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGTSyohin = class
private
FName: string;
FStocks: Integer
...
Index := SyohinList.IndexOf(商品名);
if Index <> -1 then
begin
Syohin := SyohinList.Items[Index] as TSyohin;
Syohin.Stocks := Syohin.Stocks + 10;
end
else
...
0139デフォルトの名無し
NGNGクリックされたセルのデータを取得したいのですが、
どうやったらよ いのでしょうか?
0140デフォルトの名無しさん
NGNG同じフォルダに同名のファイル名のファイルがあっても
そのまま上書きされてしまいます。
「〜はすでに存在します。上書きしますか?」みたいな
ダイアログを表示して確認させるにはどうしたら良いのでしょうか?
0141デフォルトの名無しさん
NGNGセーブするときに同名のファイルがあるかどうか確認し、
同名のファイルが有るときは上書き確認のダイアログを出す
と言うようにすれば良いんじゃないですか?
0142デフォルトの名無しさん
NGNGTSaveDialog.Options の ofOverwritePrompt
0143デフォルトの名無しさん
NGNGどうすればいいのでしょうか。
ShowScrollBar を使っても、うまくいかないのですが・・・
0145デフォルトの名無しさん
NGNGDBgrid上の項目内容順で並べ替えをしようとボタンを配置して
IndexFieldNamesを書いたのですが
〜EDatabaseErrorクラスの例外を生成しました。'Table1:項目'○○○'のインデックスを〜
と蹴られてしまいます。
TtableのIndexDefsは設定しているのですが、まだ他に設定・書き忘れ
をしているのだと思うのですが確認すべき点を御教授ください。
0146145
NGNGインデックスを持っていません。"と蹴られてしまいます。
0147デフォルトの名無しさん
NGNGaddならsubtractじゃねぇ?subとかでどうよ。
0148141
NGNGすいません。142のような方法があるって知らなかったから
自分で実装するしかないって思ってました。
0149デフォルトの名無しさん
NGNGフィールド名日本語にしてない?
0150145
NGNGいえ、日本語では無いです。
0151◇のんちゃん
NGNG0152◇のんちゃん
NGNG0153デフォルトの名無しさん
NGNG先日よりDelphi始めました。これまで、プログラム経験は有りません。
早速、初心者本を購入してWinMe上でプログラムを始めたのですが、
Linux上で動くKylixというモノがあるということを知りました。
そこで、以前よりLinuxにも興味があったので、これを機にLinuxを導入
して、Kylixでプログラムしようかな?と考えています。
そこで質問なのですが、
a,作成するアプリはほとんどがWindows用だと思います。
b,Kylixで作成したアプリは100%、Delphi(Win)互換なのでしょうか?
c.Kylixで作成する際のメリットとは何でしょうか?
もともとLinux上で作成したいと思ったのは、WinMeが結構不安定で
Linuxだったら・・・というのと、LInuxを始めるいい機会かな?
ということなのですが。
どうでしょうか?
迷っています。
0154デフォルトの名無しさん
NGNGそれが問題なら、Windows2000 か XP にしましょう。
0155デフォルトの名無しさん
NGNGLinuxでWindowsアプリを開発したいという理由でKylixを使うつもりなら止めとけ。
漏れもWindowsを2000かXPにするのを薦める。
0156デフォルトの名無しさん
NGNG新規作成を行い"SQL-SERVER"を選んだのですが、
ODBCとは違うパラメータで、どのように設定すれば良いのでしょうか?
ODBCの場合、サーバ名、データベース名、ログインID,PWで大丈夫なのですが・・・
0157デフォルトの名無しさん
NGNG>>154 >>155さん。
ありがとうございます。
そうですか。
>LinuxでWindowsアプリを開発したいという理由でKylixを使うつもりなら止めとけ
やはりそうなのですね。
2000かXPにしようと思います。
でもLinux使ってみたい・・・。
Linuxについては、また考えようと思います。
ありがとうございました。
0158デフォルトの名無しさん
NGNG何のために?
興味を持つのはよいと思うが、全く別の世界だから、心してかからないと。
0159デフォルトの名無しさん
NGNGどのようなメッセージを関知すればいいのでしょうか?
0160デフォルトの名無しさん
NGNGどうせ無料なんだから気軽に遊ぶのがよいかと。
あんまり気張ってもしょうがないっす。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG>>158 >>160さん。ありがとうございます。
何となく興味があるだけなんですけど・・・
ちょっと質問変えて。
あえてLinuxでDelphiやるとすれば、どれを選びますか?
あくまで、あえてでいいのですが。
「Winあぷり=XP/2000がベスト」ということは踏まえて。
0163デフォルトの名無しさん
NGNGDelphi/CLX で Kylix/CLX アプリを作成することはできるが
Kylix/CLX で Delphi/VCL アプリを作ることはできない。
Linux で Delphi はできません。
0164145
NGNGあれから見本で実際動く分に、項目を変えIndexDefsに追加しても
やっぱり失敗します。
何を足したり・設定しないといけないのでしょうか。
0165デフォルトの名無しさん
NGNGうちの環境(Del6,Oracle8i)だと単純にソートしたいフィールド名を
IndexFieldNamesにいれただけでソートできるが。
IndexDefsは関係なかったような気がするが、ヘルプ見ると
ParadoxとdBASEはインデックスじゃないと使えないような記述があるな〜。
こっちは実際(DBのテーブル)のインデックスってことじゃない?
0166デフォルトの名無しさん
NGNGLinuxでも爆速コンパイルだし。
>>162
スレ違いだがLinuxの基礎的な知識は?
0167デフォルトの名無しさん
NGNGスクロールバーが付いてるかどうか判定するには、
GetWindowLong(Handle, GWL_STYLE) して WS_HSCROLL,
WS_VSCROLL が含まれているか調べる。
問題はどのメッセージで見るかだけど……一般的には
WM_SIZEかな。後はコントロールの種類によって色々。
0168145
NGNGレスありがとうございます。
本を読んでいるのですが、ごく初心者なのできっとつまらない所で
躓いてるのだと思うのですが・・・
DBのインデックスはどこか別に設定する所があるのでしょうか?
0169デフォルトの名無しさん
NGNG>>163 >>166さん。
レスありがとうございます。
>あえてLinuxでDelphiやるとすれば
すみません。間違えてました。
>あえてLinuxでKylixiやるとすれば
でした。
>Delphi/CLX で Kylix/CLX アプリを作成することはできるが
>Kylix/CLX で Delphi/VCL アプリを作ることはできない。
これは知りませんでした。
一方通行なんですね。それはやはりまずい。
>>166さん。
全然無いんです。で、今回がでいい機会かもなぁ・・なんて。
今までも気にはなってたけど、使う必要性に出会わなかったので。
とりあえず。板違いっぽくなってきたので、お暇します。
答えてくださった方々、ありがとうございました。
0170デフォルトの名無しさん
NGNGWin32API使えるようになったほうがよいのでしょうか?
作りたいものがありません
どうしたらよいのでしょうか?
0171デフォルトの名無しさん
NGNGだからぁ
Kylix/CLX で Delphi/CLX アプリを作るときに、最大の互換性が保たれる。ってこと。
一方通行、って訳ではない。
0172デフォルトの名無しさん
NGNGここは「モナーの *やさしい* Delphi質問スレ」ですが?
C言語にしろ ObjectPASCAL にしろ、単なる開発言語なので、それだけで
Windows に特化したアプリケーションを作ることは無理だなぁ。
0173デフォルトの名無しさん
NGNG作りたいものがないなら、無理して作ることはない。
0174デフォルトの名無しさん
NGNGKylix.delete;
end;
0175デフォルトの名無しさん
NGNGキャンセルがらみは自分で処理書かないとダメなんじゃなかったっけ?
たしか、自分で作った気がする…。
0176デフォルトの名無しさん
NGNGそれにCLXアプリじゃなくてもTFormとか基本的な構造が似通っているから
WindowsAPIを使わない限り移植が楽だというのはあるな。
↑実はこれが一番難しいんだが。
0177デフォルトの名無しさん
NGNGDEBIAN GNU/Linuxと言って見るテスト
Vineでもいいか、でも、本当はKylixを使う事が目的なら
どーやら、RedHatの6.2互換程度がいいらしい、新しくても
古くても駄目みたい。
しかし、Linux使ってみたいならKylixなんて使わなくて良い
と思うけど、しかも、今から覚えるなんて・・・。
Pascalに興味があるならFreePascalってのもあるYO!
0178デフォルトの名無しさん
NGNGいったん動いてしまえばあとはDelとおんなじでIDEの上ですべてが完結してるから
gcc + makeよりかはわかりやすい(かも)
Win/VCLのアプリもAPI使ってなければ小変更でLinux/CLXに移植できたから
(主にusesの変更とか)
試してみる分にはいいと思うけど。
あと、APIが使えないんですべてVCLですませようとするから
VCL/CLXの勉強にはなる(w
0179デフォルトの名無しさん
NGNGたぶんLinuxに不足してるのはVectorレベルのアプリ(w だから
とりあえずランチャとかCUIアプリのフロントエンドからはじめればいいと思うんだけど。
良くも悪くもLinuxってフリーソフトのレベルが高いから、それが障壁になってるのかな。
GPLだし。
0180デフォルトの名無しさん
NGNGを参考にして indy のインストールをしようと思ったんですが、
setenv.batには何を書けばいいんでしょうか。
0181デフォルトの名無しさん
NGNG>>177 >>178 >>179さん。
お答えありがとうございます。
板違いっぽくなってきたのでLinux版の方に行って色々調べてみようと思ってました。
こんなにいろいろと教えていただき感謝です。
何分、Linuxについてまだ何も知らない状態ですので、色々と試したいとは思います。
>>177
DEBIAN GNU/Linux
Vine
RedHatの6.2
FreePasca
上記のモノ検索してみます。l
>>178
>APIが使えないんですべてVCLですませようとするから
>VCL/CLXの勉強にはなる
これは良さげですね(笑
今、失業中で時間があるので、少し勉強欲が出てるんです。
>>179
本来、Win用のアプリを作りたくてプログラムしたかったのですが、Linux使い始めて
もし、はまったりしたらコロッと変わるかもしれません(笑
Linux一筋・・・
ちょっとえらそうかな。
とりあえず作ってみたいのは「LAN用のコミュニケーションツール」です。
まずは自分のうちにあるネットワークだけのコミュニケーションだけで良い
と思っているのですが、ゆくゆくはICQみたいな物も作ってみたいと思って
います。
みなさんありがとうございました。
0182デフォルトの名無しさん
NGNGあっ。
でも、まずはWinMe→Win2000/XPにして、Delphiをしっかり使えるように
するのが先決かな・・・
0183デフォルトの名無しさん
NGNGDelphi覚える覚えない以前の問題として、Win2kXPの方が安定
して開発できるでしょ。
Linuxは好きだが、世間で騒いだほどは安定してませんからね、
Xが悪いわけでもないのだろうがドライバとの相性か、イマイチ
不安定だね。
今のところは、まだLinuxでGUI使ったら負けだから、
Kylixの価値半減って事でDelphiで勉強した方がいい。
今のKylixは、どうしてもWinのプログラムをLinuxへ移行する必要
がある場合に使うものだろと思ふ。
0184デフォルトの名無しさん
NGNGDelphi6を始めるとしたらどんな本がいいでしょうか?
0185デフォルトの名無しさん
NGNGLinux.close;
end;
0186デフォルトの名無しさん
NGNG'初'と'6'って字が書いてあればなんでもいいよ。
あえてどれってのが気になるならDelスレ読み返してみれば。
0187デフォルトの名無しさん
NGNG「今日の献立ひと工夫」主婦の友刊
0188デフォルトの名無しさん
NGNG優しいDelphiという本は分かりやすいでしょうか?
http://www.amazon.co.jp/exec/obidos/ASIN/4526040266/250-9808802-0005006
0189デフォルトの名無しさん
NGNG「男根羅漢拳の歴史」民明書房刊
0190デフォルトの名無しさん
NGNGためしにOwnerDraw:=Trueで、OnDrawItemを「Sender.Canvas.Font.Color:=clWindowText;」としてみても
真っ白なままで描画してくれないんですが…。
0191190
NGNG編集している間に変になった。
「ListViewのOnOwnerDraw」→「ListViewのOnDrawItem」で何とか
0192デフォルトの名無しさん
NGNGOnDrawItem では自力で TextOut するなりしてアイテムを描画して
やらないとなにも表示されませんよ。
0193qqqqqqq
NGNGプログラム?アプリケーション?ただのツール?
0194デフォルトの名無しさん
NGNGプログラム開発ツールでありプログラムであり
アプリケーション開発ツールでありアプリケーションであり
ただ(無料)のバージョンもあるWindows用の開発ツールでもあります
0195qqqqqqq
NGNG「はじめてのdelphi」をかおうとおもったのですが
店屋に売ってません。
インターネットで購入したいのですが
どこにうってるでしょうか?
0196デフォルトの名無しさん
NGNG送料無料なら あまぞん
0197qqqqqqq
NGNG在庫切れだって(T-T)
0198デフォルトの名無しさん
NGNGデバッグ中にマウスポインタを重ねると
変数の値が見られますが、見られるときと
そうでないときがあるようですが、
何故なのでしょうか。あと変数の値を
評価してみても
最適化のため変数 'xxxx' をこの位置から参照することはできません
と表示されるのですが、よく意味がわかりません。
教えてください。
0199デフォルトの名無しさん
NGNG多分両方とも同じ意味だろうね。俺もよく意味わかんないけど、
最適化オプションはプロジェクト→オプションからOffにできるから、
そうすればOKなのかなぁ?
0200200
NGNGどうか、良い知恵を…
■通信ゲームのようなプログラムを作っています。
クライアントからサーバへ、サーバからクライアントへ命令を
送信するといった形で通信を行っています。
命令は、例えば
TCommand = class .. end;
TCommand1 = class( TCommand ) ... end;
TCommand2 = class( TCommand ) ... end;
..
といったふうに、TCommand を上位クラスとして、各コマンド内容を示す
クラスを派生させてあります。
そして、サーバやクライアントクラスには、以下のように
各コマンドに対応した内容を実行するメソッドを実装してあります。
TClient = class
procedure DoCommand1( Cmd:TCommand1 );
procedure DoCommand2( Cmd:TCommand2 );
...
end;
0201200
NGNGクライアント及びサーバ間の通信はテキストで行っているので、
各コマンドクラスをテキスト形式に変換して送信する必要があります。
それは良いのですが、問題は、受信したテキストを解釈し、
対応するコマンドクラスを生成し、実行する手順です。
今は、以下のように実装しています。
{ 各 Command クラスに対応するユニークな定数 }
const
CommandID1 = ..
CommandID2 = ..
CommandID3 = ..
...
procedure TClient.OnReceived(Text:string);
begin
...
{ 受信したテキストに含まれるメッセージIDを元にして、対応するコマンドクラスを生成する }
case メッセージID of
CommandID1: begin
cmd := TCommand1.Create;
cmd.Decode( 受信したテキスト ); { テキストをコマンドクラスに変換 }
Self.DoCommand1( msg );
cmd.Free;
end;
CommandID2: ...
...
end;
■なにかこう、無駄なような気がしてならず…
なにかスマートな方法はありませんか?
0202200
NGNGTCommand = class
Client: TClient; { コマンドを利用するクラス }
end;
TCommand1 = class
procedure DoIt; { 実行メソッド }
end;
procedure TCommand1.DoIt;
begin
Self.Client.DoCommand1( Self );
end;
というふうに、各コマンドクラスに実行メソッドを持たせ、
クライアントやサーバクラスの対応するメソッドを呼び出すという方法も考えたのですが、
循環参照になりそうで不安です。煩雑になるので、
クライアント/サーバクラスと、コマンドクラスは、
出来れば別々のユニットにしたいのです。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGクラス参照使ってみたら?
procedure CommandListOnRegister(Sender: TObject);
begin
// クラスを前もって登録
CommandList.Register(TCommand1, CommandID1);
CommandList.Register(TCommand2, CommandID2);
...
end;
procedure TClient.OnReceived(Text:string);
begin
// 登録されたクラスからコマンドを生成
cmd := CommandList.Create(メッセージID);
if not Assigned(cmd) then exit; // 対応するコマンドがないなら抜ける
cmd.Decode(Text);
...
cmd.Free;
end;
0205デフォルトの名無しさん
NGNG↓
cmd := CommandList.CreateCommand(メッセージID);
だった。
毎回生成するのは遅そうなんでCommandListでTCommandのインスタンス保持しとくのがいいとは思うけど。
0206デフォルトの名無しさん
NGNG何も言わずに、Update1 当てろ。
0207デフォルトの名無しさん
NGNGHelpの検索対象からCLXが外れるというのがあったと思うのですが、
そのことについてご存知の方いらっしゃいませんか?
0208デフォルトの名無しさん
NGNG0209200
NGNG一つ賢くなりました。
ところで、コマンドを実行するときは
var cmd:TCommand;
...
case AMessage.ID of
CommandID1: DoCommand1( TCommand1(cmd) )
CommandID2: DoCommand2( TCommand2(cmd) )
CommandID3: DoCommand3( TCommand3(cmd) )
...
end;
とやるしかないですか.
良く考えると、DoCommand1 の引数は TCommand1 型、つまり
TCommand の派生クラスなので、
DoCommand1( cmd ) ってやると互換性が無いといわれるんですね.
なんか二度手間な気が…
0210デフォルトの名無しさん
NGNGそれならdelegateすればよいかも。その利点は
・TCommand(とその派生型)はTClientを知る必要がない
・TClientは処理したいコマンドのみ処理すればよい
(TCommand23が後から追加されてもコンパイルエラーになることはない、処理しないコマンドは無視される)
procedure TMyClient.CommandListOnRegister(Sender: TObject);
begin
// クラスを前もって登録
cmd := TCommand1.Create;
cmd.ID := CommandID1;
cmd.OnExecute := TMyClient.Command1Execute;
CommandList.Register(cmd);
...
end
procedure TMyClient.Command1Execute(Sender: TObject);
begin
with Sender as TCommand1 do
begin
...
end
end;
// AMessage.ID=CommandID1なら
// TMyClient.Command1Executeが呼ばれる
CommandList.Execute(AMessage.ID);
0211デフォルトの名無しさん
NGNGもちろん当ててますがなにか?
0212デフォルトの名無しさん
NGNGツール→環境オプション→ライブラリ→ライブラリパスには何が入ってますか?
0213デフォルトの名無しさん
NGNG$(DELPHI)\Lib;$(DELPHI)\Bin;$(DELPHI)\Imports;$(DELPHI)\Projects\Bpl
と書いてあります。
0214デフォルトの名無しさん
NGNGSysUtils.dcuはあるんですけどね。
0215デフォルトの名無しさん
NGNGってことだな。
0216デフォルトの名無しさん
NGNGってことだな。
0217デフォルトの名無しさん
NGNGやっぱそうですか。
0219デフォルトの名無しさん
NGNG何をやったのだ? >> 203 (217)
0220デフォルトの名無しさん
NGNGvar
Form1: TForm1;
TimeStamp : TTimeStamp;
DateTime : TDateTime;
Str : String;
begin
TimeStamp := MSecsToTimeStamp(1800000);
DateTime := TimeStampToDateTime(TimeStamp);
Str := TimeToStr(DateTime);
end;
(一部)
0221デフォルトの名無しさん
NGNGTHoge=class
...
end;
THoge2=class(THoge)
property Hog1...
end;
て宣言して
proc(Hoge2:THoge2);
begin
property Hog2...
end;
var
Hoge:THoge;
begin
Hoge:=THoge2(Hog2); { 生成と同時にHog2プロパティをセット }
proc(Hoge as THoge2)
ってやると、proc で受け取った Hoge って、Hog2プロパティの内容失われちゃいます?
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG作ったアプリを実行するとタイトルバーだけ表示されて、
OS自体が固まっちゃうんですけど、こんな現象なった人いません?
0224デフォルトの名無しさん
NGNG昔、Delphiの実行メニューから実行すると、
必ずそのプログラムの終了時にOSごと固まるという現象にあったことがある。
そのときは、コンパイルだけして、エクスプローラから exe を実行していたよ。
0225デフォルトの名無しさん
NGNGバックアップとってから怪しげなコードバンバン削って原因究明してバグならMLで報告。
0226デフォルトの名無しさん
NGNGレポートはここでいいよ。
0227嗚呼…自作ツールにバグがあった…
NGNGみたいなワケワカメなspam来た人はいる?
どーも意味が分からん。フリーウェアを登録して、カンパを募るらしいが…。
なにが「どんどんカンパしてください」だよ。よく読んでないけど、
どこに何の金がどーゆー流れで行くのやら?
0228デフォルトの名無しさん
NGNGまあにふぇすと、指定していない?
IDE の外では動く?
互換性を NT/W2K にしてみたら変化は?
0229デフォルトの名無しさん
NGNGなるほど。毎回かならず固まるというわけではないのですけど、
今のところは、
コンパイル→実行とやると固まらない。
実行ボタンと同時コンパイルさせると固まる。
といった感じです。
エクスプローラから直で実行はしたことはないので、
ちょっとやってみます。
ちなみに何がちがうのでしょうね。
>>225
IDEを初回起動したらFormがすでにありますよね。
そのまま実行しても固まりました。
VCLの中身がどうとか言う話ならばDelを使い始めて2日目なので、
よくわかりません。すいません。
>>226
わかりました。お願いします。
>>227
まあにふぇすと?
互換性に関してはBorlandのHPに書いてあったので、
Win2000モードにしたのですが、変化ありません。
再インストしようかなと思っています。
でも再インストしてこの現象がでなくなったら、
原因がわからなくなってしまうしなぁ。。
0230デフォルトの名無しさん
NGNG>そのまま実行しても固まりました。
もし、Trend/VirusBuster 入れていたら、リアルタイムウィルスチェックを
はずす。
0231223
NGNGVirusScanは入れてますが、VirusBusterはいれてません。
OSがかたまると言ったのですが、
すべてが固まるというよりか、
CPUが100%になってしまって、
なにもできなくなる(マウスなどは動く)ような感じです。
あとコンパイルしてできたexeを直接実行すると大丈夫なようです。
でも初期状態のFormのexeを実行したときも、
タイトルバー→クライアント領域と描画されるタイミングが
その他のAPPと比べるとやたら遅くみえます。
VCLのFormはこういう物なのでしょうか?
0232デフォルトの名無しさん
NGNG今年の頭から XP/Pro で D6 使っているけどおかしくなったことはないなぁ。
0233デフォルトの名無しさん
NGNGポップアップで、フォルダのツリーを出そうとしたらどうやったらよいのでしょう。
スタートメニューのような感じで、カーソルをあわせると1階層ごとにフォルダが ぱっ と開いていく奴。
1階層ごとに下のフォルダを調べて作るしかないのかなぁ・・・。
0234デフォルトの名無しさん
NGNGそれ以外に、どんな方法があるというのだ?
0235233
NGNGタスクバーの ツールバー→デスクトップ を選ぶと出てくるような奴。
windowsに標準でできる機能だからどうにか簡単にできない物かなぁと。
0236デフォルトの名無しさん
NGNG関係ないけど
昔、実行中OpenDialog.Executeで必ず固まることがあったな
そのときやっぱりexeにして実行したら固まらなかった
しかもいつのまにか固まることなくなったし
なんか相性悪かったんだろうな・・・
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG>>233はダイアログじゃなくて、メニューに再現したいんだろ?
0239デフォルトの名無しさん
NGNGのがとても簡単な方法のように思うけどなあ
0240デフォルトの名無しさん
NGNGたとえばMemo1コンポーネントの1行目だけ削除するには
どうしたらよいのでしょうか?
0241デフォルトの名無しさん
NGNGinterfaceに関数の宣言を行ったのですが、
コンパイルエラーは発生します。
フォームのユニット内に関数を作成する事はできないのでしょうか?
0242デフォルトの名無しさん
NGNGTMemo.LinesはTStringsだ。TStringのヘルプ見れ。
>>241
できる。書き方が間違ってたんだろ。どう書いたのかと、どんなエラーが出たのか示してくれ。
0243デフォルトの名無しさん
NGNGならinterfaceに宣言する必要は無いと思われ。
0244241
NGNG>できる。書き方が間違ってたんだろ。
そうですよね・・・ すいません
こういう風に書いてます。
interface
function Msg(strMsg: String):boolean;
<省略>
function Msg(strMsg: String):boolean;
ShowMessage(strMsg);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Msg('AAA');
end;
フォームに関数を作成する練習として、
メッセージボックスを関数を使って表示させようとしています。
(戻り値は返してません)
0245デフォルトの名無しさん
NGNGもし本当にそのまま切り出したのなら、Msgにbeginがないようだけど。エラーメッセージは?
0246244
NGNGすいません、コピペ失敗です。
beginあります。
エラーメッセージは
宣言 が必要な部分に'USES'があります
0247デフォルトの名無しさん
NGNGusesはinterfaceの直後に書かないといけない。
interfaceとusersの間に宣言書いてしまったんじゃない?
で、その宣言はそもそも>>243 の通り、削除しても平気でしょ。
呼び出す処理よりは前に定義しないといけなくなるけど。
0248デフォルトの名無しさん
NGNGPanelを使ってフォームから取り外したりするドッキングみたいなの作ったんですが元に戻すことが出来ません。
一回フォームからはがすとくっつける事が出来ないんです。
さらにはがしたPanelに「x」ボタンが有ってそれを押して閉じてしまうと二度と表示され無いんです。
どうしたらいいんでしょうか?
0249246
NGNG>interfaceとusersの間に宣言書いてしまったんじゃない?
その通りです。
>で、その宣言はそもそも>>243 の通り、削除しても平気でしょ。
>呼び出す処理よりは前に定義しないといけなくなるけど。
わかりました。
例えば、呼び出す処理の後に記述する場合は、
宣言が必要になるんですよね?
そういう場合は、どのように宣言すれば良いですか?
0250デフォルトの名無しさん
NGNGなんつーか、マニュアルに書いてある基本的なことばかりだな。
まずはじっくりマニュアル読んでくれよ。わかんないなら適当に入門書から。
ともあれ、クラスに所属しない手続きや関数をimplementationの中で宣言するには
forward宣言を行えば良い。この言葉を鍵に調べてみれ。
0251デフォルトの名無しさん
NGNGTCommandList, TCommandって
TActionList, TActionと対になってますね。
実際デザインパターンのCommandの
別名にActionというのもありますし。
0252223
NGNG逝ってきます。
0253223
NGNG原因はVirusScanのVSieldでした。
こいつをはずすと、実行時の微妙な遅延もなくなり安定しました。
ということでXP(だけ?)でVirusBuster or VirusScanを
入れてる方は要注意ということでよろしいです?
ガイシュツだったらごめんなさい。
>>230さんありがとうございます。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGIf Item.Selected then
Canvas.Brush.Color
FillRect
0256デフォルトの名無しさん
NGNGセルに持っていくのでは無く16x16のマス目にフォントを表示させたいのです。
「あ」と入力したら16x16のStringGridいっぱいに「あ」と表示させたい訳なんですが可能なんでしょうか?
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGASCIIコードか何かを取得出来るのでしょうか。
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG難しいことしてますな
0261デフォルトの名無しさん
NGNGあらかじめ第二水準まで作っておいて入力した文字によってGridに読み込むとか
一文字ずつcsvに保存して
□□□□□□□□
■□□□□□□□
□■□□□□□□
□□■□□□□□
□□□■□□□□
□□□□■□□□
□□□□□■□□
□□□□□□■□
上の様な文字だったら
0,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,0,0,1,0,
とcsvで保存してそれを読み込むとか
他にこれより良い方有る?
あったら誰かフォローよろ
0262デフォルトの名無しさん
NGNGCanvas.Fontを替えて、その後inheritedすればフォントは変わる筈。
それか、Canvasに自分で描画してもよいし。
0263デフォルトの名無しさん
NGNGDrawcellメソッドと、OnDrawcellイベントハンドラは別だから間違えないでね。
コードみてないけど、Drawcellメソッドの中で、
OnDrawcellプロパティ(関数ポインタ)がAssignされてるか判定して、
Assignされてる場合、コールしてる筈。
0264デフォルトの名無しさん
NGNGそれを補完するツールチップヒントが表示されますが、あれを非表示にする
にはどうしたらいいのですか?
TreeView の場合には ToolTips プロパティがあるのですが、
ListView には見あたりません・・・
だれかご存じでしたら教えてください。
0265デフォルトの名無しさん
NGNGそれは非常に面倒じゃない?
フォントのbit情報持ってきてGridに配置した方が・・
多分可能でしょ。
0266デフォルトの名無しさん
NGNGフリース (1000円)
エアテック (4000円)
財布 (500円)
鞄 (10000円)
ボーダー (2000円)
このようにデータが表示されていたとき
Button1を押したら
括弧内の値段順にソートしてMemo1に表示したいときは
どのようなコードを書けばよいのでしょうか?
0267デフォルトの名無しさん
NGNGアイコンのドットエディタとかでありがちだけどどうやるのかわからん
StringGridを使って出来るのか?
0268デフォルトの名無しさん
NGNGなんで StringGrid なんだ??
独自コンポ作った方が遙かにスマートに出来そうだけど・・
0269デフォルトの名無しさん
NGNGTStringListのCustomSort使えば?
数字を抽出して比較する関数作ってさ
0271名無し募集中。。。
NGNGfunction GetNum(Line: string):Integer;
var
Index, Count: Integer;
begin
Index :=AnsiPos('(', Line) + 2;
Count := AnsiPos('円',Line) - Index;
Line := Copy(Line, Index, Count);
Result := StrToInt(Line);
end;
function MyCompare(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := GetNum(List[Index1]) - GetNum(List[Index2]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
StringList : TStringList;
begin
StringList := TStringList.Create;
try
StringList.Assign(Memo1.Lines);
StringList.CustomSort(MyCompare);
Memo1.Lines.Assign(StringList);
finally
StringList.Free;
end;
end;
このようなコードで一応動く
やり方は、269が言ってるのと同じ
0272256
NGNGやっぱりStringGridでは無理がありますか。
アイコンドットエディタとかはどうやって文字をグリッドに持ってきてるのか気になって・・・
0273デフォルトの名無しさん
NGNGソースキボンヌ
ソース公開がいやなら一部分だけでもここに貼り付けて
0274デフォルトの名無しさん
NGNGQuickReportで出来そうな気がするが。
出来ないか?
そんなことよりうちのdelphiでQRepのHelp出てこないんだけど何で?
みんなもそうなの?
0275266
NGNG>>271
ありがとうございます。
271さんには例まで示していただいて、とても感謝してます。
まだdelphi、消防レベルにもいってない自分にはすごく勉強になります。
0276デフォルトの名無しさん
NGNG新しいプロパティを追加してみたが、このプログラムには
重複させて表示させない為にフォーム表示用の関数を
作成してあるのですが、そこで問題が発生しています。
つまり、この中から新しく追加したプロパティを見る方法
で悩んでます。
----- フォーム作成用共通関数 ----
Application.CreateForm(wClass, wFrmName);
for idx:=0 to Screen.FormCount -1 do
begin
if (Screen.Forms[idx].ClassName=wClass.ClassName) then
begin
if (Screen.Forms[idx].ShowModal=mrOK) then
Result:=Screen.Forms[idx].FormResults.Text;
// ↑
// FormResultsが新しく追加したプロパティだが、この書き方
// ではエラーになる。
Screen.Forms[idx].Release;
end;
end;
コンパイルを通そうとすれば、
if (Screen.Forms[idx].ShowModal=mrOK) then
Result:= FrmKensaku(Screen.Forms[idx]).FormResults.Text;
のようにすれば通るが、これでは、共通の関数としては
問題がある。
何か、いい方法はないでしょうか?
0277名無し募集中。。。
NGNGprocedure ViewCanvas(Canvas: TCanvas);
var
i, j: Integer;
Color : TColor;
s: string;
begin
for j := 0 to 10 do
begin
s := '';
for i := 0 to 10 do
begin
Color := Canvas.Pixels[i, j];
if Color=0 then
s := s + '■'
else
s := s + '□';
end;
Form1.Memo1.Lines.Add(s);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
Bitmap.Height:=11;
Bitmap.Width:=11;
Bitmap.Canvas.TextOut(0,0,Edit1.Text);
ViewCanvas(Bitmap.Canvas);
finally
Bitmap.Free;
end;
end;
Edit1, Button1, Memo1をForm1に貼り付けてください。
文字をキャンバスに表示して、pixelsプロパティで読んでます。
StringGridは設定が面倒なので、Memoにしました。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGそんな事はできないと思われる
0280デフォルトの名無しさん
NGNGフォームにプロパティを追加して値を渡すなんて聞いたこともありません、
そもそもそれが間違いなのでは?
私はいつもグローバル変数で値を受け渡ししています、そうするのが
一番正しいやり方だと思いますがどうでしょうか?
0281デフォルトの名無しさん
NGNGラインキャッシュ付き Pixels の実装、ほしい人。手あげて。
0282デフォルトの名無しさん
NGNG逆にStringGridの方が簡単じゃない?
見栄えも良いし。
もしくはちょっと荒技だけど
0だったら色を塗る、1だったら色を塗らないって決めておいて、
>>277のソースの
s := s + '■'
s := s + '□'
の部分を
s := s + '0'
s := s + '1'
に変える。
さらに一文字ずつにカンマで区切ってそれをStringGridに読ませてやればいい。
どーよ?
0,0,0,0,0,0,1,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,0,0,
0,0,0,0,1,0,1,0,0,0,0,0,
0,0,0,0,0,0,1,0,0,0,0,0,
0,0,0,0,0,0,1,0,0,0,0,0,
0,0,0,0,0,1,1,1,0,0,0,0,
▲こんな風になる(1の反転文字の例)
他にもいろいろ方法有りそうだな。
0283デフォルトの名無しさん
NGNGそんなまどろっこしい事やらないでも s := s + '■' の処理をセルの色変えに変えれば良いんでは?
0284デフォルトの名無しさん
NGNG結局自力で書いた方が速くて柔軟性あるからな。
早いとはいわん。
0285Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,ミ,,゚Д゚彡< 何が悩みどころかわからんままレス
UU""" U U \_______________
>>276
もし、Application.Forms[i] is TXXForm なら
TXXForm(Application.Forms[i]).FormResults 取り出し
共通の関数としてどこの何に問題が??
0286デフォルトの名無しさん
NGNGDelフサギコならわかるだろうか。
0287デフォルトの名無しさん
NGNGまあ、普通はグリッドなんか使わずに直接StrechBltすると思うけど。
0288デフォルトの名無しさん
NGNGDrawGrid使ったことねぇや
あれ何に使うの?
0289280
NGNG本人じゃないんですけど、たぶん、
Screen.Formsを使ってるってことは、関数で動的にフォームを作成している
のだとおもわれる。
> TXXForm(Application.Forms[i]).FormResults 取り出し
これだと、各フォーム毎に書かないといけないので嫌だって話では?
おそらく、フォームが数百、いや数千は存在するのだろう(藁
つーことで、グローバル変数で処理するのが一番楽かと。
0290276
NGNG>>285 289さんが書いているのが全てなんですが、
function ShowFrm(wClass:TComponentClass;wReIdx:integer;
var Res:String):Boolean;
|wClass=フォームクラス
|wReIdx=戻り値の列番号
|Res=戻り値
で、wReIdxがゼロの場合には全ての戻り値が帰って来て、
wReIdxに値が指定してあった場合には、その場所の戻り値
が来る、つまり、呼び出す検索フォーム側の追加したプロパ
ティはTStringsで定義しようかと。
で、呼ぶ時は、
rc:=ShowFrm(TkensakuFrm,1,S); とか
rc:=ShowFrm(TAddKensakuFrm,0,S); とかって感じで呼んで
フォームを表示させようかと思っていました。
フォームからの戻り値は Sに入って来るって感じです。
説明下手で申し訳ないです。
0291デフォルトの名無しさん
NGNGShortCut プロパティのように、文字列としてキーの組み合わせを登録し、
TextToShortCut でショートカット型にするのがスマートかと思ったのですが、
ユーザーに使いやすくするためには、
コンボボックスに大量のテキストを用意しておかないとなりません。
なんか、ショートカットの組み合わせ文字列が定義された定数配列とか
ないですか?
0292デフォルトの名無しさん
NGNGこんなんんでどうよ?
Form1.KeyPreview := Trueして
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) and (ActiveControl = HotKey1) then
begin
HotKey1.HotKey := TextToShortCut('Enter');
Key := #0;
end;
end;
0293291
NGNGおおおお
メカラウロコ
0294デフォルトの名無しさん
NGNGアクションリストにアクションを4つ追加。
ショートカットはそれぞれ
Enter
Shift+ENter
Ctrl+Enter
Shift+Ctrl+Enter
OnExecute には
if ActiveControl = HotKey1 then
HotKey1.HotKey := (Sender as TAction).ShortCut;
と。これ、ヒントを得たとはいえ、我ながら傑作な方法。
0295デフォルトの名無しさん
NGNGそれをアクションと呼ぶには苦しいぞ。
それにアクション一覧を表示してキーカスタマイズさせるようなUIを作った場合、
Enter系のゴミアクションが表示されてしまい見苦しいかも。
0296デフォルトの名無しさん
NGNGCのようにネイティブコードにしているとは思えないんですが。
スタートボタンやストップボタンがついていてVBに似ているし。
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGううん。
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGCのようにネイティブコードにしているとは思えないんですが。
スタートボタンやストップボタンがついていてVBに似ているし。
0301デフォルトの名無しさん
NGNGついていないよ。
VC++触ったことない?
0302デフォルトの名無しさん
NGNGついてるよ。
VC++使いこなしてない?
0303デフォルトの名無しさん
NGNGCのようにネイティブコードにしているとは思えないんですが。
スタートボタンやストップボタンがついていてVBに似ているし。
0304デフォルトの名無しさん
NGNG修正したらそのつどコンパイルし直す必要があるじゃない。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG必要ないよ。
VC++使いこなしてない?
0307デフォルトの名無しさん
NGNG結果が気になるのだが。
0308デフォルトの名無しさん
NGNGCのようにネイティブコードにしているとは思えないんですが。
スタートボタンやストップボタンがついていてVBに似ているし。
ベーシックって言うし。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
できればアクティブでも非アクティブでも拾いたいです
Buttonを貼り付けると矢印キーが拾えないので困ってます
0311軍師
NGNGブヴィ房軍の計略にかかり、
我が軍は同士討ちを始めております!!
0313デフォルトの名無しさん
NGNGこういう時にサクっと使える正規表現ライブラリって在りませんかね?
0315デフォルトの名無しさん
NGNG洋物、和物含めてイロイロあるけど、一番評判がいいのって、どれだ?
0316デフォルトの名無しさん
NGNG洋物…トレイシーローズ
和物…長瀬愛
0317デフォルトの名無しさん
NGNGGetAsyncKeyState
0318デフォルトの名無しさん
NGNG手が込んでるな…
メール入力欄に書きこむの、最近見かけないが
あれは速報版だけの慣習なのか?
0319デフォルトの名無しさん
NGNGつまり、関数内でフォームをCreateする時にクラスを変更出来たらいいんだろうか?
取りあえず、そんな事は難しいが、継承を使えば似たような事は可能だ。
1.独自にPropertyを追加したフォームを TParFormとする
2.検索フォームは全てTParFormを継承させて作る。
例)
TKensakuForm1=class(TParForm);
3.関数内で使うクラスをTOrgFormとする
例)
Type
TOrgForm = class of TParForm;
・
・
・
function CreForm(・・・・・・):String;
var
frm:TOrgForm;
begin
・
・
ftm:=TOrgForm(GetClass('フォーム名')).Create(Application);
Result=frm.FormResults;
frm.Release;
・
・
4.継承したフォームは、登録しておかなければならないので、initialization等にガンガン書いておく
例)
initialization
RegisterClass(TKensakuForm1);
RegisterClass(TKensakuForm2);
RegisterClass(TKensakuForm3);
・
・
end.
これで、文字列としてフォーム名を渡してCreateできるはず。
眠いんで詳しい説明はしない、詳しくは、HELPの GetClass を参照
でも、これで解らなかった、もうDelphi使うな。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGDelphi使わんのは>>319の勝手だが。
文末がサッパリわからん。
0322デフォルトの名無しさん
NGNGA,B,A,A,A,A,A,A,
A,B,A,A,A,A,A,A,
A,B,A,A,A,A,A,A,
A,B,A,A,A,A,A,A,
A,B,A,A,A,A,A,A,
A,B,A,A,A,A,A,A,
こんなデータをカンマ毎に分けてセルに配置したいんです。
テキストから読み込むのは出来るのですがMemoから直接渡す方法が分からないです。
0323デフォルトの名無しさん
NGNG0324名無しヘタぐらま ◆B18Bks.Y
NGNGα)文字以外の物を表示する場合
β)内部処理とユーザーインターフェイスを分離したい場合
α)の場合
たとえば画像の一覧を表示する場合.
Objectsプロパティに入れる手もありますが
たとえば8桁から5桁に変えたい場合,処理が面倒.
β)は
・アプリケーション全体で見たい情報をグリッドに入れちゃうと
フォームが2つになった瞬間に内部情報が散乱してドツボにはまる(経験者).
こういう場合は内部情報をプログラムのひとつのユニットにまとめて
グリッドなどのコンポーネントは表示と操作に専念する
・グリッドをやめてリストビューにしよう!
などと命令されたときにも楽に変更できる.
0325デフォルトの名無しさん
NGNGfor i:=0 to Memo1.lines.Count do Cols[i].CommaText:= Memo1.lines.Strings[i];
0326デフォルトの名無しさん
NGNGいま、自前のソフトに、簡単なマクロ機能を実装しようとしています。
仕様は、だいたい以下の通りです。
・実行することの出来る最も小さい仕事を Job と呼ぶ。
・TJob は、「仕事の種類」と「パラメータ」プロパティを持っている。
・1つの Action で、最大 10個までの Job を登録することが出来る。
・一つのショートカットコマンドには、一つの Action が対応する。
・Action の集合体を Macro と呼ぶ。
で、いかに楽に、いかにエレガントに、いかに機能の追加を楽に出来るように
実装するかということで頭を悩ませているわけです。
TJobType = ( 仕事名1, 仕事名2, 仕事名3, ..., 仕事名n );
TJob = record
仕事の種類: TJobType;
パラメータ: string;
end;
TMAction = class( TCustomAction )
Jobs: array [0..9] of TJob;
JobsCount:Integer;
...
end;
TMMacro = class( TActionList )
end;
0327デフォルトの名無しさん
NGNGprocedure フォーム.ExecuteAction( Sender:TObject )
var Action:TMAction; ...
begin
Action := Sender as TMAction;
for I:=0 to JobsCount-1 do
case Action.Jobs[I].仕事の種類 of
仕事名1: Self.仕事1処理メソッド( Action.Jobs[i].パラメータ );
仕事名2: Self.仕事2処理メソッド( Action.Jobs[i].パラメータ );
..
仕事名n: Self.仕事n処理メソッド( Action.Jobs[i].パラメータ );
end;
end;
としておいて、自前のアクションリストに
procedure AddAction( MAction:TMAction );begin;
MAction.ActionList := Self.MacroActions;
end;
のようにして登録しようと。
でも、せっかくアクションリストで管理しているのに、実行するときに case で分岐させるのはどうも…
0328デフォルトの名無しさん
NGNG>200から始まる一連のやり取りが参考になるかも
TCommandってやつね
0329デフォルトの名無しさん
NGNGありがとう御座います
早速試してみます
0331276
NGNG有難う御座いました出来ました!
持続的クラスですか・・・勉強になりました。
>これで解らなかった、もうDelphi使うな。
私はまだDelphi使ってよさそうですね(藁
0332デフォルトの名無しさん
NGNGグリッドの特定の位置できっかけをあたえたら(KeydownやMoundown)その列から一列セルの中身を右にずらす方法って無いですか?
Stringgridです。
0333デフォルトの名無しさん
NGNGMemo1.Lines := として
あ
い
う
という複数行の文字列を代入したいんですけど、どうすればいいんですか?
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGこれでどーよ?
memo1.Lines.Add('あ'+#13+#10+'い'+#13+#10+'う');
>>332
グリッドの内容をTstringlistに置いてから列(行)の挿入なりをしたら駄目かな?
よーわからん
誰かよろしく
0337334
NGNGしまった、やられた。
基本を押さえれてないってことですな。トホホ
0338デフォルトの名無しさん
NGNG0339名無し募集中。。。
NGNG0340デフォルトの名無しさん
NGNGありがとうございます。
無事解決しました。
0341デフォルトの名無しさん
NGNG列の”列の挿入”じゃなくて一列まるごとセルに同じ文字列を書き込むなら出来るかも。
空白を書き込むとか。
やっぱTstrings使わないと無理か?
確認だけど上書きじゃなくて挿入なんだよね。
0342デフォルトの名無しさん
NGNGDelphiで直接利用することってできます?
それとも.pasに書き直さないと駄目ですか?
0343デフォルトの名無しさん
NGNG作り方による
0345Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,ミ,,゚Д゚彡< 近頃忙しいっす。
UU""" U U \_______________
マッタク、コキツカイオッテ
>>332
このあたりを見ると幸せになれるかも。
Delphi広場<10356>
右にずらして、その後どうするのかわけわかだけど、
ColsはTStringsだからAssignで
ピーコしてからその列の内容を削除したらいいんでないの?
StringGrid1.Cols[X+1].Assign(StringGrid1.Cols[X]);
StringGrid1.Cols[X].Text := '';
こんな感じかしら。
動作環境がないのでわからんけど。
0346デフォルトの名無しさん
NGNGそれだと隣の列に上書きにならない?
0347デフォルトの名無しさん
NGNGpasに直さなきゃいけないのでは?たしかwww.freepascal.orgにh2pasっていう
ユーティリティがあったと思うのでそれを使うと幸せかも。
0348Delフサギコ ◆zE1iiRdQ
NGNGム板にWebアプリ作成スレがあってもいいとおもう。
,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡< 最近、お仕事がそればっかなのよ
UU""" U U \_______________
VB6でIISアプリには飽き飽きなので
Delphiにしたいが、我慢してC#に…
0349デフォルトの名無しさん
NGNG漏れならInc(ColCount)して
1行ずつCommaTextをTStringListに渡してInsertして
CommaTextで戻す。効率とかには目をつぶって(w
0350332
NGNGそもそもカンマテキストに列の挿入って出来ましたっけ。
なんか凄く面倒な事になりそう・・・
0351Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡 < やりたいことがワケ
Π ̄ ̄ ̄| \
|つワカメ()
| |___.|
∪∪
なんで、カンマ区切りテキストがでてくる?>>349-350
ColsとかRowsがTStりんgsってのは把握しているのかしら?
>>346
どうやったって、どこかの列が上書きされるしかないでしょ
InsertRow/ColやDeleteRow/Colなんて処理は
一度はこだわって作ってみるといいと思われ。
privateで宣言されているDeleteRow/ColとMoveRow/Colを
使うのがいいんじゃないでしょうか。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGと言う。
水を口に含み、少しずつ吹きながら言うと効果アップ。
0355デフォルトの名無しさん
NGNG0356354
NGNG0357デフォルトの名無しさん
NGNGだが、多くのソフトでやってあるみたく、△とか▽とか表示させるにゃ
どーすりゃいいのさ。
今はタイトルの文字に「▽名前」みたく表示させてるが、ダサすぎる(藁
0358デフォルトの名無しさん
NGNGVCじゃないとできないんじゃないの?
いいじゃん、そのダサイ状態でも機能的に問題ないなら。
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGDragModeをdmAutomaticにしたときに、
コントロールがクリックできなくなってしまいます。
例えば 4 ピクセルほどカーソルを移動させるとドラッグモードに切り替わる
ということをしたい場合、どうすればよいのですか?
0362デフォルトの名無しさん
NGNGTListColumnのプロパティでアイコンって設定できなかったっけ?
0363デフォルトの名無しさん
NGNG悩んでいました、Delphiの最近のバージョンではプロパティが
追加されたのでしょうか?
Columnのどのプロパティか見つけられませんでしたので詳しく
教えて下さい。 m(..)m
0364デフォルトの名無しさん
NGNGdmManualでやる
0365デフォルトの名無しさん
NGNGそんなのありません
0366デフォルトの名無しさん
NGNG□□□□□
□□■□□
□□■□□
□□■□□
□□■□□
こういうグリッドが有ったとしたら特定の位置を挿入したいんでしょ
でもって挿入結果が
これ?
□□□□□□
□□□■□□
□□□■□□
□□□■□□
□□□■□□
(1,y)に挿入した場合
こんなの可能なのか?・・・
0367デフォルトの名無しさん
NGNGどうしたらいいですか?
0368デフォルトの名無しさん
NGNGムリ。
非表示にしておいて、Form起動後にCloseするしかない
0369デフォルトの名無しさん
NGNGプロジェクト > オプション > フォーム > 自動作成の対象
0370デフォルトの名無しさん
NGNGできました!
ありがとうございます。
さっきまで必死にFormのプロパティを探してました
0371デフォルトの名無しさん
NGNGIntegerのデータをどんどん追加したいのです。
TListだとポインターじゃないと怒られてしまいました。
配列だと最初に大きさを決めないといけないので応用が利きません。
0373デフォルトの名無しさん
NGNGIntToStrしてTStringListに格納してみるってのはどーよ。
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG動的多次元配列なんて理想にぴったりでした。 ありがとうございます。
しかし上手くいきません。
何が間違ってるんでしょうか?
Edit3.Text := 28;
Edit4.Text := 31;
xx := StrToIntDef( Edit3.Text, 0 );
yy := StrToIntDef( Edit4.Text, 0 );
SetLength(Data, xx);
for x := 0 to xx do begin
SetLength(Data[x], yy);
for y := 0 to yy do begin
Data[x,y] := 0;
end;
end;
0376添削
NGNGfor x := 0 to xx - 1 do begin
SetLength(Data[x], yy);
for y := 0 to yy - 1 do begin
Data[x][y] := 0;
end;end;
0377デフォルトの名無しさん
NGNG動作しました! ありがとうございます。
0378332
NGNGグリッドの中身を一度カンマテキストに落として列の追加をやろうとしたのですが、どうしても追加しようとしてる列から
後ろが消えてしまいます。
一度別で確保して待避させてるのに・・・。
StringGridがセルの移動をサポートしてたら・・。
0379デフォルトの名無しさん
NGNG関数名いきなり打ってみ
0380デフォルトの名無しさん
NGNGuses Windowsして後は関数と同じように書いていくだけ。
補完使えば楽だよ。
0381デフォルトの名無しさん
NGNGカンマなら出来そうな気がするが・・・
0382デフォルトの名無しさん
NGNGImageIndexは? 少くともDelphi5にはあるよ。
>>378
もう面倒くさいから、ループでCellsを一個一個コピーしろ。
0383デフォルトの名無しさん
NGNGdmManualでやる
ドラッグを開始するにはどうすればよいのですか?
0384デフォルトの名無しさん
NGNGOnMouseDownでBeginDrag。
0385デフォルトの名無しさん
NGNG>もう面倒くさいから、ループでCellsを一個一個コピーしろ。
面倒と言うかそれが普通のやり方だと思う。
違うのか?
0386デフォルトの名無しさん
NGNGオーバヘッド多すぎない?
0387通りすがり
NGNGいや、すごくまっとーだと思う
0388Delフサギコ ◆zE1iiRdQ
NGNG_________
∧,,∧ /
ミ;゚Д゚彡< まだひっぱってるんすか?
ミつ つ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
CommaTextがなんででてくる?って
言ってるのにわかってもらえんし
>グリッドの中身を一度カンマテキストに落として列の追加をやろうとしたのですが、どうしても追加しようとしてる列から
>後ろが消えてしまいます。
ソース書きなよ。意味わからんそゴルァ
GridのColCountを+1しないと
いけないって事が理解できてないだけでは?
ColCountを1追加して
Cols[ColCount-1].Text := '';
で追加列の内容をクリアして
隠しメソッドのMoveColumnで
MoveColumn(ColCount-1, ACol);
ってするだけなんだが…
DeleteRowとかでMLログ検索してみそ。
勉強になると思うよ。
0389デフォルトの名無しさん
NGNG0390Delフサギコ ◆zE1iiRdQ
NGNGミ;゚д゚彡 ポカーン
0391デフォルトの名無しさん
NGNGricheditで1行ずつフォーカスをあてて行って最後まで行ったら
最初に戻るってどうやったらいいデスカ?
検索機能作ってどうしても、ループが上手くいかんのですよ。
0392デフォルトの名無しさん
NGNG>最初に戻るってどうやったらいいデスカ?
最後から最初に戻るには
RichEdit1.SelStart := 0;
RichEdit1.Perform(EM_SCROLLCARET,0,0);
じゃないの?
フォーカスってなんのこと?
0393デフォルトの名無しさん
NGNGttp://member.nifty.ne.jp/m-and-i/tips/wildmatch.htm
このページのコンポーネントをインストールしようとしたら、
masks.pasがないと怒られました。
HDDをいくら検索してもないので、delphi自体を再セットアップして、
masks.pasを探してみたのですが、やはり見つかりませんでした。
Personal版にはないものなのでしょうか?
0394デフォルトの名無しさん
NGNGレスどもです。
最初に戻るのは、そのやり方でやってるんですが、最後の行に行ったらって言う条件が
上手く書けないです。
ちなみに、フォーカスとは、選択した時に青くなるアレです。
普通はそう言わないのかな?
ちなみに、こんな感じでやってみたんだけど
if RichEdit1.Lines.Count-1=SendMessage(RichEdit.Handle,EM_LINEFROMCHAR,-1,0)
then change.selstart :=0;
よくよく考えたら、検索なんで、キャレットが最後の行に行く前に、終ってしまう・・・
0395デフォルトの名無しさん
NGNGMasks.Pasとは、そのコンポーネントのソースのことでは?
どういう配布方法か知らないけど、ライブラリパスはちゃんと、きってますか?
全然違うこと言っていたら、ごめんね。
0396Delフサギコ ◆zE1iiRdQ
NGNG| 過去ログ見ーってのは、勉強になるよって意味で
\_ _誰かさんみたいに、回答が面倒だから
|/ っていう意味じゃないんだが…
∧,,∧
ミ,,゚Д゚ミy━~~
U ミ
〜ミ ミ
U''U マ ドーデモイイカ
implementation
type
TStrGridInsert = class(TStringGrid)
public
procedure InsertColumn(ACol: Integer);
procedure InsertRow(ARow: Integer);
end;
procedure TStrGridInsert.InsertColumn(ACol: Integer);
var
GridRect1: TGridRect;
begin
if (ACol < 0) or (ColCount-1 < ACol) then
begin
raise EAccessViolation.Create('Grid挿入列指定が間違っています');
end;
GridRect1 := Selection;
if ACol <= GridRect1.Left then
begin
GridRect1.Left := GridRect1.Left +1;
GridRect1.Right := GridRect1.Right +1;
end else
if (GridRect1.Left < ACol) and (ACol <= GridRect1.Right) then
begin
GridRect1.Right := GridRect1.Right +1;
end else
if (GridRect1.Right < ACol) then
begin
end;
ColCount := ColCount + 1;
MoveColumn(ColCount-1, ACol);
Self.Selection := GridRect1;
end;
0397395
NGNGあ〜
ごめんなさい。
まったく、違う事いってました。
こんなクラスあったんだすねぇ・・・スマソ
ちなみに、家のにはあったよ。DEL5のPROだよ。
パーソナルにはないみたいね。
0398Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < ここまではいらんだろうけどね。
(ミ ミ) \_selectionとか。
〜ミ ミ
∪''∪
procedure TStrGridInsert.InsertRow(ARow: Integer);
var
GridRect1: TGridRect;
begin
if (ARow < 0) or (ColCount-1 < ARow) then
begin
raise EAccessViolation.Create('Grid挿入行指定が間違っています');
end;
GridRect1 := Selection;
if ARow <= GridRect1.Top then
begin
GridRect1.Top := GridRect1.Top +1;
GridRect1.Bottom := GridRect1.Bottom +1;
end else
if (GridRect1.Top < ARow) and (ARow <= GridRect1.Bottom) then
begin
GridRect1.Bottom := GridRect1.Bottom +1;
end else
if (GridRect1.Bottom < ARow) then
begin
end;
RowCount := RowCount + 1;
MoveRow(RowCount-1, ARow);
Self.Selection := GridRect1;
end;
0399デフォルトの名無しさん
NGNG気持ちは分からんでもないが、作者に聞けっちゅーの。
つーか、usesにあるぞ<masks
よく見れ。
0400デフォルトの名無しさん
NGNG全体的に意味不明
・検索なら検索のアルゴリズムを書けよ
・フォーカスじゃなくて、文字を選択して「反転」してるんだろ?
0401399
NGNG0402デフォルトの名無しさん
NGNGごめんなさい最初からそうすれば良かったですね。
procedure TForm1.Button1Click(Sender: TObject);
//検索(changeはTRichEditです)
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with change do
begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(Edit1.Text, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(Edit1.Text);
perform(EM_SCROLLCARET,0,0);
end;
end;
end;
こんなんです。ボタン押していって、最後にきたら最初に戻るってやりたいんです。
どうでしょか?
0403デフォルトの名無しさん
NGNG最初のFindTextの結果が-1だったら、もう一回先頭からStartPosまで検索、
でいいんじゃないの。
0404デフォルトの名無しさん
NGNG結局、FindText() で最後まで検索したことを知りたいわけですね。
これは、最初に FoundAt が -1 になるときですから、
if FoundAt <> -1 then
begin
...........
end else
begin
ここに戻るコードを書く
end;
じゃないですかね?
0405デフォルトの名無しさん
NGNG>>404
やった!やったっすよ!
望むものが、できたっすよ!
本当にありがとうございます!
FindTextの見つからなかった時の戻り値って、-1なんですね。
まじ、勉強になりました〜
0407デフォルトの名無しさん
NGNGおっと!発見しました、xxxicon みたいなのを探してました、
見出?にもイメージが付けれるのですね!
なんとなくいい感じで出来たのですが、アイコン位置と文字の
間が余分に空いているように見えるのが少し難点ですねぇ。
何れにしろ解決しました、ありがとうございました。
0408332
NGNGMoveColumnがあるなんて気づかなかった・・・
0409332
NGNG別ユニットに書いたら「(TStringGrid)は未定義の識別子」って出る。
Form1の implementation セクションに書いたら大丈夫なんだけど他の手続きからコール出来ない・・・。
質問ばっかりですいません。
0410332
NGNGvar
Form1: TForm1;
みたいに宣言しないと駄目とか?
0411デフォルトの名無しさん
NGNG自分で作成したカーソルアイコンを読み込ませたいのですが。
0412デフォルトの名無しさん
NGNGFormのCreateにて
Screen.Cursors[99] := LoadCursorFromFile('カーソルファイル.cur');
Cursor := 99;
って事かな
0413デフォルトの名無しさん
NGNGListBoxのようにマウスで選択状態にできてしまいま
すよね、あれを、選択状態にしないでマウスのクリック
のみでチェックを付けたり外したりでないでしょうか?
又は、ListBoxがフォーカスを失ったら選択状態が
解除出来ても良いが・・・。
0414デフォルトの名無しさん
NGNGボタンの色は変えられないのですか?
(アイコン等を使わずに)
フォントの色しか変えれないようなのですが・・・
0415デフォルトの名無しさん
NGNGそれで読み込んだアイコンはどのコントロールでも使えるのでしょうか?
ボタンやEditなど。
ちょいと試してみます。
0416デフォルトの名無しさん
NGNG普通、そんな時はパネルでも継承してボタンコンポ作るんだよ
0417デフォルトの名無しさん
NGNG又は、フリーのコンポがゴロゴロしてるからそれを使う
0418デフォルトの名無しさん
NGNG状況がいまいちよくわからんが
1. TStrGridInsertの宣言(typeからendまで)をinterface部に移す
2. 別ユニットの方では、TStrGridInsertがあるユニットをusesする
というような話?
0419Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,ミ,,゚Д゚彡< 死後吐中はプロキシの都合上書き込めん
UU""" U U \_______________
ので、返事遅くなってスマソ。
TStrGridInsertは
無理無理キャストして
TStrGridInsert(StringGrid1).InsertColumn(○)
と使うのよ。
MoveColumnはStringGridに実装されているけど
privateだから、継承クラスからしか見えない
そんなわけで、TStrGridInsertのコードからは
見えるけど、他からは使えんです。
もち、TStrGridInsertのインスタンスを作っったり
コンポーネントとして登録して利用してもいいけど
TStrGridInsertはメソッドしかないから
無理キャストしても何も問題ないっす。
(TStrGridInsertがメンバ変数を持つと
チョトやばいだろうね)
この変の仕組みが、DelMLでDeleteRowを検索でしる
と勉強になるよ。
0420デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG(a) -1の間違い
(b) Succの間違い
どっちだ。
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNGお前かわいいな(*´▽`*)
0428デフォルトの名無しさん
NGNGだったら内容としては同じもの。
ただし、コンパイラから見ると両者は「同一の型」ではない(これは
字面が違うせいではなく、両方とも array[0..260-1] のように同じ
字面にしてもやっぱりダメ)。
Object Pascal 言語ガイドの中に「型の互換性と同一性」っていう
トピックがあるから、そこを見てみるといいよ。
0429デフォルトの名無しさん
NGNG0430Delフザコギ ■zE1iiRdQ
NGNG@,,,ミ,゚Д゚彡 < 下らん事で揚げ足とるのが楽しい人間の気が知れん。
⊂,,,,,,,,,づ,つ. \_ TEditorの間違いでした!ス・ミ・マ・セ・ン!!!
0431デフォルトの名無しさん
NGNG早速質問ですが、Imageで、実行時にサイズを大きくすると、
大きくした部分に線など描画ができないのですが、なぜですか?
(散々悩んだのちPaintBoxなるものをハケーンして代わりに使ってますが。)
ちなみに今はVBユーザーです。Delphiに乗り換えてもいいかも。
0432デフォルトの名無しさん
NGNG君はVBやってなさい。
0433デフォルトの名無しさん
NGNGいのだが入りません。
ゼロを入れると当然のように日付として扱われるしどーすりゃ
いいの?
0434デフォルトの名無しさん
NGNGPaintBoxで駄目な理由がわかりません。
PaintBoxでいいじゃん、つーか、その為にPaintBoxあるんだけど。
0435デフォルトの名無しさん
NGNGTEdit使えばいいじゃん、つーか、その為にTEditあるんだけど。
0437デフォルトの名無しさん
NGNG0438Delフサギコ ◆zE1iiRdQ
NGNGカワリニ アヤマッテクレルンダ.......
∧,,∧___ / ̄ ̄ ̄ ̄ ̄
/ミ*゚Д゚ミ/\< トリpップが■ですよ、
/| ̄∪∪ ̄|\/ \_____
|____|/
,,,,∪∪,,, ,,
単語間違いはフォースで感じ取るのじゃ。
>>431
こんなん?
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Image1.Canvas.Ellipse(Image1.ClientRect);
end;
procedure TForm1.FormResize(Sender: TObject);
var
Bitmap1: TBitmap;
begin
Image1.Picture := nil;
end;
ちょっと、リサイズすると画像消えちゃう。
画像はやっぱTBitmapあたりで
別メモリに持っておくべきか。
0439Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧___ / ̄ ̄ ̄ ̄ ̄
/ミ,,゚Д゚ミ/\< TDateTimePicker.Formatに
/| ̄∪∪ ̄|\/ \スペースでも入れると
|____|/ 表示は消えてるみたいだけど。
どうでしょ
0440デフォルトの名無しさん
NGNG> トリpップが■ですよ、
つーか、Delフザコギ
0441デフォルトの名無しさん
NGNGでも、気をつけないと実際には変な日付が入ってるって
事ですよね。
0443デフォルトの名無しさん
NGNGOnUserInputなりOnKeyPressなりでFormatを書き換えてやると
一見うまくいきそうで結局うまくいかないような予感がするナリよ。
っつーか、そもそも何のために空白なんかにしたいのかと小一(略)
0444デフォルトの名無しさん
NGNG俺も日付の初期化で悩んだ事があったよ、例えば、DBから日付を持って来る
場合に、DB上には必ずしも日付が入らなくても良い項目が沢山ある場合がある、
死亡年月日とか、退職日付とか。
何処かにフラグ持てば良いのだろうが、DB上での日付をNullで扱える物も多い
ので困るんだよなぁ。
>>433
日付がNullになるような場合DateTimePickerは使えないと思っていいよ、既にFree
コンポを探し当てたかな?
0445デフォルトの名無しさん
NGNG0446DELモナ一
NGNG( ´∀`)( ) < 体が切れてる体よ!
\_
0447Delフサコギ
NGNG/ミ*゚Д゚ミ/\< 諸君等の愛してくれたモナ一は死んだ!
/| ̄∪∪ ̄|\/ \ なぜだ!
|____|/ \____
,,,,∪∪,,, ,,
次からフサコギの*やさしい* Delphi質問スレになる
0448デフォルトの名無しさん
NGNG0449初めてのDelphi
NGNGだとして
A := TStringList.Create ;
と書くべき所を、未だに
A.Create ;
と書いて、エラーを出して原因がわからず1時間悩んだ俺は見込みなしですか?
ちなみになんで下の書き方だとエラーになるのかわからん。
var節で型は明らかになってるはずなのに・・・
0450デフォルトの名無しさん
NGNGAはTStringListだ
何でTStringListを作る?
それはTStringListで作る
0451デフォルトの名無しさん
NGNGこの1行がわからんよなぁ
0452デフォルトの名無しさん
NGNG自分で簡単なクラスを設計してみればわかるかも
0453451
NGNG確かにこの方が読解しやすいね。
0454デフォルトの名無しさん
NGNG・型.コンストラクタ
の違いですか
0455問題です
NGNGvar
a, b: TStringList;
begin
a := TStringList.Create;
a.Add('XXX');
b := a.Create;
b.Add('YYY');
Button1.Caption := a.CommaText;
end;
を実行した場合のButton1.Captionの値は何でしょう?
0456デフォルトの名無しさん
NGNGvar A : TStrings ; でも
A := TStringList.Create ; と出来るようにする為です
0457デフォルトの名無しさん
NGNG"A"はTStringList型の『変数』、型から作られた『インスタンス』(実体)を納める物。
"TStringList"は、TStringList『型』。文字通り『型』。違いが解るかな?
厳密に言うと、AはTStringList型のインスタンスへのポインタに過ぎない。
まあ、あんまり深く考えない方がいい。
『型』にしかインスタンスを作る機能がない物と覚えた方が早い。
0458Delフサギコ ◆zE1iiRdQ
NGNGミ;゚Д゚彡 <
ミU U \
〜ミ ,, ミ
∪ ∪ AAはモナー板からコピペしておこう!
ギコペにはフサAAは少ないから....
DBのNullな日付型は困りモノですね。
Null許容可能なDate型を用意してくれりゃいいのに。。。
そういえば、D6から日付型が拡張されたんでしたよね…
0459デフォルトの名無しさん
NGNGレコード型に型が不定のフィールドを定義したいのですが、その方法が分かりません。
例えば、
type
abc = record
aaa: integer;
bbb: string;
...
nnn: (型が不定); ←ここ
end;
var hoge: array of abc
値を保存するbyte配列を用意してそこに格納し、ポインタで参照することも考えましたが、
それだとbyte配列を固定長にしなければならないし、
データの追加・削除が自由にできません。
何かうまい方法はあるんでしょうか。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGpersonalだけ?
0465459
NGNG具体的にはどうすればいいでしょうか。
無知ですみません。
>>462
> そういう時の為のVariantだと思うのだが?
nnnにはレコード型も格納したいのですが・・・。
(ヘルプによるとできないようです。)
ほかに方法はありますか。
あと>>459の例は、
nnn:だけがbyte型になったり、string型になったり・・・ということです。
aaa、bbbは関係ありません。
誤解を招いてしまっていたらすみません。
0466デフォルトの名無しさん
NGNG460ならNew/Dispose使え。
461の方がいいと思うが。
0467デフォルトの名無しさん
NGNGhttp://home1.infonia.ne.jp/~delphian/delphi/
0468デフォルトの名無しさん
NGNGありがとう。シェアなんだね。
結局貧乏人には矩形選択を実装できないって事か。
はふぅ。
0469デフォルトの名無しさん
NGNG金がないなら技術を磨けYO!
0470デフォルトの名無しさん
NGNG自力で実装すると言う考えはないのですか?
0472デフォルトの名無しさん
NGNG>不可能なんじゃないの?
この瞬間delフサは神になりました。
以後誰もdelフサの発言に疑問を持ったり
逆らったりしてはいけません。
0473デフォルトの名無しさん
NGNGターミナルっぽいメモ型コンポってない?
0474467
NGNGネットでいくら検索しても出てこないし、
何をどうすれば矩形選択になるのかサッパロ。
色を反転させたイメージを貼り付けたりすればいいの?
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG編集コントロールを自作
TStringsの内容をCanvasに描画するようなやつ
0477デフォルトの名無しさん
NGNGずっと使いづらいと思いつつ{}でくくってたんだけど、
昔から//でも良かった?
0478デフォルトの名無しさん
NGNGおれも欲すいので作って呉
0479Delフサギコ ◆zE1iiRdQ
NGNG/\ ( 悩む時間でバイト逝けよ…
. |∧ ∧ .。○ あと、ダウソすりゃTEditorソース見え見えだって
___ ミ,,゚Д゚彡___( TMemo全部自作する気なら読むヨロシ
| ⊂ ⊃ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ミ ミ ̄ ̄ ̄ __
'|. ミ ミ |__†_レ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
'|. |.UU| (゚Д゚,,) < 迷える子羊よ、お訊きなさい・・
'|. | | ∧ ∧⊂ ̄ ̄ハ \______________
'|. | |.( ,) | ╋ J
| ̄ ̄ ̄./⌒ヽ ̄ ̄ ̄|
| ( ノ ) |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
_______|\________
貧乏人には短形選択を実装できないんかゴルァ
0480467
NGNGありがと。
自宅帰ってからゆっくり調べる。
0481デフォルトの名無しさん
NGNGAAを書く時間でバイト逝けよ・・・
0482もっとマターリいこうや
NGNGζ ,
_ ノ
( ( (. )
`
. -/■\ .
.´,.::;(´∀`A) `.
i ヾ<:;_ー-ーー,.ン |
l  ̄...:;:彡|
/■\ } . . ...::::;:;;;;;彡{
( ´ )-`) i . . ...:::;;;;;彡|
,つ ⊆) } . .....:::;::;:;;;;彡{
, :´ `"~. `、 !, . .:.::;:;;;彡j:::::::::::::::.......
. . ' . ; .丶 ト , . ..,:;:;:=:彳:::::::::::::::::::::::::::..
. ,:´ . ' ' `、 ヽ、.. ....::::;;;ジ.::::::::::::::::::::::
,' . 簍�J鶸鑼 ; `.  ̄ ̄
,, -'''" . . 駲刪櫑躪 . ' ';゛`'丶.、.......
. '´ ! . 膚順棚斷. ' , ;::::::::::::...`.::::::::....
i ヽ、..._,.__魎鬱蹠撫.,,__,.,..ノ.::::::::: !::::::::::::...
. ヽ、 ,: '.:::::::::
`=ー--、....,,,,,______,,,,,... --‐=''´..::::::
``" '' 'ー───‐―‐' ''' "´
-モナーの *やさしい* Delphi質問スレ Ver3 -
*)
0483デフォルトの名無しさん
NGNG>>466 ありがとうございます。
0484Delフサギコ ◆zE1iiRdQ
NGNG∧.,,∧ /
ミ.,,゚Д゚彡< TMemoで短形選択は非常に難しいと思われ
ミ つ目(ミ . \
〜ミ,,O,,,,,,つ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
TMemoはOSのメモコントロールを利用しているから
メモコントロールには元々短形選択機能なんてのはついてないの
OSのどこかのDLL(?)で動作してるから
メモコントロールのソースなんかどこにもないの。
だから大幅な機能拡張なんて出来そうにもないのです。
(超裏技を使ったら出来なくはないかもしれんが
…聞いたこともないです)
そいうのが嫌で、Editor機能を全部
Delphiソースで書かれたものとして
TEditorとか他にもDelphianWorlsに登録してありますよね。
裏技的なやり方をすれば
背景透明化なんかはTMemoでもできたり
改行コードやEOF描画はTRichEditでも
なんとか出来たりしますが、
短形選択は聞いた事ないですし
ヤパーリTEditorを使うのがよろしいと思います。
結構、多くのフリー/シェアエディタにも使われてるYO
TeraPadなんかもTEditorだよね。
3000円(だっけ?)で超優良なコンポーネントが手に入るので
すごく安い買い物だと思うよ。
書籍買うのとかよりもね。ソースつきだし勉強になるっしょ。
どんな書籍買ってもTEditor級のコンポーネントは
簡単には作れないし。
ではでは。
0485デフォルトの名無しさん
NGNGXXX,YYY
かなぁ・・・・。
a.Create
では新しいインスタンスは作成されなかったと思う。
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNGbegin
処理
end;
と
if (aaaa=bbbbb) then
begin
処理
end;
とどっちが読みやすい?
あと、
end else begin
と
end
else begin
や
end
else
begin
って書き方もあるけど、どれが読みやすい?
0488デフォルトの名無しさん
NGNGif c in ['A'..'Z', 'a'..'z', '0'..'9'] then
>>487
http://community.borland.com/soapbox/techvoyage/article/1,1795,10280,00.html
0489ネタでなければいいが…
NGNGStrToIntDef
0490488
NGNGこれは文字cが半角英数かどうかって事ね。
文字列全体ならループまわして判定。
0491489
NGNGそれでいいのかなぁ〜。
0494Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < なんでも判定するよろし。
UU"""" U U \_______________
type
TStrInTable = (vitAllInclude, vitAllExclude);
function CheckStrInTable(const Str, Table: WideString;
InTable: TStrInTable): Boolean;
var
ExistCondition: Boolean;
i: Integer;
begin
case InTable of
vitAllInclude: ExistCondition := True;
vitAllExclude: ExistCondition := False;
else
raise Exception.Create('InTableの不正指定');
end;
Result := True;
for i:=1 to Length(Str) do
begin
if (AnsiPos(Str[i], Table)=0)=ExistCondition then
begin
Result := False;
Break;
end;
end;
end;
0495Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < こんなんして使います。
UU"""" U U \_______________
const zenHiraTbl: String =
'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ'+
'まみむめもやゆよらりるれろわゐゑをんがぎぐげござじずぜぞだぢづでど'+
'ばびぶべぼぱぴぷぺぽぁぃぅぇぉゃゅょゎっー';
const zenKataTbl: String =
'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホ'+
'マミムメモヤユヨラリルレロワンヲガギグゲゴザジズゼゾダヂヅデド'+
'バビブベボパピプペポァィゥェォャュョヮッー';
const hanKanaTbl: String =
'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ゚ー・、。「」';
const zenNumberTbl: String =
'1234567890';
const hanNumberTbl: String =
'1234567890';
const zenAlphaTbl: String =
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'+
'abcdefghijklmnopqrstuvwxyz';
const hanAlphaTbl: String =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const zenMarkTbl: String =
'−.&%$#*@?/,<>(){}|;:〜+`!�V=_^・';
const hanMarkTbl: String =
'!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~';
const zenSpaceTbl: String = ' ';
const hanSpaceTbl: String = ' ';
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckStrInTable(Edit1.Text, hanNumberTbl, vitAllInclude) then
Form1.Caption := 'すべて半角数字で構成されています'
else
Form1.Caption := '半角数字以外の文字が入っています'
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if CheckStrInTable(Edit1.Text, hanNumberTbl + zenNumberTbl, vitAllExclude) then
Form1.Caption := '一文字も数字は含まれていません'
else
Form1.Caption := '数字が含まれています'
end;
0496デフォルトの名無しさん
NGNGこの文は妥当か?
0497デフォルトの名無しさん
NGNG0498Delフサギコ
NGNG∫ _________
∧,,∧ ∬ /
ミ,,゚Д゚彡っ━~ < このスレは低レベルですな。
_と~,, ~,,,ノ_. ∀ \
ミ,,,,/~), │ ┷┳━  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄
0499名無しヘタぐらま ◆B18Bks.Y
NGNG全角文字を含む文字列の中の文字の場合,
ByteType関数などを使ってチェックしないといけないです.
例:文字列sの中の半角英数すべてを"#"に痴漢.
for i := 1 to Length(s) do
if (s[i] in ['A'..'Z', 'a'..'z', '0'..'9']) and (ByteType(s, i) = mbSingleByte) then
s[i] := '#';
0500デフォルトの名無しさん
NGNG毎回ByteType呼ぶと重い。
1バイト文字のときに限り、ならこんな感じかね。
isSecondByte := false;
for i := 1 to Length(s) do
begin
if isSecondByte then
isSecondByte := false
else
if s[i] in LeadBytes then
isSecondByte := true
else
if s[i] in ['A'..'Z', 'a'..'z', '0'..'9'] then
s[i] := '#';
end;
重さを無視すれば WideStringに代入して回したほうがコードはシンプルになるね。
0501500
NGNG0503デフォルトの名無しさん
NGNG画面があったとします。
その画面の左上から雪みたいなのがフワフワ降ってくるのを作ろうとしてるのですがうまくいきません。
直線にビューーーー!って飛んでいくんです。
どうしたら良いでしょうか?
sinとかつかわないとダメですかね?
0504デフォルトの名無しさん
NGNGどうしたら良いでしょうか?って言われても。
どういう実装を考えていて、どの部分のやり方がわからないのか、ということ。
さっぱり見当もつかないならあきらめてください。
0505デフォルトの名無しさん
NGNG振り子運動をしながら落ちていくだけでもふわふわしそうですが・・・
0506デフォルトの名無しさん
NGNGクリックとドラッグがそれぞれ出来るようにしたいのですが、
OnMouseUp にクリックイベント内容を書き、
OnMouseDown に BeginDrag(False,4) とすると、
マウスボタンを押した瞬間に OnMouseUp が発生してしまいます。
どうすれば上手く行くでしょうか。
0507デフォルトの名無しさん
NGNGax = 0.0
while True do
begin
ax := ax + Random(10)-5;
x := x + ax;
y := y + ay;
end;
0508デフォルトの名無しさん
NGNGファイルを検索してもそんなファイル無いのですが、Del6では
使えないの?
0509デフォルトの名無しさん
NGNG出来ますか?
0510デフォルトの名無しさん
NGNG無理。del5をダウンロードせい。
つーかdel6は不安定なんで素人にも玄人にもオススメできない
0511デフォルトの名無しさん
NGNGなぜここで聞くのか?
そもそもDel6用なんてどこにも書いてなかっただろ。
0512511
NGNG突っ込まれる前にいっておくと
作者のHomePageがあるだろ。つーこと。
ttp://member.nifty.ne.jp/~katsuhiko/
0513509
NGNG0514デフォルトの名無しさん
NGNG_____ ______
/\ Λ_Λ /
\ \(;´Д`)\ < ハーイ?
|\/| ̄ ̄ ̄ ̄|\ \______
\. | DELモナ . |
\.|.____|
0515デフォルトの名無しさん
NGNG0516>515
NGNG2. 1.の数値をa..zのアルファベットに変換
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGc := s[Random(Length(s))+1];
0519デフォルトの名無しさん
NGNG適当な横軸足しながら、sinで揺らせば?
複数のsinを足すとそれっぽい。
0520509
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGClipBoard.Assign;
0524デフォルトの名無しさん
NGNGコンポーネントパレットの[Additional]ページにあるという
ActionManager が見当たりません…。
何か特別なことをしないといけないんでしょうか?
0525506
NGNG0526デフォルトの名無しさん
NGNG面白くない。
0527デフォルトの名無しさん
NGNG>>1にあるこのスレの過去ログを調べなさい
http://paming.s7.xrea.com/ykwk166_kai/yukiwiki.cgi?mycmd=read&mypage=%5B%5BD6%83%60%83%85%81%5B%83g%83%8A%83A%83%8B%82%CC%93%C7%82%DD%91%D6%82%A6%5D%5D
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG確かに。
0532デフォルトの名無しさん
NGNGめんどくさいだけだろ。
0533デフォルトの名無しさん
NGNGHitしたらその文字が何番目か返す関数ってあります?
例えば'TestWord@@@'って文字列から、'Word'って文字を探して
上の例なら5を返すような関数。
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGありがとう。
今までずっとstrPos使ってヒィヒィ言ってたの。
0536デフォルトの名無しさん
NGNG(´ー`)y-~~~ ちったぁHelp読めや・・・
0537デフォルトの名無しさん
NGNGメインフォームで、あるボタンを押すと別フォームが現れるとします。
ボタンを押したときにその別フォームがすでに起動してたら、
新たに起動せずに、すでに起動してるのをアクティブにする、
ってことをしたいんですが、やり方わかりません。ぜひ教えていただきたい。
0538デフォルトの名無しさん
NGNGTurboPascalあたりからじゃねえ?
>>485
その通り。
だもんでこんな風に初期化を共通化するのに使うのもありだな
constructor THoge.Create;
beign
:
end;
constructor THoge.CreateFromFile(const s: string);
beign
:
Create;
end;
0539デフォルトの名無しさん
NGNGああああああああ
いいいいいいいい
ううううううううううう
ええええええええ
おおおおおおおお
ってあったら
あいうえおあいうえおって読んで行きたいんです。
0540539
NGNG0541デフォルトの名無しさん
NGNGむしろform2.showで何がうまくいかないのかわからん
0542537
NGNGその別フォームってのはTOKBottomDlgでして、
OK押したらそのフォームの設定を保存するようにしてまして、
そんでshowmodalでやってるんです。
でもこのフォーム、ホットキーでも呼べるようになってまして、
そうすると二重起動できちゃうんです。これを阻止したいのです。
showだと、OK押したら保存、キャンセルなら保存しないっていうのは
どうやるんでしょうか?初歩的な質問で申し訳ないっす・・・
0543537
NGNGメモリ開放はcaFree使えばよいのかしら?
それは置いといて、やっぱり二重起動防止がわかりません・・・うぐっ
0544デフォルトの名無しさん
NGNG閉じたら再設定すけば?
0545デフォルトの名無しさん
NGNG設定したいのですが、Pos関数の戻り値が全て0になってしまいます。
何がいけないのでしょうか?
eはTedit、llはTlistboxです。
var ret,i:integer;
begin
for i:=0 to ll.Count -1 do
begin
if pos(UpperCase(ll.Items.Strings[i]), UpperCase( e.Text))<>0 then
begin
ll.ItemIndex :=i;
exit;
end;
end;
end;
0546デフォルトの名無しさん
NGNGPosの引数が逆なんじゃないの?
0547DELモナ
NGNG( ´∀`)< >>545 pos の引数は pos(検索文字列, 検索対象文字列) モナ。
>>539 わざわざ for 使わなくても、
s := StringGrid.Cols[0].Text; でいいんだナ。
0548545
NGNGありがとうございます!
何とお礼を言っていいのやら
0550デフォルトの名無しさん
NGNG0551名無しヘタぐらま ◆B18Bks.Y
NGNGたしかDelphi 2.0からと記憶しています.
初代はできなかったと記憶しています.
また今,旧開発機でDelphi 2.0を起動して『//』が使えるのを確認しました.
0552デフォルトの名無しさん
NGNG'検索'を追加したいのですが、カテゴリの追加の仕方がわからずに
困っています。
0553デフォルトの名無しさん
NGNGメニューを親フォームに作成し、子フォームの
Memoコントロールをクリアする処理を作成したところ、
linesメソッドが未定義だと言われてしまいました。
MDI環境で子フォームのコントロールを制御したい場合は、
どのように指定したらいいのでしょうか?
procedure TMainForm.FileClearExecute(Sender: TObject);
var
ActiveEditer:Twincontrol;
begin
ActiveEditer:=ActiveMDIChild.ActiveControl;
ActiveEditer.Lines.Clear; ←ココ でエラー
end;
0554デフォルトの名無しさん
NGNG直接Category書き換えるだけ
0555552
NGNG「標準アクションの追加」で何とかうまくいきました。
ありがとうございます
0556デフォルトの名無しさん
NGNGActiveEditorつーのは、TWinControlなわけでしょ。
TWincontrolには、Linesプロパティがないからエラーが出るのはあたりまえ。
じゃ、どうするのかといえば、
ActiveEditor := ActiveMDIChild.ActiveControl;
if ActiveEditor is TMemo then
TMemo(ActiveEditor).Lines.Clear;
で出来る。
0557デフォルトの名無しさん
NGNGできました。
なんとお礼を言ってよいのやら。
とにかくありがとうございました。
それで、他にもTmemoを参照する場面が多々あったので、
>TMemo(ActiveEditor).
これの値をTMemo型に格納して処理させましたが、
このとき参照の解放作業のようなものは必要なのでしょうか?
それともスコープを抜けた時点で自動的に解放されるのでしょうか。
0558デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGなぜなら、集合型はファイルに保存したりするときに、数値や文字列に
変換するのが面倒だからだ。そこで、汎用型変換ルーチンを作った。
役だてていただきたい。
type TYPE = (...)
type TYPES = set of TYPE;
↑と宣言している集合型と整数の相互変換ルーチン
{ 集合型を整数に変換..64要素まで対応 }
function TYPES2Int(S:TYPES):Int64
var
I:TYPE;
begin
if Ord(High(TYPE)) >= 64 then
raise Exception.Create('要素数が多すぎる');
for I := Low(TYPE) to High(TYPE) do
if I in S then
Inc( Result, 1 shl Ord(I) );
end;
{ 整数を集合型に変換..64要素まで対応 }
function Int2TYPES(S:Int64):TYPES;
var
I:Integer;
begin
if Ord(High(TYPE)) >= 64 then
raise Exception.Create('要素数が多すぎる');
for I := Low(TYPE) to High(TYPE) do
if S and (1 shl Ord(I)) <> 0 then
Include( Result, I );
end;
0561デフォルトの名無しさん
NGNG集合型の実体は 256 bit / 32 byte のデータでしかないから, byte[0..31] に
強制キャストしてしまえば終わり。
0562デフォルトの名無しさん
NGNGそうか。
0563デフォルトの名無しさん
NGNG喜び勇んでコピペした俺の立場わ
0564デフォルトの名無しさん
NGNG詳細なリファレンスを作ってくれたなら、もっと売り上げに貢献…するような
気がするようなしないような。
あくまで希望っちゅーか、展望っちゅーか、未来予想図っちゅーか…。
ま、感謝してますが>ボーランドさん
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG>もー(略)ー少し、ヘルプを「いい感じ」にするのと、 詳細なリファレンスを
胴衣。
それにしても、ちゃんとしたアプリケーションが作れるソフトでフリーとは
もう感謝です。だれでもアプリケーションが作れる環境が手に入るって
いうのは画期的ですね。みんなプログラミングしましょう。
(Professionalは高いですが・・・)
0567デフォルトの名無しさん
NGNG0568485
NGNGお礼。
TObject(nil) is TComponent はTrueかFalseか?
0569デフォルトの名無しさん
NGNG何の名前のことだか不明なのだが……
社名であれば、Borland というのは「開発ツール(言語)メーカー」という
イメージが非常に強く、Enterprise 分野に進出するにあたってそのイメー
ジを払拭するために、Inprise という名称に変えた、というところ。
実際このとき、Borland の名前は開発ツール群の名称として残していた
(Inprise の Borland Delphi とか……)。
が、結局 Borland のネームバリューのほうが強かったので、元に戻した、
そういうわけだが。
0570デフォルトの名無しさん
NGNGその費用の損失で株が下がると困るから社名を変えて回収した、
というのが本当の理由と聞いたが。
0571デフォルトの名無しさん
NGNGRAD ツール関連は Borland ブランドで出し続けた事実一つで、その妄想は否定される。
0572デフォルトの名無しさん
NGNGVBでは簡単に出来たと思うのですが。
0573デフォルトの名無しさん
NGNG「定数が範囲を超えました」と言われてしまいました。
SetWindowPos(form1.Handle, -1, 0, 0, 0, 0, 68);
どうも第2引数が原因らしいのですが、-1を指定しないと
前面に固定表示されないので困っています。
Delphiでは何を送ればいいのですか?
0574デフォルトの名無しさん
NGNG> Delphiでiniファイルを作ったり読み込んだりするのは何を使うのが一番良いですか?
> VBでは簡単に出来たと思うのですが。
ぼくはBuilder使いだけど、TIniFileっての、ない?
0575デフォルトの名無しさん
NGNG「定数が範囲を超えました」 は たぶん -1をHWND(-1)と書けばいいと思うけど
そこは ,HWND_TOPMOST と定義済みの定数があるよ
でも、常に前面に表示したいなら、
http://www.borland.co.jp/qanda/delphi/d0000128.html
0576デフォルトの名無しさん
NGNG違うよ。RADツール以外を回収だよ。
0577デフォルトの名無しさん
NGNGTinifileでいけました。
最初動かなかったんですけどusesにinifilesを追加したら無事iniファイルの読み書きが出来ました。
IniFile: TIniFile;
って言う宣言も必要でした。
勝手にセクションやファイルを生成してくれるので便利。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG買った物なので別に登録しても良いのですが。
そもそもBorlandで買ったので登録された状態で出荷れてたはず・・・。
急に使えなくなったりとか?
0581デフォルトの名無しさん
NGNGだから、エンタープライズ系に突入したのは Inprise に名前を変えてからだろ?
VisiGenic や OpenEnvironment の製品は、どちらにしろ名前を変えなきゃいけないわけだし。
おもしろい妄想だけど、時系列的にあわない。後知恵的発想。
0582デフォルトの名無しさん
NGNGOldTextプロパティを追加して、EnterイベントとCreate時に
Old:=Text のようにプログラムした。
一見してこれで正しく使えているのだが、問題があった。
それは、
xxxxx.text:='代入';
のようにプログラムにて値を代入すると EnterとCreateでは
上手く編集前の値が保存できないのです。
Changeイベントを使うと、一見できそうだったのですが、
どーやら、同じ値が入った場合にはイベントが発生しない
みたいで、失敗しました。
なんとか、単純に値が代入された事をしるすべはありませんか?
0583デフォルトの名無しさん
NGNGそんな時はkeypressを使うのだYO!
0584582
NGNGすみません、よく解らないのですが、キーボードからの入力
じゃないのでkeypressは使えないでしょ?
なにか、擬似的にkeypressを発生させるような事が出来る
のでしょうか?詳しくお願い致します。m(。。)m
0585デフォルトの名無しさん
NGNG俺の勘違いだったYO!
0586デフォルトの名無しさん
NGNG製品のユーザー登録と、個々のインストールイメージのアクティベーションは別。
Windows XP もそうでしょ?
使用許諾をとらなくても特に問題はないはず。
0587デフォルトの名無しさん
NGNG578のtypoか。TMemIniFileだな。
TIniFileは制限が多いのでTMemIniFileがよいかと。
0588デフォルトの名無しさん
NGNG違う。Delphi/400とか、AppCenterとかイパーイ出てた。
時系列的にあってた。
0589デフォルトの名無しさん
NGNGたぶんCustomEditのソース眺めてTextが無いから
そんなこと言ってんだろっ!な!そーだよなっ!
もう少し上のクラスを見てみろ、TControlとかね。
0590デフォルトの名無しさん
NGNG>店頭に余った製品を回収しなければならないが、
>その費用の損失で株が下がると困るから社名を変えて回収した、
「店頭」で売るようなものじゃなかったんだってばYO.
Delphi/400 は Delphi のまま売り続けたし、もともとフランスの物。
アメリカでは大して売れていなかった。
AppCenter なんか、それこそ店先で買うものでなかろ?
店頭から回収すると被害が起きる、ってのはショップで売ってる RAD ツールに
のみ当てはまることで、そいつらの名前が変わらなかったことをどう説明すんだ。
誰からそんな説明を受けたんだい?
0591デフォルトの名無しさん
NGNGそれをなくしたいのでKeyDownでkey:=0;ってやったのに
キャンセルされないのですが、どうやると
keyDownを無効にできますか
0592デフォルトの名無しさん
NGNG記憶ではZDNN。
0593デフォルトの名無しさん
NGNGEditのKeydownでできますが?
if (Key=VK_DOWN) then Key:=0;
0594デフォルトの名無しさん
NGNGありがとうございます。おっしゃる通りでした。
0595デフォルトの名無しさん
NGNG一定時間したら自動で閉じるようにしたいがどーするよ。
0596デフォルトの名無しさん
NGNG実態はメッセージボックスコールなんだから無理だろ。
そこにWindowsメッセージをPostするなんて、
汚いことはしない方が時間の無駄をしないと思う。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGそうです。
Windowsのメッセージをイジリだすと、VCLの処理とブツかって、把握が大変。
へたすると、そんな大した処理じゃないのに、Case文のネスト。
0599デフォルトの名無しさん
NGNGもう出来ました。
まぁ作ってもすぐ出来るんだからこっちの方が楽でした。
あとは、今までのメッセージを全て変更する必要がある
が、IDEのエディタにプロジェクト内の全ユニットを串刺
しして変更する方法が無いのが寂しいですね。
0600デフォルトの名無しさん
NGNGあ、すみません。↑↓キーはできたのですが、
スペースキーがアウトみたいです。
何故文字の時はダメなのでしょうか
case key of
vk_up :
begin
ll.ItemIndex :=ll.ItemIndex +1;
key:=0;
end;
vk_down:
begin
ll.ItemIndex :=ll.ItemIndex +1;
key:=0;
end;
vk_space:
begin
e.Text := ll.Items.Strings[ll.ItemIndex];
key:=0;
Sender:=nil;
end;
end;
0601デフォルトの名無しさん
NGNG俺はオマエのデバッガーじゃねーぞ。
case key of
vk_space:
begin
edit1.Text := 'あああ';
key:=0;
end;
end;
これも問題ないようだが?
0602デフォルトの名無しさん
NGNGそんなことより、
vk_up:
begin
ll.ItemIndex :=ll.ItemIndex +1;
~~~
アップで+1はおかしくないか?
0603デフォルトの名無しさん
NGNG>あとは、今までのメッセージを全て変更する必要がある
・メッセージ画面出力関数を用意しといて、
1箇所で処理が変わるようになっといた方が良かったのでは?
・もしこのメッセージがエラーメッセージなら、
Application.OnExceptionイベントハンドラ1ヶ所にしといて、
エラーをトラップしなければ良いのではないでしょうか?
エラーメッセージを出力したいときは、Exception.Createすれば良いし
0604600
NGNG重ね重ねありがとうございます。
どうもkeydownでkeyを殺しても、
keypressにスペースが飛んでくるようなので、
そっちに#0を入れて対処しました。
0605デフォルトの名無しさん
NGNG「オフコン」とはなんですか?
具体的に分かりやすく教えてください。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/ つ 糸冬 了│
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0608デフォルトの名無しさん
NGNGここか。
ttp://pc.2ch.net/test/read.cgi/tech/1014478527/l50
0609デフォルトの名無しさん
NGNGさらになぜか DirectX 相談室にも。
単なるコピペ荒らしという可能性もあるが。
http://pc.2ch.net/test/read.cgi/tech/991795568/866
0610デフォルトの名無しさん
NGNG>>609の場所でも一応質問してたんですが・・・・
さっき
スパロボA DLしたんですけども・・・・・
対応アプリが無くて起動できないんですが・・・・・
どういうアプリなんでしょうか・・・・・
すいません。ホント知らないんです。
僕はアプリ無しでDLした真性の馬鹿です。
0611デフォルトの名無しさん
NGNGスピンコントロールで数値が入力された際に4の倍数以外は無効にしたいのですが、どうしたらいいのでしょうか?
4、8、12、16、20、24 etc・・・・
今はKeyDownが起こったら即座にValueを元の数字に戻すようにしてます。
出来ればカーソルの↑↓や数値入力からも入力したいので。
0612デフォルトの名無しさん
NGNGgoogleの検索ぐらい覚えてくれよ
ホレ検索結果だ
http://www.google.co.jp/search?hl=ja&q=%82%A8%91O%82%C1%82%C4%96%7B%93%96%82%C9%94n%8E%AD%82%BE%82%CB&lr=lang_ja
0613名無しヘタぐらま ◆B18Bks.Y
NGNGTIniFileはWindows 9x/NTにあるiniファイルを処理する機能を使って制御しています.
TMemIniFileはこれを使わずに普通のファイルのように読み書きしています.
0614デフォルトの名無しさん
NGNG「お前って本当に馬鹿だねに該当するページが見つかりませんでした。」
あらかじめお知らせします。
関係ない人がクリックするとなんだかいやな気持ちになるな。
0615デフォルトの名無しさん
NGNGその Spin コントロールで、Edit 領域に 3 とか入れた場合の、期待する動作を
教えてくれ。
0616611
NGNG3とか4の倍数以外が入ったら無理矢理4とかに書き直しちゃうのが一番簡単な回避方法だと。
今はどんなキー入力でも強制的に4になるようにしてます。
0617デフォルトの名無しさん
NGNGだいぶ前にインプレスのサイトでDelphiとC++の速度比較を行ってた記事があったんですが見つかりません。
誰か知ってる方教えて下さい。
0618デフォルトの名無しさん
NGNGこんなんあったけど…
0619デフォルトの名無しさん
NGNG32とか36はどうするの?>611
0621デフォルトの名無しさん
NGNG氏ね
0622610
NGNG一応それ乏しきサイトは見つけたのですが・・・・
gbaemu.www7.wnj11.jp/
どれをDLしたか解らないんです。
どうか教えてください。
>>ALL
すいませんでした。
0623デフォルトの名無しさん
NGNGかならずしもキーボードから数値を入力する必要がないなら
EditorEnabled = Falseが一番楽かと。
0624デフォルトの名無しさん
NGNG他スレとさほど変わらないんじゃ・・・・・
0625デフォルトの名無しさん
NGNGそれなら KeyDown じゃなくて、OnExit で処理すれば?
入力が確定するのは OnExit でフォーカスが失われるときなんだから。
俺なら OnExit で値が 4の倍数かどうか調べて、違ったらエラーメッセー
ジ出してフォーカス戻すけどな。
0626625
NGNGもしかして俺勘違いしてる?
0627デフォルトの名無しさん
NGNGDELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
あきらかに嘘だろう。
元に1は不在だ。
0628625
NGNG鬱だ帰ろう……
0629デフォルトの名無しさん
NGNGそれで文字数からピクセル数で幅とか自動設定したいのですが
どーやって計算すればいいの?
MS P ゴシックとかだと計算で求められない?それとも、最大の
幅とかで求められるかなあ・・・。
0630デフォルトの名無しさん
NGNGドンピシャです。
0631デフォルトの名無しさん
NGNG質問には関係ないけど、「〜でしょ」はぜひやめて欲しい。
「指定するでしょ」「指定しません」って思ってしまう。
まあ捉え方は人それぞれだけど。
TCanvas.TextExtentで求められます。
0632630
NGNGでドンですよ、奥さん。
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG∧ ∧ |TCanvas.TextExtent
( ´∀`)< TCanvas.TextWidth
( ) |TCanvas.TextHeight モナ
0635デフォルトの名無しさん
NGNG__________
|目指せ USO800 認証|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・)< おー、ワシの Word が �d�j ぞ!
( 部長) \ ワー、ドーしよう ... なんちゃったりして♪
| | | \_______________________
(__)_)
―――――――――――――――――――
(無視)
___________________
∨
∧ ∧ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ;) (# .)< (無視)
/PG| ( 平SE ) \
\(__.ノ | | | \___________________
(__)_)
0636デフォルトの名無しさん
NGNGhttp://www.2ch.net/guide/faq.html#B0
0637デフォルトの名無しさん
NGNGじゃあ次スレはこんな感じで
DELモナーがどんな厨房疑問でもやさしく答えます。
DELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
罵倒されますが。
0638デフォルトの名無しさん
NGNG驚いた。
FormatDateTime で、形式文字列を 'yy/mm/dd hh:mm.ss'に指定したとしよう。いままで、月は m で、分も m だと、無意識のうちに思っていた。
ナンの疑いも無く、 yy/mm/dd hh:mm.ss としていたわけだ。
ヘルプによると、分は n なので、本当は
yy/mm/dd hh:nn.ss としなければならない。
ところがなんと!
ちゃんと月と分で分けて表示されている…
なんて親切なんだろう!
みんなも試してみよう。
0639デフォルトの名無しさん
NGNGヘルプに書いてあるじゃん。
>h 指定子または hh 指定子の直後に mm 指定子を指定すると,月ではなく分が表示される
0640デフォルトの名無しさん
NGNGhttp://www.2ch.net/guide/faq.html#B0
と
Delphiのヘルプ
0641デフォルトの名無しさん
NGNGなつかしいねそれ。
0642デフォルトの名無しさん
NGNG∧ |/| ∧
/ 丶 |/| /:::::丶
/ 、__|/|_ , :::::::::ヽ
/ |/| ::::::::::::::::::::::\
| |/| ::::::::::::::::::::::: | ヽ丶
| _|/|__:::::::::::::::::: | | |
| /____ \::::::::: | / /
ヽ // ::::::::\.\: /
丶// :::::::::::::::\\
/  ̄| :::::::::::::::::::|: ̄::ヽ ぷらーん
| ::::::::::::::::::|::::::::::::
// | | ::::::::::::::::::|:::::::::::| ぷらーん
| | | | ::::::::::::::::::|::::::::::::|
ヽヽ | | ::::::::::::::::::|::::::::::::|
| | ::::::::::::::::::|:::::::::::|
| | ::::::::::::::::::|:::::::::::|
ヽ / |:::::::::::::::::::::ヽ:::::::/
 ̄ | |::::::::::::::::::::::::| ̄ ヽヽ
| |:::::::::::::::::::::::::| | |
| |:::::::::::::::::::::::::| / /
| |:::::::::::::::::::::::::|
| |::::::::::::::::::::::::|
| |::::::::::::::::::::::::|
| |:::::::::::::::::::::::|
ヽ____丿ヽ::::::::::::::::::/
;;;;;;;;;;;;;;;;;;; ̄ ̄ ̄
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0644デフォルトの名無しさん
NGNGツールとかありませんか?
0645デフォルトの名無しさん
NGNGモジュール'ntdll.dll'のアドレス77fca1f9でアドレス006e0059に対する書き込み違反が起きました
モジュ−ル'rtl60.bpl'のアドレス40005883でアドレス00000022に対する書き込み違反が起きました
モジュール'ntdll.dll'のアドレス77fca30cでアドレス03534385に対する書き込み違反が起きました
0番目のタブの参照に失敗しました
メモリストリームの拡大中にメモリが足りなくなりました
0646デフォルトの名無しさん
NGNG要するに
「どういうエラーかさっぱりわからんぞゴルァ!」
ってことでよろしいですか?
0647デフォルトの名無しさん
NGNG必要なら他のエディタで同じファイルを開けばいいんじゃないの?
エディタ間でフォーカスが移動したら、 「再読込しますか?」 って設定にすればいいだけじゃん
0648デフォルトの名無しさん
NGNGDelphiで出来てC++ビルダーで出来ないことって有りますか?
あったらどんどん列挙していって下さい。
今自分が作ってるソフト(仕事)がDelphi製なんですが、親分がビルダーに移植しろと言うのです。
移植が無理な理由を見つけ出して反論出来たらと思ってます。
0649デフォルトの名無しさん
NGNG残念ながら BCB++で出来ない事は 殆どありません。
なぜならBCB++にはパスカルコンパイラが付属するからです。
唯一の例外はObject型のアンサポートです。
また、コンパイル実行時間が遅いくらいでしょうか
0650デフォルトの名無しさん
NGNGDelphiのフリーコンポーネントを使いまくってるから移植するのは困難です!
って言えば?
0651デフォルトの名無しさん
NGNGできるんでは?って断るためのネタか。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG正直メンドクサイんだよなあ
0654デフォルトの名無しさん
NGNGその親分は、賢くないね。
どーせ賢くないなら、性能的にはDelphiの方が高性能ですが?
とかって言ってみたら?コロっと騙されるかもよ。(w
つーか、処理によってはDelphiの方が速かったりすると思う
が気のせいか?(俺がCに慣れてないだけか)
0655デフォルトの名無しさん
NGNGD6が来た頃はよく出てたけど、UPDATE#1あててから
rtl60関連のエラー出なくなったが、おれだけ?
0656デフォルトの名無しさん
NGNG>つーか、処理によってはDelphiの方が速かったりすると思う
どっかのアマチュアベンチ測定ではDelphiの方が上だったような。
少なくともBorlandはDelphiに本腰入れてるのは間違いない。
0657デフォルトの名無しさん
NGNGでも簡単だよ .DPR だけ C++に移植して 他のフォームはそのままDelphiのを使えばいいんだから
0659デフォルトの名無しさん
NGNGpasはもちろんフォームファイルも 読めるし見えるしコンパイルしてリンク出来るよ。
だからDelphiのフォームをそのまま使うならとても簡単。
一部修正するなら、フォームを継承して変更すればいい
0660デフォルトの名無しさん
NGNG修正作業がたくさん入るとワケワカになる罠
0661デフォルトの名無しさん
NGNGclassからListの情報を得ることはできるのですか?
今は下記のようにListが指定してるclassをclassに書き込んでるのですが、
子が親を参照できれば、いちいち親の情報を子に渡す必要が無いので、
いろいろ出来て助かるのですが・・・
func( class )
begin
edit.text := class.count;
end;
class := Tclass.create;
class.func := func;
class.count := List.count;
List.add(class);
class.func( class );
0662デフォルトの名無しさん
NGNG移植作業で無駄な人件費がかかるだけ。
1日1万円として5日で5万円。
Delphi6pro買えちゃうぞ。
0663デフォルトの名無しさん
NGNGクラスに リストの プロパティを追加して、クラス作成時にリストを参照させればいいだけでは?
コンポーネントなら必ずParentプロパティをリストにする約束にしてもいいし
0664デフォルトの名無しさん
NGNGC++で言うthisみたいなのです。
0665デフォルトの名無しさん
NGNGSelf
0666デフォルトの名無しさん
NGNGありがとうございます。 そのとおりですね。
何でこんな単純なことに気が付かないんだろう・・・
0667デフォルトの名無しさん
NGNG・クラス参照型とそれにまつわるクラスメソッドの多態
・使い方によっては便利なimplements
・コンパイル時にチェックしてくれる部分範囲型
・finally (VC++/C++Builderなら拡張構文であるけど)
・文字列定数に#0を含めること、また、長さの取得がフィールドで持ってるので高速
・initialization/finalizationの順番がusesの依存関係に従って行われ安全
・ルーチンがネストできる
・Variantが言語サポート(あまり嬉しくない)
・safecall
・直接関係ないがDelphiのPascal埋めこみインラインアセンブラは
Pascalで宣言した変数や型を持ち込めて便利
・コンパイル速度が爆速
逆にC++でできてObjectPascalでできないこと…
・使い方しだいでは譲れないメリットとなるtemplate(とSTL
・変数が途中でも宣言できる。for(int I = ...なんてのは便利
・デストラクタが自動で呼ばれる
・多重継承
・インライン関数
・直接関係ないが万一Borlandが潰れても救いがある(クラスライブラリは交換になるけど
・C++Builderにはメモリー系のバグを調べるツールが付いているらしい
…ぐらいですかね。他にもあれば/間違いがあれば、突っ込んでください
0668667
NGNGObjectPascal側
・メソッドとオブジェクトをひとまとめにしたポインタ (C++Builderには拡張構文として存在
・threadvar (意外に便利なんだ…
・オープン配列パラメータ/Slice
・プロパティ (C++Builderには拡張構文として存在
・スーパークラスとサブクラスの間でoverloadできる
・Delphiの方がSysUtilsを使わない時は*.exeサイズが小さい
C++側
・メンバ関数へのポインタ
・#define (なんだかんだであれば便利に使うし…
・Obj.SuperClass::Methodのようにいつでも任意の上位クラスのメソッドが呼べる
・コンパイラの最適化が賢い (Delphiは爆速と引き換えに最適化が甘い気がする
・(悔しいことに)世の中に多々ある各種SDKをそのまま使える唯一の言語
…まあ、大まかに見て殆ど同じだからこそ同じVCLを両方で扱えるわけで。
0669デフォルトの名無しさん
NGNG>>667-668はすごく参考になった。
for中で変数を宣言できるとは目からうろこ。初めて知った。
0670477
NGNGメールの件名とかに2バイト文字使うときは
==?=iso-2002-jp=kjheiu......
みたいなエンコードつかうじゃん。
これに変換してくれるライブラリあったら教えて!
IKEDA氏のjconvert.pasだと、なんかメーラに
依ってはうまくいかないんです。
ネスケはOKだけどOutlookや、Yahooメールで表示させた時に
NG。
0671デフォルトの名無しさん
NGNGこんなんでよければどうぞ。1年以上ほったらかしですが。
http://www.mars.dti.ne.jp/~b-guild/mailnews.html
0672デフォルトの名無しさん
NGNGC++だと、静的にAnsiStringを確保出来ないので
VCLのCaptionやTextにconstな文字列を設定するだけでも
コンストラクタやデストラクタが呼ばれる。
また、デストラクタがあるオブジェクトをスタックに確保すると
例外処理ルーチンが作られるけど、暗黙のAnsiStringも当然同じ。
引数にconst AnsiStringを取る変換関数などにconstなAnsiStringを渡す時も。
Form1.Caption := 'あ'; と Form1->Caption = "あ"; の差は大きい。
このへんが肥大化と速度低下の原因になっていると思う。
それに、AnsiStringのoperator[]が効率悪かったような(BCB4の場合)。
この点はstd::string使えば良いんだけど、VCLに直接渡せないし。
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG(数千行のテーブルをLocateで検索するやつ)
BCBとDelで作ったが、Delのほうがかなり速かった。
まあ一例ということで。
0675名無し募集中。。。
NGNGトータル的にはどうなんだろうね?
漏れはDelphiもBCBもVCも大差ないと思ってる。
JavaとVBはやっぱり遅いと思うけどね。
0676デフォルトの名無しさん
NGNGマーケ的にもDel > BCBなんだろーな。
漏れはBCBからDelに移行した派なんだが
BCBと比べると、やなところは「Object Pascalが気に食わない」っていうくらい。
逆にBCBは「C++だから」っていう部分にしかアドバンテージがないような・・・
0677667
NGNGinitialization/finalization/implements/threadvarに対応する拡張構文ありますか?
(実はC++Builderはver.1の頃の試用版をいじったことぐらいしかありません)
0678デフォルトの名無しさん
NGNGinitialization/finalizationは、staticなオブジェクトの
コンストラクタ/デストラクタで代用かな。
threadvarってのは__threadのことだと思う。
implementsってOLEのproperty関係?
だとしたら、直接Base::get_xxx,Base::set_xxxかも。
って、よく知らないなら口を挟まなければいいのに>俺
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG| で、このスレは何をしたい訳?
\_ _____________
| /
∨
日 ▽ �U [] �V
≡≡≡≡≡≡≡ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
�V ∩ [] ∨目 (゚ω゚;) < イヤ、酒飲んで愚痴ってくれればと・・・
__ ∧∧______|つ∽__. \____________________
( ,,)日
― / つ―――――――
\(__.ノ
━┳━ ━┳━
飲み屋にいるような感じで、マタ〜リしましょう
0681終わってる?
NGNGワシの素晴らしい環境(win95)だと全然調べられないんだけど、
win95だとダメで、それ以上だったら使えるってことなのかな?
nternetGetConnectedStateってヤツ。どなたか教えてくだされ。
0682デフォルトの名無しさん
NGNGprocedure CompoFalse(PanelName:String);
for idx:=0 to Screen.ActiveControl.ComponentCount -1 do
begin
if (Screen.ActiveControl.Components[idx].Owner.Name = PanelName) then
TWinControl(Screen.ActiveControl.Components[idx]).Enabled:=False;
end;
end;
こんな感じでやると、Owner.Nameの部分でフォーム名しか取り出せない、
このパネルの上に乗ってる!ってのは何処で知れば良いのでしょうか?
Parent.Name使えば出来るかな?と思ったけど、Components[nn]じゃ
駄目みたいなんでよくわかりませんでした。
0683デフォルトの名無しさん
NGNGIE3 を入れれば動くんでない?
もしかしたら、IE4 かもしれないけど。
Win95 デフォルトにはその関数が含まれる DLL は存在しないよ。
0684デフォルトの名無しさん
NGNGForm1 上にあるコンポーネントの Owner はすべて Form1 だよ
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Comp:TComponent;
begin
for i := 0 to ComponentCount-1 do begin
Comp := Components[i];
if (Comp is TControl) then
if (Comp as TControl).Parent = Panel1 then
(Comp as TControl).Enabled := false;
end;
end;
0685デフォルトの名無しさん
NGNG俺ならば、
パネルの上に貼ってあるなら、そのパネルのEnabledをFalseにするけど。
そんなんじゃ駄目?
0686667
NGNG長文ごめんなさい。
implementsは、委譲を一括して行えます。(委任というらしい)
type
IObserver = interface //interfaceは全メソッドが virtual = 0なクラス
procedure Notify;
end;
IObservable = interface
procedure AddObserver(const A: IObserver);
procedure RemoveObserver(const A: IObserver);
end;
で、IObservableのメソッドを実装したクラスTObservableImplがあるとします。
TWinControlから派生してなおかつIObservableを実装したい時、
type
TMyControl = class(TWinControl, IObservable)
FObservable: IObservable;
property AsObservable: IObservable read FObservable implements IObservable;
end;
ってな具合に実装を全て他のオブジェクトに押しつけることができます。
要はvirtual継承無しで、全てがTObjectからの派生というルールを守ったまま、多重継承する仕掛けですが、
実行時にFObservableの示す先を取り替えるなんて真似もできます。
最大のメリットとしては、委譲用メソッドをいちいち書く手間を省けることです。
( 恐らく直接関数ポインタで呼ばれるのでしょうから委譲用メソッドかますより効率いいかも?←これは未調査 )
0687667
NGNGで、この機能はC#にも無いみたいなので、
きっとC++Builderなら対応する拡張構文があるのでは?と思った次第。
0688デフォルトの名無しさん
NGNG有難うございました、出来ました。
今更なのですが、Enabledを変更した場合はcolorを自前で変更
しないと変わらないのですね、今まで知りませんでした。(汗)
>>685
それでも良いのですが、実際にはPanelの上に乗っている物で
も例外的にEnabledを変更したくない物もあったりするので、
あのような事を試みておりました。
(例えば、Panelの上に乗っているPanelの中身はEnabledを変更
しないとか)
0689デフォルトの名無しさん
NGNG割り込み失礼。
implementsの利用法が未だによくわからない者です。
これが無い場合のつまりいちいち「委譲用メソッドをいちいち書く」場合の例を
教えてくらはい。
0691デフォルトの名無しさん
NGNGC++などで作ったDLLをDelphiで使う事って出来るでしょうか?
友人とプログラムを作ることになったのですが、自分がDelphiで友人がC++(VC)何です。
0692デフォルトの名無しさん
NGNG具体的には C++側で extern "C"{ の中でexportしてもらうといいでしょう
0693デフォルトの名無しさん
NGNGってVCなのか。
0694デフォルトの名無しさん
NGNG0695667
NGNGtype
TMyControl = class(TWinControl, IObservable)
FObservable: IObservable;
procedure AddObserver(const A: IObserver);
procedure RemoveObserver(const A: IObserver);
end;
procedure TMyControl.AddObserver(const A: IObserver);
begin
FObservable.AddObserver(A)
end;
procedure TMyControl.RemoveObserver(const A: IObserver);
begin
FObservable.RemoveObserver(A)
end;
インターフェースを使わなければ、TMyControl.AsObservableのようなプロパティを公開して、
「使う側の箇所で XXX . AsObservable と書いて使ってもらう」ことになると思いますが、
インターフェースを使いだすと、何でもかんでも機能はasで問い合わせればいいようになるので、
覚えることが減りますし、多態もやりやすくなります。
で、その時implementsが無ければ、このような横流しだけのメソッドを大量に書く羽目になり、数が増えてくると面倒である、というわけ。
はじめから多重継承できればこんなまどろっこしい事しなくていいんですが、
先に述べた様に全てをTObjectから継承するモデルと多重継承は噛み合いませんし、委任先を後で交換できるメリットも。
…以上わたくしの理解なんですが、絶対の自信があるわけでもなく、いい機会なので突っ込みを入れてもらう事にしましょう(^_^
0696デフォルトの名無しさん
NGNGVBとDelphiってどっちが早いんでしょうか?
0697667
NGNG0699デフォルトの名無しさん
NGNG文字コード取得関数てかは無いのでしょうか?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG処理の速さ、コンパイルの早さを含めてもDelphiより早いとは思えないけど
Delphiより早いVB.NETはC++より早いって事になっちゃうんだけど・・・。
0702デフォルトの名無しさん
NGNGコンパイル速度なら Delphiの方が体感出来る程早い VBのインタプリタ実行で走り始めるより速い
熟練者がアプリを作る速度は 同じ程度 ただし熟練者の技量に依存
初心者が慣れるまでの早さは VBが最初の1歩は有利 2歩目からは同等 3歩目は逆転かな
作られたアプリの速度なら、どのコンパイラ型ツールを使っても体感出来る程の差は無い。
ただし、ヘタな作り方をすればどっちも遅くなる。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705タブの取り方教えて下さい
NGNGbegin
showmessage(ascii(key));
end;
end.
0706667
NGNG面白そうだと思い、実験したところCではできました。C側でDelphiの関数をプロトタイプ宣言して呼ぶこともできました。
ただし、何故かC++ではできません。extern "C"しても、__stdcallや__pascalや__fastcall付けても駄目です。
何故だろう。
0707667
NGNGVC++の吐いた機械語見てると、Delphiのそれと雲泥の差ですもん。
勿論.NETといえどもC++よりは速くなりませんし、
Delphiでも意識したコードを書いたりインラインアセンブラを駆使したりすると追いつき追い越せるので
その意味で「>=」を使いました。
0708デフォルトの名無しさん
NGNG最適化=速さじゃ無いって事は分かってるよね?
0709デフォルトの名無しさん
NGNG配列のコードをポインタに書き換えても速くならなかった例があるように
アセンブラコードを見て 短かったり、速そうに思えても、実際、そんな速度差
は出ない。 なにせ、メモリ1回読み書きしてる間に数百命令実行出来るんだから
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGVB.NETがDelphiより速いわけねーだろ。
ここでも読んでなさいってこった。
http://homepage2.nifty.com/Fujimaki/download/Comparison/
0712667
NGNG気になったので改めて試したところ、整数ではDelphiが、実数ではVB.NETが速い結果が出ました。
VB.NETで配列を逆順にソートするテスト。Delphiでも同じアルゴリズムで試してみてください。
その後型をDouble→Integerにしてもう一度。
Option Explicit On: Option Strict On: Imports System
Class VBNET
Const Count As Integer = 1024 * 16
Public Shared Sub Main(Args() As String)
Dim Start As DateTime = DateTime.Now
Dim A(Count - 1) As Double: Dim T As Double: Dim I, J As Integer
For I = 0 To Count - 1: A(I) = I: Next
For I = 0 To Count - 2: For J = I + 1 To Count - 1
If A(I) < A(J) Then T = A(I): A(I) = A(J): A(J) = T: End If
Next: Next
Dim Period As DateTime = DateTime.Now
Dim Time As TimeSpan = DateTime.op_Subtraction(Period, Start)
Console.WriteLine("{0}", Time.TotalSeconds)
End Sub
End Class
0713デフォルトの名無しさん
NGNG2割3割の差は全く意味がない
単にキャッシュや、データ境界の偶然の差と思った方がいいぞ
0714デフォルトの名無しさん
NGNG071521
NGNGDelphiは実数型を何にするかによって実行速度がかなり変わるよ
Del5の場合は Double>Extended>>Real だったけど
Del6になると Real>Double>Extended になった(と思う)
0716デフォルトの名無しさん
NGNG所詮インタープリタの派生言語なんだって・・・
0717667
NGNGTDUMPした結果、関数が、CではPUBDEF、C++ではCOMDEFになってます。名前は一緒です。
何故CとC++でこんな違いが?
ということはDelphiの$L指令はPUBDEFしかリンクできないのでしょうか?
0718デフォルトの名無しさん
NGNGとにかく今までのVBの遅さはDispatch呼び出しによるところが大きかった筈だから、VB.NETでは速くなってんじゃない?
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG勘違い。スマソ。
0721デフォルトの名無しさん
NGNG戦闘ニ文字でいいから
0722デフォルトの名無しさん
NGNGよく判らないけど出来ないのかも・・できたとしても、 .OBJ は独立していなければならないから
C++だとスタートアップ無しには難しいんじゃないの? 素直に DLLにした方がいいかも
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGKeypressイベントの時にchar型の引数でKeyが飛んでくるじゃないですか、
あれでTab文字とかを検出したいのだけれども、定数が見当たらないんです。
0725デフォルトの名無しさん
NGNGhttp://www.st.rim.or.jp/~phinloda/proto1.html
こういう表か?
しかし、単にそこでブレークポイントで止めて コード見ればいいんじゃないか?
0727デフォルトの名無しさん
NGNGあ、多分アスキーコードとかそんなんだと思います。
F5で止めて見ても' '←こんなのが入ってきてるので、
できれば文字コードで比較したいんです。
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG○>>721 失礼
0730デフォルトの名無しさん
NGNGVK_TABとかですよね?
あれだとKeyDownイベント時のKeyコードが帰ってきちゃうような
気がしました。
さっきキャストして比較しようと思ったけどうまくいかないし、、
0731デフォルトの名無しさん
NGNGKeyPressはそのキーの表す文字しか返さないから
KeyDownを使うしかないのでは?
0732デフォルトの名無しさん
NGNGそれなら、対象となるコントロールの
procedure WndProc(var Message: TMessage);
をオーバーライドしてメッセージを処理するんじゃないかなぁ
0733デフォルトの名無しさん
NGNGtips2 ord(変数名) とすれば文字コードが判る
0734デフォルトの名無しさん
NGNGそれです!
ありがとうございました。
>>731-732
色々とありがとうございました。
winprocのオーバライドはやった事がないので、
いい機会なので勉強してみようと思います。
ありがとうございました。
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG冷たいねぇ。さっきさ、VBでこんなコード拾ってきたのよ。↓
Case 1 '波形表示−縦
'10 * Sin((Temp * 5 + Jotai) * 3.1415926535 / 180)の部分について、
'10は振幅、10は波長に関係します(10は大きくするほど激しくなる)
'また、下のJotai=Jotai+5もいじってみましょう
For TempS = 0 To 49 Step 0.3
Call BitBlt(DestDC, width2, Height + TempS + 10 * Sin((TempS * 10 + Jotai) * 3.1415926535 / 180), width, 1, SrcDC, 0, TempS, SrcCopy)
Next
Jotai = Jotai + 5
Case 2 '滝型表示
'伸びない部分の描画
Call BitBlt(DestDC, width2, Height + (49 - Jotai), width, Jotai + 1, SrcDC, 0, 49 - Jotai, SrcCopy)
'伸びる部分の描画
Call StretchBlt(DestDC, width2, 0, width, 100 - Jotai, SrcDC, 0, Height - Jotai, width, 1, SrcCopy)
Jotai = Jotai + 1
If Jotai >= Height Then NowBlting = -1
んで、BitBltとStretchBltを使いたいのだけれども、HDCがワカランと
焼き直しのやりようが無い訳でして、ハイ。
コレってHandleでもいいのかなぁ
0738デフォルトの名無しさん
NGNGそれだけじゃ「整数ってどのプロパティ?」と聞かれてるのと同じで答えようがない。
まあ、当てずっぽうだが TControl.Canvas あたりから調べてみ。
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGサンクス。
焼き直し終わったらココにあげてもいい?
迷惑なら辞めるけど。
0741681
NGNG当方、IE5.5入れてるんですが…。ダメなんですかね?
うーむ…。レスありがとうございました。
他に「オンラインかどうか」を調べる方法無いもんかなー…。
検索したけど、うまくヒットしない…。
0742デフォルトの名無しさん
NGNGなるヘソリンコ。サンクソ。
0743667
NGNG丁度暇だったし、自分で試しもせず名前で判断する奴が多そうだったからコードまで提示したのに。
処理によってはVB.NETというか.NETが速い場合もある。これは事実。
挙げられた名前がVB.NETじゃなくC#ならどうだったのだろう(同じ速度)。
わたくしも普段VB馬鹿にしててショックを受けてる人間なんですから…。
>>722 面白そうと思って実験してただけなんで、できないならできないで問題ないです。
0744デフォルトの名無しさん
NGNG俺も試してみようと思うけど、VB.NETってのは何処からダウンロード
すりゃいいんだい?
MSのサイト探してんだけど何処にもアップされてないなぁ。
0745デフォルトの名無しさん
NGNGDel3には「オブジェクトブラウザ」なる便利なツールがあったと思うのですが
Del6personalには付属してないのですか?
0746デフォルトの名無しさん
NGNGオブジェクトツリーならあるけどな
0747デフォルトの名無しさん
NGNGに表示し、文はMemoに入れます。保存する形式を以下のよう
にしようと思っています。(区切りは " から変更の可能性あ
り)
"年/月/日"
"文章
.
.
"
と、このように文が複数行になる場合に、読込の範囲を指定
するにはどのような方法を使うのがいいんでしょうか?
今のところ、"年/月/日" "文***文***文" というふうに、
改行文字を***に置換して一日分を一行になるようにした後
ソート・保存し、その日のデータを読み込む時には***を改
行文字に置き換えて読込という方法でごまかしています。
0748デフォルトの名無しさん
NGNG文中に***という文字を入力したい場合はどうしますか?
0749DELモナ
NGNG複数行の文字列←→1行の文字列
の相互変換が出来るナ。
0750デフォルトの名無しさん
NGNGそういう場合は エンコード・デコードするといいよ
たとえば \n を改行に \\ を \ ひとつ という約束にするとか
自分で作るのが嫌ならメーラとかの文字コード変換を探して %エンコードを使えばいい
0751デフォルトの名無しさん
NGNGテキストファイルルーチンでガーと読みながら目的の日付を探していくってのは駄目なの?
0752デフォルトの名無しさん
NGNGあるcで組むべきだと考えるがなぜ皆さんはdelphi
で組むのですか?delphiで組んだプログラムを他の
osに移植するのは難しいと聞きましたが。
0753デフォルトの名無しさん
NGNG最初からDelphiの使えない環境にも移植したいと思ってれば別の両方で使える言語使うでしょ。
つまり、移植なんて考えてないってこと。
それにたとえCでも移植考えずに作ればやっぱり移植は大変だよ。
そして、普通のアプリ開発者は、必要に迫られたことがある人以外(つまりかなり多くの割合)
移植なんて考えない。
0754デフォルトの名無しさん
NGNGどうせCだってOSごとに必要なライブラリはぜんぜん違うだろ。
# 標準ライブラリ関数は別として。
UNIXやMACにだってPascalコンパイラはあるから
UIが絡まなければ汎用性に大差はないはずだ。
0755デフォルトの名無しさん
NGNG最近友人にメールで似たような事を言われたけど、それはDelphi(Pascal)が好きか
C/C++が好きかってだけの問題な気がするけど?
俺だけの事かもしれんが、俺にとってプログラムを組みやすいと感じるのがPascal
だったってだけで、プログラムを組む前から移植云々だけを気にしていては、
プログラムなんて組めないだろ。Winで言えば取り合えずAPIは避けた作りにして
とかって考えないよな普通。
それに、多くの人がC/C++じゃないと駄目な時はC/C++使って組んでると思うけど?
それじゃ駄目なの?
0756デフォルトの名無しさん
NGNGやっぱり Windows アプリを開発する時にかかるコストが、
C と Delphi とでは比較にならないからねぇ
0757デフォルトの名無しさん
NGNG汎用性のある C では ある程度の規模のWindowsアプリを作るのは実際無理です
C++ではライブラリ移植性に悩まされるでしょう
それに pascal<->C の相互変換は難しくはありませんよ
0758デフォルトの名無しさん
NGNGどうせ言葉を喋るなら日本語よりも、汎用性の
ある英語で組むべきだと考えるがなぜ皆さんは日本語
で喋りますか? 日本語で喋った言葉を他の
言語に移植するのは難しいと聞きましたが。
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNG道具は問題を解決するためにあるのであって、それ自体を使うための物ではないし。
0761デフォルトの名無しさん
NGNGそれおもしろい!
0762デフォルトの名無しさん
NGNG実際にCが汎用性あるかどうかなど問題ではありません。
0763デフォルトの名無しさん
NGNGプログラムなんて組めないんじゃないの?
0764デフォルトの名無しさん
NGNGvb
0765デフォルトの名無しさん
NGNG汎用性云々を言うならVBなんて使えないだろ。
0766デフォルトの名無しさん
NGNGなにやら活気付いておりますなあ、
私が思うに、将来携帯電話にもWindows(・NET)が搭載されて、V-アプリとか出てくる
と思います、そしたらVBは十分汎用性のある言語ですな!
delphiも・NETに対応するらしいから、それはそれで汎用的かと。
0767デフォルトの名無しさん
NGNGいろんな言語を使っていれば、新しい言語にもすぐ対応できるようになるよ
0768デフォルトの名無しさん
NGNGDelphiが汎用性無いなんて初めて聞いた。
0769デフォルトの名無しさん
NGNGだいたいVBはもともとは遊びで作られたbasicが基となっているため
システマティクにできていないし、信頼性も低い、上位互換もあまり考慮
されていない。
こんな言語で企業のシステムを作成しているところ多いみたいだが
これはシステムのことがぜんぜん知らない素人がソフト会社に開発言語に
注文をつけていることが原因。
VBでシステム作ったら、原因不明でトラブルやバージョンアップの
とき難儀するなど業務システムを開発する言語としては欠点だらけ
0770デフォルトの名無しさん
NGNGまあそれと生産性だね。
会社って言うのは人件費を月計算でするから開発が少しでも遅れたらダメ。
だから同じ物が出来るならVBで十分と。
それにデータ管理とかはVBでも十分だし。
ただDelphiが上層部に浸透してしまうとVBの立場危ういね。
家の会社は今そうでVBを廃止してDelphiに切り替えた。
理由はそれだけじゃ無いんだけどね。 kylixが一番の理由かな。
0771デフォルトの名無しさん
NGNGラインを雨のように降らせたいのですがどうしたら良いんでしょうか?
真っ直ぐ下に降らせる、斜めに降らせるなどがやりたいのですが。
0772デフォルトの名無しさん
NGNGVBの命令とかVCのクラスを見るとマイクロソフトて
システムを開発するときに全体を俯瞰して統合してもの作りすることが
できない会社と思える。
delphiなんかにくらべてクラスの作り方が必要に応じて思いつきで作られている
ように見える。
osでも98と2000、xpでは同じ設定が異なっている。
例えばレジストリの中身をみるとipアドレスなんか98では普通の数字だが、2000などでは
アスキーコードになっている。
なんか98と2000はばらばらで開発していたみたい。
こんな会社の作る開発言語なんか使うのものすごく苦労すると思う。
0773デフォルトの名無しさん
NGNGVBの開発者にはハッカーが居たらしいが・・・。
今は居ないけど。
かなり前にZDNetに載ってたよ。
0774デフォルトの名無しさん
NGNG上がMS謹製の開発ツールでないと使わせてくれないという理由も付け足しといて。
素人が注文うんぬんって意味では顧客だろうが上司だろうが一緒だけどね。
0775747
NGNG>>748 はい、その可能性を考えて、複数行のデータはその
まま保存したいのです。
>>750 すみません、初心者なのでよくわかってません。制
御文字・通常の文字間の置き換えは使わないということで
しょうか。
>>751 それはできそうなのですが、次の日付(毎日書くとは
限らない)の前の行までを切り取ってくる方法と、新たにデ
ータが加わった際の挿入(数日前の分を書いた場合とか)で悩
んでます。
日付、文を括る記号を変えておいて、目的の日付を見つけた
直後から、文の終わりにある括り記号を再度検索し、その行
までをReadlnで読み込む、でしょうか?
0776デフォルトの名無しさん
NGNGメインフォームの OnShow で、アプリケーションで利用する
100個近くのプロパティを読みこむのは、なにかアレな気がするのです
タイミングが問題なのではなく、フォームのイベントに何百行もかくのが
アレだと思うのです。
Form にいろんな処理内容を大量に書くのは効率が悪く、美しくないと思うのですが、ふつーはどうするのでしょう。
アプリケーションを管理する MyApp(例)などというクラスを作っておき、
フォームの各イベント内容は MyApp のメソッドを呼び出すだけにしておく
といった形でしょうか。
それはそれで疑問が。
アプリケーションで利用するフォームは MyApp が持っていること
になると思うのだけど、各フォームのuses にも MyApp を持ってこないと逝けないから、相互参照になっちゃいません?
MyApp のプロパティとして各フォームにアクセスし、
フォームのプロパティとしてMyAppにアクセスすると。
0777デフォルトの名無しさん
NGNGちょっと、よく分からないのですが、なぜ、改行文字だけ特別扱いにする必要が
あるのでしょうか? ファイルに保存する時に、改行コードを特別扱いする理由
が分かりません。改行は、たんに表示する時に解釈されるための制御コードで
あって、一行か複数行かは、 string 型の変数に保持する時には、なんの意
味もありません。改行コードを複数含んでいても、ひとつの string 型の変数に
保持できます。
0778デフォルトの名無しさん
NGNG>フォームのイベントに何百行もかくのがアレだと思うのです。
別になんの問題もありません。
わけのわからない MyApp などというクラス(なんでクラスなのか?)
をつくるより、よっぽどましです。
0779776
NGNGそのほうが、UIを変える羽目になっても
変更が楽になるかと思って。
0780デフォルトの名無しさん
NGNGそういうことなら、「何百行」のコードを、機能を切り分けて、複数の
メソッドにしてしまえばよいと思うのですが。
0781デフォルトの名無しさん
NGNGunit MyFormUnit;
interface
type TMyForm = class end;
var MyForm: TMyForm
implementation
uses MyAppUnit;
unit MyAppUnit;
interface
type TMyApp = class end;
var MyApp: TMyApp;
implementation
uses MyFormUnit;
まあ778にも同意だけどね。
0782デフォルトの名無しさん
NGNG>ラインを雨のように降らせたいのですがどうしたら良いんでしょうか?
俺は昔雨の波紋を作ろうとして挫折した。
0783デフォルトの名無しさん
NGNGヒント。
TRain=class
x,y:Real;
vx,vy:Real;
procedure Process;
end;
TRainList = class
private
FList:TList;
public
property Count:Integer ...;
function Add:TRain;
end;
TRain.Process;
begin
vy := vy + 0.1; //重力加速度
x := x + vx;
y := y + vy;
end;
0784デフォルトの名無しさん
NGNG地表付近ではほぼ一定速度で落ちてくるんじゃなかったっけ
0785デフォルトの名無しさん
NGNG空気抵抗の大きさは速さに比例する。
ある一定の速さに達すると以後等速になる。
・・・だよね。
雨の運動をシミュレートするわけでないなら
ここまで計算する必要はないけど。
適当にそれっぽく見えれば十分だと思う。
0786747
NGNG私も改行コードを置き換えてというのは邪道だとは思っています。
問題はテキストデータから複数行にわたる必要な部分を抜き出し
てくる方法が分からないという点でして。
テキストファイルから直接、TStringList経由と試してみたのですが
どうもうまく行かなかったので現状のような誤魔化しになってます。
すみません、ヒントください。
0787初心者
NGNGテキストファイルを1行ずつ読みとって目的の日付と一致したら、
そこから次の日付か、テキストファイルの終わりまでをTStringListにAddってやってみるのは?
初心者だからいい方法かはわからないけど。
0788777
NGNG>すみません、ヒントください。
新規で以下のコードを試してみてください。
1)Form1 のうえに Memo1、Memo2、Button1、Button2 を配置する
2)以下のコードを各イベントハンドラにコピペする。
3)実行時に
Memo1 に
2002/3/14
あいうえお
かきくけこ
と入力する
4)実行時に
Memo2 に
2002/3/15
さしすせそ
たちつてと
と入力する
4)Button1 を押す
5)Button2 を押す
データの日付境界を #2 で区切ってみました。参考になると思います。
procedure TForm1.Button1Click(Sender: TObject);
var
MS:TMemoryStream;
s:string;
begin
s := Memo1.Text+#2+Memo2.Text;
MS := TMemoryStream.Create;
try
MS.Write(PChar(s)^,Length(s));
MS.SaveToFile('C:\Test.nki');
finally
MS.Free;
end;
Memo1.Lines.Clear;
Memo2.Lines.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
MS:TMemoryStream;
s:string;
begin
MS := TMemoryStream.Create;
try
MS.LoadFromFile('C:\Test.nki');
SetString(s,PChar(MS.Memory),MS.Size);
finally
MS.Free;
end;
Memo1.Text := Copy(s,0,Pos(#2,s)-1);
Memo2.Text := Copy(s,Pos(#2,s)+1,Length(s));
end;
0789777
NGNG0790デフォルトの名無しさん
NGNG0791さる高貴な出の人
NGNG下民などに答える舌を持たぬな。
0792777
NGNGした方が、検索が速そうです。
0793デフォルトの名無しさん
NGNG何それ?
0794デフォルトの名無しさん
NGNG( ´∀`)( ) < ここも遂に糞スレに成り下がっちまったか
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGW2KにDEL5入れています。
INTERBASEをインストールしようとすると、SETUPAPI.DLLがありません
ってでるんだけど、どうしましょうか?
あるのになぁ〜あるのになぁ〜
あと、ボタン押したら、ちっちゃいフォーム開きたいんだけど、どうしたら
いいのですかっ!?
どなたか、教えてください(ヒントでもいいっす)
0797素数2
NGNGform2.show;
0798デフォルトの名無しさん
NGNG質問のレベルがやさしいということなのか、回答者がやさしいと言うことなのか。
0799796
NGNGどうもっす。確かに表に出てきますね。
だけども、最初っから出ていては、困るんです。
Hideしたら、エラでした。
ん〜難しいっす
>>798様
勝手に後者かと思ってました。ごめんなさい。
0800デフォルトの名無しさん
NGNGform2のvisibleをfalse
あと、一回フォームについてヘルプ等をよく見てね。
0801デフォルトの名無しさん
NGNG「モララーの *厳しい* Delphi質問スレ」になります。
1 名前:モララー
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・)< ネタには レスしないからな!!
( ) \__________
| | |
(__)_)
0803デフォルトの名無しさん
NGNG俺も雨知りたいかも
もう少しヒントキボンヌ!
0804デフォルトの名無しさん
NGNGDelphiのヘルプってちょっと不出来だけど、
うまく使うとすごく便利だよ。
あと、Delphiサイトにあるチュートリアルを
こなしてみる事をお勧めしてみる。
0805デフォルトの名無しさん
NGNGでもコンポーネントを削除しても勝手には削除されないようですが、
使ってない物がusesにあると、実行形式を作成した時に処理速度が遅くなったりするの?
それとも、コンパイルする時に無視されてるの?
0806デフォルトの名無しさん
NGNGusesに記述してあるだけならリンクされてないと思うけど?
こんなのは自分で試せるでしょ、他人に聞くようなものじゃないね。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGそんな当たり前な事わざわざ言わなくてもいいと思うのだけれども。
805さんと806さんだって、そんな事とっくに知っていると思います。
0809805
NGNGまだDelphi初めて間が無いのでよく解らないことばかりなもので、何がなんだか迷ってしまって・・・、
しかし、おっしゃる通りです、色々と試してみますです。
>>807-808
恥ずかしい話なのですが、initialization, finalizationが含まれたコンポーネントはリンクされるって
のは全然知りませんでした。
0810デフォルトの名無しさん
NGNG開発していますが、データベースにparadoxを使用しています。
よくインデックスが壊れて、検索がおかしくなったり、ブルー画面がでて
アボートします。
reindexすればなんとか修復できるのですが、paradoxで大量
データを扱うのはムリがあるのでしょうか
しかしスタンドアローンのみの使用なので有料の高いデータベースは
使いたくないのですが
0811デフォルトの名無しさん
NGNGアクションリスト使ってない人いるの?
使い捨ての超小型アプリ開発以外で
使わない理由がまるで思いつかない。
0812デフォルトの名無しさん
NGNGMySQLでも使ったら?
0813デフォルトの名無しさん
NGNG情報ありがとうございます。さっそくチェックしましたが
MySQLは現在pradoxをしようして開発したプログラムで
環境設定の変更とデータの以降でけで使用できるのでしょうか
それとも名前からしてデータベースのアクセス部分を全て
SQL文で記述しなおす必要があるのでしょうか
もしご存知でしたらお教え下さい。
0814デフォルトの名無しさん
NGNG特別に使ったから便利!ってのも感じないけど
0815デフォルトの名無しさん
NGNGどのような作りで構築されているのか解らないので
なんともいえませんが、SQL文でってのはある意味
その通りです。しかし、レコードセットは使えます、
DBを変更すると、DBの仕様により使えないSQL文
等もありますので注意は必要かと思います。
0816デフォルトの名無しさん
NGNGMySQLも良いのですが、PostgreSQLは如何でしょうか?
私はWindows版は使ったことないんですが、ネイティブのPostgreSQLってのも
あるみたいです、ODBC経由で使ったら普通に使えると思うのですが如何でしょう。
ttp://hp.vector.co.jp/authors/VA023283/
0817デフォルトの名無しさん
NGNGインデックスが壊れるのは普通は
1、終了処理をせずに電源を切った
2、アプリの暴走
3、リソース不足の発生
です。
件数が多くて壊れるというのは、件数が多い為にリソースを多く取るため
2,3がよく起きるという事なのかな?
データベースを別サーバーにすれば緩和されると思いますが、同じパソコンで
実行したのでは 意味がないかも
0818デフォルトの名無しさん
NGNGDisplayWidth = 600;
DisplayHeight = 600;
RainCount = 100;
type
TRain = class
public
X,Y,,VX,VY:Double;
Spattered:Boolean;
constructor Create;
procedure Initialize;
end;
TRainList = class
private
FList:TList;
public
constructor Create;
destructor Destroy; override;
procedure Process;
procedure Draw(ACanvas:TCanvas);
end;
{ TRain }
constructor TRain.Create;
begin
Self.Initialize;
end;
procedure TRain.Initialize;
begin
X := Random( DisplayWidth );
Y := 0;
VX := 1 +Random(9-4)/2;
VY := 10+Random(9-4)/2;
Spattered := False;
end;
{ TRainList }
constructor TRainList.Create;
var
I:Integer;
Rain:TRain;
begin
FList:=TList.Create;
for I:=0 to RainCount-1 do
begin
Rain := TRain.Create;
Rain.Y := Random( DisplayHeight );
FList.Add( Rain );
end;
end;
0819デフォルトの名無しさん
NGNGbegin
FList.Free;
inherited;
end;
procedure TRainList.Draw(ACanvas: TCanvas);
var
I:Integer;
Rain:TRain;
begin
for I := 0 to FList.Count-1 do
with ACanvas do begin
Rain := TRain( FList[I] );
MoveTo( Trunc( Rain.X ), Trunc( Rain.Y ) );
LineTo( Trunc( Rain.X + Rain.VX ), Trunc( Rain.Y + Rain.VY ) );
end;
end;
procedure TRainList.Process;
var
I:Integer;
Rain:TRain;
begin
for I:=0 to FList.Count-1 do
begin
Rain := TRain( FList[I] );
Rain.X := Rain.X + Rain.VX;
Rain.Y := Rain.Y + Rain.VY;
Rain.VY := Rain.VY + 1;
if Rain.Y >= DisplayHeight then
if Rain.Spattered then
Rain.Initialize
else
begin
Rain.Spattered := True;
//Rain.Y := Rain.Y - Rain.VY;
Rain.VY := -Rain.VY*(Random(20)+1)/100;
end;
end;
end;
0820818-819
NGNGフォームには Interval を 1 に設定した TTimer を配置.
フォームの OnCreate と タイマーの OnTimer 部分に以下のコードを
はりつけてから、実行するべし。
var
RainList:TRainList;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
RainList := TRainList.Create;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Canvas.FillRect(ClientRect);
RainList.Process;
RainList.Draw( Canvas );
end;
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG下の方で雨が跳ねてるのもなかなか。
よーしこのソースに雨の波紋を追加しちゃうぞー!
むずそう・・・
0823デフォルトの名無しさん
NGNGDisplayWidth = 600;
DisplayHeight = 600;
RainCount = 100;
RSpeed = 20;
type
TDrawItem = class
private
X, Y:Double;
FList:TList;
constructor Create( OwnerList:TList ); dynamic;
procedure Draw(ACanvas:TCanvas); dynamic; abstract;
procedure Process; dynamic; abstract;
end;
TRain = class( TDrawItem )
private
VX,VY:Double;
Spattered:Boolean;
constructor Create( OwnerList:TList ); override;
procedure Initialize;
procedure Draw(ACanvas:TCanvas); override;
procedure Process; override;
end;
TWave = class( TDrawItem )
private
X,Y,R,VR:Double;
procedure Draw(ACanvas:TCanvas); override;
procedure Process; override;
end;
TRainList = class
private
FList:TList;
public
constructor Create;
destructor Destroy; override;
procedure Process;
procedure Draw(ACanvas:TCanvas);
end;
{ TDrawItem }
constructor TDrawItem.Create(OwnerList: TList);
begin
FList := OwnerList;
end;
0824デフォルトの名無しさん
NGNGconstructor TRain.Create(OwnerList: TList);
begin
inherited;
Initialize;
end;
procedure TRain.Draw(ACanvas: TCanvas);
begin
with ACanvas do begin
Pen.Color := clBlack;
MoveTo( Trunc( X ), Trunc( Y ) );
LineTo( Trunc( X + VX ), Trunc( Y + VY ) );
end;
end;
procedure TRain.Initialize;
begin
X := Random( DisplayWidth );
Y := 0;
VX := 1 +Random(9-4)/2;
VY := 10+Random(9-4)/2;
Spattered := False;
end;
procedure TRain.Process;
var
Wave:TWave;
begin
X := X + VX;
Y := Y + VY;
VY := VY + 1;
if Y >= DisplayHeight then
if Spattered then
Self.Initialize
else begin
Spattered := True;
VY := -VY*(Random(20)+1)/100;
//波紋を追加
Wave:=TWave.Create(Self.FList);
Wave.X := X;
Wave.Y := Y;
Wave.R := 10;
Wave.VR := RSpeed;
Self.FList.Add( Wave );
end;
end;
0825デフォルトの名無しさん
NGNGprocedure TWave.Draw(ACanvas: TCanvas);
var
C:Integer;
begin
with ACanvas do begin
Brush.Style := bsClear;
C := 255-Trunc(VR/RSpeed*255);
Pen.Color := RGB( C, C, C);
Ellipse( Trunc(X-R), Trunc(Y-R*0.4), Trunc(X+R), Trunc(Y+R*0.6) );
end;
end;
procedure TWave.Process;
var I:Integer;
begin
R := R + VR;
VR := VR *0.8;// 波紋の広がる速度の減衰
if VR<1 then begin
I := Self.FList.IndexOf( Self );
Self.FList[I] := nil;
Self.Free;
end;
end;
{ TRainList }
constructor TRainList.Create;
var I:Integer; Rain:TRain;
begin
FList:=TList.Create;
for I:=0 to RainCount-1 do begin
Rain := TRain.Create( Self.FList );
Rain.Initialize;
Rain.Y := Random( DisplayHeight );
FList.Add( Rain );
end;
end;
destructor TRainList.Destroy;
begin FList.Free; inherited; end;
procedure TRainList.Draw(ACanvas: TCanvas);
var I:Integer;
begin
for I := 0 to FList.Count-1 do TDrawItem( FList[I] ).Draw( ACanvas );
end;
procedure TRainList.Process;
var I:Integer;
begin
for I := 0 to FList.Count-1 do TDrawItem( FList[I] ).Process;
FList.Pack;
end;
0826実はDELモナ
NGNGイベント部に記述。クラスのポリモフィズムの勉強にもなると思ふ。
var
RainList:TRainList;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
RainList := TRainList.Create;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Canvas.Brush.Color := clWhite;
Canvas.Brush.Style := bsSolid;
Canvas.FillRect(ClientRect);
RainList.Process;
RainList.Draw( Canvas );
end;
0827名無しヘタぐらま ◆B18Bks.Y
NGNGデータモジュールを作ってプログラム全体レベルでの内部情報と動作をここに置きます.
私の場合はさらに
このデータモジュールは表示と操作(ユーザーインターフェイス.UI)には関知せず
またフォームは逆にUIに専念するようにしています.
ユニット参照はこんな感じです.
メインフォーム→サブフォーム
↓ ↓
データモジュール,その他ユニット
データモジュールがフォームを参照していない点に注意してください.
これはリストボックス,リストビュー,文字列グリッドを
アプリの(一時的ではない)情報置き場にしていないことを意味します.
たとえばグリッドならオーナー描画機能を,リストビューならオーナーデータ機能を使い,
データモジュールにある情報を描画します.
もっともこれだけだとメインフォームのOnShow(あるいはOnCreate)の長〜いコードの
おそらく大半がデータモジュールのOnCreateに移ってくるだけなので,
これだけではあんまり綺麗にはならないかもしれません.
(本当は必要な情報ごとにクラスにまとめるのがよいのですが…)
が,これだけでも効果はあるはずです.
フォームにのっかっているビジュアルコンポーネントの初期化に
たくさんのコードを書かれているのでしたら
フレームを使うことも検討してみて下さい.
ちなみに私は'97年にメインフォームのOnCreateが死ぬほど長いプログラムを書きましたが
今でも苦しめられています(笑).
今は百数十行程度で収まってます.
0828名無しヘタぐらま ◆B18Bks.Y
NGNG素朴な質問って大事だと思いますよ.
不特定多数の人が居る中での質問のいいところは
質問する人以外の第三者が
「へぇーそーだったのかぁ」と,
いろいろ学べるところじゃぁないかと思うわけです.
☆ ☆
>795
アクションリストはDelphi4からです.
>811
使わない理由.私の場合はヘルプを見てもよくわからなかったからです.
普通に使うだけなら決して難しいモノじゃないのに,難しそうな説明で使う気をなくしました.
今は愛用していますが.
メニューとツールバーの両方があるアプリなら
同じコマンドに対してメニューアイテムとツールボタン(またはスピードボタン)で
同じCaption, Hint, OnClick(さらにはEnabled, Checked) を
それぞれ指定しなければならなかったのが,
『アクション』という形でまとまっているのでここを操作するだけで両方を一度に変えられる.
思った以上に便利.
0829デフォルトの名無しさん
NGNGあるのだが、そんな経験ないか?
例えば、フリーで公開されてるコンポで名前は忘れたがComboBoxの
複数列表示可能で色指定できる奴なんかも色が出なかったりした。
折れのマシンだけの問題なら良いのだが、何が原因なのか全然わからん。
0830デフォルトの名無しさん
NGNG具体的な名前、よろしく。URL でも良いよ。
0831Delフサギコ ◆zE1iiRdQ
NGNG,,,,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < ビデヲボード>>829
UU"""" U U \_______________
0832デフォルトの名無しさん
NGNG例えばこれとか、
ttp://www2s.biglobe.ne.jp/~t_harada/
0833デフォルトの名無しさん
NGNGまじすか!
そんなんあり?
0834デフォルトの名無しさん
NGNGで良いのかな?
Delphi6 / XP-pro で見てみるけど。
過去に再現した環境を教えてくれると吉。
0835デフォルトの名無しさん
NGNG「色が出なかったりした」
現象確認。
>>831
ビデオボードのせいではないぞ。検証せずに適当なことをいうな。
0836デフォルトの名無しさん
NGNGD6pro / Win2000
D6pro / XP-home
で再現してます。
普通に貼ったら使えるんですが、どーも、おいらの実力じゃ
フレームの場合に何処で何がどーなってるのか追えてない
です。
0837デフォルトの名無しさん
NGNGフォームデザイナが正しく情報を記録できないのですね。
各カラムのプロパティ設定を、フレーム側ではなく
フレームを貼り付けたフォーム側で指定してください。
とりあえず、色に関しては対応可能。
IDE のバグの可能性が高い。
0838デフォルトの名無しさん
NGNG波紋凄い綺麗に出来てるナー。
感心した。
0839デフォルトの名無しさん
NGNGてっきり、フレームだからだ!とばかり思い込んでいました。m(..)m
IDEのバグの可能性ですか・・・。
0840837 ◆xDd9P2XM
NGNGコンポーネント側の ParentColor が後から影響を与えているんだな。
Width プロパティは問題ない。
もし、今すぐ修正したいなら、TCBColumn の ParentColor 関係をばっさり
取っ払えば直るだろう。
0841837 ◆xDd9P2XM
NGNGIDE のバグでもフレームのバグでも無いようだぞ。
0842デフォルトの名無しさん
NGNG使えなくなる場合もあるってことかい?
俺はフレーム自体はフォームと大差ないものと認識していたのだが間違いだったようだな。
0844837 ◆xDd9P2XM
NGNGFrame は、.DFM の定義に対する介入でのみ行われているから、
インスタンスが実体化された後は原則違いはない。
逆に、仮想プロパティを作ったりとか、.dfm の値を積極的に変更している
コンポだとめんどくさいことがおきる可能性がある。
0845837 ◆xDd9P2XM
NGNG表示していると各種プロパティが初期値に戻ってしまうようだ。
こまめに保存、かつ同時に一つのフォーム/フレームを開くようにすると
ちゃんと編集できる。
他のコンポーネントではこんなことおきないんで、もう少し見てみよう。
0846842
NGNG割り込み序にコンポを見ているのだが、フレームに張ったやつじゃない方のフォームにフレーム
から張った方(Frames)を作ったら、フレーム側のColumnsの値が変更できなくなるようだが気のせいか?
0847829
NGNGこっちも見てるけど、やっぱり俺のレベルじゃ解析不能です。
0848837 ◆xDd9P2XM
NGNGいいんです。仕事だから
0849837 ◆xDd9P2XM
NGNG特定の条件がそろうと、コンポーネントのデフォルト値以外に変更できないようですね。
わざとやっているのかどうか。
どちらにしろ(RAD ツールとしては)直感的ではない動作だからなぁ
0850デフォルトの名無しさん
NGNGうむ・・・、妙な動きだなぁ・・・。
しかし、故意にやってるんじゃないだろ、さっきまでデフォルト値以外に設定できたのに
今はまた出来なくなった。これってタイミングで初期化してるの?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGTControlのSetVisibleメソッドをオーバーライドしようとおもったら
性的メソッドになってるし…
0855デフォルトの名無しさん
NGNGそれをチョット買えれば>>503の言ってる雪も可能。
sin使う必要あるけど。
0856デフォルトの名無しさん
NGNGエディタのアンドゥ、リドゥってどやって実装したらよいの?
OnChangeイベソトを拾ってやるとめんどくさそう。
0857デフォルトの名無しさん
NGNG面倒くさそうでもやる。
0858デフォルトの名無しさん
NGNGTMemoのUndo/Redoは一回のみ。
この制限を回避するのは難しい。
なのでTEditorなどの高性能メモコンポを使うか
外部エディタで編集させて結果を取り込むしかない。
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGFormの枠の部分のサイズが
知りたいです。(´Д`;)
0861デフォルトの名無しさん
NGNG普通はGetSystemMetricsでSM_CYEDGE等を見る。
けど、この手の質問だと、実はAdjustWindowRectで解決する
問題であることも多いな。
0862デフォルトの名無しさん
NGNGクリップボードの複数行の文字列をListboxに表示すると一行で表示されるじゃない
でも、それが実は複数行なんだよっての・・・
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGTMemoは限界があるのでエディタ部分は自作する。
Undo, Redoに関しては「Commandパターン」あたりでwebを検索すると、
デザインパターンの一例が載っているので参考に。
0865デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNGボスケテー
あるツールダイアログ属性のフォームに PageControl が1つ貼りつけてあります。PageControl には複数の TabSheet があります。 全ての TabSheet には
、ただ一つの Panel があり、その Panel のなかにさまざまなコントロールが
含まれています。
さて、あるタブシートを表示した際に、そのシートに含まれる
Panel の大きさにあうようにタブシート、つまりPageControl のサイズを
自動変更し、それに伴ってツールダイアログのフォームサイズも自動変更したいのです。 Adobe Photoshop や Adobe Illustrator のツールダイアログのように。
そこで、タブシート切り替えイベントで
Panel := TabSheet(Sender).Components[0] as TPanel; //シートには1つの Panel しか含まれていない
Panel.LEft := 0; Panel.Top := 0;
PageControl1.ClientWidth := Panel.Width;
PageControl1.ClientHeight := Panel.Height;
Form1.AutoSize := True;
としたのですが、TabSheet(Sender).Components[0]でエラーが
起きてしまいます。なぜでしょう。そして、どうすれば上手く行くのでしょう。
0868デフォルトの名無しさん
NGNG(,,゚ー゚)< そりゃダメだにゃ〜
@_) \________
0869デフォルトの名無しさん
NGNGタブシート切り替えイベント、って、
TPageControl.OnChange か OnChanging だろ?
その Sender だから、TabSheet じゃないだろ。
つーか、この時点で TabIndex 見れば、どのタブか分かるんだから、
そこから Panel 引っ張り出せるようにしとけば?
0870デフォルトの名無しさん
NGNGCommandじゃなくてMementoパターンでは?
0871デフォルトの名無しさん
NGNGミサイルコマンド
0872デフォルトの名無しさん
NGNG.,. ‐''¨¨^^ ̄  ̄^'.'ー 、
._,-'.´`_‐'¨`¨'‐、 ,-'.¨´¨'-_ ::^'
./::::::::::::.! ! ! !::::::: ` 、
^:::::::::::::::::.| へi iへ . .|:::::::::::.:::::^、 ボスケテー
.,′ :::::,.-.''¨'、 i_._i_ ,:'¨''-::::::::::::::_'、
..゙::::::.,/ __ `'''‐‐'''!::::::::!'''‐‐'''´ .__^、::::::::::.!
!:::::,/ ^^''''‐‐ '--.' ‐‐'''''^^ ゙、::::::::!
!:::::,! .```````¨ .| ¨``````` !:::::::!
!:::::! ‐‐‐'''''''^^^ | ^^^''''''‐‐‐ !:::::!
!:::::! \,. | _./ !::::.!
'i::! 、 ‐^''- ,,._ | _,,.-'''´ /:::::i
゙、:\ ノ .゙、 `゙^''''''^´ ノ:::: ′
゙:、::' 、:\ ,./ ./:::ノ
>,:::::::゙¨'.゙「 ..'',::::. ′
ノ::::::::::::::::::ノ'''''''''>'''''''<'''''''''''''''''l゙ r'′
i゙:::::::::::::::::::ノ゙゙゙゙゙゙゙゙(、、、、、、)¨¨^、¨¨^'\
:::::::::::::::./ \┴ ノ .i.:::::::::::`、
.゙!::::::::::::| 、、、、、、、.、、、、、、、 .i:::::、:::::: '、
!::::::::::| i i .!:::::゙i ノ:.′゙':
.|::::::::::| \ ,ノ′.,!::::::ト_ ..!
|::::::::::\._ `' ─--ー'′ ._,‐::::::::| `'‐''′
.|::::::::::::::.゙.'' -、、., _ __,,._,‐::::::::::::::::|
|::::::::::::::::::::::::::::::::::.;::::::::::::::::::::::::::::::::|
ノ''''''''''.'' ''' ─‐ト------ :.、、:.、、.|
| | ^:
´''ー‐-ー‐ー.‐ ⌒´゙.ーー.─‐.‐‐‐‐′━━━━━──
0873デフォルトの名無しさん
NGNG>>870
大抵同時に紹介されてるし、MementoよりむしろCommandといっしょにUndo, Redoが
扱われることが多いようなので、Commandの方を出しといたのでは。
0874すごいよ!名無しさん
NGNGボスタスケテ
ボス助けて…!
ボス急いで来て
早く僕らを助けて…!
ボス決して走らず急いで歩いてきて
そして早く僕らを助けて…!
…スレどころか板違い逝って来ます
0875デフォルトの名無しさん
NGNGおおいにワラタ。
元ネタはなんですか?
0876867
NGNG以下のようにコードを変えました。たしかにエラーは無くなり、意図した
動きをするようになったのですが、幅と高さが微妙に足りないのです。
正しい幅と高さを取得するにはどうすれば良いでしょうか
{ TForm1上に PageControl1を配置、PageControl1上のTabSheet1にはPanel1を、
TabSheet2にはPanel2を適当な大きさで配置しておく}
procedure TForm1.PageControl1Change(Sender: TObject);
var
Tab:TTabSheet;
Panel:TPanel;
begin
case PageControl1.TabIndex of
0: Panel := Panel1;
1: Panel := Panel2;
end;
Tab := PageControl1.ActivePage;
Panel.Top := 0;
Panel.Left:= 0;
PageControl1.ClientWidth := Panel.Width ;
PageControl1.ClientHeight:= Panel.Height+PageControl1.TabHeight;
Self.AutoSize:=True;
end;
0877デフォルトの名無しさん
NGNGTstringList に格納されている文字列を BYTE型の配列に移したいのですが
方法が全くわかりません。 型変換が必要なんだろうな とは思うのですが
馬鹿な私に御知恵を授けて下さい!!
procedure TForm1.Button1Click(Sender: TObject);
var
testList : TStringList;
IniFile : TIniFile;
testBYTE : Array[0..255] of BYTE;
begin
test := TstringList.Create;
IniFile := TIniFile.Create('xxxx.ini'); // INIファイル開く
testList := TStringList.Create; // TStringList型のインスタンス作成
IniFile.ReadSectionValues('Section', testList); // セクションにあるすべてのキーを取得
testBYTE := test[0]; // ← これが駄目
end;
end.
0878デフォルトの名無しさん
NGNGStrPCopy(@testBYTE, test[0]);
でどう?
0879デフォルトの名無しさん
NGNGStrPCopy(@testBYTE, Copy(test[0], 1, 255));
かな
0880デフォルトの名無しさん
NGNGなるほど。最近デザパタ勉強し始めたところで、字面しか追ってませんでした。
勉強になりますです。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG関数は
「Delphiヘルプ」-「VCL リファレンス」-「ルーチン一覧(カテゴリ別)」
で調べるようにしましょう
0885名無しヘタぐらま ◆B18Bks.Y
NGNG原因:タブシートはパネルを『所有』していないから.
対策:Components[0]の代わりにControls[0]を使う(Del5で確認)
このすれだか他のすれだかに出てきましたが
フォーム上のコンポーネントを『所有』しているのは基本的にフォームです.
(例外はフレーム上のコンポーネントでこれはそのフレームが所有しています)
ページコントロールもタブシートもその上のパネルもみんな
フォーム(またはフレーム)が所有しているのです.
0886名無しヘタぐらま ◆B18Bks.Y
NGNG修正
フレームはOnCreateがないのでコントロールの初期化は使えなかったです.ごめんなさい.
補足
>今は百数十行程度で収まってます.
これはユニットの行数です.
OnCreate(またはOnShow)イベントハンドラの行数ではありません.
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG簡単に実現する方法はありますか?
0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGFormのKeyDownにて、
//【↑】でフォーカス戻る
if (Key = VK_UP) then
begin
SendMessage(self.Handle, WM_NEXTDLGCTL, -1, 0); //戻る
Key := 0;
end;
//【↓】でフォーカス移動
if (Key = VK_DOWN) then
begin
SendMessage(self.Handle, WM_NEXTDLGCTL, 0, 0); //進む
Key := 0;
end;
こんな事をしています。
しかし、画面上にパネルを2つ張って、それぞれのパネルの中に
Editコンポを1つづつ置いてもちゃんと上の処理でフォーカスが
移動してくれんんですが、これに3つ目のパネルを作って、
その中にボタンを貼ると、一旦ボタンにフォーカスが移動すると
その次へ移動できなくなります。
これが、パネルで分かれていない状態だと上手く行くのですが、
何が悪さをしているのでしょうか。
0891デフォルトの名無しさん
NGNGhttp://www.ts-music.com/machigai.html
0892!!注意!!
NGNG注意しましょう。
以下、勇気が無くて見れない画像解説スレPart69(ラウンジ)より
23 名前:名無しさん? 投稿日:02/03/16 02:33 ID:???
http://www.TS-music.com/machigai.html
おながい
24 名前:ぼの ◆BONOIBYE 投稿日:02/03/16 02:35 ID:???
>>23
ガイシュツのドッキリ画像かと思われ。
一見普通の部屋の画像に見えるが、数十秒後
悲鳴と共に女性の顔が浮かび上がる。
わかっていれば何とも無い度★★
53 名前:名無しさん? 投稿日:02/03/16 03:46 ID:aInde9V.
>>23-24
死ぬほどビクーリした。
0893デフォルトの名無しさん
NGNG気になってソースを表示させたら、ちょうどその画面に切り替わるところだったので、
ソースで隠されて顔見なかった(笑)
画像かと思ったら Flash だったというだけ。
0894デフォルトの名無しさん
NGNG矢印キーで移動させるとTabStopがFalseでも、密かにフォーカスがそこに移動して
しまうんですよ。
PanelのEnterイベントに
ActiveControl := FindNextControl(ActiveControl as TWinControl, True, True, False);
を書いて下さい、なんとなく上手く動作するようになるはずです。
0895デフォルトの名無しさん
NGNGモジュール DCLUSR60.BPL のアドレス 510109B0 でアドレス FFFFFFFF に対する
読みこみ違反がおきました
というエラーがダイアログが無限表示されます
どういうことですか???
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGインスタンスを生成する前にアクセスしてるとか
逆にFreeした後にアクセスしてるとか
0898デフォルトの名無しさん
NGNG雨より雪の方が難しいぞ。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGGetTickCount で、時間を変数にして sin 関数を使い、
本来あるべき位置から水平方向に +sin( t ) だけずらせばそれっぽくなる。
0901デフォルトの名無しさん
NGNG900おめー!
それだけで雪になるかな?
0902デフォルトの名無しさん
NGNG多いので項目分けして整理しました。
1.オーバーライドという概念がよく分かりません。
これは例えば、自分で新たにAというクラスを作っているときに、
Aの派生元のクラスのメソッドを、Aのために
カスタマイズするためのものと考えていいのでしょうか。
2.また、仮想メソッドという概念が理解できません。
静的、仮想、動的メソッドはどういう違いがあって、
どういうときに使うのでしょうか。
3.1,2に関連して、
例えばAでオーバーライドされるメソッドは
Aの派生元で仮想メソッドとして定義されるのですが、
Aでオーバーライドされないときは
そのメソッドはどういう扱いとなるのでしょうか。
そのメソッドが呼び出されるとAの派生元で
処理されるということでいいのですか?
4-1.Create,DestroyはAで必ず定義しなければならないのでしょうか。
4-2.また、オブジェクト破棄時には
ヘルプによると「Freeを使え」と書かれているのですが、
Destroyをなぜ使ってはいけないのでしょうか。
4-3.またDestroyを使ってはいけないということは
Destroyはなぜ存在するのですか。
ヘルプを読んだり、ネット上を検索したりしてみましたが
初心者の自分には理解が至りませんでした。
項目がたくさんあるのですが、どなたかお願いします。
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG>1.Yes
>2.静的≠仮想≒動的 静的以外はオーバーライド可能
(仮想と動的の違いは初心者が気にしなくてもいい、普通は仮想virtualを使う)
>3.Yes
>4-1.No 変更点がなければ定義する必要は無い
>4-2.Freeはインスタンスが作成されているかを確認してからDestroyを呼び出す
>4-3.TObjectで定義されているFreeがオーバーライドされたDestroyを呼び出すから
0905ことり
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1013298748/l10
長くなりそうだから、↑のスレに行ったらどう?
義男。
0906DELモナ
NGNG例えば、以下のような2つのクラスがあったとします。
TParent = class
procedure Show;
end;
TChild = class( TParent )
procedure Show;
end;
上の宣言の意味はわかっているものとして話を進めます。
TChild は TPraent から派生しているので、当然親のメソッドである
Show も継承しているのですが、それを「上書き=再定義」していますね。
つまり、ここにある TChild.Show は、TParent.Show とは何の関係もありません。単に、「名前が同じである」だけです。
ここまでは良いですよね。ところで、クラスには
親クラスと、その派生クラスには代入互換性があります。
そこで、以下のコードを実行してみましょう。
var
P: TParnet;
C: TChild;
begin
C := TChild;
P := C;
P.Show;
end;
ここで、 P.Show で実行されるメソッドは、TParnet.Show と
TChild.Show のどちらなのか? P は元々 TParent として宣言されていますが、実際に P に入っているのは TChild のほうですよね。
結論から言うと、この場合は TParent.Show が実行されます。当然です。
なんせ、P.Show の P は TParent ですからね
では、TChild の宣言を次のように変えてみます。
TParnet = class
procedure Show; virtual;
end;
TChild = class( TParent )
procedure Show; override;
end;
これで、もういちど先ほどのコードを実行しましょう。すると、
P.Show で呼び出されるのは、TChild.Show になります。
つまり、Pに「実際に入っているクラスによって、動的に呼び出される
メソッドが変化する」のです。これが、動的メソッドです。
0907DELモナ
NGNGprocedure TClient.Show;
begin
WriteLn('I AM TCLIENT CLASS.');
end;
これは、TClient.Show の処理内容が、親(=継承元)の
Showとは関係無く、独立していることを表わします。
もしも、親の Show を使いたい(=再利用)のであれば、
procedure TClient.Show;
begin
inherited Show;
WriteLn('I AM TCLIENT CLASS.');
end;
とします。 inherited Show で、TParent の Show を実行します。
そのあと、TClient 独自の内容を実行しています。
0908902
NGNG私のために(同じ疑問を持って見ている人のためでもありますが)
レスを下さって感謝しています。
>>903 いちいち聞いていたら効率悪いですよね。
>>904 ひとつひとつ答えてくださってありがとうございます。
>>905 次質問するときは逝ってきます。
>>906 例も用意してくださってありがとうございます。おかげで理解できました。
>>907 これはTClient=TChildですか?
0909デフォルトの名無しさん
NGNG本当の理解は得られないってことだ。
多態の例はTBitmapやTIcon,TMetafileがTGraphicの共通ネソッドを、
TQueryやTTable,TStoredProcがTDataSetの共通ネソッドを
相手を正確に知ること無く呼び出せるってことでいいんじゃないか。
代入互換性は応用が広い。
0910デフォルトの名無しさん
NGNGメソッド○
激鬱
0912親切な人
NGNG0913デフォルトの名無しさん
NGNGShowMessage();
じゃあ、はい か いいえ の選択肢を表示するにはどうしたら?
0914検索してから質問しないと電流流れるルール
NGNG0915DELモナ
NGNGMessageDlg 関数を使いなさい。
0916デフォルトの名無しさん
NGNG次にBフォームを作ろうとした時に、継承元としてはAフォームが妥当なのですが、
機能的にA’フォームと酷似しており、A’をコピーしてBフォームを作成しようと思っています。
この時にA’フォームをコピーする方法はコピペで貼り付ける以外に無いのでしょうか?
期待していたのは、[新規作成]->[その他]で表示される自分のプロジェクトの中の該当フォーム
から「コピー」で作成すればいいや、と思っていたのですが、リポジトリに登録していない為か
「継承」しか出てきません、ここでコピーが出来れば楽だと思うのですが・・・。
0918デフォルトの名無しさん
NGNGB.pas 中にあるフォーム名 TA を TB に置換。おわり。
0919デフォルトの名無しさん
NGNGHelpを見ても指定バイト数読み込むとかそんなのしかないので
困っています。
LineReadとかあればいいのだけれども...
0920DELモナ
NGNGwith TStringList.Create do
try
LoadFromFile( 'ファイル名' );
文字変数 := Strings[0]; //0番目=1行目を取得
finally
Free;
end;
で、任意の行をよみとる。
0921DELモナ
NGNG0922デフォルトの名無しさん
NGNG>>918
素直にリポジトリへ追加した方が楽ができると思うが?
0923デフォルトの名無しさん
NGNGしてるんですよ。
closeイベントで。
でも"いいえ"を押しても終了しちゃうのは何故ですか?
"はい"を押したときは Application.Terminate; で終わらせてます。
これってフォームのcloseがそのまま流れて行ってるんですかね?
Xボタンだから。
ちなみに「閉じる」って言うボタンを作って同じ事をやった場合はいいえを押してもちゃんと抜け出しました。
0924デフォルトの名無しさん
NGNGclosequery使えよ・・・。
0925DELモナ
NGNG[とじる] が選択されたならば、 Action := caFree
それ以外が選択されたならば Action := caNone
とすればよいのでふ
ヘルプの TCustomForm.OnClose を見れ。
0926デフォルトの名無しさん
NGNGprocedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrCancel then
CanClose := False;
end;
0927デフォルトの名無しさん
NGNGそのままだとまずいんで無い?
アドレスエラーが出る予感・・・
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrCancel then
CanClose := False;
else
*.free;
end;
0928デフォルトの名無しさん
NGNG926で問題なし
> *.free;
これの方が意味不明
0929927
NGNG俺がやりたかったのはこうだった
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg('Close application ?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
Action := caFree
else
Action := caNone;
end;
0930デフォルトの名無しさん
NGNGそのファイルがテキストファイルなら、
var
F: TextFile;
linebuf: string;
として、
AssignFile( F, filename );
Reset( F );
ReadLn( F, linebuf );
でよいんじゃないのか?
任意の行を一行読む、なら >>920 のように TStringList 使った方が楽だが。
0931デフォルトの名無しさん
NGNG遅レスだが、MessageDlgはあまり使わないで欲しい。
MessageBox API経由(含む Application.MessageBox)なら、
メッセージがその手のツールでコピーできる。
業務用ツールならまだしも、もし人に配布する(特にオンラインソフト)なら、
MessageBoxを積極的に利用してほしい。
0932デフォルトの名無しさん
NGNG0933919
NGNGありがとうございます。教えてもらった方法で解決しました。
※withって便利ですね
0934デフォルトの名無しさん
NGNGたとえばTspineditのValueに20と入ってたとします。
これに000をくっつけて20000にしたいんですが出来ないんです。
普通に + を使っても000が足されるだけで変化無しです・・・。
結合って何かありましたっけ?
0935デフォルトの名無しさん
NGNG000って付けたいだけなら*1000するだけで出来るよ。
0936早理菜
NGNG次のデータを格納するためのテータ型について考える。
クラブの情報を格納する変数のデータ型club: このデータは次の内容を保存する
i.クラブ名称 (文字例型、最大20文字)
ii.クラブの種別 (体育系(taiiku),文科系(bunka), サークル(circle)を区別する列挙型)
iii.クラブの人数 (整数型)
iv.クラブメンバーの名簿を格納する線形リスト、その要素にかくメンバーの
(a) 氏名 (文字列型、最大20文字) (b)年齢(整数型)
1. 上のii. に必要な列挙型をclubtypeとして、iv.の線形リストの要素型をmemberとして定義せよ。
2. データクラブを定義せよ。
3. クラブに新しいメンバーを追加する次の手続きjoinを与えよ。
Procedure join(var c:club; n:member)
{クラブcにメンバーnに追加 する}
追加したので、人数も増えることに注意。
4. 2つのクラブを合併して新しいクラブを作る手続きmergeを与えよ。
Procedure merge (c1, c2;club; var c3:club)
{c1とc2のメンバーと合併せた新しいクラブc3つくる。名称等はc1を引き継ぐ}
0937デフォルトの名無しさん
NGNG宿題スレへ逝け
宿題、手伝おっか?
http://pc.2ch.net/test/read.cgi/tech/1011722640/
0938デフォルトの名無しさん
NGNGTSpineditのValueはInteger(整数型:LongInt)
数値に文字列を加えるということはDelphi(というよりもPascalつうか大抵の言語)
ではできないよ
(VBができるのは親切ともいえるし、いいかげんともいえる)
0939デフォルトの名無しさん
NGNG(´∀`)<実際の開発ではデータベースを使う!と書けばアホな宿題は終了
0940デフォルトの名無しさん
NGNG文字の大きさを1にしても微妙に見えてしまうんです。
セルの色と文字の色を同じにすると見えないようになるんですが、選択箇所(反転箇所)だけが見えちゃいます。
0941デフォルトの名無しさん
NGNGClearメソッドが存在しないのですが、表をクリアする
メソッドって無いのですか?
0942デフォルトの名無しさん
NGNGi,j : Integer;
Begin
for i := 0 to Grid1.ColCount do begin
for j := 0 to Grid1.RowCount do begin
Form1.Grid1.Cells[i,j] := ''; //全消去
end;
end;
end;
0943デフォルトの名無しさん
NGNGと言う0と1の文字列が有るのですがこれを4つずつに区切って16進数に変換したいんです。
どうしやったら良いでしょうか?
上の例で言うと
0001、0011、0010、1001
↓
1329
にしたいんです。
何か良い方法は有るでしょうか?
0944デフォルトの名無しさん
NGNGStringGrid使えねぇ
0945デフォルトの名無しさん
NGNGfunction BinaryStrToInt(s:string):integer;
var
i,c:integer;
begin
result := 0;
c := 1;
for i := Length(s) downto 1 do begin
if s[i] = '1' then result := result + c;
c := c*2;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := '0001001100101001';
Label1.Caption := IntToHex(BinaryStrToInt(s),1);
end;
0946デフォルトの名無しさん
NGNGvar
i,j : Integer;
Begin
for i := 0 to Grid1.ColCount-1 do begin
for j := 0 to Grid1.RowCount-1 do begin
Form1.Grid1.Cells[i,j] := ''; //全消去
end;
end;
end;
ループが1回多いと思ったよ〜
0947デフォルトの名無しさん
NGNGあ、ありがとうございます。
貰ったサンプルじゃなくて、今ファイルの内容をStringGridに書き出して
内容の比較をしようとしたんですけど、TStringのFreeがうまく行ってないみたいで
読み込み違反が起きるんです。
Freeしないと動くんですけど、なんか不安で..。
今はMemoに吐いてからStringGridに入れてます。
StringGridってセルごとに色の変更ってできないのですか?
0948デフォルトの名無しさん
NGNGDrawCell使う
0949デフォルトの名無しさん
NGNGOnDrawCellで
Grid1.Canvas.Brush.Color:=clなんたら;
Grid1.Canvas.FillRect(Rect);
これじゃ、ちょっと鈍くさいかな
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG下記のようにやってみたのですが、上手くいきませんでした。
Wav := TMemoryStream.Create;
Wav.LoadFromFile( 'FileName' );
sndPlaySound(wav.Memory,SND_ASYNC);
0952デフォルトの名無しさん
NGNGうまく変換出来ました。
ですが桁数が多いせいか全部表示されません。
最大で4096桁あるもので。
でもってその4096桁の01の2進数を16進数に置き換えてるのですが、
桁数を多くすると最後の方しか表示してくれないです。
何故でしょうか?
0953デフォルトの名無しさん
NGNGありがとうございます。ただ、Tstringの内容を比較してから書き込みたかったので
関数内に処理を移したのですがうまくいきませんでした。
ブラシは赤に設定して、以下のようにOnDrawではない場所に書いたのですが..
どの場所で考え違いをしたのかわからないのですが、描画はOnDraw内でないと
実行できないのでしょうか?
for j:=0 to tedi.Lines.Count -1 do
begin
sg.cells[i+1,j+1]:=tedi.Lines[j];
if edi.Lines[j] <> tedi.Lines[j] then
sg.Canvas.FillRect(sg.CellRect(i+1,j+1));
end;
0954デフォルトの名無しさん
NGNG0付けで変換する方法無いでしょうか?
上を変換すると今は FFF となっています
0FFF にしたいんです。
質問ばかりですいません。
0955デフォルトの名無しさん
NGNGIntToHexの代わりにFormatを使うといいよ
使い方はヘルプで調べるとFormatで何ができるのかが分かるのでGood
0956デフォルトの名無しさん
NGNG・・・おいらも勉強になったよ
0957デフォルトの名無しさん
NGNGと、言うかsprintfとにてぇ〜る。
0958945
NGNGfunction ABinaryToInt(s:string):integer;
var
i,c:integer;
begin
result := 0;
c := 1;
for i := 4 downto 1 do begin
if s[i] = '1' then result := result + c;
c := c*2;
end;
end;
function BCDStrtoHexStr(s:string):string;
var
i:integer;
b:string;
begin
result := '';
for i := 0 to (Length(s) div 4)-1 do begin
b := Copy(s,i*4+1,4);
result := result + IntToHex(ABinaryToInt(b),1);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := '000011111111111100001111111111110000111111111111000011111111111100001111111111110000111111111111000011111111111100001111111111110000111111111111000011111111111100001111111111110000111111111111';
Label1.Caption := BCDStrToHexStr(s);
end;
0959DELモナー
NGNG( ´∀`) いよいよ次スレを立てる時期だね。
0960Delフサギコ ◆zE1iiRdQ
NGNG(,,,,,,,ミ,,゚Д゚彡 < App.MessageBoxなら
⊂,,,,,,,,,つつ. \ Ctrl+Cでメセジコピーできますね
最近のOSだからかしら
0961デフォルトの名無しさん
NGNGそんな方法があるなんて俺も知らなかった勉強になった。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGそんなに難しくはないから、自分でコードを書いてみれば?
AnsiPosとかCopyとかのヘルプを見ながら
0964962
NGNGいや〜一応解説本とか見て頭の中で書いてみたんですが、どうもうまくいかないんです。
Perlでいう &_ =~ s//; のDelphi版みたいなのとかないですよね
文字列の扱いではPerlには敵いません(C/C++よりはうんとまし)
TStringListを用意して
LoadFromFileで読み込んで
ループを回してシコシコと
こんな感じですね〜
0967デフォルトの名無しさん
NGNG自分でできないなら、ttp://www.hi-ho.ne.jp/~babaq/
0968デフォルトの名無しさん
NGNGなるほど TStringStream ですか
TStream系はコンポーネントの保存くらいにしか使ったことは無かったのですが
研究してみる価値がありそうですね
0970デフォルトの名無しさん
NGNGinet.dllでhtml解析のAPIが用意されてたりする。
しかしIEのバージョンが違うと不孝を招くかもしれない諸刃の剣。
素人には(以下略)
awk/grepコンポを使うって手もある。
だからお前ら、素のDelphiだけでなんとかしようとするのは
最後の手段にしてください、お願い。
バグったとき引き継いだヤシが困ると思うのよ。
0971デフォルトの名無しさん
NGNG変なサードパーティ製とかどこの外人が作ったかわからないコンポーネント使われるよりまし。
0972デフォルトの名無しさん
NGNGListView1にフォーカスがある状態でCtrl+Zを押すとリストの更新になる」
というように、フォーカスがあるオブジェクトによってショートカットキーの動作を変更したいんです。
このようなキー設定をユーザーが自由自在に設定できるようにしたいんですが、
どうにかしてスマートに実現させる方法は無いでしょうか?
0973デフォルトの名無しさん
NGNGOnShortCut使う?
0974デフォルトの名無しさん
NGNGそんなクソなコンポ選ぶのがまず間違っとる。
まずフリーでソース公開されてて安定動作するものを探せばいい話だよ。
クソじゃないコードを書けるのなら素で書きゃいいがネ。
折れは、複数行に別れてたりコメントを考慮したり文字列中の
httpナントカを無視したりするコードを素のDelphiで書き起こすのは
ダルイからヤだ。
このスレは「お勉強」的意味合いが強いから素のやり方でいいんだと思うよ
実務となれば話は別だろうけど
0976デフォルトの名無しさん
NGNGだからさぁ。人にコード渡すときにその得体の知れないコンポーネントも同封しないといけない。
その人は嫌々ながらその得体の(略をインストールしなければならない。
途中で消失した場合は最悪。
0977Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚彡< XPのテストファストで作れば
./つ=|||| \速くてかなり正確だと思う
〜ミ \_/
アドレス抽出に正規表現って
逆にしんどくないの?
>inet.dllでhtml解析のAPIが用意されてたりする。
萎え。
http://で始まって
半角英数字に収まる範囲までアドレスとして
抜き取るなんて、それこそ、朝ご飯前にでも出来そう
…面倒だからやらんけど。
0978デフォルトの名無しさん
NGNG新スレ立てようかな。
ところで>>1の
∧ ∧
( ´∀`)( )
は>>3の言うとおり
∧ ∧
( ´∀`)
( )
でいいの?
「Delphiはコードを書くのが好きな人に向いている」
という紹介記事があったけど、本当にそう思うね
やっぱ自分でできることくらいは自分で書いたほうが
人の書いたDLLやコンポーネントを使うよりも楽しいし
どうしても人が書いたものは自分の欲しい機能とは違う部分が出てくるんだよね
0980デフォルトの名無しさん
NGNGDelphiでソフトウェアの勉強をってのなら同意だけど、
探せば再利用可能なものが転がっているかもしれないことも
念頭に置いて欲しいと切に願ったり。
>>976
その辺の嫌さ加減は確かにあるね。
だから「フリーでソース公開されてて安定動作するもの」つーて書いたんだが。
ソースがあればコンポじゃなくて自前のプロジェクトに落すのも簡単だろ?
コンポーネントがらみで酷い目にあったのか?
もしそうなら、激しく参考にするからその辺書いてくれ。
0981デフォルトの名無しさん
NGNG∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 新スレ立てたよ。
( ) \__________
| | |
(__)_)
質問、回答が一段落したらこちらへどうぞ。
モナーの *やさしい* Delphi質問スレ Ver4
http://pc.2ch.net/test/read.cgi/tech/1016467137/
0982デフォルトの名無しさん
NGNG>>981
お疲れ〜。
ベクターさんって、どの程度のヤツは拒否すんのかね?誰か拒否されたことのある
人いる?
0983新スレ立てたDELモナー
NGNG∧ ∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< ありがとう。
( ) \_____
| | |
(__)_)
ベクターに登録してるけど、自分は拒否されていないよ。
真面目にやっている限りは大丈夫そう。
2ゲット早かったな。
あらかじめテキストエディタに内容を書いておいて
コピペして一気に書き込んだのがよかった。
0984982
NGNGいやいや。
つーか、「どんだけヒドイ(いろんな意味で)」とつっぱねられるのかな?
ってこと。某スレで「文字だけ表示するヤツ登録してみれ」とか言ってたりした
ヤツもいたが(藁
かの有名な「常駐Super」でさえも拒否されないのかな?
0985983(DELモナー)
NGNG「常駐Super」 初耳だけど、これ?
ttp://syoyunext.xoasis.com/joutyu/
ベクター側では内容に関しては
問わないということになっているけど、
これはどうだろ(w
0988デフォルトの名無しさん
NGNG激しくワラタ
0989デフォルトの名無しさん
NGNGわざわざドメインまで取得して・・・
ワラタ
0990デフォルトの名無しさん
NGNG常駐Superは2ch物だったはずだから、hはずさなくても大丈夫でしょ。
0991デフォルトの名無しさん
NGNGフリーホスティングじゃ無いの?
よーわからんけど
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGあの頃はソースネクストのスレッドで作者が頻繁にレス返してくれたが・・・
もの凄い速さで作ってたし。
30分くらいでアップしてた
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG<(゚ω゚) <うっ!
(��)\
/'>
0997デフォルトの名無しさん
NGNG(゚ω゚)> <はっ!
/(��)
<'\
0998デフォルトの名無しさん
NGNG<(゚ω゚) <うっ!
(��)\
/'>
0999デフォルトの名無しさん
NGNG(゚ω゚)> <はっ!
/(��)
<'\
1000デフォルトの名無しさん
NGNG(゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
/(��) (�戟jゝ
<'\ / >
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。