Delphi相談室(超初心者用)その11
■ このスレッドは過去ログ倉庫に格納されています
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/
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 では一行エディットで右寄せにできません
■ このスレッドは過去ログ倉庫に格納されています