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

モナーの *やさしい* Delphi質問スレ Ver.8

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

前スレ モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/tech/kako/1021/10212/1021262086.html
0446デフォルトの名無しさんNGNG
>>445
・X-Windowsってなんですか?(お約束)
・Delphiとなんの関係があるんですか?(お約束)
0447デフォルトの名無しさんNGNG
>>446
ごめん、X-WIndowだった。
0448デフォルトの名無しさんNGNG
って言うかわざとだろ。debianネタふってる奴。
0449445NGNG
間違えましたー
0450デフォルトの名無しさんNGNG
>>444
ありが�d。
バイナリティエディタか。・・・・・なんだよそれ。
0451デフォルトの名無しさんNGNG
モナーさん、質問です。
スタートボタンとストップボタンを作ります。
スタートボタンを押すと、「repeat 〜 until 〜;」を用いた無限ループである処理をして、
ストップボタンを押すと止まる様な処理をしたいのです。
無限ループをそのままにしておくと、他のボタンが効かなくなってしまうので、
ApplicationのProcessMessageを使えば良いと思い、
repeat
 〜
 Application.ProcessMessage;
until 〜;
としてみたのですが、巧くいきません。
Del6 Personalです。
関係ないですけど、作ってるのはTListBoxに素数を列挙するという物です。
解決法、よろしくお願いいたします。
0452デフォルトの名無しさんNGNG
フラグを用意しておいて
スタートでフラグON
ストップでフラグOFF
ProcessMessagesをしたあとにフラグの状態を調べ、
OFFになってたらループを抜ける
0453デフォルトの名無しさんNGNG
すいません、ListBoxのアイテムの重複をなくすにはどうすればでしょうか。
0454デフォルトの名無しさんNGNG
>>452
ありがとうございます。
この件のやり方はわかったのですが、ProcessMessage自体がよくわかってないっぽいです…。
0455デフォルトの名無しさんNGNG
>>453 たしかプロパティに重複禁止 と言うのがあったようなー
んで、.sort だったようなー
0456素人NGNG
>>454
別にProcessMessageにはループうんぬんに直接関係あるワケでなくて、
「固まらないようにする」ってことです。
うまくいかないってどのへんがだろう?
var flag:boolean;
とかなんとかやってますか?フラグ用意して、最初にfalseにして、
「止めたい方のボタン」にフラグをtrueにするようにして、
trueならやめると…。
前にも同じ様な質問あったな…。
0457デフォルトの名無しさんNGNG
素直にマルチスレッドにしてはどうか?
0458素人NGNG
むむッ?激しくトンチンカンなレスした予感…。
だとしたら失敬。
456は忘れて。
ボスケテ。
0459デフォルトの名無しさん NGNG
坊さんと出るかい?
0460デフォルトの名無しさんNGNG
delphiproのDemos→Internet→chat→clientのTimerって何をしてるんでしょうか?
0461デフォルトの名無しさんNGNG
こんなドメインが立ち上がっておりますた。
http://dotnet.borland.com/
0462デフォルトの名無しさんNGNG
delphiのサンプルってあまり落ちてない?
http://www.planet-source-code.com/vb/default.asp?lngWId=7
ぐらいしか見つからなかった・・・(´Д`;)
0463デフォルトの名無しさんNGNG
何のサンプルがほしいんだよ。
0464デフォルトの名無しさんNGNG
tp://www.nifty.ne.jp/forum/fdelphi/samples/index.htm
ここは?
0465デフォルトの名無しさんNGNG
DELPHIで作られたアプリを逆コンパイラしてソースを見せてくれる
ソフト、または方法ってある?

http://www.vector.co.jp/soft/win95/prog/se189339.html
逆コンパイラっぽいものはあるけどソースは見れない。

無いならないでいいが。
0466 NGNG
リヴァースエンヂニアリングッナ!
0467デフォルトの名無しさんNGNG
フォームの変更ならResourceHackerでできる。
あと文字列はエディタで見ればモロ見え。
レジストリの記録場所も分かる。
なんのDLL使ってるかも分かる。

でもソースは無理。
0468デフォルトの名無しさんNGNG
Del6製のアプリには使えないっぽいんだけど。<ResourceHacker
0469デフォルトの名無しさんNGNG
>>468
別にリソース除く程度なら、ResHackerじゃなくてもいいべ。
VisualStudioのIDEでも覗けるし、フリーとかもいっぱいあるべ。
0470465NGNG
>>467

どもども

やっぱ無理ですか・・ 無念。

逆コンパイルを逆コンパイラと書き間違えたのは秘密。
0471デフォルトの名無しさんNGNG
馬鹿ばっか

生産的な話をしろよ
0472 NGNG
>>471
生産的な話をしろよ
0473デフォルトの名無しさんNGNG
凄惨的な話
0474デフォルトの名無しさんNGNG
現在開いているファイル名の取得はどのように行なったら宜しいのでしょうか?
QuickReportなどに貼っているTtableのtablenameに送りたいのですが・・・

素人な質問で恐縮ですが、よろしくお願いいたします。
0475デフォルトの名無しさんNGNG
>>474
自分で開いたなら自分でわかるだろ
0476474NGNG
>>475
OpenDialogなどで開いたファイルをプログラムの変数として扱いたいです。
0477デフォルトの名無しさんNGNG
Del厨ってやっぱ馬鹿だな(藁
0478デフォルトの名無しさんNGNG
>>477
悪い、これに関しては謝罪するわ。
0479478NGNG
× >>477
○ >>471
0480デフォルトの名無しさんNGNG
>>479
誰お前?
0481デフォルトの名無しさんNGNG
>>480
>>478です。
0482デフォルトの名無しさんNGNG
>>481
楽しい?
0483478 ◆fMJJkErc NGNG
>>481
偽者さん、必死だな。
0484478 ◆RbZL6NeQ NGNG
>>483
まったくだ。
0485478NGNG
本物はトリップつけてない奴です。
0486478 ◆gybBZ7HI NGNG
俺が本物かもしれない。
0487487NGNG
>>479-486
おい。お前ら俺を騙るのはよせ。
0488デフォルトの名無しさんNGNG
     ///////
    ///////____________
    ///////  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄
   ///////              (~) チリンチリン
   ///////              ノ,,
  ///////     ∧_∧         / ̄ ̄ ̄ ̄ ̄ ̄
  ///////     ( ´∀`)( 厨 ) )) <  夏だなあ〜
 ///////      (つ へへ つ      \______
