Delphi相談室(超初心者用)その11
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の
救済をお願いします。
<前スレ>
(11) http://pc2.2ch.net/test/read.cgi/tech/1074523803/
似たようなスレがありますが空気を読んでスレを選んでください。
<類似スレ>
【Delphi初心者】今から始めるDelphi Part01
http://pc2.2ch.net/test/read.cgi/tech/1062422335/
Delphi相談室(中級者以上)その12
http://pc2.2ch.net/test/read.cgi/tech/1064420818/
Delphi相談室(上級者用)その12
http://pc2.2ch.net/test/read.cgi/tech/1064766880/
【終わりの】Delphi 8 for .NET【始まり】
http://pc2.2ch.net/test/read.cgi/tech/1073688379/
雑談ぽい話はこちらに
<雑談スレ>
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その12
http://pc2.2ch.net/test/read.cgi/tech/1076095856/
0002デフォルトの名無しさん
NGNGほとんど更新されてないけど、これも書けよ。
毎回書いてもらえない。
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
5 名前:デフォルトの名無しさん[sage] 投稿日:04/01/19 23:58
Delphiの入手とインストール
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDelphi%A4%CE%C6%FE%BC%EA%A4%C8%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%5D%5D
0003デフォルトの名無しさん
NGNGその10 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
★過去ログ 【 くだすれDelphi 】
9 http://pc2.2ch.net/test/read.cgi/tech/1071294733/
8 http://pc2.2ch.net/tech/kako/1068/10682/1068201045.html
7 http://pc2.2ch.net/tech/kako/1065/10651/1065195699.html
6 http://pc2.2ch.net/tech/kako/1063/10632/1063202727.html
5 http://pc2.2ch.net/tech/kako/1061/10610/1061090908.html
4 http://pc2.2ch.net/tech/kako/1058/10588/1058834815.html
3 http://pc2.2ch.net/tech/kako/1055/10559/1055986736.html
2 http://pc2.2ch.net/tech/kako/1053/10537/1053757982.html
1 http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
★ご注意
・質問者は捨てで良いのでなるべくトリップを付けましょう。
・煽り荒らし騙りは放置してください。悪質な場合は削除依頼へ。
0004デフォルトの名無しさん
NGNGマウス左ボタンでコントロールからドラッグドロップすると、マウスカーソルが
コントロールが外れても、マウスボタンを離すまでOnMouseMoveイベントが発生
しつづけますが、他のボタンでもこのような動作をさせる為にはどうすれば
いいんですか?
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGVCL レベルで、Drag の機能を使うのであれば BeginDrag
VCL では、デフォルトでは左マウスクリックだけが BeginDrag を呼び出す。
だから動かしたいコントロールの OnMouseDown で、右ボタンのときにも
BeginDrag を呼ぶようにすればよい。
関数シグネチュア、長いので一部省略
procedure TForm1.Label1MouseDown( ... );
begin
TControl(Sender).BeginDrag(true);
end;
マウス中ボタンは、コントロールによって別の意味がある場合が多いので
個別に対応がひつようだなぁ
0008デフォルトの名無しさん
NGNGくだすれDelphi(超初心者用)その11
http://pc2.2ch.net/test/read.cgi/tech/1076609666/
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGDelphiインストーラが起動してインストールボタンを
押しインストールの準備に入った途中で
「Windowsインストーラサービスにアクセスできませんした。
セーフモードでWindowsを実行している場合、または
Windowsインストーラが正しくインストールされていない
場合に発生する可能性があります。サポート担当者に
問い合わせてください。」
というダイアログが出てしまいます。
検索で引っかかったSymantecの情報によってWin2kのセーフモードにて
・msi.dll -> msi.old
・msiexec.exe -> msiexec.old
・msihnd.dll -> msihnd.old
としたあと、ノーマルモードで再起動し
MicrosoftからWindowsインストーラ InstMsiW.exe
をダウンロードして実行してもおなじ
「Windowsインストーラサービスにアクセスできませんした〜」
のダイアログが出てしまいます。どうすればインストール出来ますか?
0014デフォルトの名無しさん
NGNGという意地悪な回答は置いといて
ファイルは壊れてないよね?
OS書いてないから細かいこと言えんが
http://support.microsoft.com/default.aspx?scid=kb;ja;JP319624
http://www7.plala.or.jp/asahikawa-ing/winxp_8.html
http://support.microsoft.com/default.aspx?scid=kb;ja;315353
どうでもいいけど「できませんした」って漫画に出てくる不良っぽい
0015デフォルトの名無しさん
NGNGWin2kSP4ですんで、上のリンク先のを試してみます。
とりあえず現状はWindowsInstallerサービスを開始しようとしても
----------------------------------
Microsoft Management Console
ローカルコンピュータのWindowsInstallerサービスを開始できません。
エラー 5: アクセスが拒否されました。
----------------------------------
というダイアログが出やがります。
0016デフォルトの名無しさん
NGNGおかげさまでインストールできますた
0017デフォルトの名無しさん
NGNG0018ふと疑問に思った ◆TJ9qoWuqvA
NGNGvar
SA :TStringList ;
SB :TStringList ;
SC :TStringList ;
SD :TStringList ;
begin
SA :=TStringList.create ;
SB :=TStringList.create ;
SC :=TStringList.create ;
SD :=TStringList.create ;
こんなふうに沢山クリエイトしても問題ないですか?
0019デフォルトの名無しさん
NGNGどれだけ増えたかはタスクマネージャ見れば分かる。
0020ふと疑問に思った ◆TJ9qoWuqvA
NGNG0021デフォルトの名無しさん
NGNG下のサイトの方法ではwin98なら解像度を変えることができたのですが
win2000だと解像度が変えられません。
参考に下サイト↓
ttp://forum.nifty.com/fdelphi/samples/00804.html
実際に解像度を変えるプロジェクトを作成してUPしてみました。↓
http://gamdev.org/up/img/246.zip
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG002421
NGNG解像度を変更する関数部を下記の様に変更して無事解決しました。
procedure TForm1.Button1Click(Sender: TObject);
var
DevMode: TDeviceModeA;
begin
DevMode.dmSize := Sizeof(TDeviceModeA);
DevMode.dmBitsPerPel := ScrC;
DevMode.dmPelsWidth := 640;
DevMode.dmPelsHeight := 480;
DevMode.dmDisplayFrequency := 1; // 面倒なのでdefaultを採用
DevMode.dmFields := DM_PELSWIDTH or
DM_PELSHEIGHT or
DM_BITSPERPEL;
ChangeDisplaySettings(DevMode,0);
ChgFlag := True; // 変更あり
end;
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGサンクス
しかし、引数多っ
0027デフォルトの名無しさん
NGNGShellExecute
0028デフォルトの名無しさん
NGNGWinExec
0029デフォルトの名無しさん
NGNGその場合の価格は?
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG003229
NGNGありがと
すまん、もう一つ。
アップグレードの場合、紙のマニュアルって付いてくるの?
0033デフォルトの名無しさん
NGNG8Proへバージョンアップした人に聞いた方がいいね。
あれ? もしかして、7Proにバージョンアップしたいの?
これはボーランドに聞いた方がいいです。
その前に、8Proって.NET以外は7と同じでは?
0034デフォルトの名無しさん
NGNGForm1.Canvas.Ellipse(0, 0 ,150, 150);
これでForm1に色がつかないのですが間違ってるのでしょうか?
0035デフォルトの名無しさん
NGNGそれだけのソースならちゃんと表示されるはずだが
(実際試して赤い○が表示されたよ)
前後で何か変なことしてない?
0036デフォルトの名無しさん
NGNGButtonが出てくるのを作りたいですが、どれをつかえばいでしょうか
おねがします。
0037デフォルトの名無しさん
NGNGEditを親にしてSpeedBtnを右側に作成。それをフォーカスを得た時に
VisibleをTrueにすればいいんじゃない?
サンプルコンポーネントのSpinEditのソースとか参考に。
0038デフォルトの名無しさん
NGNGありがとうございます
OnCreateのイベントでテストしたからできなかったようです
003929
NGNGD8ProはD7とは別物、.NET専用だって。D8にはWIN32用にD7が付属している。
今D6Perで勉強中なんだけど紙のマニュアルが欲しいからパッケージ版を買おう
と思ってます。
でもいきなりProは高いし、とりあえずD7Perを買って、うまくいったらProに
バージョンアップしようと思ってました。
Perは開発者ガイドが付いてこないけど、あとのマニュアルは同じだから
バージョンアップしたときに開発者ガイドだけでも付いてこないとどうかな
と思ったんですよ。
D8は当然D8のマニュアルな訳ですけど、今のところ.NETには興味がないのでD7
が欲しいんです。
でも、WIN32版の後継Delphiも予定されているみたいだから、もうちょっと待って
みるつもり。
0040デフォルトの名無しさん
NGNGヤフオクとかでたまにみるよ
マニュアルだけ〜
004129
NGNG一応、アラートでチェックしてます(まだ、でない・・・)。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGOnPaint
0044デフォルトの名無しさん
NGNGresult:=false;
filename:=ChangeFileExt(application.exename,'.ini');
selfini:= TIniFile.Create(filename);
と言うように1行おきに書いているのにF8でステップ実行させると
空白行も実行したり中身がある行を飛ばしたりしてしまいます。
これを元に戻す方法を教えていただけないでしょうか。
0045デフォルトの名無しさん
NGNG004644
NGNGたぶん私へのレスだと思うのですが、
{$OPTIMIZATION OFF}として最適化をオフにしたのですが、駄目でした。
0047デフォルトの名無しさん
NGNG[プロジェクト]-[オプション]-[コンパイラ]-[最適化]のチェックボックスをクリア。
その後再構築でどうよ?
004844
NGNGたびたびありがとう。
やってみたのですが同じでした。
0049デフォルトの名無しさん
NGNGソースに@@@@@@とか書いたらちゃんとコンパイルエラーになるか?
005044
NGNGやってみました。
@@@と書いてもエラーにならないでした。お手上げです。
0051デフォルトの名無しさん
NGNGどうやればできるでしょうか?
0052デフォルトの名無しさん
NGNGプロシージャのパラメータとしてSelf.Nameを渡していたら挙動がおかしかったので
ブレイクポイントを設定してSelf.Nameを確認したらXX(名前)_1とかって入っていたのですが・・・
005352
NGNG本スレのほうに書き直します。
0054デフォルトの名無しさん
NGNG@@@ を書いてもエラーにならない。
ということはエディタで開いているソースがコンパイルされているわけではない。ということだ。
ディレクトリを検索して、同じ名前のソースファイルがないかどうか。
同じファイルボディを持つコンパイル済みユニットが転がっていないか。
あと、マシンの日付は正しいものになっているか。
それともひとつ... 不正に入手したライセンス。ということはないかな?
005544
NGNGおはようございます。
>ディレクトリを検索して、同じ名前のソースファイルがないかどうか。
同じファイル名のファイルは一つしか出来ないと思いますがどういう意味でしょう?
>同じファイルボディを持つコンパイル済みユニットが転がっていないか。
同じファイルボディと言うのはどういうことですか?
>あと、マシンの日付は正しいものになっているか。
はい大丈夫です。
>それともひとつ... 不正に入手したライセンス。ということはないかな?
いえ、それはありません。
重複スレとは知らなかったのでメインスレに再度書き直します。
0056デフォルトの名無しさん
NGNGたとえばさ、コンポーネントを登録すると、そのコンポーネントのあるフォルダも検索パスに登録されてるわけ
そのパスに同じ名があったりすると、(例えばunit1.pasみたいにね) どうなるか判るよね?
0057 ◆RP51Otsw62
NGNGたとえば temp.bmp とか temp.txt
を実行ファイルに埋め込んで使用する
にはどうすればいいでしょうか?
0058デフォルトの名無しさん
NGNGリソースファイルにする。
0059デフォルトの名無しさん
NGNGttp://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N008.html
0061デフォルトの名無しさん
NGNGRTL3を入れようと思ったら\Libに\Debugフォルダが
存在しないんですが。。。
(XPHome sp1最新うpデート済み)
0062デフォルトの名無しさん
NGNG006361
NGNG0064デフォルトの名無しさん
NGNG家に着くまでが遠足。
オヤツは300円以内。
0065おしえて下さい
NGNG既存のエクセルファイルを開き、内容をStringGridに移したいのですがどうやれば
良いのでしょうか?
色々検索掛けたのですが”TExcelApplication”による新規作成しか見つからなかった
ものですから・・・。
宜しくお願いします。
0066デフォルトの名無しさん
NGNG006761
NGNGインスコ時点でデバッガオプションでのパスは$(DELPHI)\Lib\Debugに
なってるけどやっぱり\Lib\Debugが存在しない
BorlandDelphiPersonalEditionJP.exeの中を見ても存在しない
HKLMのAEDebug キーがうpデート2パックを入れると
\progra~\略\Bin\BORdbk60.exeなんてなったり変
寝よ。。。
0068デフォルトの名無しさん
NGNGつーか、いいかげん本スレに移行しろよ・・・
http://pc2.2ch.net/test/read.cgi/tech/1076609666/
もうこのスレには書かないで↑のスレに書いて頂戴。>>69-1000
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG奴が、粘着でこのスレを上げ続けているとしか思えないんだが。
>>71は前スレの1だろ?
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG簡単に作れてまさにRADツールって感じで好きなんだけどな。
0077デフォルトの名無しさん
NGNG会社の方針でDelphiを使わせてもらえない香具師らの妬み。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG入門用だったので、借りませんでしたが…。
ちょっとうれしくもあり、複雑でもあり。
0081デフォルトの名無しさん
NGNG品川図書館?
らくだの第三版があってちょっと驚き
0082デフォルトの名無しさん
NGNG結構よろこんで入れてくれるらしいよ。
来館者のニーズを知りたがってるからね。
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG図書館は別に本屋って訳じゃないから。
司書さん達は仕事だからやってるだけであって、よろこぶもよろこばないも無いよ。
要望があれば入れる、無ければ入れないだけ。潰れる事は滅多に無いからむしろ手間が増える購入希望は鬱陶しいと思う。
0087デフォルトの名無しさん
NGNGセクション内のキーの値(だけ)をStringListにまとめて入れられるはずなのに、
キー名も一緒に入ってしまうのは仕様?
0088デフォルトの名無しさん
NGNG仕様というか、ヘルプにそう書いてある。 だいいち、キー名が無いと不便でしょうがないでしょ?
0089デフォルトの名無しさん
NGNG蔵書には、向かないような気がする。
ま Delphiの本は Ver2の本を昔 買ったやつもってるけど、いまだに 役に立ちそうなので
いいかもしれないな。
初心者向けの本といっても、基礎的なことが 書いてあるので ちゃんと読めば
戦力アップになるよ。
0090デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA009712/take/delphi/index.htm
バージョンは 古いけど、けっこう役に立つよ。
0091デフォルトの名無しさん
NGNG重複スレに書くなよ馬鹿
本スレ http://pc2.2ch.net/test/read.cgi/tech/1076609666/
よって ======== 終 了 =========
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGどのようにすれば、エラーが出た行で とまるようにできるのでしょうか?
0096デフォルトの名無しさん
NGNGデバッグ版ライブラリを使えるなら使えばいいし、
それが出来ないなら、
ステップ実行を1回すればそこから次の行に移れる場合もあるから、それで判断するか、
CPU窓を出して、どのライブラリ呼び出しで起きたか判断してから、ステップ実行するか
0097デフォルトの名無しさん
NGNGエラーが出たとデバッガがとまってる行はズレてることがあるから気をつけろ。
数行前から逐一止めて確認したほうがいい。間違いない。
で、肝心の止め方だが
エディタで行の左のほうをクリクリっとやってやるんだ
赤くなればOKだ
0098デフォルトの名無しさん
NGNG>エラーが出たとデバッガがとまってる行はズレてることがあるから気をつけろ。
そのズレまくりなのを なんとかしたいのです。
もちろん、ブレイクポイントをつけることなどは してますが、
頻繁にその行を 通る場合は 何度もとまるので大変です。
値によってエラーになるので、それが どの値かを調べたいのですが・・・。
0099デフォルトの名無しさん
NGNGソース見せろ。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGMP3を鳴らそうとして、コンポーネント、ActiveXからWindowsMediaPlayerを追加しました。
ここで、繰り返し再生させたいのですが、WMPの設定で連続再生のボタンにチェックをいれても
1回しかならずに止まってしまいます。
どのようにすれば繰り返し再生できるのでしょうか。
なお、通常のTMediaPlayerを使用すると富士通のパソコンだと動くのですが、
vaioだと鳴らなかったりしたんで、WMPをインストールしました。
0103デフォルトの名無しさん
NGNG>質問よろしいでしょうか。バージョン6のパーソナル使ってます。
だめ。ここは重複スレ。
↓で聞きなおすように。
http://pc2.2ch.net/test/read.cgi/tech/1076609666/l50
故意に書くなよ>粘着君
=============== 終 了 ===============
0104103
NGNG0105デフォルトの名無しさん
NGNG>そのズレまくりなのを なんとかしたいのです。
だからそのファイルをコンパイルしなおせ。と。
行番号情報が古いものを使い続けているだけだ。
そのファイルがライブラリのファイルなら、ファイル名を教えて。直してあげよう。
0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGデマ
0109デフォルトの名無しさん
NGNGUS Newsgroup その他での話によると、夏あたりまでに D7 のアップデートの話もあって、Delphi8/W32 との関係がまだよくわからない。
なお Delphi8 IDE そのものは VCL/W32。
IDE 上で動くアドインを開発するための、Delphi8 相当の W32/VCL のライブラリとコンパイラキットが
すでに公開されている。
0110デフォルトの名無しさん
NGNG俺は ACMを使ってWavデータを復元して低レベルWavI/Oを使って再生してる
ACMのヘッダーは msacm.pas で検索すれば見つかる。
もっと手軽が希望なら
http://www.sams.co.jp/kei/mp3plyr/manual/manual.htm
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGFA?
0114デフォルトの名無しさん
NGNG前スレ
くだすれDelphi(超初心者用)その11
http://pc2.2ch.net/test/read.cgi/tech/1076609666/
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG「Winsockを使ってみようぜ」
このサイト見てみれ
多分あんたが求めてるものじゃあない。
0118デフォルトの名無しさん
NGNGWindowsのシステムフォルダってDelphiではどのように書けばよいのでしょうか?
Win95ではWindowsですし、Win2000ではWINNTですし・・・
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGありがとうございました。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGキーが入力で着なくなったり(NumLockを押してもNumLockのLEDが点滅するのみ)、
マシンを再起動しようとすると再起動の途中のWindowsをシャットダウンしています
の画面でマシンが固まったりしてしまいます。
stringlistやsendinputを多用したソフトなのですが、このような症状の回避策に
あるいはチェックするべきところに心当たりはないでしょうか?
Stringlistのfreeはtry.finallyで必ずやっています。
OSはXP,D6Proで書いてます。
漠然としていてレスしにくいと思うのですがどうかお願いします。
0124デフォルトの名無しさん
NGNGまず、メモリの使用量がどんどん増えていないか確認してみては?
0125デフォルトの名無しさん
NGNGとりあえずMemCheckを使ってみれば?
ttp://www.yks.ne.jp/~hori/MemCheck.html
0126デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGおまいさんが直接使ってなくてもVCL内部ではたくさん使われている。
0129デフォルトの名無しさん
NGNG0130123
NGNG何度もすみません。
ということはどの辺をチェックすれば良いでしょうか???
0131デフォルトの名無しさん
NGNG動的に生成していて、破棄していないものを調べる。
例えば、CreateしてFreeしてないものがないかとか。
使ったことないけど>>125ので検出できるんじゃない?
0132デフォルトの名無しさん
NGNGソース出せないなら自分でやれよ
0133デフォルトの名無しさん
NGNGhttp://forum.nifty.com/fdelphi/samples/01393.html
ココを参考にして自作する
あるいは自殺する
動的配列って何の?
0134デフォルトの名無しさん
NGNGだから、タスクマネージャ出して、そのリソースとかメモリとかが増えてないか調べてみろよ
更新速度を遅くしとけよ。
0135デフォルトの名無しさん
NGNGhttp://www.automatedqa.com/products/memproof.asp
ここのMemProofでもチェック出来るよ
でも、このソフトでチェックすると、何かわけわからんエラーも表示される
というか、Form作成→コンパイル→出来たバイナリチェック→エラー検出となる。
そして、しばらく作りこんでバイナリの容量が大きくなると消える(その代わり更に変なエラーがでてきたするw)
リークのチェックぐらいには使えるのでおためしあれ
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG2、デバッグ中、範囲チェックはさせる
3、ファイルを異常に沢山作成させてないか、ハードディスクを時には確認する
0139デフォルトの名無しさん
NGNGSetLengthで確保した動的配列の割当を開放するのはどうすればいいのでしょうか?
「nil を代入するか,Finalize に変数を渡します」
とあったので今は動的配列変数にnilを突っ込んでます。
他でも見たのはSetLengthで0を割り当てるとかもありました。
0140デフォルトの名無しさん
NGNGSetLengthという手続きで確保しているから、Finalizeという手続きで開放した方が
見た目がよさそうなので、そうしてる。
その割には、オブジェクトの開放はFreeAndNilを使うよう徹底してたりするわけだが。
0141デフォルトの名無しさん
NGNGプログラミングの勉強をしようと思ってC言語の入門書片手にやり始めたのですが
Sample1.cというソースファイルをコンパイルしてSample1.exeというファイル
にするというところでいきずまっています。
その入門書には\CGENGO\PRACTICEに移動してdirでSample1.cがあるのを
確認した後Lcc Sample1 と入れてEnterでコンパイルとなっているのですが
以下のような文がでてきてできません.なぜできないのでしょうか?
これだけの情報ではわからないかもしれませんがご教授の願います。
Microsoft (R) KKCFUNC バージョン1.10
Copyright (C)Microsoft Corp. 1991,1993. All rights reserved.
KKCFNC が組み込まれました。
マイクロソフトかな漢字変換 バージョン 2.51
(C)Copyright Microsoft Corp. 1992-1993
エラー:エクスドメモリーマネージャーがすでにくみこまれています。
XMSドライバは組み込まれていません。
Microsoft (R) KKCFUNC バージョン1.10
Copyright (C)Microsoft Corp. 1991,1993. All rights reserved.
KKCFUNCはすでに組み込まれています。
コマンドまたはファイル名が違います。
lcc: can't exec: cpp: No such file or directory
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNGえむしえ
0145デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
begin と end の間の処理なんですが・・・
中の数値を一度変数に置き換えないとダメですか?
stringとintegerの間に互換性がないとか言われてチンプンカンプンです
0146デフォルトの名無しさん
NGNGはい
>stringとintegerの間に互換性がないとか言われてチンプンカンプンです
文字列型と整数型は全く異なる型で互換性のないのが当たり前です。
VBではこの当たり前じゃないことが通用してしまうわけですが…
0147デフォルトの名無しさん
NGNGありがとうございます!m(_ _)m
それで、変数に置き換えようとしたのですが、
begin
w := ComboBox1;
end;
では出来ないようで、途方に暮れております・・・
どうすればいいのでしょう?
0148デフォルトの名無しさん
NGNGvar
V1,V2,V3:Variant;
begin
V1 := ComboBox1.Text;
V2 := ComboBox2.Text;
V3 := V1 * V2;
Edit3.Text := V3;
end;
0149デフォルトの名無しさん
NGNGDelphiらしくはないけど、それでも動くよね(最近この手のレスのやりとりがあったっけ)
>>147
普通は
var
nValue1, nValue2, nResult: Integer;
begin
nValue1:=StrToInt(ComboBox1.Text);
nValue2:=StrToInt(ComboBox2.Text);
nResult:=nValue1*nValue2;
Edit3.Text:=IntToStr(nResult);
end;
みたいになるよ。
ちなみに変数を宣言しないで一行で書くことも可能
Edit3.Text:=IntToStr(StrToInt(ComboBox1.Text)*StrToInt(ComboBox2.Text));
0150デフォルトの名無しさん
NGNGありがとうございます!!!!!!
Variantなんて初めて使った・・・
ちなみに、Label.Caption:=V3
にしようとすると、エラーになってしまうのですが、
これは出来ないのですか?
それともどこか間違っているのでしょうか?
0151デフォルトの名無しさん
NGNGなんにせよ、例外処理(数値が求められるところ
に文字とか出た場合のとか)は必要。
うちでは、148の内容の
Edit3.Text := V3;
を
Label.Caption:=V3
に変えても、一応通る(エラーなし)けどね。
0152デフォルトの名無しさん
NGNG正に、「らしくない」がふさわしい。
0153ななしへたぐらま ◆XcB18Bks.Y
NGNGヘルプには書いてありませんが,
単に解放するだけでしたら何もしなくても自動的に解放されます.
(『長い文字列型と同じ』という記述に注意してください)
明示的に解放する場合,
その配列を別の動的配列変数に代入していなければ
その3つの方法のどれでも解放されます.
>>145
ここでいう『互換性』とは
・式の中であるふたつの値を一緒に使えるか
あるいは
・ある値を変数に代入できるか
ということです.
DelphiではIntegerなどの数値型とStringなどの文字列型には『互換性』がありません.
0154デフォルトの名無しさん
NGNGこのスレのおかげで今夜は寝ることが出来ますです。
特に>>148
さんに感謝しますm(_ _)m
みなさんどうもありがとうございますです
0155ななしへたぐらま ◆XcB18Bks.Y
NGNG…よって,>>149のように文字列として連結したいときは数値を文字列に変換し,
数値を演算したいときは文字列を数値に変換しなければなりません.
>>148はバリアント(Variant)を使った例です.
バリアントには文字列でも数でも格納することができますし
文字列と数値との間の変換も勝手にやってくれるので非常に便利です.
そもそも文字列型だとか数値型とかいちいち意識しなくて済むので特に初心者には楽ちん(死語?)でしょう.
しかしバリアントには落とし穴があります.
たとえば>148の方法で足し算をやるとうまくいきません(文字列とみなして連結してしまうようです).
v1に文字列が代入された時点ではv1は文字列として情報を持っています.v2も同様です.
代入先が数値変数ならv1とv2は自動的に数値に変換されますが
代入先がバリアントの場合の仕様はドキュメントには書かれていません.
恐らく変換しなくて済むものは変換しないようになっているのでしょう.
なお,この問題はたとえば v3 := VarAsType(v1, varDouble) + VarAsType(v2, varDouble)とすれば回避できますが,
この時点で『文字列型だとか数値型だとかいちいち意識しなくて済む』メリットは失われてしまいます.
DelphiではVBと違い,基本的にバリアントを使わず,
プログラマーに型やその違いをはじめから意識させることによって
いちいち型変換しなければならない代わりに
予期しない型変換によるトラブルを未然に防いでいます.
0156デフォルトの名無しさん
NGNGありがとう御座います。安心して使いまくります。
0157123
NGNGタスクマネージャーをずっと表示していたのですが、メモリの使用量は
増えていませんんでしたがまたキーボードがいかれてしまいました。
リソースの使用量は確認できなかったのですが、どのようにすればリソースの使用量は
確認できるのでしょうか?
また、どのようなことを忘れていたらリソースの量はどんどん増えていって
しまいますか?
0158デフォルトの名無しさん
NGNGスタートアップで起動させるソフトを登録する
レジストリで、起動させるプログラム名と任意の
引数を与えたいのだが、どう書くの?
ぐぐったけどよく分かんなくて、今手元に本とかも
ないので誰かおせーて。
0159デフォルトの名無しさん
NGNGなんか危険な香りがプンプンするよね。
0160デフォルトの名無しさん
NGNG基本的な考え方は何でも入るObject型と同じですよ?
0161デフォルトの名無しさん
NGNGそりゃ知ってますけど、なんか本能的に
わかりにくいバグを生みそうな予感がします。
0162デフォルトの名無しさん
NGNGComをやるときには必要になるよ。(Excelを操作したり)
それ以外の用途ではほとんど使わないね。
0163デフォルトの名無しさん
NGNGそれも知ってるけど、個人的にCOM使わないし
こういう足し算のパターンではまず使わないなぁ、と。
個人的にはね。
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166123=157
NGNG0167デフォルトの名無しさん
NGNGだからリークなわけないっていってるじゃん。
リソースはタスクマネージャで表示項目にハンドルやGDIを追加してください。
0168デフォルトの名無しさん
NGNGMsg.Resultを処理してなくてブラックホールできてるんじゃないか?
0169デフォルトの名無しさん
NGNGHDDからこんなのが出てきたけど、参考になるかな?
var
ri: TRegistry;
begin
ri := TRegistry.Create;
ri.RootKey := HKEY_LOCAL_MACHINE;
if(ri.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\run', True)) then
begin
ri.WriteString('適当な名前', '実行ファイルのフルパス オプション');
end;
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGごめんよ。関係ない部分を編集してたら抜けてしまった。
var
ri: TRegistry;
begin
ri := TRegistry.Create;
ri.RootKey := HKEY_LOCAL_MACHINE;
if(ri.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\run', True)) then
begin
ri.WriteString('適当な名前', '実行ファイルのフルパス オプション');
end;
ri.free;
end;
0172123=157
NGNGたびたびすみません。
では何が原因だと思われますでしょうか?
教えていただいたリソースの確認はやってみます。
>>168
MSGの意味が分からないのですがどういう意味でしょうか?
0173デフォルトの名無しさん
NGNGソースも出せないくせに粘着すれば答えが出ると思ってんの?
0174123=157
NGNG0175デフォルトの名無しさん
NGNGアップローダくらい自分で探せ!おまい何様だ?
0176デフォルトの名無しさん
NGNGXPならタスクマネージャのパフォーマンスタブで 合計の所にハンドルの表示があるから、その数を確認
それが増えていってないなら、リソースリークではないだろう
メモリの消費量はコミットチャージの方で確認してるよね?
ところで、そのアプリ使わなくても そのキーボードいかれる現象起きない事は確認してるんだよね?
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGだんだん変になるってのは、どう変になるかにによらずリークだといいだす。
0179デフォルトの名無しさん
NGNGうーん。
低レベルオーディオとかのCALLBACK中に悪さしてるとか、グローバルフックをかけてるとかなら別だけど、
普通に作って、保護例外とかも出ないなら、それ以外の可能性が考えられないからなあ
あるいは例外全部キャッチして握りつぶしてるのかな? ならデバッガ上で動かしてみるべきだね。
0180デフォルトの名無しさん
NGNG個人の能力に依存
0181デフォルトの名無しさん
NGNGとりあえず、メモリ使用量がホントに増えてないんだろうな?
0182158
NGNGありがとうございました
0183123=157
NGNG3時間ソフトを走らせてみたのですが、メモリの使用量は5M近辺をうろうろしていて
大きくはなっていません。ハンドルは74、GDIオブジェクトは67から変化しません。
マシン全体の合計のハンドル数も4400弱を上下しています。
>>176
コミットチャージの合計値は110M前後です。上昇はしていません。
このアプリを使う前はこのような症状は無いでした。
>>177
はい。次に貼り付けます。長文スマソ
0184デフォルトの名無しさん
NGNG0185123=157
NGNGvar
TempList1:TStringList;
TempList2:TLightstrings;
i,j,jj,age1 :Integer;
SetName,kk,s,s1:string;
ChangeData:boolean;
Wnd,ChildWnd:HWND;
begin
MainTimer.Enabled:=False;
ChangeData:=false;
if (LastGetDataTime<now-EncodeTime(0,3,0,0)) then
begin
Richedit1.Lines.Add(FormatDateTime('yyyy/mm/dd hh:mm:ss',Now)+',通信が途絶しました。再ログインします'+SetName);
Richedit1.Repaint;
Login(Self);
LastGetDataTime:=now;
end;
for jj:=1 to 10 do
begin
kk:='';
SetName:=whatsetname(jj,kk);
statusbar3.SimpleText:=SetName+' Data';
statusbar3.Repaint;
kk:=MainPath+SetName+'.Data.'+formatDateTime('yyyymmdd',Now-1);
s :=MainPath+FormatDateTime('yymmdd',Now-1)+SetName+'1.txt';
s1:=MainPath+FormatDateTime('yymmdd',Now-1)+SetName+'2.txt';
if not fileexists(kk) then
begin
0186123=157
NGNGTempList2:=TLightStrings.Create;
try
try
TempList1.LoadFromFile(kk);
age1:=FileAge(kk);
for i:=0 to templist1.Count-1 do
begin
TempList2.Text:=TempList1[i];
Nowtime:=Now;
if SetData1(jj,SetName,TempList2,s,s1,NowTime) then
begin
ChangeData:=true;
end;
LastGetDataTime:=now;
end;
if age1=FileAge(kk) then
begin
if not DeleteFile(kk) then
begin
RichEdit3.Lines.add(FormatDateTime('yyyy/mm/dd hh:mm:ss',Now)+',Data file "'+kk+'" Delete Failed');
end;
end
else
begin
j:=TempList1.Count;
TempList1.LoadFromFile(kk);
for i:=0 to j-1 do
begin
0187123=157
NGNGend;
TempList1.savetofile(kk);
end;
except
RichEdit3.Lines.add(FormatDateTime('yyyy/mm/dd hh:mm:ss',Now)+',Data file "'+kk+'" Open Failed');
end;
finally
TempList1.free;
TempList2.Free;
end;
if errorflag and (not errorReportflag1) then
begin
TempList1:=TStringlist.Create;
try
i:=Richedit1.Lines.count;
if i>2 then
begin
TempList1.Add(Richedit1.Lines.Strings[i-3]);
TempList1.Add(Richedit1.Lines.Strings[i-2]);
TempList1.Add(Richedit1.Lines.Strings[i-1]);
end
else
begin
TempList1.Add(Richedit1.Lines.Strings[i-1]);
end;
Mail(TempList1);
errorReportflag1:=true;
finally
0188123=157
NGNGend;
end;
if (DataCount<16) and ((not errorflag) or ChangeData) then
begin
SetData2(jj,SetName);
SetData3(SetName);
if MaxData/MinData>0.8 then
begin
statusbar3.SimpleText:=SetName+' Data Process';
statusbar3.Repaint;
DataPro(jj);
statusbar1.Color:=clBtnFace;
statusbar1.SimpleText:='正常処理中です。';
statusbar1.Repaint;
end;
end;
end;
end;
TempList1:=TStringlist.create;
try
if not errorReportflag2 then
begin
errorReportflag2:=true;
TempList1.Add('エラーが起きています。');
Mail(TempList1);
end;
finally
TempList1.free;
end;
0189123=157
NGNGMainTimer.Enabled:=True;
end;
以上です。もっと長いのですが、余計な部分は消してます。
読みにくいソースですみません。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG1. 通信途絶の時はSetNameが初期化されてないけどいいのか?
2. ファイルkkが存在しない時にTempList1が読もうとしてるがいいのか?
3. メール関係のシェアウェアを公開してたりするか?
0193デフォルトの名無しさん
NGNGTLightStrings(おいらは知らなかったけどニフティにあるらしいね)というのが
引数になってるから余計に…
あとはMailとDataProかな〜
いずれにせよ、このリストからはリークもリソースの開放し忘れも見えてこないね。
0194デフォルトの名無しさん
NGNG○ソース ま、いっか
0195デフォルトの名無しさん
NGNGしかし、1日おいて突然起きるような現象を突き止めるのはとても厄介だ。
Timerで エラーレポートをRichEditに書いてるけど、これだと暴走して電源切らなくちゃいけなくなったら消えてしまう。
ファイルに書き出しておいた方がいい。
ところで、大量にファイルを作ってるんじゃないのか?
大量にファイルを作ると、時間と共に急激にWindows全体が重くなるよ。
0196123=157
NGNGSendInputは
procedure TMainForm.Login(Sender:TObject);
var
Wnd:HWnd;
begin
Wnd:= FindWindow(Nil,'Error');
if Wnd <>0 then
begin
SetForegroundWindows(Wnd);
end;
keybdInput(VK_ESCAPE, 0);
keybdInput(VK_ESCAPE, KEYEVENTF_KEYUP);
SendInput(KeyInputCount,KeyInputs[0],SizeOf(KeyInputs[0]));
KeyInputCount:=0;
こんな感じで使ってます。ちなみにkeybdInputは
procedure TMainForm.KeybdInput(VKey:Byte; Flags:DWord);
begin
Inc(KeyInputCount);
SetLength(KeyInputs,KeyInputCount);
KeyInputs[KeyInputCount-1].Itype:=INPUT_KEYBOARD;
with KeyInputs[KeyInputCount-1].ki do
begin
wVk:=VKey;
wScan:=MapVirtualKey(wVk,0);
dwFlags:=KEYEVENTF_EXTENDEDKEY;
dwFlags:=Flags or dwFlags;
time:=0;
dwExtraInfo:=0;
end;
end;
です。
0197デフォルトの名無しさん
NGNG1.txtと2.txtだけ。
0198123=157
NGNG1,SetNameの中身は数字で表示しているだけなので大丈夫です。
2,すみませんログを削除しすぎていました。
if not fileexists(kk) then
begin
kk:=MainPath+SetName+'.fxcm.'+formatDateTime('yyyymmdd',Now);
s :=MainPath+FormatDateTime('yymmdd',Now)+SetName+'1.txt';
s1:=MainPath+FormatDateTime('yymmdd',Now)+SetName+'2.txt';
end;
こんな感じになってます。
3,いえ、公開しているソフトは1本も無いです。
>>193
LightStringsやめてStringlistでテストしてみます。
MailとDataProまでここにあげるとなると他の皆様に迷惑でしょうからやめておきます。
無料のサイトにソースをアップした方がいいかな
>>195
毎回ファイルに書き出すようにします。ありがとうございます。
あとファイル数は同じファイルに定期的に上書きしているだけなので大丈夫です。
0199デフォルトの名無しさん
NGNGKeyInputCount:=0; が実行されないとか…
KeyInputCountのリセット位置を工夫すると
安定するような気もするな〜
0200デフォルトの名無しさん
NGNGとりあえずKeyInputCountを他の変数に代入して
SendInputを呼び出す前にKeyInputCountを0にしてしまうな〜
もちろんSendInputの引数は代入した方の変数なると
0201デフォルトの名無しさん
NGNGTStringlistをメソッド内の変数にして何回も生成破棄するってどうなのかね。
メンバにしてコンストラクタで生成し、メソッド内ではClearするだけの方がすっきりしそう。
余計なtry..finally全部消えるのに。
0202123=157
NGNGKeyInputcountの値はきちんと入ってるみたいです。
試しにこの行を削除して実行してみたのですが、過去の履歴も一緒出力するようになりました。
>>200
すみません、理解しきれていないのですが、KeyInputCountを0にして
呼び出せば安定する、って言う意味でしょうか?
>>201
ソフトが安定したらFormCreateでStringListを育成して、FormCloseでFreeしようと
思っていたのですが、それよりも201さんが書かれたメンバにしてコンストラクタで生成する
方法の方が安定しますか?
やり方が分からないのでちょっとイメージがわかないです。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG>>123が2kかXPを使ってるのは間違いないと思うのだが、それだけではダメなのか?
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG更にSendInputを呼び出すものが紛れ込んでいたらハングアップするだろうけどなぁ
同じキー入力が何重にも発生するだろうから…
(SendInput自体にSendInputが割り込むことはないけれど)
症状から見て極まれにしか起こらないみたいだから
SendInputの処理中にタイマーのイベントが発生した場合だけ起こる現象化かもね
0207123=157
NGNG>SendInputによって発生したイベントを処理するイベントハンドラの中に
>更にSendInputを呼び出すものが紛れ込んでいたらハングアップするだろうけどなぁ
たぶん無いと思います。
でもこのままだとSendInputが原因かどうか分からないので問題の切り分けのために
とりあえずSendInputを全部//行にして実行してみます。
0208デフォルトの名無しさん
NGNG死ねや!チョン&チャンコロ
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG1時間毎に、フォームの状態とかを保存した上で 同じアプリを別プロセスで起動して、
自分を終わらせて、同じアプリは自分の終了を確認したらフォームの状態を復元して動作するような仕掛けを作って
やっぱり24時間したらハングアップするかどうか見てみたら?
0212123=157
NGNG24時間たったら必ず起こる、と言うわけではありません。
もっと早く起きるときもあります。
昨日の夜からSendInputを殺して動作させていたのですが、エラーがやっぱり
出てしまいました。
別プロセスで起動する、と言うのが良く分からないのですが、ちょっと考えます。
0213デフォルトの名無しさん
NGNGしかも、長時間稼動しなければ発生しないとなるとなおさらだ。
きりわけをする為に、
SetForegroundWindows とか、相手に投げてるメッセージを探して
それを連続して投げてみて同じ事が起きないか順に見てみたら?
SendInput も1回だけじゃなくてSHIFTとか関係なさそうなのを連続して投げてみるとかしてさ
0214デフォルトの名無しさん
NGNGよく判らないけど、別のアプリをコントロールしようとしてるのならば、
"Error"タイトルの窓が無ければ、どこか判らないフォアグラウンドプロセスにESCを送りつけるの?
見つかったとしても、 SetForegroundWindows は 何? SetForegroundWindow ?
SetForegroundWindow は必ず成功するわけではない。
ブリンクさせてなりたいという意思を表示させるだけの事も多い。
この場合、やっぱり現在のフォアグラウンドプロセスにESCを送りつけるわけで、
アプリ全体にこの手の配慮不測があるとすると、そこらへんを見直さないといけないと思うよ。
0215123=157
NGNG試してませんでした。やってみます。ありがとうございます。
>>214
2週間ほど前まで、214さんが言っておられるタスクバーが茶色ブリンクするだけの
症状にも悩んでいたのですが、こちらのスレで解決法を教えていただいたので
その処理をSetForegroundWindowsというprocedureにして必ず目的のWindowを
表に出せるように処理しています。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGそしてオブジェクトインスペクタのCaption欄に文字を入れろ
0218デフォルトの名無しさん
NGNGドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい >>1!!
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0219218
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGa:= 9 DIV 2;
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG―――――――――――――‐┬┘
|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ |
| |/ ⊃ ノ | |
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | [余り]
|
0224デフォルトの名無しさん
NGNG____.____ |
| | ウヒョー .| .| [余り]
| | ∧_∧ | .|
| |( ・∀・)つ━━┫ ┃
| |/ ⊃ ノ | .|....┗━┛
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ |
0225デフォルトの名無しさん
NGNGありがとうございました
0226220
NGNGありが�d
0227デフォルトの名無しさん
NGNGスタートアップでウィンドウズの起動と共に自動的に1回処理させたいです。
その時に、フォームは出ないようにしたいのですが、フォームの
Createイベントの中で
Button1Click;
Close;
とやるとエラーが出てしまいます。
どうすればいいのでしょうか?
0228デフォルトの名無しさん
NGNG普通は、OnClickでは、処理を呼び出すだけで、実際の処理は別のクラスに書くものです。
そして、その処理は .DPR に 書くと良いでしょう。
0229227
NGNG.DPRですか。ぐぐってもすこししらべてみます。
0230デフォルトの名無しさん
NGNGどこの設定を変えれば宜しいのでしょうか?
超初心者的質問で申し訳ないのですが、どなたかご教示お願い致します。
0231デフォルトの名無しさん
NGNGはぁ?
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG> どこの設定を変えれば宜しいのでしょうか?
> 超初心者的質問で申し訳ないのですが、どなたかご教示お願い致します。
Delphi 予約語などのの強調表示ができればいいんだろ。秀丸は Pascal の強調表示には対応してた
はず。しかし、超初心者ならコードエディタにも慣れた方がいいと思うぞ。なんと言ってもコード補
完は便利だから。
0234デフォルトの名無しさん
NGNG統合開発環境じゃなくて秀丸使いたがるなんて、プログラムの初心者じゃないだろ。自分で調べろ!
といいたいところだが…
秀丸を統合開発環境のデフォルトエディタには出来ない。
統合開発環境も一緒に起動しておいて秀丸で編集して保存。
んで、統合開発環境のエディタをアクティブにすると、「内容が変更されたが更新するか?」というメッセージが出るのでOKする。
んで、メニューからコンパイルすればよい。
dos窓が良ければコマンドラインコンパイラ(bin\dcc32.exe)もあるぞ。
0235デフォルトの名無しさん
NGNG以上。
0236デフォルトの名無しさん
NGNG俺は>>228の言いたい事が解ったぞ。
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGフォームにボタン(Captionはボタン生成)を1つ貼り付け、
それを押すと度にその下に新しいボタン(新ボタン1,2,3...)が
にょきにょき出てくるテストプログラムを作っています。
ここで新ボタンを押すと、その押したボタンが消える(破棄される)
ようにしまして、消える事は消えるのですが消えた後にほぼ必ず
読み込み違反のエラーが出てしまいます。ごく稀に出ない時もあります。
このエラーが出ないようにするにはどうすればいいのでしょうか?
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGイベントハンドラ内でFreeしたらあかん
ttp://www.sakaki.keiaikai.or.jp/cgi-bin/ConvRoom/webconv.dll/alltree?No=17155
0242デフォルトの名無しさん
NGNGボタンを破棄しないで
VisibleをFalseにしる
0243デフォルトの名無しさん
NGNG0244228
NGNG前半はドキュメントとビューを別けようという話です。
OnClickに、見かけとか、そのフォームに関する処理を書くだけならいいのですが、
何か処理をする時、 何か処理をするという事は、データを扱うという事ですので、
そのデータの方に注目して、別のユニットにその処理を書きます。
そうすると、そのユニットは単独で使う事が出来るようになります。
たとえばバッチ処理をさせたりしたい場合に便利になるわけです。
そのあたり、馴れない間は、DataModuleに書くと良いでしょう。
後半は、アプリ起動時に処理させたい内容は、.DPRに書くと良いという話です。
DataModuleを使う場合、.DPRはこんなふうになっています。
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDataModule1, DataModule1);
Application.Run;
end.
ここで、 Application.Run; をParamによって条件判断して呼ばなければ
そのままアプリはフォームを開かずに終了し、endの後でCreateされてるフォームは
Applicationを親にしているので自動的に開放されます。
0246デフォルトの名無しさん
NGNGボタンはオーナーであるフォームが管理してるんだから
勝手に破棄しちゃ駄目でしょ。Components配列から外さないと。
0247デフォルトの名無しさん
NGNG子コントロールが開放(たとえばButton1.Free; を実行)されれば、
自動的に親と通信するから大丈夫。
>>239
将来の事を考えると、イベントハンドラ内でFreeしない方がいい。
でも、それとは別に、イベントハンドラ内でFreeしても現在のVCLでは問題ない。
だから、何か変な事をやってるように思うから、その部分のソースを書いてみて。
0248デフォルトの名無しさん
NGNG> イベントハンドラ内でFreeしても現在のVCLでは問題ない。
設計時にポトペタしたのは大丈夫だけど、動的につくったやつはそのイベントハンドラ
で Free するとエラーになる。試してごらん。
0249デフォルトの名無しさん
NGNG新しくフォームを生成するのではなく
フォーム1の中でフォーム2を実行したいのです
どうすればいいのでしょうか?
また、こういったわからないことがあったら
どうやって調べたらいいのでしょうか?
ヘルプファイルもいまいち理解しにくいのですが
0250デフォルトの名無しさん
NGNGPageControl使ったほうがいいかも
0251ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNG試してみました。
procedure TForm1.Button1Click(Sender: TObject);
begin
TButton(Sender).Free;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with TButton.Create(Self) do
begin
Parent := Self;
Top := Y;
Left:= X;
OnClick := Button1Click;
end;
end;
0252デフォルトの名無しさん
NGNGWebBrowserを使って簡単なブラウザを作っているんですが、
リンク先が新しいウインドで開く設定のリンクだった場合
IEが新たに立ち上がって、IEにリンク先のページが開いてしまいます。
これをIEでなく、ブラウザ自身を立ち上げて表示させたいのですが
どうすればいいんでしょうか?
よろしくお願いします。
0253デフォルトの名無しさん
NGNGしなきゃなんないんじゃないの?
0254デフォルトの名無しさん
NGNGエラーが出ました。
0255デフォルトの名無しさん
NGNGDelphi 6 personal で作ったツールを仕事で使ったらライセンス違反ですか?
0256デフォルトの名無しさん
NGNGそういう微妙なライセンスの問題は、個人の契約問題ですから
ご自分でボーランドに問い合わせて下さい。
0257デフォルトの名無しさん
NGNGリンクをクリックしたときに発生するイベントあるんだから(OnBeforeNavigate2)、
そこにShellExecute使って自分自身を起動するようにすればよい。引数にはリンクのアドレスを入れておく。
んで起動時にOnCreateでParamStr(1)で読み込んで、Navigateする、と。
0259デフォルトの名無しさん
NGNGよしんばそれがライセンス違反だったとしても
それを確認できる人はいない。
Del6Perで作ったソフトそのものを売ったりしなきゃ
全然オッケーでしょ。
0260252
NGNG>>258
新しいウインドを開くリンクをクリックして、とりあえず自身のブラウザを
立ち上げるまでにはなりました。まだリンク先の表示は出来ませんが・・・。
参考に頑張ってみます。ありがとうございました。
0261デフォルトの名無しさん
NGNG市販のソフトなどの色使いをまねして作りたいのですが
マウス上の色をTColor(-$7FFFFFFF-1..$7FFFFFFF)で返すソフトはないでしょうか?
もしくはその処理を教えてください。
原色だらけのFormで見づらくて。
0262デフォルトの名無しさん
NGNGvar
DesktopCanvas: TCanvas;
CursorPos: TPoint;
begin
GetCursorPos(CursorPos);
DesktopCanvas := TCanvas.Create;
try
DesktopCanvas.Handle := GetWindowDC(GetDesktopWindow);
Result := DesktopCanvas.Pixels[CursorPos.x, CursorPos.y];
finally
DesktopCanvas.Free;
end;
end;
0263261
NGNGありがとうござます。
けど、自分で作成したForm内はTColorの値をとれるのですが、
本来の目的、他のアプリの取り方がわかりません。
明日?、起きたらもう一度挑戦します。
0264デフォルトの名無しさん
NGNG262 さんではありませんが 262 の関数で画面のどの場所でも色が取れるのを確認したよ。
0265デフォルトの名無しさん
NGNGhttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200309/03090060.txt
0266デフォルトの名無しさん
NGNGALT+COPYして そのアプリの画面イメージをクリップボードに入れてから
処理すると楽なんじゃないの?
0267デフォルトの名無しさん
NGNGどう楽か知らんが、1点の情報が必要なのに100万点の情報をメモリに入れるのは
バカみたい。
0268261
NGNGありがとうございます。
>265 で実施したのですが、
Form外のマウス位置の情報を >262,264 さんがどのように実施したのか
教えていただけないでしょうか?
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGGetCursorPosというWin32API
検索しようね。
分からない部分をググるだけでもだいぶ違うぞ
0271デフォルトの名無しさん
NGNGするのか分からないんだと思う。>>265 の方法はマウスキャプチャを利用して
OnMouseUp で検出してるけどね。
0272デフォルトの名無しさん
NGNGなんか お金を払ったときなどの釣りはいらねぇ〜っていう セリフを思い出した。
0273261
NGNG>271さんがいっているように、どこで処理を書くのかわかりませんでした。
TForm1.FormMouseMove で処理を実施してもForm外では認識しなかたので。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.Color := GetColorByCursorPos;
end;
と、Timerで処理すればよいのがわかり、解決出来ました。
ありがとうございます。
0274デフォルトの名無しさん
NGNG通常の列については、goColSizingでサイズ変更が可能になるようなのですが、
FixedColはできないのでしょうか?
StringGrid自体の幅があまりとれないもので、FixedColを調節して
通常列の値が見えるようにしたいのですが・・・。
どなたかご存知の方がいましたらご教授ください。
0275デフォルトの名無しさん
NGNGコピーしたいのですがどのようにすればよいのでしょうか?
色々試してみて
QuickReport1.PaintTo(Image1.Canvas,0,0);
で出来そうと思ったのですが、デザイン中の画面が表示されてしまいました。
Image1.Canvas := QuickReport1.QRPrinter.Canvas
では、エラーが出てしまいます。
よろしくお願いします。
そもそもの目的は、両面印刷の実施です。
表面 ImageKit という市販のソフト( http://www.newtone.co.jp/index.html )
裏面 QuickRepot で作成されたイメージ
という形で印刷したかったのですが、うまくいきません。
QuickRepot1.Print を実施すると、次のページに印刷されます。
回避方法として、QuickRepotの印刷イメージをImageKit側に呼び出そうとしています。
表裏面ともに、ImageKitのデータの場合はできました。
もっと簡単な方法がありましたら教えてください。
0276デフォルトの名無しさん
NGNG以下は、表裏面ともにImageKitの例
procedure TForm1.Button1Click(Sender: TObject);
begin
//IkFile1,IkDisp1,IkPrint1 はImageKitのコンポーネント
IkFile1.FileName := 'C:\Test.tif';
IkFile1.LoadFile(4);
IkDisp1.ImgHandle := IkFile1.ImgHandle;
IkDisp1.Display(1);
IkPrint1.PrintFileName := 'Default';
IkPrint1.PrintCreateDC(ikPrintFileName);
IkPrint1.PrintDlg; //これで両面印刷に設定する
IkPrint1.PrintStartDoc();
IkPrint1.PrintStartPage();
//表面の印刷
IkPrint1.ImageOut(IkPrint1.hDC, IkFile1.ImgHandle,
100, 100, 1000, 1000, True, True, ikPrinter);
IkPrint1.PrintEndPage();
IkPrint1.PrintStartPage();
//裏面の印刷
IkPrint1.ImageOut(IkPrint1.hDC, IkFile1.ImgHandle,
100, 100, 1000, 1000, True, True, ikPrinter);
//QuickRepot1.Print ここで実施しても両面にはならない
IkPrint1.PrintEndPage();
IkPrint1.PrintEndDoc();
IkPrint1.PrintDeleteDC();
IkPrint1.ReleaseDevModeHandle;
end;
0277超初心者です
NGNG例えば、変数のカウントがどこまで進んだかをファイルに保存し、
Memoに呼び出す、といったことをしたいのですが、
簡単で構わないので、何かサンプルをいただければありがたいです。
0278デフォルトの名無しさん
NGNG便乗して質問させて下さい.
モーダルフォーム生成の際ですが,form1(メインフォーム)から
form2:=Tform2.Create(self);
try
form2.ShowModal;
finally
form2.Release;
end;
以上のコードを用いると form2 はモード付きで表示されますが,
この状態で form1 をマウスクリックした場合において,form2 に,
一般によく見るような「タイトルバーの点滅」が得られないのです.
何分気に掛かりますので,これを実現する策がありましたら御教授下さい.
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG変数をファイルに保存するので一番簡単なのはINIファイルだけど、
カウントを履歴のように保存したいのかな?それだとTStringListだけど。
もうちょっと具体的なことが分からないと(どういう形式でファイルに保存したいのか)。
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG実現しなければならない機能に比べて、やらなきゃならないことはいっぱいある。
まぁ、そんなトリヴィアは気にしないこと。
0283デフォルトの名無しさん
NGNGの違いがわからん。かわいいミスか?
0284デフォルトの名無しさん
NGNG大変なのでやる価値があるとは思えない、ということ。
0285デフォルトの名無しさん
NGNGこの場合は標準モーダルループのはずなのに。うーむ、MainForm がそもそもダイアロ
グだからだろうか。わからない。
0286デフォルトの名無しさん
NGNGそれがフォームを出したりしている。
と、ここまで書いて思ったが
そこらへんの話って、Halbowさんとこになかったっけ。
0287デフォルトの名無しさん
NGNG> Delphiアプリは、Applicationという見えないウィンドウがあって
> それがフォームを出したりしている。
うん、それがこの場合にどう関係あるのかがわからないんだよね。
Application ウィンドウからみて MainForm はモードなしダイアログなんだろうか?
それが関係ありそうだけどよくわからない。
0288デフォルトの名無しさん
NGNGこのアップデートパックは ZIP 形式で圧縮されています。このファイル
を一時的なフォルダに展開し、Delphi 6 のフォルダ(デフォルトのパス
は以下のとおり)にコピーしてください。
c:\program files\borland\delphi6\Source\RTL\Common\Classes.pas
c:\program files\borland\delphi6\Lib\Classes.dcu
c:\program files\borland\delphi6\Lib\Debug\Classes.dcu
c:\program files\borland\delphi6\Lib\rtl.dcp
c:\program files\borland\delphi6\MergeModules\BaseRTL.msm
c:\winnt\System32\rtl60.bpl
c:\winnt\System32\rtl60.map
c:\winnt\System32\rtl60.jpn
と書いてあってこの中の下の3つって
Cドライブの中にwinntフォルダがないんで
C\WINDOWS\SYSTEM32の中にコピーするんですか?
OSはMEです。
0289デフォルトの名無しさん
NGNGXPだけならマニフェストあたりの問題かも試練。
0290デフォルトの名無しさん
NGNGすでにあるかどうか確かめる。
試してみる。
0291デフォルトの名無しさん
NGNG自分は Win2k だけどメモ帳の開くの OpenDialog では、ちかちかするよ。
0292デフォルトの名無しさん
NGNG「ミ田+F」の長押しで検索。
0293デフォルトの名無しさん
NGNG気にしないほうが幸せになれる。
Delphi8でWinFormという解決方法もあり。
0294デフォルトの名無しさん
NGNGForm2 のオーナーは Application だよね。どう変えるの?
> でも色々注意しないといけないことが多い。
全然「だけ」じゃないね。(笑
0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGの場合はどうするのかなー
0297デフォルトの名無しさん
NGNG現在、kakinotane.s7.xrea.comを眺めながら
『Java 言語で学ぶデザインパターン入門』 結城 浩(著) を購入して理解を深めていく方法を
とろうか、とるかまいか悩んでいるところなのですが・・・
0298デフォルトの名無しさん
NGNG見たことない。デザパタは知らないより知っていた方がよいが、
悩んでがりがり勉強するほどのものとは思えない。結城さんの本は
買っておいても損はしないと思う。
0299デフォルトの名無しさん
NGNG0300297
NGNGオブジェクト指向の本と同様に、Delphiで本書いたらもうけるかも(偉い方おねがい)
『Java 言語で学ぶデザインパターン入門』 結城 浩(著) を入門書に
それ以降はまたいろいろ探して勉強に取り組みたいと思います
御回答、ありがうございました
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGパネルとかが透明になってしまった。
コンポ削除したけど元に戻らないのはなぜ?
0303デフォルトの名無しさん
NGNGそちらはまともに保守されてないのでこっちがいいかも。
ttp://kakinotane.s7.xrea.com/dp/dp.html
0304303
NGNG0305278
NGNG当方,Application ウィンドウの概念を理解していなかった様です.
動作の実現が難しいとしても,疑問は解決する事が出来ました.
どうも,有難うございました.
0306デフォルトの名無しさん
NGNGDelphiで作成したアプリを実行しましたが、
Quick Reportのプレビュー画面が、文字化け化けになってしまいました。
どうすれば対処出来るんでしょう。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGまったくちがう。なにが同じなんだ?
0311デフォルトの名無しさん
NGNGここに書いてある通りに追加するときにNewでメモリ領域を確保して
ListViewのOnDeletionでDisposeしているのですが
「〜回メモリーを解放し忘れています」とMemCheck2.0の中の人が怒ってしまいます。
どっちを信じるべきですか?
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGDispose(Item.Data);
ではダメで、New() するときに使った型にキャストして Dispose() する必要が
あるんじゃなかったか。
0315デフォルトの名無しさん
NGNGDispose(PFavData(Item.Data));
だと。
0317デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1076610073/311-316
を貼っておくといいのでは?
0320デフォルトの名無しさん
NGNGヲッチ先じゃねーや(藁
0321275
NGNGQuickReport1.QRPrinter.Canvas
ここにあるのでしょうか?
どなたかお願いいたします。
0322デフォルトの名無しさん
NGNGPrinter.Canvas は印刷するデバイスコンテキストをカプセル化したもので
印刷イメージではありません。
0323239
NGNG>241 の方法を試してみましたが上手くいかず、>242 の方法を取り入れた
折衷案で、どうにかエラーが出ないようにしました。
1.新ボタンクリック→2.不可視に→3.次の新ボタンクリック
→4.直前に不可視にしたボタン破棄→5.今クリックしたボタンを不可視に→3へ
と言った方法です。
アプリケーションを作る時にこの方法が耐えられるかどうか分かりませんが、
とにかくすっきりしました。ありがとうございました。
また、質問した時の廃棄のコードは>251と全く同じでした。
0324デフォルトの名無しさん
NGNGこれは不思議です。コードをしめしてくださいませんか。
0326デフォルトの名無しさん
NGNG西暦の4桁とその月だけほしいときは、どのようにすればいいですか?
0327デフォルトの名無しさん
NGNG0328326
NGNG組み合わせてできました。ありがとうございました。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGTEdit/TMemoがラップしてるのは Windows EDITコントロールです。
そこで、Delphi-CDROMに付属している日本語WinAPIヘルプから
"コントロールの概要" "エディット コントロールの概要"を見てみましょう。
ES_RIGHTというスタイルを選べば、右寄せに出来る事が判るでしょう?
後は、
TCustomMemo.CreateParams を眺めて
TMaskEditにこの機能を付ければよいのです
0331デフォルトの名無しさん
NGNGWin95,98,Me では一行エディットで右寄せにできません
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG{ Private 宣言 }
public
procedure WMUser(var Msg:TMessage);message WM_USER;
procedure ButtonClick(Sender:TObject);
end;
....
procedure TForm1.ButtonClick(Sender: TObject);
begin
PostMessage(Handle,WM_USER,WPARAM(Sender),0);
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with TButton.Create(self) do begin
Parent := self;
Left := X;
Top := Y;
OnClick := ButtonClick;
end;
end;
procedure TForm1.WMUser(var Msg: TMessage);
begin
TObject(Msg.WParam).Free;
end;
でいいのでは?
0334デフォルトの名無しさん
NGNGWindows 95, Windows NT 4.0 だけダメなようです。すみません。
ちなみに Windows の電卓の入力・表示部分はスタティックコントロール
ですね。
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGES_MULTILINE もついでに指定してしまえばいいじゃないか。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGプログラミングよりコンポ探しの方法を鍛えろよ、ってか。
お気楽プログラミングで行きましょう、ってか。
Delphi っていいなぁーーー
0339デフォルトの名無しさん
NGNGおまいはまず脳を洗え
0340デフォルトの名無しさん
NGNGそれに右寄せエディットって、どうしてよく使うとおもうの?
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGよくPhotoShop等であるような、画像上をマウスでドラッグすることで、
点線の四角形で画像の範囲を選択するような動作を実現したいのですが、
点線の描画(というか消去の仕方)で悩んでいます。
いま検討しているのは、レイヤーのように
TImageを2枚重ねて1枚目に実際の絵、2枚目に選択範囲の
点線を表示させ、範囲のTRectを1枚目に送って処理する方法が一つ。
この場合はドラッグされるごとに消去→点線の描画をくり返します。
もう一つはドラッグ時に元の画像をコピーしておき、
ドラッグされるごとに、元の画像をTImageにコピー→点線の描画を
繰り返す方法です。
しかし、前者の方法だとcanvasを利用して描画すると透過しなくなってしまい、
後者だと画面のちらつきが激しくなります。
このような動作を実現するためには、どのような処理を行えばいいの
でしょうか。よろしくおねがいします。
0344デフォルトの名無しさん
NGNGXOR を2度すると元に戻るという原理を使うわけです。
Penに pmXor を使ってドットを2度描いてごらんなさい
0345デフォルトの名無しさん
NGNGそこで、0〜9、A〜F以外の文字があった場合エラーメッセージを出したいんですが、
この場合どうしたら効率いいでしょう?
0346デフォルトの名無しさん
NGNG効率を考えるようなところじゃないでしょう
1、
for i=1 to length(str) do if not (str[i] in ['0'..'9' , 'a'..'z' , 'A'..'Z'] ) then begin エラーです ; break;end;
2、
try
StrToInt('$'+str);
except エラー;end;
とか、何でも
0347323(239)
NGNGΣ(゚Д゚ )...すいません、今やったら出来ました。
>241 でも >333 でもエラー出ませんでした。
前にやった時は当たり前のようにエラーが出たんだけど、なんでだろ_| ̄|○
ありがとうございました。
役に立つか分かりませんが、後の人のために一応ソース出しておきます。
まあ、>241,>333 とほとんど同じですが。
0348323(239)その1
NGNGindex : integer;
procedure NewButtonClick(Sender:TObject);
procedure WMUser(var Msg:TMessage);message WM_User;
.....
procedure TForm1.Button1Click(Sender: TObject);
var
NewButton : TButton;
begin
index := index + 1;
NewButton := TButton.Create(self);
with NewButton do
begin
Top := Button1.Top + (Button1.Height + 5) * index;
Left := Button1.Left;
Height := Button1.Height;
Width := Button1.Width;
Caption := '新ボタン' + IntToStr(index);
OnClick := NewButtonClick;
Parent := Self;
end;
end;
0349323(239)その2
NGNGbegin
ShowMessage('このボタンを破棄します');
PostMessage(Handle,WM_User,WPARAM(Sender),0);
//TButton(Sender).Free とすると、消えるけれどエラー
end;
procedure TForm1.WMUser(var Msg: TMessage);
begin
TLabel(Msg.WParam).Free;
end;
0350デフォルトの名無しさん
NGNGテーブルは10列×200行くらいの大きさで、内容は自分で設定します。
JavaのJTableみたいに値を設定する感じでやりたいのです。
コンポーネントと値の設定方法など誰か教えてください。
0351350
NGNGStringGridのようですね。
とりあえずやってみまつ。
0352デフォルトの名無しさん
NGNG> TLabel(Msg.WParam).Free;
じゃなくて
TObject(Msg.WParam).Free;
にしてください
0353デフォルトの名無しさん
NGNGsy := StrToInt('ComboBox5.Items');
sm := StrToInt('ComboBox4.Items');
sd := StrToInt('ComboBox3.Items');
Memo1.Lines := IntToStr('10000 * sy + 100 * sm + sd ');
end;
とすると、
指定された引数で呼び出すことの出来るオーバーロード関数'IntToStr'が定義されていません
というエラーが出たのですが、これはどういう意味なのでしょうか?
いろいろ調べてみたのですが分かりません。
0354デフォルトの名無しさん
NGNGだから'ComboBox5.Items'は項目(の個数)とは解釈されないし
'10000 * sy + 100 * sm + sd 'が計算されることもない。
Memo1.Lines.Add( IntToStr(ComboBox5.Items.Count * 10000) );
と書くべし。
0355デフォルトの名無しさん
NGNGDeleteRow?は使えないようです(使い方を知らないだけかも
選択行以降を一つづつ上に繰り上げて、RowCountを一つ減らすしかないのかな
0356デフォルトの名無しさん
NGNG同じ結果になっているように見えるのですが、何が違うんですか?
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGoverrideしないと、継承されない。そのクラス独自のメソッド扱いになる。
派生元になった関数が呼ばれないってこと。
その結果、>>358
0360275
NGNG以下のコードでPreview画面がとれるので何か方法があると思っているのですが?
Canvasなどのグラフィック関係がよくわからなくて。
QuickReportの良い資料はないでしょうか?
http://www.qusoft.com/ を見てみましたがよくわかりません。
この処理が出来ると、Del8Ent買って貰えるんです。
お願いします、どなたか教えてください。
procedure TForm1.Button1Click(Sender: TObject);
begin
QuickReport1.Prepare;
QRPreview1.QRPrinter := QuickReport1.QRPrinter;
end;
0361デフォルトの名無しさん
NGNG既に使っている(というか使い終わった)clientdatasetを違うレコードを持った
データセットで再利用したい時はどうすればいいの?
っていうかclientdatasetを解説した本なりサイトがあったら教えて下さい
ヘルプも見てますが分かりずらいよ…
0362デフォルトの名無しさん
NGNGStringGridの派生クラスを作ったほうが早い。
下のURLにある「StringGrid に関する Tips」を参考にどうぞ。
ttp://hp.vector.co.jp/authors/VA015850/delphi/tips/
0363デフォルトの名無しさん
NGNGまじめに実装するとなるとWinの印刷プレビューは簡単じゃないぞ。
メタファイルのCanvas経由でやるのが常道かな。
中村の里にDHGLてのがソース付きであるから、それを参考に。
とりあえず、本は買っとけ。とても参考になる。
0364デフォルトの名無しさん
NGNGとても参考になりました。
0365デフォルトの名無しさん
NGNGこれは印刷用と表示用を同じように扱う為だ。
そしてそれはQRPinterも一緒。TPrinterとの大きな違いは
描画前にNewPageしろって事ぐらいかな。
0366デフォルトの名無しさん
NGNGメソッドを隠すだけ。VMTには置かれない。VMTのメソッドに
無いと言う事は多鯛が扱えない。多鯛はデザパタの基本みたいなもんだから
それらの技巧が使えない。差し替えが出来ないのであらゆる面で固定的
になる。不便。
0367デフォルトの名無しさん
NGNGできますた!
ありがとん!!
0368デフォルトの名無しさん
NGNGMoveRowで最終行と取り替えて行数を1減らす。
というのを実装したDeleteRowというメンバがTCustomGridにある。
protectedで。
0369デフォルトの名無しさん
NGNG同じ物を使ったサンプルを見つけたんだが、何で?
DelのカレンダーってWindowsに備わっている物を使っているの?
0370デフォルトの名無しさん
NGNG0371343
NGNG今度はTImage上にテキストを描画させたいのですが、
この場合はどうすればいいでしょうか。
よくあるのが、IME(ATOKだけかもしれないけど)のように
文字を入力できるちっこいウィンドウというか四角いスペースを
作成して、その中で編集、確定時にTImageに描画するものや、
PhotoShopのように、直接、TImageに描画、編集できるものが
あるようですが、これも基本的にxorの手法なんでしょうか。
クリックで表示開始位置決定、キー入力で文章編集、エンター後に
確定で描画という処理ができればいいのですが、
何かうまい方法ってあるのですか?
0372デフォルトの名無しさん
NGNGおいらだったら
クリックしたら普段は非表示にしてあるTEditをそこへ移動して表示し
エンターしたらまたEdit1を非表示にして
中身をTImageへ描画すると思うよ。
方法は他にも色々ありそうだけど
(複数行ならTMemoにする手もあるし)
0373デフォルトの名無しさん
NGNG○ TEdit
TEditもTImageも正確にはそのインスタンスということになるけどね。
0374デフォルトの名無しさん
NGNG文字データを持たせる為の Objectを作っておくといいでしょう。
TPersistent継承にしてストリーム入出力出来るようにしてさ、
そして、その文字データが収まるサイズのBITMAPをメンバーに持たせておて
描画する時はTImage直接ではなく、TImageと合成して描画させるわけです。
そして保存時に、その合成結果を保存出来るような仕掛けにしておけば、
自由に文字位置も変更出来るし、文字内容も変更出来るでしょ?
0375デフォルトの名無しさん
NGNGTStringsのメソッドで消せばグリッドの表示にも反映出来るんじゃないの?
0376デフォルトの名無しさん
NGNGdoubleの配列を作りたいのですがなかなか。。。。
もしできるのでしたら配列の上限は何個なのでしょうか?
あと、最後に配列がいくつなのかをCountするStringlistのCountと同じ機能を
もった物があったら教えてください。
0377デフォルトの名無しさん
NGNGヘルプでキーワード「動的配列」
0378デフォルトの名無しさん
NGNG一列まるごと、一行まるごと削除するのに、TStrings の Free をつかうんですか?
0379デフォルトの名無しさん
NGNGDeleteかClearでしょ
0380デフォルトの名無しさん
NGNG0381375
NGNG0382デフォルトの名無しさん
NGNGなるほど…
Freeだとアクセス違反がでるし
Delete、Clearはそもそも行や列には作用しないと…
やっぱり、しこしこコードを書くしかないのかな
↓こんな感じで
procedure TForm1.mnuDeleteColClick(Sender: TObject);
var
i: Integer;
nDeleteBegin: Integer;
nDeleteEnd : Integer;
nDeleteCount: Integer;
nMoveCount : Integer;
grTemp: TGridRect;
begin
grTemp:=StringGrid1.Selection;
nDeleteBegin:=grTemp.Left;
nDeleteEnd :=grTemp.Right;
nDeleteCount:=nDeleteEnd-nDeleteBegin+1;
nMoveCount :=StringGrid1.ColCount-nDeleteEnd+1;
for i:=0 to nMoveCount-1 do
StringGrid1.Cols[nDeleteBegin+i].Assign(StringGrid1.Cols[nDeleteBegin+i+nDeleteCount]);
StringGrid1.ColCount:=StringGrid1.ColCount-nDeleteCount;
end;
…鈍臭。
0383デフォルトの名無しさん
NGNGそれをまず手続きとして書き直しなさい。
0384デフォルトの名無しさん
NGNGというより
TStringGridを拡張した方がいいべさ
0385デフォルトの名無しさん
NGNGメアド登録した後待ってればいいんですか?
0386デフォルトの名無しさん
NGNG0387355
NGNGこういう方法があるんですね…。
かなり参考になります。
サンクス
>>368
か…かしこい…。
こういうシンプルな考え方が出来るようにならないといけないすね
でもソートされていない今の順序をなるべく保持しておきたいと
思っているので、ちょっと今回のには向かないかも
0388デフォルトの名無しさん
NGNGそうします。
ありがとうございます。
0389368
NGNG「入れ替える」んじゃなくて指定行を最終行の後ろに移動、だね。
日本語不自由でスマソ。
試しにフォームにStringGridを貼ってOptionsの中のgoRowMovingをTrueにして
FormCreateで各行に適当な値を放り込んで実行、行の左端をつまんで別の行で
離すと、、、これがMoveRowの動作。
0390デフォルトの名無しさん
NGNGいくつかのライブラリをインストールして使わせてもらっています
似たようなジャンルのライブラリだとどうしても名前が衝突してしまうようで
その都度ライブラリパスを削除したり追加したりして対処してきました
別のプロジェクトなので同居する必要はありませんが
編集するプロジェクトを変更するたびにライブラリパスを編集するのは大変です
上手い方法はないでしょうか?
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGusesでパス指定するとか
0393390
NGNGありがとうございました
0394デフォルトの名無しさん
NGNGこれもをもとにmanifest.res作ってみたのですが、
たったの32byteのファイルになってしまいました。
別にこれでも大丈夫なのでしょうか。。。
教えてくださいまし_| ̄|○ |||
0395385
NGNG0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNGむしろ待たなくていいよ。他にやることあるでしょ?
なかったら・・・・ごめん
0399デフォルトの名無しさん
NGNG半角英字だけでかまわないんですが
0400デフォルトの名無しさん
NGNG自分でFreeしなくて良いのでしょうか?
それとも念のため自分でFreeしたほうが良いのでしょうか?
0401デフォルトの名無しさん
NGNGPostMessageで
procedure(var Msg : TOriginalMsg);
にメッセージを送る場合
どのようにパラメーターを送れば良いのでしょうか?
0402デフォルトの名無しさん
NGNGとかその辺。 どう使うかはまだヨクワカラン。
0403デフォルトの名無しさん
NGNGWM_?
0404デフォルトの名無しさん
NGNGprocedure musumesanwobokunikudasai(var Msg: TOriginalMsg); message WM_PIYOPIYO;
となっていたら
PostMessage(xxx.Handle, WM_PIYOPIYO, wParam, lParam);
0405吐駄っち
NGNG投稿前に、捜してみましょう
http://www.goggole.com (w
家族に不幸があったため 2ch 活動を自粛しています。m(_≡_)m
---- (-_-)(-_-)(-_-) THE REAL BAKA (-_-)(-_-)(-_-) ----
At the beach, The Real Baka is the one drawing fool in the
sand.
吐駄 庇出於
0406デフォルトの名無しさん
NGNGWM_PIYOPIYOってどんなときに送られてくるメッセージでしか?
やぱーり、CPUが逝っちゃってるときでしか?
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNGおかしいと思いますよ。
ちなみに私が普段リンクさせてる manifest.res は 652 バイトです。
スペースや改行を削ればもう少し小さくなりますが、32 は小さすぎです。
0409デフォルトの名無しさん
NGNGコンストラクタでオーナーを設定できるものは、オーナーが自分が Free される
まえに Free してくれる。もちろん、コードで Free してもいいですが。
0410デフォルトの名無しさん
NGNG今更だけどGridの列単位でSringListに移してSringListのメソッドで消した後
Gridに戻すのを全列に対してループさせるってのもある。
0411デフォルトの名無しさん
NGNGこれをフォームのイベントで処理しようとするとすぐに膨大にスパゲッティ化してしまうよ
そんなに使い込むならデータ構造は別にする方がいいと思うけどなあ
0412デフォルトの名無しさん
NGNG同感。で、表示は OnDrawCell でおこなう、と。
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGどのhandleを取得すればいいの?
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGガーーン
じゃあ、ファイルのドラッグはできないってことですか・・・・・
他に手段はあるのでつか?
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGおお、賢いっす!ありがとう 調べてみまつ
fHandle := AllocateHWnd(WndProc);
とかやってますた ガックシ・・・
0419デフォルトの名無しさん
NGNGだからTImageの親のハンドルを使うようにすればいい
こうすれば一般化、汎化出来る。
0420デフォルトの名無しさん
NGNGたとえばTImageを継承したコンポを作るときには、その親のHandleを取得して
ドラッグに対応すればいいってことでつか?
もしTFormだったらフォーム全体がドラッグ対象になるけど、それがイヤなら
ユーザ側でTPanel等の上に乗っけてくれってことですかね。
それともTPanelを継承したコンポにTImageを継承したコンポを乗っけて、
それはそれで一つのコンポとしてドラッグに対応したほうがよいでつ?
って自分でも何かいてるかわからんくなった・・・・スマソ
0421400
NGNG回答ありがとうございます。
タスクマネージャ見ながら実行>終了を繰り返して
メモリの合計(コミットチャージ)やハンドルの合計
とか見ていたのですが、自分でフリーしてもしなくても
殆んど変わらないので気になっていました。
と言うわけで、オーナーに任せることにします。
0422デフォルトの名無しさん
NGNG開放し忘れはMemCheckでチェック
0423デフォルトの名無しさん
NGNG色んな方法があるよね。
TPanel・TImageを継承したりすると、汎用性を逆に失ってしまう場合もあるから、
メッセージフックを使う非ビジュアルコンポーネントを作って、そっちで対応する方法が一番スマートかもね。
0424デフォルトの名無しさん
NGNGいや、それでは解決しません。>>420 では、ドロップの範囲を限定したいのですから
ウィンドウの実体としても限定した範囲をもっていなければいけません。ですから
パネルに Image をのせて、パネルの WindowProc を入れ替えてサブクラス化する
のが現実的です。コンポにするとサブクラス化しなくてよいのでさらに良いです。
0425デフォルトの名無しさん
NGNGDragQueryPoint で位置をひらって、グラフィックコンポーネントがあれば
それを対象にするようにすればいいじゃない。
OnDrop( ctl : TControl ; fnames : const array of strings);
みたいなイベントで処理すれば
0427デフォルトの名無しさん
NGNGマウス位置のコンポーネントのZオーダから順に
そのコンポーネントのOnDragDropを呼び出して
Sourceに応答があればそれが実行して終了
ってのはどうだろ?
0428デフォルトの名無しさん
NGNGでもそれだと、ドロップ可能を表すカーソルの変化を阻止できないでしょう。
ユーザは、ドロップ可能なところにドロップしたつもりなのに、なにもおきな
かったら変に思うよ。
0429デフォルトの名無しさん
NGNGDelphi のドラグドロップじゃなくて、ファイラからのドロップファイルのこと
だと思うよ。だからハンドルが必要なんで。
0430デフォルトの名無しさん
NGNGゴメン、キミ ズレてない? ねえ、ほんとはボクの事呼んだんだよね?
Yes No
0431デフォルトの名無しさん
NGNGキミがずれてると思う。
0432デフォルトの名無しさん
NGNGだから、非ビジュアルコンポーネントで、フックするTWinControl先を指定すれば
そのTWinControlのハンドルで DragAcceptFilesして
なおかつ TWinControlのWndProcをフックしてWM_DROPFILES を自分で処理する
で、WM_DROPFILES を見つけたら DragQueryPoint で求めたマウス座標の位置の
コンポーネントのZオーダ順に
コンポーネント.OnDrop(コンポーネント , SendStr , x,y);
を送って、
SendStrのExecuteedプロパティがどこかでセットされたらそれで終了
最後までセットされなかったら、最初に CanExecute プロパティがセットされたものを再度呼び出す
TSendStrはファイル名と、Executed CanExecuteとかのプロパティを持たせると
0433デフォルトの名無しさん
NGNGフックする TWinControl がないから苦労してるんでは。
たとえば、Form1 に Image1 をのせた場合、Form1 をフックするんでしょ?
DragAcceptFiles() は Form1.Handle にするんでしょ?
なら、Image1 が載ってないところでもカーソルはドロップ可能になるでしょ?
428 はそのことを言っている。
0434デフォルトの名無しさん
NGNGいま、TPanelの継承コンポを作って、その上にTImageを動的に作成し、
TPanelで拾ったFile名とDrop位置をTImageのプロパティで渡すように
作っていまつ。
ところでTPanelのコンストラクタで
constructor TTestPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
TestImage := TImage.Create(Self);
TestImage.Parent := Self;
と動的に作成しようとしているのに、コンストラクタでは自分自身の
TWinControlって取得できないんでつね。
Self.Nameをみても空白が帰ってくるぽ。このやり方も挫折かも・・・
0435デフォルトの名無しさん
NGNGwparamにどんな何を入れればいいかわからないのです
0436デフォルトの名無しさん
NGNG> TWinControlって取得できないんでつね。
自分自身のインスタンス参照は self でしょう。コンストラクタではまだ Window
の実体が作られていないってこと?
> Self.Nameをみても空白が帰ってくるぽ。
動的に作って試してますね? IDE からポトペタでは自動的に名前が付けられる
けど、動的に作成したら Name プロパティーは空白です。でもそれがどうして
必要なんですか?
0437デフォルトの名無しさん
NGNG非ビジュアルコンポーネントを載せる時の親にしてもいいし
載せた後で、プロパティで指定出来るようにしてもいいじゃないか
0438デフォルトの名無しさん
NGNGなんのメッセージを送るつもりですか?
定義済みの WM_XXXX なら Win32.hlp を見れば何を設定すべきか書いてあります。
そうではなく、自分が勝手に送る WM_APP だとか WM_USER なんかだったら、
自分で勝手に設定します。設定したくなければ WParam も LParam もゼロに
しておくこともできます。
0439デフォルトの名無しさん
NGNG派生クラスを作ってるんだからメッセージフックは自前でできるでしょう。
非ビジュアルコンポーネントを作る必要はないよ。
0440デフォルトの名無しさん
NGNG説明不足スマソ
上記で書いたようにTImageからはHandleが取得できないので、
TPanelのコンポにTImageを動的に作成して、ドラッグ&ドロップ
に反応したTPanelがTImage継承Classにプロパティとしてファイル名
を渡そうとかんがえたんです。TPanelはポトペです。
そこでTImageを動的に生成するためTPanelのCreateで
>>436のように生成しようと思ったら、TPanelが自身のTWinControlを
取得していないので、TImage.Parentを設定できずにCreateで動的に
生成できないってことなんです。
0441デフォルトの名無しさん
NGNGその方法でやるなら、
CreateWindowHandle を継承したら?
0442デフォルトの名無しさん
NGNG無理にTImageを載せた状態で作成させないでも
自分の子コントロールを>>432 で OnDropを呼ぶようにすればいいじゃないか
0443デフォルトの名無しさん
NGNGポトペタで >>434 のようなコンストラクタを書くってのがわかりませんが?
TTestPanel クラスは TPanel の派生クラスですよね?
0444デフォルトの名無しさん
NGNGTrim 関数は,指定された文字列 S から先頭部分および末尾部分の空白と制御文字を取り除きます。
ヘルプにこう書いてあるけど、ソース見た感じ空白しか取り除く気ないように見えるんだけど
0445デフォルトの名無しさん
NGNGS[I] <= ' '
こうなってるでしょ。制御文字は空白以下の文字コードなのよ
0446デフォルトの名無しさん
NGNGげっ・・そうなんでつか。
TPanelは派生Classでポトペです。TImageはTPanelのCreate時に
動的生成しようと思ったもので・・・・
0447デフォルトの名無しさん
NGNGそれはOKだけど
動的生成させなくても、後から載せるのも大きな手間じゃないでしょ?
TImage以外のコントロールも載せられるしね
0448デフォルトの名無しさん
NGNGうーむ、もっとも簡単なのは、ただ、ドロップファイルを受け取って、イベントハンドラ
を呼び出すだけの TPanel 派生コンポです。そのイベントハンドラで、設計時にコードで
受け取ったファイルの処理をするようすればいいのでは。上に載せるのは TImage でも
TPaintBox でも TLabel でもなでもいいので、設計時にのせたらいいのでは?
コンストラクタでウィンドウハンドルが取れないことがあるのは事実で、たしか、
>>441 のようなメソッドをoverrideしてウィンドウが作られたあとにする必要が
あったと思います。わたしだったら、DropEnable:Boolean というプロパティーを
作り、デフォルトで false にしておき、オブジェクトインスペクタやコードで
true にしたとき、DragAcceptFiles() を実行するようにします。false のときも
そうですが。
あと、procedure WMDropFiles(var Msg:TWMDropFile):message WM_DROPFILES;
というメッセージ処理手続きをくっつけるだけです。
0449デフォルトの名無しさん
NGNGありがとうございまつ。
すべてまとめて一つのコンポーネントができないかなぁと
欲がでまして・・・・
考え方は同じでつ。いま、IsDrop: Booleanプロパティを作って
それで実験したらできました。
ただ、自動でやりたかったので、AfterConstruction、
PaintWindow等のメソッドをoverrideしてやってみましたが、
両方とも難アリでした。
0450デフォルトの名無しさん
NGNGすみません、忘れてしまったのですが
CreateWnd
CreateHandle
CreateWindowHandle
のようなメソッドを override して、さきに継承メソッドを実行したあとなら
Handle が有効になるのでした。
0451デフォルトの名無しさん
NGNGありが
0452デフォルトの名無しさん
NGNGSleepするとメインスレッドは操作できないし
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGTThreadはExecuteが実行終了された時点で、デストラクタが呼ばれて、
その後に勝手に自分自身を破棄する。
>>453
パレット等からTButtonなんかを選択し、フォームに貼り付けるようにして
配置する方法。自分で作成する方法は動的生成といいまつ。
0455デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG>>436,437,439,441,442,443447,448,450さま
ありがとう!できまつた!!
TPanel派生Classを作成し、その上にTImageを
動的に作るようにして、TPanelが受け取った
ファイル名等をTImageのメソッドに受け渡すことで
処理できました!
ExplorerからDragDropに対応したTImageコンポが
一つできました。後生まで大事に使いつづけます。
0458デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGほど使って作った物を1セットとし、それを縦40×横40で合計1600セットを
スクロールさせて使わなければならないのです。
win98では絶対無理そうなのでwin2k用にしますが果たして動くのでしょうか?
無理な場合、今考えてるのは概観はそのままでスクロールすると中の値だけ変えていき
ページ数を表示するような仕組みにしようかと思ってるんですが。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG>無理な場合、今考えてるのは概観はそのままでスクロールすると中の値だけ変えていき
>ページ数を表示するような仕組みにしようかと思ってるんですが。
動いたとしても無駄にメモリ食うから
最初からこっちにしておいたほうがいいと思うよ。
0464デフォルトの名無しさん
NGNGある程度、使用するコンポの数やデータの残し方が同じなら、
ページを切り替える(前、後ボタンとかつける)ようにして、
その都度、コンポをForm上に配置しますね。私なら。
0465デフォルトの名無しさん
NGNG公開すれ。
0466デフォルトの名無しさん
NGNG公開すれも何も、上のレスアンカー辿っていけば
簡単にできるわけだが・・・・
0467デフォルトの名無しさん
NGNGレスありがとう御座います。
500セット置いてみましたが使用に耐えませんでした。
メモリを大切にしながらページ切り替えで考えていきます。
0468デフォルトの名無しさん
NGNGつーか、その仕様を書いた奴、または要望を出した奴が
メモリを大切にしなさすぎ
仕様を書いた奴がいるなら、そいつがぬるぽ
要望を出した奴がいるなら、それを止められず要求定義
に書いた奴がぬるぽ
0469デフォルトの名無しさん
NGNGありがとうございます
これで安心してTThreadを使えます
0470デフォルトの名無しさん
NGNGエラーばかりで手も足も出ませんでした。
簡単な処理で結構ですのでやり方を教えてもらえないでしょうか?
Thread処理のやり方の例が載っているサイトを知っていたら教えてもらえるだけでも
結構です。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGTThreadに関しては、Borlandが書いてるTipsだかFaqだか、
それが一番やくだつと思うけど。
エラーばかりでるってのは、SyncrinizedしないでForm上の
コンポをいじろうとしてるからじゃないかな。
0473デフォルトの名無しさん
NGNGまずどんなエラーが出るからだな。
コンパイルでエラーが出まくりなのか? 動いたけどエラーが出て止まるのか?
0474470
NGNG新規作成メニューからスレッドコンポを選ぶとUnit2と言うのが自動育成されますよね。
で、Procedure ****.Execute; ってところに
スレッドとして実行したいコードをここに記述って書いてるのでそこにコードを
書いているのですが、このスレッドをどうやって呼び出すかが分かりません。
Buttonを押したらこのスレッドのコードが実行されるようにするにはどうしたら
良いのでしょうか?
BorlandのTipsでぐぐったら
http://www.borland.co.jp/tips/delphi/dh004/thread_2.html
しか出てきませんでした。
0475デフォルトの名無しさん
NGNGhoge.Executeにそのスレッドで実行したいコード。
Button.Clickでhoge.Create
これで、hogeスレッドが作成されて、Executeが実行される。
スレッドは自殺させるのが基本なので、開放忘れには注意な。
0476401
NGNGconst
WM_OriginalMsg = WM_USER+1;
procedure OriginalMsg(var Msg : TOriginalMsg); message WM_Original;
type
TOriginalMsg = record
s : string;
i : integer;
p: Pchar;
end;
PostMessage(Handle , WM_original ,0,0);
この場合どうやれば
procedure OriginalMsg(var Msg : TOriginalMsg); message WM_Original;
のMsgに代入出来るのでしょうか?
小出しになってしまいすいません
0477お
NGNGそのときに作ったTThreadからの派生クラスをCreateでインスタンス化すれば
Execute内のコードがスレッドとして実行されるわけだが、
その前にDelphiのヘルプに「クラスとオブジェクト」という項目があるから
そこを読んでクラスの扱いについて学んだ方が良いな。
0478デフォルトの名無しさん
NGNG先に1見たほうがいいよ
http://www.borland.co.jp/tips/delphi/dh004/thread_1.html
0479470
NGNG自殺させるのはどこに書けばよいのでしょうか?
あと、引数を渡すにはどうすればよいのでしょうか?
何から何まで聞いてすみません。検索しても出てこないっす。
>>477
読んでみます。
0480470
NGNG0481デフォルトの名無しさん
NGNGオレ自身も検索して調べてやった体験がある。
0482デフォルトの名無しさん
NGNG引数ってか、Create時に渡したいのか、execute時に渡したいのか、
それぞれで違うわな。
TThreadは、Execute内で勝手に動いてて、勝手に消滅するものだと
おもえばいいとかこうとおもったが、知らない人が誤解しそうなので
やめた。
メッセージを送って制御したり、プロパティを変化させて動作させる
まで自己回帰してるprocedureと表現しておこう。
0483デフォルトの名無しさん
NGNG引数…ていうかスレッドに処理させるデータをセットしたり、
スレッド処理の結果を受け取ったりするには、
それなりにクラスについて理解しなければならんのだよ。
0484デフォルトの名無しさん
NGNGWindowsメッセージというのはフォーマットが決まってるから、
受け取るレコードもTMessage型と互換の構造をしてないとダメよん。
TOriginalMessage = record
Msg; Cardinal; { メッセージコード(WM_Original)がここに入る }
i: LongInt; { wParamがここに入る }
p: PChar; { lParamがここに入る }
Result: LongInt; { 結果を入れる場所、結果イラネと思ってもコレ必須 }
end;
こんな感じかな。残念だけどsは入る余地ありません。
何かメッセージ以外の受け渡し方法を考えてください。
Postでポインタ渡すのは、変数の寿命をしっかり管理しないと危ないし。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG自殺させるっていうのは、自分で後始末しろって意味。
スレッド内で確保したメモリとかは、他のスレッドからは開放できない。
開放しないでスレッドが消えるとメモリリークになる。
簡単なやりかたは、
Createでグローバルな変数を読んで
overrideしたExecuteにパラメータとして渡す。
Executeでは最初にTerminatedをチェック。
あとは処理をする関数を呼んでいって、最後にSync.する。
>>483のいうようにクラスについて理解していないと扱えないから、
まずヘルプを読みこむことを勧める。
0487デフォルトの名無しさん
NGNG氏ね
0488デフォルトの名無しさん
NGNG出来るの?
0490デフォルトの名無しさん
NGNGスレッドとはタスクと違って リソースを共有するのが特徴だからね。
0491デフォルトの名無しさん
NGNG意味がわかりません。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGプロセス→板 スレッド→スレッド
つーことだな
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNGいま情報共有できたら、
すごいウィルスとか、スパイウェアとかでてきそうな悪寒
0496デフォルトの名無しさん
NGNGいろいろありがとうございます。勉強になりました
WM_COPYDATAでやってみます
0497デフォルトの名無しさん
NGNGレコード型のTPersonDataというのを作って、
PersonDatas: array[0..1023] of TPersonData として情報を格納しています。
しかしこの方法では少人数の情報しか入力していなくても、
常に1024人分のメモリが確保されているという無駄があり、この方法は間違っているような気がします。
また、登録できる人数の限界もあります。
登録した人数分だけメモリを確保し、登録人数の制限をなくすにはどのようにすればいいのでしょうか。
0498デフォルトの名無しさん
NGNG動的配列と言うのもあるけど(array of TPersonData)あまり賢くない。
しかしDatasはないだろ。
0499デフォルトの名無しさん
NGNG作るたびにNewでメモリ確保して
「汎用リスト」でググってみ
0500デフォルトの名無しさん
NGNG素直にデータベースを使う。
Delphiの真価はデータベースを使ってこそわかるから。
DelphiはもともとOracle(超有名データベース)との接続を
簡単にしようというのが目的で開発されたもので
GUIの作りやすさなどついでのことでしかないらしいよ。
データベースには本当はFirebirdを勧めたいけど
とりあえずならParadoxでも構わないと思うな。
0501デフォルトの名無しさん
NGNGTAddList = class(TList);
public
procedure AddData(PersonData: TPersonData);
procedure DelData(PersonData: TPersonData);
end;
とか派生クラスを作ってかんりしちゃり
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504497
NGNGまだいじったことない項目ばかりですがDelphi覚えるのも目的なので
全部やってみようと思います。
0505デフォルトの名無しさん
NGNGソフト内でのデータの持ち方もそうだけど、
意外とファイルに保存する方法のほうが大事かもね。
まずはSaveとLoadの方法を決めてからでも
データの持ち方を考えるのは遅くないかも
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
type
TRec = record
A:Integer;
end;
TCls = class
A:Integer;
end;
var
Rec:TRec;
Cls:TCls;
P1,P2,P3,P4:Pointer;
begin
P1 := @Rec;
P2 := @(Rec.A);
Cls := TCls.Create;
P3 := Cls;
P4 := @(Cls.A);
end;
この場合、P1=P2だけど、P3<>P4
0508デフォルトの名無しさん
NGNG0509470
NGNG色々やってるのですが、どうしてもうまくいきません。
ソース晒すのでおかしいところを教えていただけないでしょうか?
procedure TMainForm.AppMessage(var Msg:TWMDropFiles);
var
FileNames:array[0..255] of Char;
begin
DragQueryFile(Msg.Drop,0,FileNames,255);
DateAdd.Create(FileNames); ←BooleanとArrayには互換性が無いと怒られる。
DragFinish(Msg.Drop);
end;
unit Unit2;
interface
uses
Classes,SysUtils;
type
DateAdd = class(TThread)
private
{ Private 宣言 }
FileNameA:String;
protected
procedure Execute; override;
constructor Create(FileName:String);
end;
implementation
{ DateAdd }
0510470
NGNGbegin
FileNameA:=FileName;
inherited Create(False);
FreeOnTerminate:=True;
end;
procedure DateAdd.Execute;
var
AList,BList:TStringList;
i:integer;
begin
AList :=TStringList.Create;
BList :=TStringList.Create;
FileNameA:=ExtractFileName(FileNameA);
try
if FileNameA<>'' then
begin
AList.LoadFromFile(FileNameA);
for i:=AList.Count -1 downto 0 do
begin
BList.Insert(0,'20'+Copy(FileNameA,1,2)+AList[i]);
end;
end;
BList.savetoFile('Finish'+FileNameA);
finally
AList .Free;
BList .Free;
end;
end;
end.
0511470
NGNGあと、>>477さんが教えてくれたクラスとオブジェクトの項目はD6Proにはありませんでした。
0512デフォルトの名無しさん
NGNGtype
DateAdd = class(TThread)
private
{ Private 宣言 }
FileNameA:String;
protected
public
procedure Execute; override;
constructor Create(FileName:String);
end;
にしれ
0513470
NGNGそういう風にしたのですが、なぜかインデントが無くなってしまいました。
0514ぬるぽ
NGNGよくみれ
type
DateAdd = class(TThread)
private
{ Private 宣言 }
FileNameA:String;
protected
public ←ココ
procedure Execute; override;
constructor Create(FileName:String);
end;
0515こーほー
NGNGするコードを書いているのですが、Win98SE+Delphi5 でコンパイルしたものが WinXp では正常に動作
しません。98とXpでは上記の2つの処理に何か違いがあるのでしょうか?
procedure TForm1.FormCreate(Sender: TObject);
begin
hNextChain := SetClipboardViewer(Form1.Handle);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ChangeClipboardChain(Form1.Handle,hNextChain);
end;
procedure TForm1.ClipChange(var Msg: TMessage);
begin
if Clipboard.HasFormat(CF_TEXT) then
Memo1.Text := Clipboard.AsText;
SendMessage(hNextChain,WM_DRAWCLIPBOARD,0,0);
end;
procedure TForm1.ChangeChain(var Msg:TWMChangeCBChain);
begin
if Msg.Remove = hNextChain then begin
hNextChain := Msg.Next;
Msg.Result := 0;
end else
Msg.Result := SendMessage(hNextChain,WM_CHANGECBCHAIN,
Msg.Remove,Msg.Next);
end;
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGアップデートのパッチはあててる?
0518470
NGNGできました。
すげぇ。スレッドもドラッグ&ドロップも初体験だったのに・・・
ここの過去ログと皆さんのおかげです。
ありがとうございました。
0519デフォルトの名無しさん
NGNG昔つくった
0520こーほー
NGNG> アップデートのパッチはあててる?
うーん? どうだったかな。
で、もう一度delphi5update.exeを実行する前にd5upatch.exeを解凍しよう
と思ったのですがなぜか「CRCが一致しない」という警告が出てしまいます。
0521デフォルトの名無しさん
NGNG「2ch でインデント ⇒ 全角空白に置き換える。」は、半ば常識。
>>512 のソースをメモ帳とかにコピペしてみるべし。
(逆に、そのままだとコンパイルできないから気をつけるべし。)
0522デフォルトの名無しさん
NGNG&nbsp;
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNGDelphiでButton1にDropしたらAの処理
Button2にDropしたらBの処理をさせることはできる?
別にButtonじゃなくてもPanelでも何でもいいです。
できるのだったらやりかたを教えて
0526ななしへたぐらま ◆XcB18Bks.Y
NGNG制御文字は文字コード0〜31($1F)と127($7F)に割り当てられているのですが,
Trim関数は両端の空白と制御文字を取り除くといっているものの,
コード127($7F)だけは取り除いていないということです.
もっとも私が見たのはDelphi5のソースなので
Delphi6以降は変わっているかも知れません.
0527デフォルトの名無しさん
NGNGまあ、空白を に置き換えるのが一番親切なんだけど、結構面倒かと。
(正規表現使えるエディタならそれほどでもないかな...。)
0528>>527
NGNG0529デフォルトの名無しさん
NGNG自分のアプリ内で完結するならOnStartDragやらOnDragDropをヘルプで調べれ。
アプリ間ならSDKのRegisterDragDrop, DoDragDrop, IDropTarget, IDropSource, IDataObjectあたりを調べれ。
0530デフォルトの名無しさん
NGNG後でどのコンポーネントにD&Dされたか調べれば出来るかと。
両方とも、検索すれば見つかるぞと。
0531デフォルトの名無しさん
NGNG> コード127($7F)だけは取り除いていないということです.
制御コードに $7F が含まれていることをはじめて知りました。
たしかに Trim() は $7F は取り除いていませんね。
ありがとう
0532デフォルトの名無しさん
NGNGたんに個別に違った処理を書けばいいのでは?
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGhttp://e-words.jp/p/r-ascii.html
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGTrimLeft(TrimRight(s))
じゃ駄目なの?
それともソースにあるほうが速いんかね?
while回数増えそうなんだけどな
0537デフォルトの名無しさん
NGNGファイルを書き込みモードで開こうとしてエラーが出たら起動中とか
不適切
0538デフォルトの名無しさん
NGNGCopyが1回か2回の違い。
>>537
それでは起動しているどうかは解らないな。
0539デフォルトの名無しさん
NGNGMutexの名前が分かれば、起動してるかどうか分かるのだけれど。
0540デフォルトの名無しさん
NGNGPsAPI
0541デフォルトの名無しさん
NGNGでるふぁいで
0542デフォルトの名無しさん
NGNGprocedure TNullpo.Nullpo();
begin
try
finally
Self.Nullpo();
end;
end;
0543453
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
Time:TSystemTime;
begin
with Time do
begin
DateTimeToSystemTime(Now,Time);
wDay:=19;
SetSystemTime(Time);
end;
end;
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGご教授願います。
0546デフォルトの名無しさん
NGNGネットワーク上ってのが範囲が広すぎて答えようがないぞ
httpd、ftpd上ならIndyを使ってダウンロード
LANの共有フォルダなら、ネットワークドライブにして
そのまま普通にアクセスしてまえ。
0548デフォルトの名無しさん
NGNGGetでURLを指定してダウンロードするだけ。
データはTStringStreamにはき出されるから、WriteStringで
そのままTMemo.Textにはき出せばいけそう。
改行されなかったらデータをなめて改行コードごとにデータを
取り出してTStringListにいれれ。
0549デフォルトの名無しさん
NGNGConsole.WriteLine(
new System.IO.StreamReader(System.Net.WebRequest.Create("http://www.2ch.net").GetResponse().GetResponseStream()).ReadToEnd());
0550デフォルトの名無しさん
NGNGなんか悔しいじゃんよw
Memo1.Lines.DelimitedText := #10#13;
Memo1.Lines.CommaText := IdHttp1.Get(URL);
Delならこうかな?
0551デフォルトの名無しさん
NGNG9x > CreateToolHelp32Snapshot/Process32First
NT > 上かEnumProcessesでプロセス列挙してEnumProcessModules/GetModuleFileNameEx
0552535
NGNGやってみます
0553デフォルトの名無しさん
NGNGコンポーネントがいっきに増えてビックリたまげた
0554デフォルトの名無しさん
NGNGPersonalか?
0555デフォルトの名無しさん
NGNGういっす
0556デフォルトの名無しさん
NGNGA:=TStringList.Create;
B:=TStringList.Create;
try
A:=B
とやったけど駄目だった。
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGTextBuffer.LoadFromFile('C:\sage.txt');
とするとエラーになります。
TextBufferはClass Form1のprivateに宣言しています。
どうすればうまくいくのでしょうか?
0560デフォルトの名無しさん
NGNGTextBufferはTStrintList?
TStringは、そのままじゃインスタンスとして使えないので、
TStringListを使うべし。
それ以外なら、Createしていないとか、ファイルがないとか、
誤字脱字があるとか、具体的なエラーがわからないので、
なんともいえん。
0561デフォルトの名無しさん
NGNGTStrings は抽象クラスだから直接インスタンス化してはいけない。
でも LoadFromFile は TStrings で実装されてるから今回のエラーとは
関係ないと思う。
エラーの内容が書かれてないので何とも言えないけど、Create せずに
使ってるってことないよね。
0562デフォルトの名無しさん
NGNG無事読み込めました
ありがとうございました。
0563デフォルトの名無しさん
NGNGEncodeTime(0,15,0,0)を減じていくと、0になるはずなのに、
1e-17と言う値が入ってしまいます。
たぶん四捨五入で一番下の桁が残っているのだと思いますが、
これを回避する方法は無いでしょうか?
0564563
NGNG基本的に分単位の処理しかしません。
秒以下はいらないのですが、1mSが邪魔をしていて不等号での判断が出来なくて困ってます。
0565デフォルトの名無しさん
NGNGx86の仕様上浮動小数点演算では必ず誤差が出るので直接 = で評価してはいけない。
YearとかDecodeDate等でIntegerに変換するには問題ない誤差ない、変換してから比較するしかない。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG浮動小数点使ってて、1ms が問題となるような判断する方がどうかしている。
分までしか必要ないなら、分をベースにした整数演算すればいいだけ。
0568デフォルトの名無しさん
NGNGインラインアセンブラ使えば出来ないこともないが…
ちなみにCurrency型という物もある。整数以下の誤差が出ない。
0569デフォルトの名無しさん
NGNGこれは常識でしょ。こんなの知らないなら、プログラミングなんかの話はできないでしょ。
0570デフォルトの名無しさん
NGNGすぐに分かると思うんだがなー。
0571デフォルトの名無しさん
NGNGそうでもないよ。
漏れの取引先のとある社員は、入社8年目にして知らなかったし、
今年の新入社員4人のうち2人は、コンピューター専門学校のくせにVBすらも使えなかった。
………_| ̄|○
0572デフォルトの名無しさん
NGNGゲーム系ならツールの使い方覚えて終わり
他の職種と違って専門学校のメリットはない
0573563
NGNG分をベースにした整数演算ってどうすればよいのでしょうか?
いくら考えてもTDateTime型は整数部は日に該当するので使いかたは分からないので。
0574デフォルトの名無しさん
NGNG浮動小数点の誤差は基本情報に出てくる問題だよ。
あんた知らないで資格試験バカにしているだけだね。
0575デフォルトの名無しさん
NGNG飯食っていけんぞよ。
独立して一人でぼろ儲けしている奴を何人か知ってる。
0576デフォルトの名無しさん
NGNGDecodeDateがあるならDecodeTimeも有ると連想できませんかね?
0577デフォルトの名無しさん
NGNGあんたちょっと普通からずれてるよ。
有限のビット数でそのビットサイズに入りきらない大きい値が表せないのは分かるが、
ビットサイズに入る値がとびとびの値で正確に表せないなんてちょっと考えても分からない。
0578デフォルトの名無しさん
NGNG資格取っただけで飯が食える職業なんて無いんだが。
あんたがやっているのは資格を自分で過大評価して、
そんなに評価は高くないと自分で普通の評価に戻しているだけ。
0579デフォルトの名無しさん
NGNGそうか? 0と1の間には無限個の数値があるんだが?
0580デフォルトの名無しさん
NGNG数値の大小と、浮動小数点の誤差は直接関係ない。
0581デフォルトの名無しさん
NGNG小数点以下一桁と限定すれば10個しかない。
0582デフォルトの名無しさん
NGNGそれはちょっと考えただけでは分からない。
0583デフォルトの名無しさん
NGNG普通に全部自前で計算すればいいだけだと思うけど。
例えば、一時間三十分後の値なら、1 * 60 + 30 = 90 を足せばいい。
とは言っても、扱う範囲が年月日に及ぶとうるう年の扱いが大変だから、そこは TDate 型で処理すればいいと思う。
>>577
例えば、0.0 と 0.1 は表せても、1/3 は有限の桁数だと正確に表せないだろ。
0.1 の二進数表現がこういう状況になる (処理系が多い。)
0584デフォルトの名無しさん
NGNGそうか、きみのちょっととオレのちょっとは違うみたいだな。
プログラマならどっちが「普通」かな。
0585デフォルトの名無しさん
NGNGという数が代入も表示もできるのに、
実際はこの値でメモリに入っているわけではないと
いうのは普通に考えても分からない。
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGプログラマの定義が無いのでその質問は意味が無い。
0588デフォルトの名無しさん
NGNG君がなぜ浮動小数点というのかを考えたのはいつかね?
プログラミングを始める前ではなかろう。
0589デフォルトの名無しさん
NGNGそうなんだよ。有効桁数を考慮して、浮動小数点におけるイコールとはどういううことか
を考えてプログラムする必要があるんだよね。だから、
> 1e-17と言う値が入ってしまいます。
なんていうう質問は、ほんとはないはずなんだよ。
0590デフォルトの名無しさん
NGNGだからと結論が全然結びついてないよ。
まず浮動小数点というのを知らないということを前提に考えな。
0591デフォルトの名無しさん
NGNGプログラミングするのがプログラマなら、普通のプログラマと
浮動小数点の内部表現を知らないプログラマがいる、あるいは二進法も
知らないプログラマがいる、というのが現実なのかな。
0592デフォルトの名無しさん
NGNGプログラマにならなければいいって事だな。
0593デフォルトの名無しさん
NGNG実際そうだよね。資格とっていなくてもプログラマになれるんだから。
0594デフォルトの名無しさん
NGNG資格は関係なし。常識と想像力があればよい。
0595デフォルトの名無しさん
NGNGその常識とはなんですか?
一体どこで身に付ければいいのでしょうか?
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGとか言い出したら笑える。
0599デフォルトの名無しさん
NGNG質問もプログラミングをするな。
ちなみに、常識はプログラミングを
していれば自然と身につく。
矛盾しているが、これが答えだ。
0600デフォルトの名無しさん
NGNG必要に迫られれば気づいて対処するし、そうでなければ一生わからんかもしれん。
それを気づかなくてもプログラマとしてやっていけるかもしれん。
知識さえあれば優秀なプログラマともいえんし、優秀なプログラマならそのぐらい
知ってて当たり前ということもあるけど、どっちかというと知識は問題解決の手段
でしかなく、優秀な人なら知識がなくともいつか気づくでそ。
0601デフォルトの名無しさん
NGNGそんなもん常識だろとバカにする態度がいけない。
0602デフォルトの名無しさん
NGNG> まず浮動小数点というのを知らないということを前提に考えな。
浮動小数点を知らないとしても、有効桁数を知らないのはかなり致命的だと
思う。ヘルプにも載ってるんだし。
x.xxxxxxxxxx の加減算を問題にしているとき変数に 1e-17 が入るのはなぜか?
という質問なんだぜ。
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGヘルプに載っているというのなら浮動小数点もヘルプに載っているだろ。
ヘルプに載っていることは問題にならない。
0605デフォルトの名無しさん
NGNGそれが普通。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG浮動小数点も2進数も有効桁数も知らない。
知らない人の常識は知らないに決まっているじゃん。
なんでそこで知っている人の常識がでてくるんだか。
0608デフォルトの名無しさん
NGNGその通りだけど、そんな奴はここには出てきていないよ。
ここにいるのは知らないことをバカにしている奴だけ。
0609デフォルトの名無しさん
NGNGそれか情報関係の大学に行くか。
大学に行ったのにプログラマになるの?とか
大学じゃ遅すぎるというのなら資格勉強をしとけ。
浮動小数点の誤差問題など基礎的なことを学べるから。
0610デフォルトの名無しさん
NGNGいいあってる香具師はトリップつけれw
0611デフォルトの名無しさん
NGNGでしょ?
0612デフォルトの名無しさん
NGNGだったのは、
>>579
> 0と1の間には無限個の数値があるんだが?
これを本当に知らないんだろうか。知らないとしたら、何個あるとおもってるんだろうか。
なんか、ここが本質のような気がする。
0613デフォルトの名無しさん
NGNGこれ初心者スレの常識w
0614デフォルトの名無しさん
NGNG無限個の数値があると分かっても
0.1が正確にあらわせないというは分からない。
この違いが分からない?
0615デフォルトの名無しさん
NGNG何個あるかどうかじゃなく、数値というものをどういうように扱っているかでしょ。
0616デフォルトの名無しさん
NGNGうん、これは二進法で浮動小数点をどう表現するか、というかなり高度(?) なので
分からないかも知れない、とは想像つくね。
> 何個あるかどうかじゃなく、数値というものをどういうように扱っているかでしょ。
そうなんだけど、有限個のビット数でそもそも無限個の数値を正確に表せない、とは
ヘルプ読まなくても分かると思うんだがなぁ。
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG自分の仕事では、ほとんど正数しか使わないから
そういう表現が求められることはないし、それで問題になることはないし。
0619デフォルトの名無しさん
NGNG有効桁数のはなしでしょ。1から引いていって、結果 1e-17 ならゼロとみなしてよい、
ということ。
0620デフォルトの名無しさん
NGNG使わないから気づかない。
こういうときは資格勉強が一番。
浅くても広い範囲の事を知ることができる。
0621デフォルトの名無しさん
NGNGどれくらいならゼロとみなせるんだ?
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGここ、初心者質問スレで質問する。それが漏れのやり方。
0624デフォルトの名無しさん
NGNGで、自分のやり方に合わない奴(調べない奴)を煽っているわけか。
0625デフォルトの名無しさん
NGNG有効桁数の範囲を超えた小さい絶対値なら確実に。そうでなければ、かなり高度な
議論になる、と思う。それこそ、内部表現にかかわるような。
0626デフォルトの名無しさん
NGNGだから0と比べたらいけないんだよ。
そんなの常識だろ。
といっておきながら、具体的にどうするのか聞くと
多分大丈夫なんじゃない? と曖昧なことしかいえない罠。
0627デフォルトの名無しさん
NGNG> 多分大丈夫なんじゃない? と曖昧なことしかいえない罠。
これ何番?
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGいや、漏れは誰も煽ってないよ。煽るためだけに来るほど肥満じゃない。
自分の分かる質問なら教える。分からんかったら調べる。それが漏れのやり方。
0631デフォルトの名無しさん
NGNG無限個の中にはぴったりと一致して誤差なしで表現できるものもあるさ。
無限個から比べると無視できるほど少数だがな。
0632デフォルトの名無しさん
NGNGオレは少し肥満ぎみ。Q&A のスレって、どんなことでも自分で調べてみると
勉強になるね。ほんとに。
0633デフォルトの名無しさん
NGNGお前なら答えてくれるのかい?
0634デフォルトの名無しさん
NGNGドーンマーイ。
やっぱ知識は少ないより多いほうがいいよね。可能性が広がる。
0635デフォルトの名無しさん
NGNGといっておきながら、具体的にどうするのか聞くと
多分大丈夫なんじゃない? と曖昧なことしかいえない罠。
0636デフォルトの名無しさん
NGNG馬鹿にしたような発言をする奴はどうかと思うけどな。
0637デフォルトの名無しさん
NGNG|
_ー|ー|-┐ __|_  ̄──
| ノ ヽ/ | ヽ /
| /丶/ | |
| し^ヽ / \
ヽ(;´Д`)ノ
0638デフォルトの名無しさん
NGNG有効桁数について調べて見れ、
と<具体的>に教えてやらない、といつまでも書き込みそうだな。(藁
あぅ、ちっとも具体的じゃないじゃないか、とレスされそうなので先回りしておくか。
0639デフォルトの名無しさん
NGNG今話題にしている誤差は本当に関係あるのか?
0640デフォルトの名無しさん
NGNGちっとも具体的じゃないじゃないか(w
先手を打ったつもりだろうが、答えは予想通り変わらない。
相手のレスが予測できるなら、ついでにそのレスの答えも用意しておいたら?
0641デフォルトの名無しさん
NGNGtype TDateTime = type Double;
なので、浮動小数点の演算に関することであることは間違いない。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGだけど、0.1って誤差無しで表現できない?
0644デフォルトの名無しさん
NGNG有効桁数は、数値の大小と関係するので演算のもとになる数値によってゼロとみなす
しきい値は変化する。
0645デフォルトの名無しさん
NGNGそうか。時間の最小単位というのは無限小なので、とびとびに経過するもんじゃ
ないし、浮動小数点であったもいいんじゃないの。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG本当に今の時刻は正確に表せているんだろうか?
0649デフォルトの名無しさん
NGNG1*10^(-1)
0650デフォルトの名無しさん
NGNG次の表に TDateTime 値の例とそれに対応する日付と時間を示します。
01899 年 12 月 30 日 午前 12:00
2.751900 年 1 月 1 日 午後 6:00
-1.251899 年 12 月 29 日 午前 6:00
350651996 年 1 月 1 日 午前 12:00
PCの時計は関係なし
0651デフォルトの名無しさん
NGNGそれは何という型でしょう?
0652デフォルトの名無しさん
NGNG1秒ってDoubleに表したら何?
2.75が1900 年 1 月 1 日 午後 6:00だとして
1900 年 1 月 1 日 午後 6:00:01はちゃんと表現できるの?
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG知ったかぶっていても、所詮この程度。
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNG誰も0.5が誤差無しで表現できないと言って無いと思いますが?
0657デフォルトの名無しさん
NGNG整数じゃん、バカじゃなかろうか
0658デフォルトの名無しさん
NGNGおまいは浮動小数点演算に0.5しか使わないのか。つか、>>631 読め
0659デフォルトの名無しさん
NGNG0.1は整数ですか?
0660デフォルトの名無しさん
NGNG少数の扱いぐらいは心得てるんだろ?
その上で話を進めようや
0661デフォルトの名無しさん
NGNGちょっとまて
0.1をエレガントに誤差なく表現する方法を
語ってたんじゃないのか?
0662デフォルトの名無しさん
NGNGPCの時計だとか、0.5だとか、なんか痛すぎる
0663デフォルトの名無しさん
NGNG.NETなら8バイト整数値なので100ナノ秒単位で
正確に時刻が表せます。
0664デフォルトの名無しさん
NGNGケンカ やめれ!!
∧∧
|\ (´Д`) /|
ヾ  ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
 ̄ ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |
/ ̄ ̄ ̄ ̄\/ ̄ ̄ ̄ ̄ ̄\
__/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ .\__
___<__)__________ (__>___
0665デフォルトの名無しさん
NGNG質問は抽象でも一般でもないからな
0666デフォルトの名無しさん
NGNGヘルプに書いてあるのは嘘なのか?
誤差がでるなんて書いてないぞ
0667デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG誤差のない時計は存在しません。
0670デフォルトの名無しさん
NGNGその誤差じゃないだろw
0671デフォルトの名無しさん
NGNG時計じゃなくてEncodeTime 関数の話題なのだが
0672デフォルトの名無しさん
NGNG実はちゃんと表せない秒があるんじゃないのか?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNGだから役にたたないといっただろう
0675デフォルトの名無しさん
NGNGきちんと理解してないだけじゃん。
もう一回受けなおせ。
0676デフォルトの名無しさん
NGNGあー、ほんとに有効桁数というのを知らないみたいだな。
あほらし。
0677デフォルトの名無しさん
NGNGとりあえず、一言いわないと気がすまないみたいだな。
煽りは放置ということで。
0678デフォルトの名無しさん
NGNG初心者っぷりと初心者を煽る自称プロっぷりが
実に厨っぽくてすばらしい。
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNGDouble 5.0 x 10^-324 .. 1.7 x 10^308 有効桁数 15〜16
> 誤差がでるなんて書いてないぞ
有効桁数以下では誤差が出るのは常識だからいちいち書かないのではないですか?
0682デフォルトの名無しさん
NGNG自分で試せ
0683デフォルトの名無しさん
NGNGなら、秒まで楽勝でしょ
0684デフォルトの名無しさん
NGNGドキュメントによるとミリ秒まで保証していると読めるわけだが
0685デフォルトの名無しさん
NGNG0686186
NGNG0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGFORTRANだったらもっと精度いいよ
0689デフォルトの名無しさん
NGNG・・・
0690デフォルトの名無しさん
NGNGじゃあなんで今回誤差が発生したんだ?
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG浮動小数点どうしの引き算したから。
0694デフォルトの名無しさん
NGNG有効桁数を超えて小さな値になった、ということ。
0695デフォルトの名無しさん
NGNGDouble 5.0 x 10^-324 .. 1.7 x 10^308
だから、ナノ秒、ピコ秒、アト秒、楽勝。というか、単位が問題なのではなく
有効桁数の問題。1日に対して
1.00000000000001 これは有効。
0.00000001000000000001これも有効。
integer みたいに固定小数点じゃないので、桁数だけが問題になる
0696デフォルトの名無しさん
NGNG1日は86400秒だから、0.000011574...で1秒
0697デフォルトの名無しさん
NGNGだから有効桁数 15〜16 、1日に対して1ミリ秒は全然問題なし。1年だと3、4桁
あがっても、大丈夫、1000年に対して1ミリ秒の精度は微妙になってくる。
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGこれはダメっぽい
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG他所って言われても、どこがいいんかなぁ
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG中級スレでも上級スレでも談話室スレでも好きなのをどうぞ。
0704デフォルトの名無しさん
NGNGここでだめな理由ってなに? 高度すぎるって?
0705デフォルトの名無しさん
NGNG20も30もレスの応酬があるなら、移ってあげようよ
0706デフォルトの名無しさん
NGNGでなければEncodeTimeだのTDateTimeをどう使うべきか、そもそも使うべきなのかを判断できない。
不足した情報を妄想で埋めたり直接的な解答をすることが常に正しいわけではない。
無能な回答者がよく陥る罠だな。
0707デフォルトの名無しさん
NGNG有能な回答者はこの質問のどんな意味が分からないの?
0708デフォルトの名無しさん
NGNGじゃ、これを読むの推奨しようよ。
的確な質問が必要→的確でない→再質問
のループに陥るなら、上を読んで効果的な質問をする方法を
多少は考えてくれと。
上のはバグ報告のだけど参考になるし、これを提示して
わかるように書いてくれっていえば手間も省ける。
0709デフォルトの名無しさん
NGNG誤差の理由について延々レスがのびてるのは煽るのも悪いが、なんか、逆切れして
ろくに調べないのもいるからでは。690あたりまでいろんな茶々が入っているが
有効桁数、誤差の原因についてはちゃんと議論になってるよ。690以降は具体的
になってるが。
0711デフォルトの名無しさん
NGNG実社会に出て、お客さんに「効果的にバグを報告するには」なんて読ませられると思うか?
0712デフォルトの名無しさん
NGNG文句があるなら回答しなけりゃ良いんだし。
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGVBユーザーかい?
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG的確な質問をするのも能力つか勉強の一つだろ
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGプログラマか否かってのはあまり関係ないのでは?
的確な質問ができるかどうかは経験による所もあるので、最初は難しい。
だからこのスレでは質問する側はあまり気にせず、回答する側が「具体的に書け」
「ソース出せ」と誘導すべきだと思う。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG具体的に書け ソース出せ
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGOnShowは窓をこれから表示するというイベントですから、まだ表示されません。
OnPaintを使えばどうですか?
0725デフォルトの名無しさん
NGNG何をしたいのかだけでも教えて
0726デフォルトの名無しさん
NGNGどのウィンドウを表示するつもりなのか
OnShowでなければならないのか
1番目は"たぶん"Form1で
2番目は"たぶん"Form2だろうけど
解答が曖昧にならざるを得ない
現に>>723と>>724という2通りの解釈が出てきてしまっている
>>720
上のような質疑応答を毎回繰り返せばいいのかい?
0727デフォルトの名無しさん
NGNG非常に論理的な見解だが、最後疑問形にすんなよw
どうすればいいと思うかもかいてくり
0728デフォルトの名無しさん
NGNG質問する側が同一人物でない以上仕方ないでしょう。
それが無駄だと思うならスレタイに「超初心者向け」なんていれない方がいいと思う。
0729デフォルトの名無しさん
NGNGスマソ。天ぷら読んでなかったよ
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG必ずfinally〜end;間の処理が実行されるのはわかるのですが
try〜finallyの間でExitなどで制御を移した場合も処理は実行されるのでしょうか?
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGはず…だと!?
0734デフォルトの名無しさん
NGNG説明
Exit 手続きは,現在の手続きを終了して,制御を呼び出し元に移します。
現在の手続きがメインプログラムである場合,Exit はプログラムを終了します。
Exit は,Exit を呼び出した呼び出し元の手続き文の次の文に制御を渡します。
注意Exit は,現在のブロックではなく現在の手続きから制御を呼び出し元に戻します。ただし,Exit は try..finally 構文で指示されている制御フローを終了しません。Exit が try 節内で呼び出されると finally 節が実行されます。
0736デフォルトの名無しさん
NGNGすみません
ヘルプに普通に書いてありますね
必死にtry、finallyのとこばかり見てました
0737デフォルトの名無しさん
NGNGこれを行うと
FileListBox1.FileNameの内容が空白に戻ってしまうのですが、
空白にならないようにリストを更新する方法は有りませんでしょうか。。
0738デフォルトの名無しさん
NGNGもしそのファイルが消えてしまっていたらおかしなことになるね
かっこ悪いけど
var s: string;
s:=FileListBox1.FileName;
FileListBox1.Update;
FileListBox1.FileName := s;
動作未確認
0739デフォルトの名無しさん
NGNGExplorerでも更新すると解除されるし。
いやなら、updateかける前にどこかに保存しておいたら?
0740デフォルトの名無しさん
NGNGありがとうございます。
1秒ごとにリストを更新するようにしていました。
ItemIndexで同様の方法を試みようとして上手くいかず困っていたところでした。
そのままFileName使えばよかったのですね。
EInOutErrorがでましたが、何とかなりそうです。
0741デフォルトの名無しさん
NGNG>1秒ごとにリストを更新するようにしていました。
そのやり方だとファイル数の多いディレクトリを開いてるときにちょっと遅くなりそう。
指定したディレクトリが更新されたら通知するようなコンポーネントがあるよ。
Delphi6以降に。そっちでチェックしたほうが無駄がないかも。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGDelphi6Personalでちょっと勉強中なもんで、、
そのようなコンポーネントはないようです。。
スミマセン。。
0744デフォルトの名無しさん
NGNGかけるというのはどうよ
ttp://forum.nifty.com/fdelphi/faq/00161.htm
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGttp://www.wwlnk.com/boheme/delphi/tips/tec0650.htm
これいいね。知らなかった。このAPI。
0747デフォルトの名無しさん
NGNGそれつながりでExplorerのフォルダツリーとファイルビューなコンポもあるし。
0748デフォルトの名無しさん
NGNGhttp://www.howtodothings.com/showarticle.asp?article=314
0750デフォルトの名無しさん
NGNGせめてそれ以外のやり方のメリット書いたら。
0751デフォルトの名無しさん
NGNG>>748-749 のは、シェル全体で変更があったことがわかる。ファイルだけじゃなしに。
詳細は >>749 に FindFirstChangeNotification との違いが書いてある。
0752デフォルトの名無しさん
NGNGそのコンポなかなか面白い。だいぶ前に休日一日つぶして作ったことがある。
Shevin 氏のヤツは実装がすこしアレだけどちゃんと動作する。>>748 のはその
改良版ということになってるが、動作が?のところがある。ファイルシステムの変更
監視はできるけど、どのファイルが、というところで ?? の動作がある。そのほか
のシェルの変更は試してないけど。
0753デフォルトの名無しさん
NGNGPos(Substr: string; S: string)でタブ文字を検索することは出来ないんでしょうか?
0754デフォルトの名無しさん
NGNGフォームにComboBoxを配置して、
ComboBox の items にボーダースタイルを表示させて
選択した候補を従って、フォームのボーダースタイルを変更するにはどーすればよいせうか?
ComboBoxのItems は TStrings なので、
単純にForm.BorderStyle := にはできないのです。
何を読んでベンキョーすればよいかでもけっこうです。
教えてください。
0755デフォルトの名無しさん
NGNGConmbBoxのアイテムを選択すると
ItemIndexの値が変わる
どのイベントで処理すればいいかは分かるな?
後はがんばれ
0756デフォルトの名無しさん
NGNGbsNone,bsSingle,bsDialog,bsSizeable,bsToolWindow,bsSizeToolWin
は順に0-5だから、Itemsの0〜5に上の表示を割り当てて、
Form.BorderStyle := ComboBox1.ItemIndex;
でいけそーな悪寒
0757デフォルトの名無しさん
NGNGありがとうございました。
ComboBoxのClickイベントに
Form1.BorderStyle := TFormBorderStyle( ComboBox1.ItemIndex);
と書いたところ、うまく切り替わるようになりました。
本当にありがとうございました。
じつは、もう1つ質問あるんですが。。。
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGフォームのBorderStyleの値(bsNoneとかbsSingle)を
プログラム的に読み出すことはできるのでしょうか?
やりたい事は、ComboBoxのItemsにBorderStyleの選択可能な値をいれたいのです。
いまは、かっこわるいのですが、初期設定として手入力しています。
でも、TFormBorderStyleの定義を読んで、それを文字に変換して、ComboBoxに代入したいのですが。
ヒントだけでもいいです。
教えてください。
0760デフォルトの名無しさん
NGNGごめんなさい。
いま書きました。
0761デフォルトの名無しさん
NGNGShowMessage(IntToStr(Word(bsSizeToolWin)));で数値は求まる。
>>756にも順に0〜5と書いてあると思うが。
0762デフォルトの名無しさん
NGNG#9
0763デフォルトの名無しさん
NGNGvar i:integer;
var T: PTypeData;
var s:string;
begin
T := GetTypeData(GetTypeData(TypeInfo)^.BaseType^);
for i:=T^.MinValue to T^.MaxValue do
begin
s:= GetEnumName(TypeInfo , i);
if s<>'' then str.Add(s) else break;
end;
end;
0764763
NGNG実行時型情報を取得すれば可能で、具体的コードは 上の通り。
呼び方は
GetEnumNameList(TypeInfo(TBorderStyle) , ComboBox1 . Items);
0765763
NGNGGetEnumValue(TypeInfo(TBorderStyle), string )
他にもTypeInfoユニットにはこの関係のがイッパイ
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGできました。。。。。感無量です。
PTypeInfo、TypeInfo回りの勉強をします。
>>761さん
レスありがとうございました。
時間をとっていただいたことに感謝しております。
0768763
NGNGさあ?買ってないから知らない。 .NETなら System.Type でやったほうがいいんじゃないの?
>>767
自作の列挙型でも、publishedメンバーにさえすれば同じ事が出来るから、しばらく面白いよ。
0770デフォルトの名無しさん
NGNGそれで解決したんならそれでもいいよ>メル欄
コードを晒す気があるなら晒してもいいし。
0771デフォルトの名無しさん
NGNGEncode⇔Decode
0772763
NGNG>>567の書いてる通り、
時間単位の処理がしたいなら TDateTime * 24
分単位の処理がしたいなら TDateTime * 24*60
して、整数に(切り上げか丸めて)int64か浮動小数点で処理すればいい。
そうすれば1分は一足すだけでしょ?
浮動小数点でも整数の範囲なら=で比較出来るしさ。
TDateTimeに戻すのは同じ数で割るだけ。
0773563
NGNGお三方、ありがとうございます。
とりあえず、動いたので当面はこれで行って他のバグを潰していきます。
次のバージョンでは精度を求めたいので>>772の方法できちんとチェック
しようと思います。
0774デフォルトの名無しさん
NGNGヘルプは見たけど見つかりませんでした。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGconst
Zenkaku:WideString = '0123456789';
function HanSuuToZenSuu(Ch:Char):string;
begin
result := Zenkaku[Ord(Ch)-47];
end;
// てすと
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s1,s2:string;
begin
s1 := '9876543210';
s2 := '';
for i := 1 to Length(s1) do
s2 := s2 + HanSuuToZenSuu(s1[i]);
Label1.Caption := s1;
Label2.Caption := s2;
end;
0778774
NGNG0779デフォルトの名無しさん
NGNGDelphi初心者なのですが、今回チャットを作ろうと
D6PersonalにIndyを入れて色々見ているIRCの機能がありました。
そこで、IRCのクライアントとサーバーを作ろうとしています。(まずはチャット機能から。。。)
ネットで検索しても、これといったいい情報がなく、みなさんのお力をお借りしたく
思いました、よろしければ、どうすればチャットとして機能するか
ご指導願いたく思います。どうかよろしくお願いします。
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG(Readerを使わないで簡易ビューワーを作る方法を探してます)
外国産の有料コンポ使わないとダメかな・・・。
0782デフォルトの名無しさん
NGNGどうなんだろね。フリーのソースはあるから、そこから BCC55でコンパイル出来るようにしてそれをDelphiにリンクすれば使えるかも
http://www.foolabs.com/xpdf/download.html
http://www.cs.wisc.edu/~ghost/
http://www.devarchive.com/f1815.html
0783781
NGNGオンラインドキュメント(型式は問いません、Delで扱えれば)を、ネット上から取ってきて
表示するアプリを作りたいのでPDFでなくても構わないんですが・・・うーん、フォーマットを考え直そうかな。
0784782
NGNG0785デフォルトの名無しさん
NGNGいきなりIRCだと難しいと思うから、まず、TIdTCPClientとTIdTCPServerで
簡単なチャットプログラムを作ってみたら?
0786デフォルトの名無しさん
NGNGTWebBrowserでHTML表示するのが一番手っ取り早い予感
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGマニュアルをhtmlで作って、それを表示するって意味でしょ
単に表示させるなら、それだけで十分だと思う。
0789デフォルトの名無しさん
NGNG0790781
NGNGいや、pdfからの変換ツールを探してくるか・・・。
0791デフォルトの名無しさん
NGNGTorryちゃんとDSPにPDF関連のフリーソフトたくさんあるけどだめなん?
PDF Createってあるから作るのがメインのん゛多いけど、Viewerかねてるのも
あるんじゃないの?
0792781
NGNG0793デフォルトの名無しさん
NGNG一覧表示するか、次々にその場所を表示してくれるような方法ってありますか?
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGPublishedにproperty OnClick;を追加するだけでいいんですよね?
0798デフォルトの名無しさん
NGNG間違えてPublicに書いてました
ありがとうございます
0799デフォルトの名無しさん
NGNGダブクリとかインスペクタに表示されてないコンポでも
継承すればひょっとしたらいけるかもしれんってこと?
0800デフォルトの名無しさん
NGNGイベント全部と多くのプロパティがprotectedのままだから
派生の仕方によっては
必要最小限のものしかpublishedになってないことも多いよね。
TControlから例えばColorやFontをpublicにしたクラスを派生させて
そのクラスへキャストすると見えるようになったりもする。
(親へではなく兄弟とか伯父さんへキャストするわけだから、邪道くさいかも)
0801デフォルトの名無しさん
NGNGそのユニット内でクラスを別名で宣言してキャストすると
上位クラスの protected メンバーにアクセスできる。
上位クラスに存在しないメンバーだとコンパイルできないので安全。
こんな感じ↓
type TSplitter1 = class(TSplitter);
procedure TForm1.FormCreate(Sender: TObject);
begin
TSplitter1(Splitter1).OnClick := Splitter1Click;
end;
0802デフォルトの名無しさん
NGNGFormを表示しないで 閉じて戻りたいのですが、どのようにすればいいのでしょうか?
呼び出して元は、修正しないで 呼び出された側のFormだけ修正したいのですが、
教えてください。
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805802
NGNG0806デフォルトの名無しさん
NGNG呼び出し元のメソッドの中で判断をして、Showするか否かを決定すればぁ?
procedure TForm1.Yobidashi;
begin
if フニフニ then Form2.Show;
end;
0807802
NGNGと言ってます。
0808802
NGNG呼び出された側だけ修正したいのです。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG理由がよくわからんがスマソ。
//OnCreate
OnShow
OnActivate
OnResize
OnPaint
//Application.OnIdle
この順番でイベント発生するはずだから、好きなの使いんしゃい。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG>>803-804
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGこれも呼び出し元をかえることになるんかな。
もしくはOnShowの部分でタイマーを動作させて、タイマーが動作
したらフォームを閉じるようにするとか。
0816デフォルトの名無しさん
NGNG0817802
NGNGShowModalでも
OnShow
OnActivate
OnResize
OnPaint
の順なんでしょうか?
というか ShowModal が どのような処理しているか わからない・・・。
ソースを 覗いてくるか。
0818デフォルトの名無しさん
NGNGfunction TForm2.ShowModal: Integer;
begin
if 条件 then Result := inherited ShowModal else Result := mrCancel;
end;
0819802
NGNGタイマー使ったから なんとかできたけど・・・。
0820デフォルトの名無しさん
NGNGどうやって憶えていけばいいの?漏れこれからやろうとしてるんだけど
0821デフォルトの名無しさん
NGNG入門書買って読む。
WEBで最初から情報拾ってると不正確で偏った知識しか実に付かないから注意しな。
WEBは詰まったところをワンポイントで質問したりFAQ&Tipsを調べるのにとどめたほうがいい。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNGあとは慣れ
0824デフォルトの名無しさん
NGNG処理が 終わったら、その表示したフォームを 閉じたいのですが、どのようにすればいいのでしょうか?
0825デフォルトの名無しさん
NGNGwhile Foo do
begin
Bar; 重い処理
Form2.ProgressBar1.StepIt;
Application.ProcessMessages;
end;
Form2.Close;
0826デフォルトの名無しさん
NGNG>>825のようにすると、他のフォームのボタンやアイコンが動かせるから嫌なんでしょ?
>>824のようにするなら、他のフォームの動きを止めてしまう。
あるいは処理の方をスレッドにしてしまう
0827デフォルトの名無しさん
NGNGフォームからその処理を実行するメソッドを呼べばいい。
0828デフォルトの名無しさん
NGNG具体的には対応ルーターでNAT越えしたいんだけど。
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGForm.OnShow中にCloseしてもクローズされないという大バグが発見されました。
このバグはいつ直るのでしょうか?
0831デフォルトの名無しさん
NGNGおおっ!できるんでつか、ありがとうございます。
申し訳ないんですが、何を集めて、どうすれば、UPnPを使用したソフトが
作れるようになるのか、ヒントや解説してるページとかあったら教えてもらえないですか?
いま、いろいろ調べていますが何をどうすればいいかまったくわからん状態です。
SDKあたりがあるのかなと調べているんですが・・・・
0832デフォルトの名無しさん
NGNGhttp://upnp.sourceforge.net/
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/technet/prodtechnol/winxppro/evaluate/upnpxp.asp?frame=true
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGEditコンポーネントのメソッドFocusedで調べることが出来ます。
0839デフォルトの名無しさん
NGNGDelphi6Personalでデバッガオプションがディフォルトのままの時に、
WebBrowserで<embed src="*.mid" height=0>を含むページを開くと例外が発生し、
"invalid floating point operation"というメッセージが表示されます。
そしてその後、このWebページを操作出来なくなってしまいます。
これを解消するには、[デバッガオプション - OSによる例外 - Float Invalid Operation]を、
[処理]を[プログラムが受け取る]のままにして、
[再実行時の例外の扱い]を[例外を破棄する]にすればいいと判りました。
それで質問なんですが、自分で作ったプログラムを配布する際に、一般的には、
デバッガオプションをどのように設定すべきなんでしょうか?
0840デフォルトの名無しさん
NGNG全部外しても別にかまわん
0841デフォルトの名無しさん
NGNGForm1.ActiveContorol=Edit1
0842デフォルトの名無しさん
NGNGto→t
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNGif Edit1.Focused then
のほうがいいとおもう
0845デフォルトの名無しさん
NGNGレスどうもです。
自分で書いたコードに関しては例外処理をしてるんですが、
ActiveXコントロール内で起きた例外に関しては、どうしていいかわからず、質問しました。
全部外してもとは、全て[再実行時の例外の扱い]を[例外を破棄する]にしても
問題ないってことでしょうか?
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG日本語で喋って頂くわけにはいかないだろうか?
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG関係無い。
0850839
NGNGそんなわけないのにね…。適当に試して確認したときに、適用されてるように見えたのが原因か。
ところで、デバッガオプションの[再実行時の例外の扱い]を[例外を破棄する]と同様の事が
デバッグじゃない時に出来ず、例外の後、固まってしまうんですがどうしたらいいんでしょうか?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG854 名前:デフォルトの名無しさん [sage] 投稿日:04/03/25 13:34
>>850
それを例外処理をちゃんとできていると呼ぶだろうか?
855 名前:デフォルトの名無しさん [] 投稿日:04/03/25 15:24
なんか変なカキコばっかしだな。
856 名前:デフォルトの名無しさん [sage] 投稿日:04/03/25 18:27
copy()みたいに可変個の引数を渡せる関数をつくりたいのですが、どう宣言すればいいのですか?
857 名前:デフォルトの名無しさん [] 投稿日:04/03/25 18:55
引数を 省略できるってこと?
copyのソースを見てみれば?
858 名前:デフォルトの名無しさん [sage] 投稿日:04/03/25 18:58
procedure foo(items: array of string);
とかじゃなくて?
0854デフォルトの名無しさん
NGNG引数の数とかで変えるのがオーバーロードちゃうん?
860 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 00:10
>>859
それを「可変個の引数」と言うのか?
861 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 00:23
>>860
856にとってはそれが「可変個の引数」。
862 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 11:30
突然ですが。
変数名を決めるとき、皆さんどーしていますか?
Pascal規則っていうのがあるそうなのですが、
ネットをめくっていっても、定義はこれ!というものがありません。
ハンガリアンの規則に準じて、変数名の最初を大文字にするってことなのかと
推測していますが、いまいち不確かです。
Pascal規則を知ってる方、書き込み願います。
(これに反してハンガリアン規則の解説が多いこと。。)
0855デフォルトの名無しさん
NGNGhttp://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%B5%AC%CC%F3%5D%5D
864 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 11:38
>>863さん
ありがとうございまする。
865 名前:856 [sage] 投稿日:04/03/26 14:20
concat(´・ω・`)のことダターヨ、ゴムーン
866 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 14:36
>>865
WritelnとかConcatはインチキ関数だから自分では作れない。
>>858のように
MyConcat(['aaa', 'bbb', 'ccc']);見たいにするしかない。
867 名前:デフォルトの名無しさん [] 投稿日:04/03/26 14:38
>>862
aから 順番に。
0856デフォルトの名無しさん
NGNGcase c of
0 : CheckBox1.Checked := False;
1 : CheckBox1.Checked := True;
end;
case t of
1 : CheckBox2.Checked := False;
0 : CheckBox2.Checked := True;
end;
case b of
1 : CheckBox3.Checked := True;
0 : CheckBox3.Checked := False;
end;
これだとなぜか、下の二つのcase文が上手く動作しません。
例えばbの値が1でも、CheckBox3.CheckedがFalseになってしまいます。。
オエライ方なぜか教えてくださいまし。。(;´Д`)
869 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 15:53
んなこたない。
ShowMessage(Format('b=%d', [b]));
case b of
1 : ShowMessage('b=1');
0 : ShowMessage('b=0');
else ShowMessage('b<>0, 1');
end;
でどうなるか試してみろ。
870 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 16:01
0と1しかとらないなら、Boolean 型にしとけば、CheckBox1.Checked に
直接代入できると思うんだけど
0857デフォルトの名無しさん
NGNGこんなふうにもできる
CheckBox1.Checked := c = 1;
872 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 16:05
>>869
case c of の前に置くとb=1と二回表示されましたが、
case b of の前に置くとb=0と二回表示されました。。。
問題がある箇所はわかってきましたが、
なぜbの値が勝手に変えられてるのでしょうか。。
873 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 16:07
>>869
elseはendの後じゃないか?
0858デフォルトの名無しさん
NGNGCheckBox のイベントハンドラのなかで変数をいじってないか?
875 名前:868 [sage] 投稿日:04/03/26 16:13
>>874
あー、、すいません、、まさしくそれっぽいです。
CheckBoxのOnClickでいじられていたようです。
ヘルプ読んできたらわかりました。。
CheckBoxの場合Checkedが変更された場合にも
呼ばれるんですね。。
876 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 16:15
case 文の練習ならともかく、870と871も参考にしてね
877 名前:デフォルトの名無しさん [sage] 投稿日:04/03/26 16:20
>>876
はい、参考にさせてもらいます(´▽`;)
0859デフォルトの名無しさん
NGNGIntegerって書くの面倒なんでintと書きたいんだけど
C言語の#define みたいなのって無いの?
0860デフォルトの名無しさん
NGNG何もしないのが一番面倒臭くないよ。
C言語やってたらいいんじゃない?
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNGそんな冷たい事言うなよ。
超初心者同士仲良く仕様やこの糞野郎
0863デフォルトの名無しさん
NGNGType int = Integer;
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG予言者キタ━(゚∀゚)━!!
0866デフォルトの名無しさん
NGNGvar
a:array[1..5] of integer;
b:array[1..5] of integer;
i:integer;
begin
for i := 1 to 5 do
begin
a[i] := 1;
b[i] := 2;
end;
a[random(1)] := 3;
caption := inttostr(b[5]);
end;
すみませんが、ちょっと上のプログラムを実験してもらえますか?
OSはWINXPのホームでDELは6のパーソナルですけど
これを実行するとエラーにならない上に、b[5]の結果が3になるんです。
こんな結果が出るのはうちだけでしょうか?
せめてエラーが出てくれれば三日も悩まずにすんだのに・・・
0867デフォルトの名無しさん
NGNG書き込んでいるから、という原因はわかってます。
ただ、なぜエラーが出ないのかが・・・くぅぅ泣ける・・・一度寝ます。
0868デフォルトの名無しさん
NGNG{$R+}で範囲チェックが有効になるよ。
0869デフォルトの名無しさん
NGNGエラーが出ないのは>>868
なぜその結果になるかは
i:=0;
a[i] := 3;
caption := format('%2d %8x %8x',[b[5], Integer(@(b[5])) ,Integer(@(a[i]))]);
0870デフォルトの名無しさん
NGNGヘルプで{$R+} を調べさせてもらいました。これから活用します。
0871デフォルトの名無しさん
NGNGどういう風に使うのでしょうか?
>>853-858乙です
0872デフォルトの名無しさん
NGNGって演算がどんなものかは知っているのかな?
0873デフォルトの名無しさん
NGNG利用例
if (x and 1)=0 then 偶数です
x:= x or 3 ;<--- 4で割り切ると 3 が余る数になる
xor は 1なら相手を反転するからこれを利用して a と bが等しいのを (a xor b) =0
これを応用して、
1) bのbitが1の場所だけ cに aを代入する
2) 入力スイッチのon/offが in 変数のビット情報として入る 各ビットが2度同じ時だけ採用せよ
なんて事が並列に出来る
0874デフォルトの名無しさん
NGNGで、データモジュールを使っているのですけど、
ヘルプに「データモジュールのコンストラクタとのやり取りが不良になる可能性があるため,C++ で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。かわりに,コンストラクタをオーバーライドすることをお勧めします。」
と書いてあります。(OldCreateOrder を参照)・・・参照しましたがわかりません。
「コンストラクタをオーバーライドする」・・・?overrideですよね?
virtualではないですよね?
なんかチンプンカンプンなんです。
やりたい事は、VCからCreate(引数なし)を呼ばれたらDelphiで作ったDLL内にあるデータモジュールを生成したいんです。
ご教授お願いします。
0875デフォルトの名無しさん
NGNGできれば0オリジンにして欲しかった予感
0876デフォルトの名無しさん
NGNGあなたにはまだ無理です。
VCL のデータモジュールって VCL に依存しているから、VC から使うにはいろんなことを
知っていないと。ヘルプにあるのは C++Builder からの使い方だからね。
0877デフォルトの名無しさん
NGNG・別アプリにして起動。
ほとんど別アプリと言ってもよい DLL を VCL で作って呼び出す。という手もある。
どちらにしろ、入出力をどうするかをしっかり決める必要がある。
・COM にして呼び出す。
VC/Delphi とも COM でインターフェースをとることができるから、細かい操作が必要なときには
この方法も使える。
0878ななしへたぐらま ◆XcB18Bks.Y
NGNG> やりたい事は、VCからCreate(引数なし)を呼ばれたらDelphiで作ったDLL内にあるデータモジュールを生成したいんです。
このCreateが何を指すのかわかりませんが
コンストラクタのオーバーライドは以下のようにします.
type
TMyDataModule = class(TDataModule)
public
constructor Create(AOwner: TComponent); override;
end;
実装:
constructor TMyDataModule.Create(AOwner: TComponent);
begin
inherited; // 親クラスのCreateコンストラクタを実行する inherited Create(AOwner); としても可
// 以下,追加すべき初期化処理を書く
end;
0879デフォルトの名無しさん
NGNGご親切にありがとうございます。オーバーライドの方法はわかりました。
しかし、僕の説明不足で・・・。
もう一度よろしいでしょうか?
・delphiでDLLを作成する。
・このDLLはVCで使用する(VCから呼ばれる)。
・DLL内にはデータモジュール(class)がある。
DLL内にグローバル関数を作成し、それをVCから呼び、結果を得る事は出来ました。
次に、class(データモジュールです。DLL内で非ビジュアルコンポーネントが使いたいので、それを貼り付けてあります)
を生成して、必用な初期化を行いたいんです。
わかっていない所は、
・VCからこのclassを生成する場合、どのように生成すればいいのか?
DLL内にグローバルなCreateという関数を用意し、この中でデータモジュールを
生成するのか?もしそうだとした場合、データモジュールにあるOnCreateイベントの
引数、(Sender:TObject)には何を指定すればよいのか?
・VCからこのclassを生成する場合、直接、データモジュールのベントにある
OnCreateを呼ぶ事はお勧めできないとヘルプに書いてあるので、オーバーライド
する必用がある。オーバーライドするという事は、データモジュールのベントに
あるOnCreateは使用せずに、自分でconstructorを作る必用があるのか?
その場合、引数はどうなるのか?
という所がよくわかっていません。どうやってよいのかわからないので、
説明不足な点があると思います。指摘して下されば追記しますので
どうぞよろしくお願いします。
0880デフォルトの名無しさん
NGNGなことが分かってないような。VCから見えるのはエクスポートされた関数だけ。
0881デフォルトの名無しさん
NGNGなぜVCで作ろうと考えないのですか?
0882デフォルトの名無しさん
NGNG行いたいのですが時間がなくて・・・。
ただ、イベントハンドラの仕組み、インスタンスの作り方、関数とメソッド、
ここらへんはわかっていると思うし、VCから見えるのはエクスポートされた関数だけ
というのも気持ちわかっている気でいます。
今、自分が作りたいDLLというのには親になるクラスがないような気がするんです。
親になるクラスがあれば、Create時の引数とかわかるのですが、親がいないのに・・・
なんて考えてしまってます・・・。
知識不足ですみません。
0883デフォルトの名無しさん
NGNG本当はVCでもよかったのですが、
もともとdelphiのアプリケーションだったんです。
そしたら、今度はインターフェース側がVCで、今までdelphiのアプリケーションだった
ものをDLLとして使用する。
というように方向性が変わってしまって・・。
今後の事もあるし、VCで作成するのもいいけど、とりあえずdelphiで作成しておきたいという部分もあります。
0884デフォルトの名無しさん
NGNG普通のアプリでは TDataModule は TForm1 と同じように Application を
オーナとして作られる。DLL でも Application をオーナとして作ればいいのでは?
0885デフォルトの名無しさん
NGNGDLLではウィンドウなしのApplicatiionオブジェクトが自動で作られる。
0886デフォルトの名無しさん
NGNGえと、とりあえずこんなのを作ってみました。DLL部分です。 動作確認は、今の所、VCではなくdelphiでインターフェース側も作成し確認しています。
で、動いちゃってます。やってる事なんですが、普通じゃないでしょうか?
このクラスのメンバ関数Testですが、これは上記のようにエクスポートする関数(上記ではCreateTestやFreeTestというexportしている関数)を1つかましてアクセスしないとダメなのでしょうか?
public
procedure Test; stdcall; export;
としたいのですが・・・。試してみましたがクラス内にある関数をexportできるかボケ!と怒られました。ダメダメですみません。
プログラムは↓です。
0887デフォルトの名無しさん
NGNG−省略−
exports
CreateTest,
FreeTest;
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
unit B
type
TDataMdl = class(TDataModule)
:
public
procedure Test;
end;
procedure CreateTest; stdcall; export;
procedure FreeTest; stdcall; export;
var
DataMdl: TDataMdl;
:
procedure CreateTest; begin
DataMdl:= TDataMdl.Create(Application);
DataMdl.Test;
end;
procedure FreeTest; begin
DataMdl.Test;
DataMdl.Free;
end;
0888デフォルトの名無しさん
NGNGラッパー関数を作ってエクスポートして下さい。(笑
0889デフォルトの名無しさん
NGNGそのオブジェクトへの名前の付け方とかも。
0890デフォルトの名無しさん
NGNGそれって↑の例でやってます・・・。よね?違いますか?
ってか、ラッパー関数使うしかないって事ですか?
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGクラスのメソッドをそのままではエクスポートできない、ということでしょう。
CreateTest や FreeTest のなかではなく、単独で呼び出される場合のことだと思う。
if Assigned(DataMdl) then DataMdl.Test;
とかね。DataMdl.Free; も FreeAndNil(DataMdl);
にしたほうがいいね。
0894デフォルトの名無しさん
NGNGある程度作ってみて、もう少し悩んでみます。で、VCはもっとわかりませんが、とりあえず動作するようなものを作ってみて試してみます。
みなさまどうもありがとうございました。
またわからなくなったらご教授お願いします。
0895デフォルトの名無しさん
NGNGTMemoのCanvas上で、
指定したpixel[x,y]が○色だったら、△色に変える。などを高速にやりたいんですが、
BitmapのScanlineみたいに、高速に色々出来る方法無いですか?
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG0898895
NGNG他のCanvasがあるコンポーネントの場合では、出来ますか?
0899デフォルトの名無しさん
NGNGまた貼り付けたらいいんじゃないの?
0900895
NGNG899さんの言う方法でやってるんですが、
何か写し取らないで済む方法があったらあやりたいと思った次第で
質問させて頂きましたが、無いようなんで諦めます。ありがとうございました。
0901デフォルトの名無しさん
NGNGではないので、ScanLine に相当するモノはもってない。Canvas 間の画像のコピーは
BitBlt()をラップした CopyRect() などを使うと高速で実行できるので、オフスクリーン
ビットマップに写し取ってから加工するという方法は、かなり一般的だよ。
0902デフォルトの名無しさん
NGNG一応ヘルプは読んだのですが意味解らんでした
>>873
どうしてそうなるのか自分で試してもよくわからなかったです
どうやら論理演算子とビット演算子というのが理解できてないみたいです
0903デフォルトの名無しさん
NGNGここ読んでみては?
http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N016.html
0904デフォルトの名無しさん
NGNGプログラムに触れたことは初めてです。
初歩的な質問なのですがデバッグのやり方が詳しく説明をされているHPなどは御存じ無いでしょうか?
OpenJaneで書き込みをしてみたところエラーダイアログがでるのですがその内容の意味すら分からないので
エラーダイアログの意味やバグを起こしている部分を探すやり方などを知りたいです。
よろしくお願いします。
0905デフォルトの名無しさん
NGNGF1キー押せ
0906デフォルトの名無しさん
NGNGありますよ。
GWIOPM と GIVEIO が有名です。
私はGWIOPMを使っています。 GWIOPM.pas をuses して
GWIOPM_Driver.:=TGWIOPM_Driver.Create;
Status:=GWIOPM_Driver.OpenSCM;
Status:=GWIOPM_Driver.Install('' )
Status:=GWIOPM_Driver.Start;
Status:=GWIOPM_Driver.DeviceOpen;
を順に実行
if ERROR_SUCCESS = Status then
begin
GWIOPM_Driver.LIOPM_Set_Ports(sadr, eadr, true); <-プリンタポートの開始アドレス 終了アドレス
GWIOPM_Driver.IOCTL_IOPMD_ACTIVATE_KIOPM;
GWIOPM_Driver.DeviceClose;
end;
GWIOPM_Driver.Remove;
GWIOPM_Driver.CloseSCM;
とやれば I/O命令がその部分だけ使えるようになります。
Win9x系ではこのサービス呼び出しが失敗しますがどうせI/O命令はそのまま使えるので両方で動くプログラムになります
0907デフォルトの名無しさん
NGNGfunction PortIn( adr:integer): integer;
asm
mov edx,eax
xor eax,eax
in AL, DX;
end;
procedure PortOut( adr,dt:integer );
asm
XCHG eax,edx
out DX, AL;
end;
0908デフォルトの名無しさん
NGNGTMemoにはCanvasが無いから、その変更したい位置のデスクトップDCを取得して
そこに描画するとかXORとかをかければ一瞬色は変えられるよ。
文字を編集したりすれば元に戻っちゃうけどね
0909デフォルトの名無しさん
NGNGttp://hp.vector.co.jp/authors/VA014436/prg_memo/delphi/c_d.html
ボタンの場合は
var btn:TButton:
begin
btn := TButton.Create(self); <- フォームのメソッドで書かれる場合はself でなければ親を指定
//親が無ければ selfはnilでもいいけど、その場合自分が管理しないといけない それにボタンは単独では存在できないので窓が必要
その後、
btn.Parent:=self; //Createの引数はメモリを管理してくれる所、これはどの窓に属するボタンかを示すために必要
後は、サイズや表示位置や表示するかどうかとかCaptionとかを指定する。
動的に作ったボタンは名前を付けなくてもいい。自分で変数名 例:btnで管理すればいいから。
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG起動→とりあえず全て保存→何故かアドレス読み込み違反
なんだかなぁ…
0913デフォルトの名無しさん
NGNGdel /S *.tds
del /S *.~*
del /S *.dsk
del /S *.dof
del /S *.dsm
del /S *.dcu
del /S *.DBG
del /S *.$$$
とかを実行してみたら? >>912
0914デフォルトの名無しさん
NGNGIDEにインストールされてるコンポーネントで、自作物のチェックを一つづつ外してから同じ事をして確認。
原因コンポが判ったら、それを再コンパイルしてみるとか、諦めるとか、デバッグするとか
0915デフォルトの名無しさん
NGNGポップアップメニューで、特定のフォルダの内部に置かれたファイルを
操作したいんですが、メニューをフォルダやファイルに対応させた
構造にする方法が分かりません。フォルダの構造を解析して、
フォルダやファイルに対応するメニューを作成すれば良いんでしょうが
その方法がよく分かりません。
どうすればいいんでしょうか。
ご教授お願いします・・・。
0916デフォルトの名無しさん
NGNGすまんが、言ってる内容の絵が浮かばない。
0917デフォルトの名無しさん
NGNG再帰処理
0918デフォルトの名無しさん
NGNG・ディレクトリの中身を解析するにはFindFirst関数(FindNext,FindClose)を使う
・実行時にメニュー項目を増やすには
TMenuItemのインスタンスを作りCaptionとOnClickプロパティを設定、
追加したいMenuItemのAddメソッドでそのインスタンスを指定する。
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG済みません、915は何か分かりにくいですね。
要はWindowsのスタートメニューやIEのお気に入りのように
メニューからプログラムフォルダ内のショートカットを立ち上げたりとか、
Favoritesフォルダ内のURLファイルを立ち上げたりとか、そういう風な
処理をしたいんです。
どうすればいいのか全く見当がつかないので、とりあえずメニューを
起動時に作成する処理を検索して見つけたソース↓
ttp://forum.nifty.com/fdelphi/faq/00138.htm
を元に適当に作ってみたのですが、
メニューを追加する事は出来たのですが、サブメニューを追加しようとすると
デバッガで「未定義の識別子:'Menu1'」と怒られてしまいます。
0921918
NGNG再帰処理で末端までファイルスキャンして一気にメニュー項目作る方法はあまり良くない。
(もの凄い時間がかかるし、リソースも無駄遣い)
「ディレクトリ」であるメニュー項目をポップアップした瞬間に、
直下にあるファイルのみをスキャンしてサブ項目を作成、これを表示させる方が良いと思う。
しかし、これがDelのVCLの機能だけではこういう事が出来ないんだ…
VCLのオーナードローイベントを流用する裏技もあるが、これはこれで面倒だし。
0922デフォルトの名無しさん
NGNGというより>>920の説明を見てさらに分からなくなった。
0923デフォルトの名無しさん
NGNG>>918
どうもありがとうございます。
参考にさせていただきます。頑張ります。
>>919
ええ?・・・もしかして結構難しい処理なんでしょうか?(;´Д`)
初心者なんでかなり不安です・・・。
0924デフォルトの名無しさん
NGNG作っておくには下のフォルダ見に行かないと行けないし
メニューアイテムにはonダブルクリック無いし
辛かったよホンマ。
0925915
NGNGどうもポップアップメニューという事が混乱の元になってるような気が・・・。
実は自分が作ってるアプリはメニューの代わりにツールバーを
使用してて、ツールバーのボタンを押すとボタンの上にポップアップメニューが
出てくるようにしてるんです。
単にメニューで出来る事を、ポップアップメニューで肩代わりしてるだけなんです。
ListViewなら簡単に出来そうですね・・・うう、誘惑に負けそう。
0926デフォルトの名無しさん
NGNGやりたいことは、その方向じゃないと出来ないのかな?
「ダイアログで開いて(?)何かする」って方向はダメなんかい?
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG漏れには少し絵が見えてきたかもしんない。
IEの[お気に入り(&A)]をクリックした時に出てくるメニューみたいなのをつくりたいって意味だよね?
違ったらもうだめぽ
>単にメニューで出来る事を、ポップアップメニューで肩代わりしてるだけなんです。
宿題か何か?
その方法を選んだ理由をきぼんぬ。
特に意味がないなら他の方法でええんじゃないかな
0929デフォルトの名無しさん
NGNGドロップするとでてくる奴だとおもう。
0930デフォルトの名無しさん
NGNGとりあえず、質問主は「他の代替法でも可って話」なら、一考すれってことで。
0931デフォルトの名無しさん
NGNGありがとうございます。なんとなく理解できました
0932デフォルトの名無しさん
NGNG白白白白白白白白白白白白
白白赤赤白白白青青白白白
黒黒赤赤黒黒黒青青黒黒黒 ←こんな線を描く事は出来ますか?
白白赤赤白白白青青白白白 (背景と違う色を避ける線を描きたい)
白白白白白白白白白白白白
0934デフォルトの名無しさん
NGNG出来る
0935デフォルトの名無しさん
NGNGDelphi 6 Personal を使っている初心者です。
標準電波を受信して、PCの時計合わせをするアプリを考えています。
受信機とPCはシリアルで繋ぐ予定ですが、
恥ずかしながら肝心の時計合わせの方法が分かりません。
Personal版のせいか、RecodeSecondやSecondOfが
使えないようなのです。
どなたか解決法をご教示いただけないでしょうか。
マルチになってしまいましたが、よろしくお願い致します。
0936デフォルトの名無しさん
NGNGとりあえずusesにDateUtilsを追加してみる。
0937デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/software/1058177751/
0938915
NGNG>IEの[お気に入り(&A)]をクリックした時に出てくるメニューみたいなのをつくりたいって意味だよね?
あ、そういう事です。そんな感じです。
>その方法を選んだ理由をきぼんぬ。
フォームの上に、メニューとツールバーの二列があると無駄に場所を取ってるような
気がしたので、メニューを作らずに、メニューの代わりにツールバー上のボタンを押すと
ポップアップメニューが出てくるようにしました。
でも確かに素直にメニュー使った方が楽ですね。
>>933
あ、ありがとうございます。早速使ってみます。
0939935
NGNGありがとうございます。DateUtils追加で SecondOfなどが使えるようになりました。
あと、Windows APIのSetLocalTimeというのを使わなければいけないのですね。
最初バグっていて、1899年になってしまったのにはビビりましたw
>>937
いや、そういうことじゃなくてw
0940デフォルトの名無しさん
NGNGプログラムを始めようと思っているのですが、C言語かC++言語にしようか
迷っています。ですが、友達からC++のソフトMicrosoft Visual C++ 6.0を
貰って、それをインストールしました。
これでも、C++のソフトでもC言語はできるのでしょうか?
あと、他にイイ言語があれば教えてください。
よろしくお願いします。
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGどこで聞いたらいいからわからなかったので、
とりあえず、相談室って書いてあったので、書き込んでみました。
0944デフォルトの名無しさん
NGNGまぁ、ここに来たのも何かの縁
Delphiやってみない?
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGWinプログラミング言語の一つ
0947デフォルトの名無しさん
NGNGスルー。
0948デフォルトの名無しさん
NGNG個人的には、ひまわり、HSP、VB、Delphiの中では一番感触良いと思う
0949デフォルトの名無しさん
NGNGで、Delphiっていうのは難しいんですか?
パソコンを触って1年ぐらいで、あまり知識がないと思ってるですが・・・
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNGDelphiいいよ
噛めば噛むほど味が出る
しかもPersonal版はフリー(無料)
0952デフォルトの名無しさん
NGNGそれは是非教えてほしいです!
詳しく、教えてもらえませんか?
時間があればでいいので
お願いします
0954デフォルトの名無しさん
NGNGhttp://oto.chu.jp/kujira/text/delphi/zero/
非GUIだらけなんで、あんまり面白くない。初心者にはオススメできない。
「少し」慣れたくらいで行くほうがいいかも。「他の言語でもいいや」って人はたぶん途中で投げてしまう。
結局ここを通ってしまった漏れは、GUIプログラミングに移行するのにかなり苦労した。
http://kakinotane.s7.xrea.com/
ここのDelphi入門は比較的楽しかった。
書籍なしでここまで来ちゃったよorz
0955デフォルトの名無しさん
NGNG漏れが初めてDelphiを勉強したのはここだったな。
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGクラス設計下手すぎ_| ̄|○
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG例えば、他のコンポの継承クラスを作る場合、Constructorと、Desructor
それぞれでinheritedする必要があると思いますが、これは自分自身(継承
元)をいじる場合以外には、基本的にinheritedはConstructorとDestructor
内の最も最後で行えばいいんでしょうか?
Destructorは特に流れからいうと、一番最後にinheritedすればいいように
思うのですが・・・
あと、TObjectの継承クラスの場合には、Createでinheritedしていない
サンプルが多いように思いますが、TObjectの継承クラスの場合は
Createでinheritedしなくてもよい(してもよい?)んでしょうか。
0961デフォルトの名無しさん
NGNGコンストラクターは最初にいんへりっど
デストラクターは最後にいんへりっど
でやってりゃあ間違いない。
0962デフォルトの名無しさん
NGNG>あと、TObjectの継承クラスの場合には、Createでinheritedしていない
>サンプルが多いように思いますが
TObjectのconstructorであるCreateは仮想メソッドじゃないからoverride出来ない
つまりinheritedは意味が無い
しかしTObjectのdestructorであるDestroyは仮想メソッドだからoverride出来る
つまりinheritedは意味がある
なんでDestroyが仮想メソッドかはどこかで説明があったはず
どわすれしたので、その辺は探しておくれ
0963962
NGNG今、ソース見ておもた
//引用TObject.Free
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
違ってたら、偉い方よろしく
0964デフォルトの名無しさん
NGNG了解です。ありがとうございました。
0965デフォルトの名無しさん
NGNGメモリリークが発生(MemCheck で確認)するんですが
何とか回避できないでしょうか?
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGinheritedを使うのに仮想メソッドであるかどうかは関係ない。
コンストラクタでinheritedを使うのは親クラスの初期化処理を任せるためだ。
TObject直下のクラスがコンストラクタをinheritedしないのは
TObject.Create自体に処理がないから省略しても問題ないと言うだけのこと。
0968デフォルトの名無しさん
NGNGどうすれば出るでしょうか?
IE5SP4+XML4SP2
0970デフォルトの名無しさん
NGNGDelphiWorldにあるDBCloneCtrlGridちゅうのを使って開発してたんだが
いざ、開発終了間近になって、MemCheckにてメモリーリークがないかチェックをしたのよ
そしたらDBCloneCtrlGridがリークしてるのよ・・・
しかもとんでもない数のリーク量・・・
DataSetをOpen,Closeするだけでどんどん増えていく・・・
なぁ、神よ、、お馬鹿なわしは直すことができない
どうか力をかしてくれまいか・・・
0971デフォルトの名無しさん
NGNG公開されてるコンポにエラーがあるなら作者に通報すべき
くれぐれも勘違いで先走らないようになw
0972970
NGNGサポートできないと言われました・・・
はぁ、まじ鬱だ、、自分の技術力の無さに・・・
0973デフォルトの名無しさん
NGNGメモリリークなんてほとんど修復不可能じゃん。
あきらめてそのコンポを使うのやめれ。
0974970
NGNGあきらめて、他を探してみます
返答、ありがとうございました
0975デフォルトの名無しさん
NGNG> いや、それがもうDelphi使って無いらしくて
> サポートできないと言われました・・・
見てみるから、ソース頂戴って言ってみたら ?
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGくだすれDelphi(超初心者用)その13
http://pc5.2ch.net/test/read.cgi/tech/1081003641/
0978デフォルトの名無しさん
NGNG乙です。
0979970
NGNG実はソースはあるのですが
ほんとかなりの量で、しかもDataBase系のコンポ・・・
DataLinkとかなにやら聞いたことのないものから継承してて・・・
今日もしばらく見てみましたが、けっきょくわからず・・・
ただただ、私の技術がないのを再確認しただけにいたりましたです・・・
0980デフォルトの名無しさん
NGNG> ただただ、私の技術がないのを再確認しただけにいたりましたです・・・
なら、あきらめるしかなかろ。
0981デフォルトの名無しさん
NGNGするにはどうすればいいですか?
0982デフォルトの名無しさん
NGNG日某のQ&A
0983デフォルトの名無しさん
NGNG0984ななしへたぐらま ◆XcB18Bks.Y
NGNGvar
NewColumn: TListColumn;
(中略)
NewColumn := ListView1.Columns.Add;
NewColumn.Caption := '見出しだ';
…みたいな感じで.
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG今のPCはメモリいっぱい積んでるんだから気にするな。
クライアントで動かすんなら就業時間しか使わないから、日々PC再起動で問題ないでしょ。
あとでこっそり直しとけ。
0987デフォルトの名無しさん
NGNG俺だったら嬉々としてやるね。
0988デフォルトの名無しさん
NGNG結構簡単に治るかもよ。
0989デフォルトの名無しさん
NGNGVCLオブジェクトならNameやClassNameから検索できるだろう
0990デフォルトの名無しさん
NGNGFindClose関数を呼び出すと必ずTSearchRecが引数になっている方が
呼び出されるんですか?
Windows.pasにWin32APIのFindCloseの定義が書かれていますが
こちらを呼ぶ場合は毎回Windows.FindCloseなどのような書き方を
する必要があるんでしょうか。
よろしくお願いします。
0991デフォルトの名無しさん
NGNGWindows.pas にある。コンパイラは uses 節の後ろのほうから探すので、上記の
pas の順番を入れかえると、Windows.pas のほうが優先される。しかし、ほかにも
API とダブってる関数やメソッドがあるので、順番の入れ替えはしない方がいい。
毎回 Windows.FindClose() のように書くのを勧めます。
0992デフォルトの名無しさん
NGNG誠にありがとうございました。
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGuses 節の前のほうに Windows があるので、クラスの TBitmap はそのままで
使えるね。
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNGそういうときこそGarbage Collectionコンポの導入ですよ
昔どっかに落ちてて拾ったょ
0998デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1081003641/
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。