///////   //△ ヽλ  ) ) 旦
//////  l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
/////    ̄| .| ̄ ̄ ̄ ̄ ̄ ̄ ̄| .| ̄
////     ^^^          ^^^

    2chの夏。厨房の夏。
0489デフォルトの名無しさんNGNG
Del厨の夏は篤いぜ!
0490デフォルトの名無しさんNGNG
日本はまだまだ暑いと聞くけど、何かあったのかな?

書き込みにクッキー必須になっているし
0491デフォルトの名無しさんNGNG
荒れギミですが...ちょっくら質問。

Inprise が保証しないのは承知ですが、Delphi4 で作成
したアプリはWinXP で動きますか?
232C とメモとファイルアクセス程度なんですが。
Delphi4 標準の Component & API を使用して作るつもりです。

0492デフォルトの名無しさんNGNG
>>491
OS の互換性の保証は OS メーカー側なんだけどね。
XP のビジュアルスタイルを使わなければ、大きな問題は出ません。D3 の
アプリ、使っています。

問題が出やすいのは、オーナードロー。MS がコモンコントロールの動きを変えたので
状況によってはちらつきや、再描画の遅延が起きます。
0493デフォルトの名無しさんNGNG
朝、ご質問をしたのですが少々荒れていて埋没してしまいましたので改めまして、

現在開いているファイル名の取得はどのように行なったら宜しいのでしょうか?
QuickReportなどに貼っているTtableのtablenameに送りたいのですが・・・

素人な質問で恐縮ですが、よろしくお願いいたします。
0494デフォルトの名無しさんNGNG
>>493
自分で開いたなら自分でわかるだろ

... 「現在開いているファイル名」誰が開いたファイル名を取得したいの?
0495491NGNG
>>492
Thanks です。
Delphi3 をお使いですか。
だったら Delphi4 でも大丈夫そうですね。

> OS の互換性の保証は OS メーカー側なんだけどね。
「仕様です。」 って返事 Only ですからな〜。 (w
0496デフォルトの名無しさんNGNG
>>494
OpenDialogなどで開いたファイルを変数として
動的にTtableのtablenameを変えたいです。
0497ANGNG
>>496
普段、OpneDialpgってどうやって使ってるの?
OpenDialogでユーザーが指定したファイル名の取得が分からないってわけじゃないよね?
もしそうなら、OpneDialogって使えないし、それが判るなら、何がわからないのかわからない…
とりあえず、OpneDialogの、FilenameプロパティはString型。でヒントになる?
0498493NGNG
>>497
買ってきた本と睨めっこをしながら手探りで、まだ知識となっていないので
書いているコードなどが、何を差してるか分かっていなかったです。
ヒントになりました、ありがとうございました。
0499yuuNGNG
プログラムの実行時に動的にコンポーネントを生成してそれをフォームなどに
表示するにはどうしたらいいでしょうか?

例えば、ラベルを生成してフォームのLeft20、Top40の位置に表示するにはどう
すればいいでしょうか?
0500デフォルトの名無しさんNGNG
>>498
がんがれ!

Help は使い難い(分かり難い)けど、Help を使う癖をつけよう。
OpenDialog にカーソルを置いて F1 だ!
0501ryuNGNG
http://www.nifty.ne.jp/forum/fdelphi/faq/00117.htm
>499
0502yuuNGNG
>>501
ありがとうございました。
出来ました。

これで夏休みの課題も終わりました。
感謝です。
0503デフォルトの名無しさんNGNG
かわいいエイリアンって何ですか?
0504デフォルトの名無しさんNGNG
遊ぶかね欲しさに遺憾の意を表明ってことです。
0505デフォルトの名無しさんNGNG
ネタスレで質問してる人は、相談スレに行ってください
0506デフォルトの名無しさんNGNG
*と*.*ってどう違うんですか?
0507デフォルトの名無しさんNGNG
>>506
使う局面による。
0508デフォルトの名無しさんNGNG
TPanelを継承したTKsBlockというクラスを別ファイルで作りました。
動的にパネルを配置し、パネルをマウスでクリックしたときbeepを鳴らしたいのですが、
うまくいきません。教えてください。m(__)m
********
unit Unit1;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, KsBlock, StdCtrls;
type
TMainForm = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
public
procedure KsBlockMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
end;
var
MainForm: TMainForm;
block: TKsBlock;
implementation

procedure TMainForm.KsBlockMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Beep;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
// ↓ここで、エラー。イベントの関数を割り当てたい。
// block.OnMouseDown := KsBlockMouseDown;
end;

// ボタン押したら、動的にコンポーネント作成
procedure TMainForm.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
block := TKsBlock.Create(MainForm);
block.Parent := MainForm;
block.Left:= 100; block.Top:= 100; block.Width :=100; block.Height:= 100;
beep;
end;
end.
0509デフォルトの名無しさんNGNG
unit KsBlock;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls;
type
TKsBlock = class(TPanel)
private
public
constructor Create(AOwner: TComponent);
end;
implementation
constructor TKsBlock.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
end.
0510508,509NGNG
長文スミマセン。
タブがそろって見づらくなってしまいました。
0511デフォルトの名無しさんNGNG
>>508
エラーの原因は
Createで まだ作ってないインスタンスのメンバ(プロパティ)に代入しようとしてるから

それと、そのやり方だと 古いblockはどうなるの?
単にどんどん作りたいなら
 with TKsBlock.Create(MainForm) do begin
  Parent := MainForm;
  OnMouseDown := KsBlockMouseDown;
  Left:= 100;
  Top:= 100;
  Width :=100;
  Height:= 100;
 end;
beep;

とすればいいし、別の仕様ならそれなりに考えて
0512508,509NGNG
>>511
ありがとうございます!!!烈しく感謝です!!!!!
0513デフォルトの名無しさんNGNG
すみません、ヘルプファイルをHTMLで書いたのですが
これをInternetExplorerを起動して見たいのですが
どの様にしたら良いのでしょうか?

−MSのHTML-helpと言うのもあるみたいですが、変更箇所もまだまだ出るので
普通のハイパーテキストとブラウザを使いたいです。

どなたか優しい御仁、素人な質問ですみませんがよろしくお願いします。
0514デフォルトの名無しさんNGNG
そのファイルをExplorerからダブルクリックするだけだろ・・・
プログラムから開きたいならShellExecute使え
0515513NGNG
絶対パスではなくて、そのPCごとにあったように
相対パスの書き方で、できればお願いします m(_ _)m
0516513NGNG
>514
素早いレス、ありがとうございます。
ShellExecuteと言うのがあるのですね。
この後、使い方を調べてみます。

・・・でも相対パスの書き方は、僕のスキルだと難しそうです。
0517デフォルトの名無しさんNGNG
ExtractFilePath(Application.ExeName) + 'help\index.htm'
0518513NGNG
>517
あ、ありがとうございます。 ・・・たぶん、僕宛てですよね。

素人なのでこれが何を差しているかどの様に使うのか、ちょっと謎です。
すみませんが、もう少しヒントをください。

それとShellExecuteのHelpを見たのですが、日本語化されてないのですね。
ちょっと手強いです・・・
0519デフォルトの名無しさんNGNG
>>518
あれくらいの〜英語くらい〜読めないと〜
0520デフォルトの名無しさんNGNG
MSDNの英語くらい諦めずに嫁
0521デフォルトの名無しさんNGNG
ExtractFilePath

これのことでしょ
0522デフォルトの名無しさんNGNG
MSDN見れば日本語でみれるっしょ……
そうでなくても、google見れば、MSDNがイヤでも引っかかるご時世なのに……
0523 NGNG
(´-`)。o ○ (多分、「ヒント」じゃなくて、「ズバリ(ソースとか)」
じゃないと、解決しない予感…)
0524デフォルトの名無しさんNGNG
(´-`).。oO( そのまえに、相対パスと絶対パスの違いを教えてやんなさいな )

それすら知らないプログラマがいたなんてかなりびくーり。
ぷろんぷとって使ったことないのかな?
いまどき、Webデザイナですら知ってる言葉なのに・・・・。
0525デフォルトの名無しさんNGNG
>>524
Webデザイナだから知ってるんだよ。
0526 NGNG
(´-`)。o ○ (ウィンドウズ・エックスペー世代はDOSなんて
いじったことなかったりして…)
0527デフォルトの名無しさんNGNG
そうなのかも、チョット切ないね。
あんな便利な物が過去の遺物扱いになってしまうなんて・・・。

漏れにとってはデザインのいけてないアプリなんかよりシェルのほうが使いやすいがな。
でもステキデザインのアプリは別、ユーザインターフェイスとしてね。
0528デフォルトの名無しさんNGNG
>>518
ExtractFilePathとApplication.ExeNameは日本語のヘルプがあるだろ
それくらい読め
0529デフォルトの名無しさんNGNG
無内容なレスばっかり・・・
0530デフォルトの名無しさんNGNG
529=無内容なレス
0531デフォルトの名無しさんNGNG
ばーか 俺のはメタレスだ
0532デフォルトの名無しさんNGNG
>>529-532
>530
0533デフォルトの名無しさんNGNG
>>529
procedure hoge;
begin
showmaeesge('>>529=質問者はソースが書いてないレスは一律無内容のようです。');

end;
0534デフォルトの名無しさんNGNG
質問です。
ウィンドウForm1があって、その中にScrollBoxLとScrollBoxRが左右に2分割してあります。
右側のScrollBoxR上のPanelをマウスで摘んで左側のScroolBoxLに配置したいと考えています。

右側のPanelをマウスでクリックしたときに、Panel.parentをForm1とするPanelを動的に作ろうとしたのですが、
作った瞬間、ウィンドウの同座標にPanelが作成されるまではいいのですが、左側のScrollBoxLの
エリアが右側に広がって、ScrollBoxL上のパネルになってしまいます。

どうすればいいのでしょうか?
ScrollBoxLとScrollBoxRをまたげるPanelというのは作れないのでしょうか?
また、このようなプログラムを作る場合、どういう方法がベストでしょうか?

よろしくお願い致します。m(__)m
0535デフォルトの名無しさんNGNG
SetParent()
0536534NGNG
>>535
ありがとうございます!! ヽ(´∀` )ノ
でも、Panel.parentで指定してますし、改めて、SetParent()やってみましたがダメでした。
しかし、その後いじくっていて、Form1.AutoScrollをtrue→falseにしたら、
うまくいくようになりました。

動的にパネルを配置したときに、なんでか左側のScrollBoxLの範囲に乗っかるように
Windowがスクロールされてしまうみたいです。
0537インフラ担当NGNG
あの初心者からの質問ですが・・・
今度、Delphi Studio 7がでますが、あれを使うと .NETフレームワーク
アプリを作れるようになるのでしようか?
これからは、Webアプリを作ることが多くなる一方、Delphiの方が
開発速度もはやいときいているんで、こっちを書いたんですけどね。。
0538デフォルトの名無しさんNGNG
>>537
.NETを使うなら開発速度はDelphiもC#もVB.NETも同じ。
Delphiの開発速度がはやいというのは.NETに対応していないVC等に対して。
特に理由がなければC#にしとけ。
0539デフォルトの名無しさんNGNG
>>537
.NETアプリを作成する際にMSの開発環境以外を選択する理由は
安置MSであることのみ。とBorland自身が言っている。

もはやBorlandの技術的アドバンテージは皆無って事。

仮に安置MSであったとしてもDel7は最悪の選択肢なので
せめてDel8まで待ったほうがいい。
0540デフォルトの名無しさんNGNG
>>539
> NETアプリを作成する際にMSの開発環境以外を選択する理由は
> 安置MSであることのみ。とBorland自身が言っている。
ソースキボン
0541デフォルトの名無しさんNGNG
Delphi.NETスレ作らね?
0542デフォルトの名無しさんNGNG
いらない。
0543インフラ担当NGNG
レスありがとうございます。
以前は、dllファイル不要(?)のDelphiアプリってすごい魅力的だったように
思ったのですが、今では VB.NETでも同じですか。。
じゃあ、VB.NETを覚えようと思います。
0544デフォルトの名無しさんNGNG
>>543
参考までに.NETのDelphiはDLL必要。
0545デフォルトの名無しさんNGNG
なんだ、Delphiにランタイム要るのか。
全然ダメだね。(藁
■ このスレッドは過去ログ倉庫に格納されています