2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

くだすれDelphi(超初心者向け) Part5

1 :デフォルトの名無しさん:03/08/17 12:28
このスレッドは、

他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが
分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の
救済をお願いします。

2 :デフォルトの名無しさん:03/08/17 12:28
くだすれDelphi(超初心者向け) (Part1)
http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
くだすれDelphi(超初心者向け) Part2
http://pc2.2ch.net/test/read.cgi/tech/1053757982/
くだすれDelphi(超初心者向け) Part3
http://pc2.2ch.net/test/read.cgi/tech/1055986736/

3 :デフォルトの名無しさん:03/08/17 12:29
リンク集
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

4 :デフォルトの名無しさん:03/08/17 13:01
 M
| -_- |


5 :デフォルトの名無しさん:03/08/17 13:09
このスレッドは、

オフでは話せない引き篭り、もしくは質問者自身何が何だが
分からないバカ質問を勇気を持って糾弾するスレッドです。

糞Delphi使い(しかも使いこなせない)が低脳を振り絞りコメントを返しますが、
お礼は糞Delphiの撲滅と上級者だと思っている初心者の駆除をお願いします。

6 :デフォルトの名無しさん:03/08/17 13:19
>>5
は、いかなるツールを使ってもアプリひとつ作れないに50,000ユーロ

7 :デフォルトの名無しさん:03/08/17 14:27
[F9]であっという間に出来あがりなわけだが

8 :デフォルトの名無しさん:03/08/17 14:29
それがDELの良いところ

9 :デフォルトの名無しさん:03/08/17 16:14
フレームの初期化処理は、どのイベントに書けばよいのでしょう?

10 :デフォルトの名無しさん:03/08/17 16:14
前スレ

http://pc2.2ch.net/test/read.cgi/tech/1058834815/

11 :デフォルトの名無しさん:03/08/17 16:26
>>9
フレームもクラスだから Create を継承して書けばいいと思うけど?

ただ、フレームはチョコっと使うには便利だけど、初期化処理までそこに書くような場合は
コンポーネントにした方がいいと思うけどなあ


12 :デフォルトの名無しさん:03/08/17 16:35
>>11
処理にもよるけどCreateは早すぎな気が。
フレーム内のコンポーネントを操作できないからね。

>>9
TFrameの宣言に
protected
 procedure Loaded; override;
って追加してLoadedに書けばいいかも。

13 :デフォルトの名無しさん:03/08/17 16:38
フレーム使わずに、フォームにして ドッキング使う方が楽かもね

14 :デフォルトの名無しさん:03/08/17 17:07
なぜ、Delphi使ってる人は引き篭りが多いのですか?

15 :sage:03/08/17 17:11
>>14
それはね、ティムポが小っちゃいからだyo

16 :デフォルトの名無しさん:03/08/17 17:13
>>14
キタキター

17 :デフォルトの名無しさん:03/08/17 18:57
Dockって位置情報の保存・復旧も含めてもっと簡単にならないのかね。
サンプル読んでいろいろやろうとしたけどめんどくさすぎ。
がんばってラップすればいろんなプロジェクトに簡単に適用できるようになるのかな。

18 :デフォルトの名無しさん:03/08/17 21:54
BorderStyle := bsNone;
BoundsRect := Rect(0, 0, Screen.Width, Screen.Height);
でフォームを最大化した時、それに併せてボタンを同じ倍率で拡大するにはどうすればよろしいのでしょうか?

19 :デフォルトの名無しさん:03/08/17 22:14
>>18
同じ倍率でWidth、Heightやフォントサイズを変更すればいいでしょう。
Excelや拡大鏡のように見た目をそのまま拡大縮小する必殺技もありますが。

20 :デフォルトの名無しさん:03/08/17 22:46
フサギコ新スレ建たないな〜

21 :デフォルトの名無しさん:03/08/17 22:58
CSV形式のTextfileの、ある行の特定の1バイトだけ
書き換えるには、どうしたら良いのでしょう?

例)8行目の
"0","3","2"
"3"を"1"に書き換えるには?

file of Byte で読み出すと、場所が分からない。
Textfileでやると、ファイル全部を書き直すしか
方法が無いように思うし。
スマートな方法がありましたら、概略で良いので
教えて下さいませ。


22 :デフォルトの名無しさん:03/08/17 23:07
>>21
そのどっちかしかないよ。前者の場合先頭から一バイトずつ解析していけば可能。
TStrings二つ使ってやるのが楽かも
lines.LoadFromFile('foo.cvs');
for i := 0 to lines.Count-1 do
begin
 values.CommaText := lines[i];
 ...
 lines[i] := values.CommaText;
end;

23 :デフォルトの名無しさん:03/08/18 00:44
 ∫,,,,,,,,,∧,,∧  ・・・
⊂,,,,,,,,,つ,,゚Д゚ミつ
>>17
同意

>>20
ど・・・どお・・・ドウイ・・・

>>21-22
ニケーイそふとではRubyやPerlなら
簡単に出来る〜
って書いてたな…

24 :デフォルトの名無しさん:03/08/18 01:49
Win32Check使うとでる警告をOffにするにはどうすればいいの?
移植性なんて全然興味がないので。

25 :デフォルトの名無しさん:03/08/18 02:02
Perl の連想配列みたいなものはありますか?

 list['key] := 'value';

とか書けたらうれしいのですが。

26 :デフォルトの名無しさん:03/08/18 02:03
>>25
Map

27 :デフォルトの名無しさん:03/08/18 02:04
TStrings.Values[]

28 :25:03/08/18 02:08
>>26, 27
おお、ありがとうございます。
早速、調べてみます。

29 :デフォルトの名無しさん:03/08/18 02:09
>>24
http://hp.vector.co.jp/authors/VA011889/delphi/delphi6.htm

30 :Delフサギコ ◆A6VzDeLphI :03/08/18 02:26
    ∧,,∧    いまさらなんですが.....
   ミ,,゚Д゚彡
    ミ つ旦)~~ 
  〜と,,,~),,~)
Destroyが仮想メソッドなのは
TObject.FreeからちゃんとDestroyが呼ばれる
為に必要。と激しくわかた積もりです。

で、Createの方なのですが
自分で暮らすを作る場合
Createは仮想にする必要があるのでしょうか?
自分で多々井を使うような場合はとても必要なのだとわかりますが

そういう用途がなければ
静的メソッドで隠してしまってもいいのですか?

・TObject継承ならオッケとか、オッケくないとか。
・TComponent継承ならCreateは仮想でoverrideとか、
・俺はいっつも仮想でoverrideとか  
そういう、ご意見教えてください。


31 :デフォルトの名無しさん:03/08/18 02:48
>>30
>自分で多々井を使うような場合はとても必要なのだとわかりますが
これがどのレベルの多胎のことを言ってるのか分からないけど

type TMyObject = class;
TMyObject2 = class(TMyObject); constructor Create; virtual; end;
TMyClass = class of TMyClass constructor Create; override; end;

function CreateObject(MyClass: TMyClass): TObject;
begin
 Result := MyClass.Create;
end;

とするときvirtual/overrideがあればCreateObject(MyClass), CreateObject(MyClass2)は
それぞれ期待したインスタンスを生成できるが
なければ両方とも基底クラスであるTMyClassのインスタンスが生成されてしまう。

だから判断基準はクラス参照経由でコンストラクタが呼ばれる可能性があるかどうか。ということ。

32 :31:03/08/18 02:57
激しく間違えた。>>31は無し。

type
TMyObject = class constructor Create; virtual; end;
TMyObject2 = class(TMyObject) constructor Create; override; end;
TMyClass = class of TMyObject

function CreateObject(MyClass: TMyClass): TObject;
begin
 Result := MyClass.Create;
end;

とするときvirtual/overrideがあればCreateObject(TMyObject), CreateObject(TMyObject2)は
それぞれ期待したインスタンスを生成できるが
なければ両方とも基底クラスであるTMyClassのインスタンスが生成されてしまう。

だから判断基準はクラス参照経由でコンストラクタが呼ばれる可能性があるかどうか。ということ。
実際にはclass of でクラス参照を定義したクラスのコンストラクタをvirtualにすればいい。

33 :ななしへたぐらま ◆XcB18Bks.Y :03/08/18 03:03
>>20
立てました.

ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室2
http://pc2.2ch.net/test/read.cgi/tech/1061142216/

サブジェクトが長すぎるとはねられたのでカタカナが半角になっております.
って,早速ミスか…すまんです._| ̄|○


34 :デフォルトの名無しさん:03/08/18 06:36
何やってもへたれ('A`)

35 :21:03/08/18 08:19
>>22
やっぱり、他に方法は無いわけですか。
ありがとうございました。


36 :デフォルトの名無しさん:03/08/18 10:49
チェックボックスを複数配置し、これをラジオボタンのように、複数チェックできないよう
制御できるでしょうか?

実際にこういったことをするかどうかはともかく、そういう動きの方法が思いつきません……。


37 :デフォルトの名無しさん:03/08/18 10:53
>>36
OnClickイベントでSender以外のチェックボックスのチェックを全てはずす。

38 :36:03/08/18 10:56
>>37
それは試してみたのですが、最初にチェックをつけ、別をチェックしたとき、
元のチェックは消えるのですが、現チェックが付かないのです。

書き方が違うのだろうか。

39 :デフォルトの名無しさん:03/08/18 11:05
>>38
それは多分Checked := FalseしたときにさらにOnClickイベントが発生してしまうから。
多重にイベントが発生しないようにすればいいよ。

var updating: Boolean;

procedure TForm1.ChckBoxOnClick(Sender: TObject);
begin
 if updating then Exit;
 updating := True;
 try
  ... // メインの処理
 finally
  updating := False;
 end;
end;


40 :デフォルトの名無しさん:03/08/18 11:24
Delphi7でXMLを扱う場合、XMLDocumentコンポーネント使うのと、
MSXMLを改めて取り込むのとどちらの方がいいんでしょうか?
それとも使いやすいXMLクラスがどこかで提供されているんでしょうか?

41 :36:03/08/18 11:25
>>39
できました。ありがとうございます。
なるほど……。

42 :デフォルトの名無しさん:03/08/18 11:28
>>40
どういうふうな使い方をしたいの?

43 :40:03/08/18 11:39
>42

読み書き。
それほど大したことを使用とは考えてません。
普通に読み書き、多少の検索程度で。

ついでなんですが、どっかで使い方解説しているサイトありませんか?

44 :デフォルトの名無しさん:03/08/18 11:48
>>43
そうか。自分も最初色々調べたけど、そういうの使いこなすの結構めんどくさいから
状態遷移形で自分でパースしてやってる。
使いたい部分を見つけてそこを切り出してその前後は変更しないようにすりゃ他人にも迷惑がかからず
手間もごく小さいしね。

45 :デフォルトの名無しさん:03/08/18 13:40
FileStreamでFileAを元にFileBを作成、
両者をFreeAndNilした後に、MoveFileExでBでAを上書きしようとすると、
たまにエラーが返ってきます。

どうも書き込み終了より先にファイル移動しようとしてしまって、
エラーが出てるようなのですが、対処策って何かありますか?



46 :デフォルトの名無しさん:03/08/18 17:07
http://forum.nifty.com/fdelphi/samples/00003.html
↑のページの通りにやってもできねーぞ。
ご指摘お願いします。

47 :デフォルトの名無しさん:03/08/18 17:09
>>46
マルチすな

48 :デフォルトの名無しさん:03/08/18 17:13
MainMenuコンポーネントのMenuItemのShortCutプロパティに
どうすれば「Ctrl+Shift+S」とか、プロパティのコンボボックスにない
パターンを設定できますか?

49 :デフォルトの名無しさん:03/08/18 17:34
>>48
コンボボックスになくても書ける。
内部ではTextToShortCutが使われていると思われる。

50 :48:03/08/18 17:38
>49

あ、本当ですね…

51 :デフォルトの名無しさん:03/08/18 19:16
tabsheet1の子コントロールにmemo1があったとします
memo1からtabsheet1を取得したいのですがどうやれば出来るでしょうか?

52 :デフォルトの名無しさん:03/08/18 19:28
memo1

53 :デフォルトの名無しさん:03/08/18 19:38
(memo1.parent as ttabsheet)

54 :デフォルトの名無しさん:03/08/18 19:44
>>52-52
ありがとうございました

55 :デフォルトの名無しさん:03/08/18 20:43
delphix delphi6に対応してくれんかのぉ

56 :デフォルトの名無しさん:03/08/18 22:33
Stringってポインターですよね?
ってことは、乱用すると実行時に
メモリーの断片化を起こすような
気がするのは、気のせい?


57 :デフォルトの名無しさん:03/08/18 22:50
気にスンナ。
んなこといったらDelのクラスインスタンスは
全てヒープに確保されるから何も作れなくなるぞ。

58 :デフォルトの名無しさん:03/08/18 23:22
>>55
だ か ら 、 動 く っ て 

オレは、この発言を見るたびにいって(ry
googleで検索してくれ。お願いだから。

堀さんも堀さんだよ。忙しいのは分かるけれどインストール方法くらい、
本家に書いてあげてくれよ。

59 :デフォルトの名無しさん:03/08/18 23:31
wikiにでも書いてまとめろや

60 :デフォルトの名無しさん:03/08/18 23:42
これを使うがよい。ガイジンさんが改造してくれてる。

ttp://turbo.gamedev.net/undelphix.asp
>Quite simply, UnDelphiX is a unofficial version of DelphiX powered by the official JEDI DirectX headers. It also has various "Better English" error messages, comments, and samples. It also will include DXG and DXW editors with full source.

61 :デフォルトの名無しさん:03/08/18 23:48
メガネ、巨乳、少女、緊縛、美女、ストッキング。
さあ貴方の股間をムズムズさせる語句はいったいいくつありますか?
全てのエロを網羅した作品です。
アニメとはいえこれだけたくさんのフェチ心をくすぐる作品はめったにありません。必見!!
無料ムービーをご覧下さい。
http://www.pinkfriend.com/


62 :デフォルトの名無しさん:03/08/18 23:57
>>57
了解。ワスレます。

63 :デフォルトの名無しさん:03/08/19 01:45
>>45
バッファフラッシュかな。

64 :デフォルトの名無しさん:03/08/19 01:47
>>62
そんなことでパフォーマンスを下げるよりもっと良い開発環境に切り替えるべきです。

65 :デフォルトの名無しさん:03/08/19 03:58
>>56
DHGL(ttp://www.asahi-net.or.jp/~HA3T-NKMR/DGS/DownLoad.htm)
メモリ断片化対策メモリマネージャが入っている

66 :デフォルトの名無しさん:03/08/19 06:46
>メモリ断片化対策メモリマネージャが入っている
 _, ._
(. ゚ A ゚;)

67 :デフォルトの名無しさん:03/08/19 07:18
監視式で特定のcharの配列を監視してます。大きな配列なので配列の一部のみを
表示させたい(例えば長さが1000の配列で10から20番目までを表示させる)ので
すが可能ですか?

68 :デフォルトの名無しさん:03/08/19 10:15
D6PRO上のQuickReportを使って印刷をしているのですが
用紙サイズ設定などが、プレビュー上のプリンタ設定から選んでも反映されずに
default設定の用紙でしか、出力されません。

PrinterSettings-QutputBinをAutoにしていますが
これ以外にどこか設定などするのでしょうか?
まだまだDlphi道の浅い私に、どなたか教えて頂けますでしょうか。
よろしくお願いいたします。

69 :45:03/08/19 11:09
>63
そのバッファフラッシュの方法が知りたいのですが…
FileStreamにメソッドありました?

70 :18:03/08/19 11:36
>>19
>Excelや拡大鏡のように見た目をそのまま拡大縮小する必殺技もありますが。
どのようにやればよろしいでしょうか?

71 :デフォルトの名無しさん:03/08/19 14:07
ScrollBoxなどのように、ClientToScreenを持たないコンポーネントの
スクリーン上の座標を知るにはどうしたらいいでしょうか?

72 :デフォルトの名無しさん:03/08/19 14:25
ClientToScreenあるような気がするのは気のせいですか?
var Point: TPoint;として
Point:=ScrollBox1.ClientToScreen(Point);
TWinControlを継承しているなら↓でもできるし
Point:=TWinControl(ScrollBox1).ClientToScreen(Point);
あるいはWin32APIを直接使うことも出来る。
Windows.ClientToScreen(ScrollBox1.Handle, Point);

73 :71:03/08/19 14:36
>72

あ、あれ?(;´Д`)
コード補完でTYPOしてて、無いと勘違いしていたかな?

あう〜、勘違いして申し訳ない。

74 :デフォルトの名無しさん:03/08/19 16:26
次バージョンに当たるDelphi8って、.NET対応だけのプログラムしか組めないのですか?

75 :デフォルトの名無しさん:03/08/19 16:37
http://www.borland.co.jp/about/message/openletter_to_delphi_community.html
>Octaneは、Windows 2003とMicrosoft(R) .NETフレームワークの両方を完全にサポートする予定です。


だそうだ

76 :デフォルトの名無しさん:03/08/19 17:09
通常のWindowsアプリケーションも作成できるみたいですね。
良かった。
VC++しかネイティブを作成できないとなると終わっているよね。

77 :デフォルトの名無しさん:03/08/19 17:52
bsNone のフォームを作成する時に、CreateParams で WS_THICKFRAME を
設定しているのですが、これと同じ枠が表示されるけどサイズ変更は不可、
って方法はありますか?

WS_THICKFRAME を外して、WS_BORDER を設定してもベタッとした表示ですし、
WS_DLGFRAME ではタイトルバーが表示されてしまって…。

78 :デフォルトの名無しさん:03/08/19 18:21
> WS_DLGFRAME ではタイトルバーが表示されてしまって…。

されないぽくない?まあ他に自分で描くとか、WM_NCHITTESTで結果を変えるとか
方法はあるだろうけども。

79 :デフォルトの名無しさん:03/08/19 18:27
>78
ぐぁ! 本当ですなぁ…。
WS_BORDER と WS_DLGFRAME 両方を設定すると
タイトルバーが出るんで、駄目だと思い込んでました…
スマソ(;´Д`)


80 :68:03/08/19 18:59
プリンタの用紙設定方法を質問した者ですが、一筋縄で行かない難しい問題なのでしょうか…
ここに書けば、皆さんのご意見を伺えるかと思ったのですが
ご親切な方、恐れ入りますがよろしくお願いいたします。

81 :デフォルトの名無しさん:03/08/19 19:12
俺、超親切。でも知らん。

82 :77:03/08/19 19:14
>78
と思ったら、今度はウィンドウの高さが34ぐらいより
小さくすることが出来ないっぽい…むむむ

83 :デフォルトの名無しさん:03/08/19 19:43
>>82
じゃあWM_GETMINMAXINFOを処理して、自分で最小の高さを設定。

84 :77:03/08/19 19:51
>83
その作業してました。なんとかなりました。
しかし原因は何なんでしょうね?
VCL中でダイアログは最低この大きさ、とか書いているんですかね?

85 :デフォルトの名無しさん:03/08/19 20:20
たぶんOSの仕様。VCでも同じだし。

86 :デフォルトの名無しさん:03/08/19 20:54
>>80
漏れの所もやってみたが確かに出ねぇな
A4のみ出してたんで気がつかんかった・・・
クイックレポートのバグかヽ(`Д´)ノ

他の連中てどうしてるんだ?(゚д゚ )


87 :デフォルトの名無しさん:03/08/19 21:02
>>80
ここで「QuickReport,印刷」で検索してみれ
http://www2.big.or.jp/~osamu/Delphi/

88 :デフォルトの名無しさん:03/08/19 22:25
integerとExtendedには互換性がありません
とエラーが出たんですけど漏れにはこの意味がわかりません。
またどのように対処したらよいのでしょうか?

89 :デフォルトの名無しさん:03/08/19 22:37
>>88
エラーメッセージを選択してF1キー

90 :デフォルトの名無しさん:03/08/20 00:04
>>88
文字通り。互換性が無いんだよ。
何をしたら、ソレが出るんだか書いたら対処をアドバイス出来るかもしれんが…。
そのレスじゃダメだな。

91 :デフォルトの名無しさん:03/08/20 00:13
実数型(single,dobule,extendedその他)を整数型(Integer,Cardinal他)に代入するには
小数点以下を切り捨てるなり四捨五入しなければならず、
整数型で表現できる数値の範囲でなければならない。

92 :デフォルトの名無しさん:03/08/20 00:16
C使いなら実数型をそのまま整数型に入れちゃうかもね。

93 :デフォルトの名無しさん:03/08/20 00:27
>>92
最初はよくやったよ。不便だなぁと思ったものだ。

94 :デフォルトの名無しさん:03/08/20 00:33
<ヘッダー>
<ビットマップ>
<ヘッダー>
<ビットマップ>
<ヘッダー>
<ビットマップ>
.
.

上のようなファイルをTFileStreamで読み込み、表示させるプログラムを作っています。
ビットマップ部先頭にPositionを移動し、Imageに流し込むようにすると
エラー(ビットマップが不正です)が出るビットマップとそうでないものが出てきます。
エラーのでるビットマップ部をバイナリエディタで切り取ってファイルから読み込むと
エラーは出ません。どうしたらいいのでしょう?教えてください。

95 :デフォルトの名無しさん:03/08/20 00:53
悔い改める

96 :デフォルトの名無しさん:03/08/20 00:55
>>88
実数を整数にするには、
丸める(Round)か、切り捨て(Trunc)か、+方向へ切り上げ、-方向へ切り下げ、四捨五入…と、
色々方法があるので、どれか選んで関数を使うべし。

暗黙の変換を許してる言語もあるけれど、結構危険と思ってる。

97 :デフォルトの名無しさん:03/08/20 00:58
>>94
ビットマップのヘッダーには、データ本体へのオフセットが含まれてた気がする。
TBitmap.LoadFromStreamがSeekしようとして変なところに移動してしまわないよう
一旦TMemoryStreamにでも切り出して使えばどう?

98 :デフォルトの名無しさん:03/08/20 01:38
>>88
特に理由がなければExtendedは使わない方がいいぞ。
互換性がやばい。

99 :デフォルトの名無しさん:03/08/20 02:30
>>97
うまくいきました!ありがとうございます。

100 :デフォルトの名無しさん:03/08/20 02:38
>>67
キャストしろ。

>>69
なければAPI使え。


101 :デフォルトの名無しさん:03/08/20 06:39
>>60
インストールの仕方がわからない・・
誰かやさしく教えてください

102 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/08/20 07:22
産休>>32
よくわかりました。

そう。多胎って
>だから判断基準はクラス参照経由でコンストラクタが呼ばれる可能性があるかどうか。ということ。
の意味で使いました。

中村タン本に書いてありましたが
VCLの基本思想って継承を使った実装ではなくて
イベントを使った委譲による実装が多くしてあって、
わかりやすいそうですね。

103 :68:03/08/20 10:00
昨日、QuickReportで用紙サイズ設定が反映されない件を質問した者ですが
レスを付けてくださった方々様、お礼申し上げます。

ただ結論としては、QuickReportではバグがあって命題のプリンタ設定が使えず
伝票など特殊サイズの手指しと業務に対応出来なかったと言う事で
非常に残念な結果でした…

今回はAccess+VBで対策予定ですが、今後の事もありますので
もし打開策をお持ちの達人がいらっしゃいましたら教えて頂ければ幸いです。

104 :デフォルトの名無しさん:03/08/20 10:05
その手のレポートツール類って評価しては使えないから使わないって結論になるんだけど・・・

といか、Windowsの印刷ってとてもお手軽なんで、そんなツール使わずにベタベタ Canvasに表示しときゃ
何の苦労も無いって事で

105 :デフォルトの名無しさん:03/08/20 10:05
利用されていない(新たに利用できる)portを探すにはどうすればよいでしょうか
Delphi6Personalです

106 :デフォルトの名無しさん:03/08/20 10:05
Personal版ではDBアクセスはどう頑張っても無理なの??
なんとかしたいのだが・・・

107 :デフォルトの名無しさん:03/08/20 10:06
>>105
シリアルポートの事?  Open してみてエラーステータスを見るのが一番簡単では?

それともTCP/IPポートの事?

108 :デフォルトの名無しさん:03/08/20 10:07
>>107
TCP/IPポートです

109 :デフォルトの名無しさん:03/08/20 10:07
>>106 無理って事じゃなくて DBGridとかが使えない(使える権利がない)から苦労するってだけで
フリーなDBエンジンをネイテブに叩く限りはなんとでもなるでしょ。


110 :68:03/08/20 10:11
>>104
そうなのですか!? 初心者ですのでさっと言って頂ける内容でもありがたいです。

BDE〜DBEditなどのDBコンポーネントを利用しているのでQuickReportを前提に考えておりましたので
差し支えなければ簡単な手ほどきをして頂ければ助かります。

111 :デフォルトの名無しさん:03/08/20 10:17
>>110
どういうふうに印刷ったって
BDEなら、ToString して 指定位置に Canvas.TextRect で印刷するだけでしょ?

そこらへん印刷用の関数をいろいろ作っていけば簡単になるよ
自分は簡単なマクロ作ってる。


112 :デフォルトの名無しさん:03/08/20 10:19
DB操作をする場合たとえばC++とかならRecordSetのクラスを作ったりするのだが
Delphiならどうするの?
しかもDBGrid使えないんじゃ、表示もツライのでは・・・?
Delphiに興味はあるがそれを考えるとなかなか手が出ない・・・

113 :デフォルトの名無しさん:03/08/20 15:29
2D RPGのマップエディタを作っています。
タイルを読み込むまではできましたが、タイル1マスを描くごとに
Imageに描きCopyRectを使ってマップ本体に転送しているので
とても遅いです。なにかほかにいい方法はないでしょうか?

114 :デフォルトの名無しさん:03/08/20 15:39
>>112
それはProを買えってご宣託でしょう。
RecordSetに相当するのがProには用意されているし、DbGridも便利に使える。
パーソナルでやるなら TStringListをDB代わりに使える範囲でチマチマやるしかないと思うよ。


>>113
書き換えた場所だけ転送してるんだよね? そんなに遅い?


115 :デフォルトの名無しさん:03/08/20 15:43
シングルクォーテーション ' を
#39で記述しますが、
これを16進数(27h)で書くにはどうしたら良いですか?
#$27にするとエラーになっちゃうし


116 :デフォルトの名無しさん:03/08/20 15:44
''

117 :デフォルトの名無しさん:03/08/20 15:48
''は、見づらいからいやなんです
'xxxx' + #39 + 'xxxxxx'
というふうに書きたい
39の部分は、文字コードなんで16進で・・・

118 :113:03/08/20 15:50
>>114
1マス転送する毎に640x480のビットマップをImageに書いてからCopyRectで
指定した一部を転送してるので、遅くなってしまうのだと思います。

1つのマップを描くのに数十枚の640x480のビットマップがいるので
できればStreamから直接一部だけを転送できるような関数が
あればよいのですが・・

119 :デフォルトの名無しさん:03/08/20 15:53
'xxx' + Chr($27) + 'xxxxx'

120 :デフォルトの名無しさん:03/08/20 15:54
>>119
thx

121 :デフォルトの名無しさん:03/08/20 15:58
>>115
#$27 でいいと思うが? どう書いてエラーになったの?
'xxxx' + #$27 + 'xxxxxx' でも + を省略して
'xxxx'#$27'xxxxxx'   でもいいよ 


122 :デフォルトの名無しさん:03/08/20 15:59
>>118
よくわからないが、どうしてもっと大きなBMP作ってそこに描かないの?


123 :デフォルトの名無しさん:03/08/20 16:11
>>122
マップ描画用のImageは初めから用意してあります。
ウラにもうひとつImageを置き、1マスごとに一旦640x480のビットマップを
いちいちそれに描いて、そこからマップデータに指定されているチップを
転送するので、遅くなってしまいます。

124 :デフォルトの名無しさん:03/08/20 16:19
もしかして Imageって言ってるのは TBitmapの事じゃなくて TImageなのか?

125 :デフォルトの名無しさん:03/08/20 16:21
>>124
そうです。TImageです。。。
それしか方法が思いつかなかったので・・

126 :デフォルトの名無しさん:03/08/20 16:50
Del厨らしく一言
「フリーコンポ使っとけ」

TAlphaBitmap
DirectXでもいいならDelphiX、QuadrupleD

127 :デフォルトの名無しさん:03/08/20 16:52
コンポーネントなしならBitmap
アリなら>>126と同じくTABitmap

128 :113:03/08/20 17:07
TABitmapすごいですね。使ってみますね。
また何かあればよろしくお願いします。

129 :デフォルトの名無しさん:03/08/20 17:37
>>123を読むとTABitmap使っても変わらない予感。

130 :デフォルトの名無しさん:03/08/20 19:49
Delphiを使ってWeb画面を表示する方法は、
ttp://plaza21.mbn.or.jp/~takoyakusi/delphi/WebBrowser.html
を見て分かったのですが、
よくブラウザで見かける、
「現在読み込み中」みたいなメーター
を出す方法(または読み込み完了したことが分かるフラグ)
が分かりません。
教えていただけないでしょうか。
Delphi6パーソナルを使用しています

131 :ななしへたぐらま ◆XcB18Bks.Y :03/08/20 20:09
>>113
 どちらかというとゲーム制作板向けの話題ですが….

 マップエディタを作るのでしたらドローグリッド(TDrawGrid)を使ってみては?
 ドローグリッドはセルの縦横の長さをタイルと同じに,縦横のセルの数をマップと同じにして,OnDrawCellイベントでタイルのイメージを転送します.

 ドローグリッドが「[3, 5]のセルのイメージを(128, 64)-(159, 95)の領域に描けや」って要求してくるので「へいへい.[3, 5]はえーっと…(一覧表を見る)…ああ,11番のタイルだな.じゃぁこれをコピペ,と」という感じで描画していくわけです.

 すべてのタイルを含んだイメージをビットマップオブジェクト(TBitmap)に持たせ,イメージ転送にはCopyRectを使って実験してみましたが(ビットマップは24Bit DIB形式にした),手元の遅い環境でも速度的には問題ありませんでした.
 (ちなみにWin 95,CPU: MMX Pentium 200 MHz,VIDEO: Trident 9685,画面モードは1024×768のハイカラーです)

>>118
 転送に時間がかかるのはCopyRectが遅いからではなくて無駄なイメージ転送が多いためでしょう.なおドローグリッドを使わないとしてもマップを描くのに必要なビットマップはタイル用に1枚,フレームバッファ用に1枚だけで済むと思いますが.
 もしかしてマップ全体の表示イメージを640×480に切って持たせようとしていませんか?マップ情報はタイル番号の2次元配列として持たせないと駄目ですよ.



132 :デフォルトの名無しさん:03/08/20 22:25
>130
ttp://plaza21.mbn.or.jp/~takoyakusi/delphi/Event.html#onProgressChange

133 :130:03/08/20 23:20
>>132
ありがとうございました

134 :デフォルトの名無しさん:03/08/21 00:30
他のアプリに文章を渡したいのですが、仮想キーボードを使った方法と
クリップボードを使った方法を教えてもらえないでしょうか。
マウスクリックまでは検索して分かったのですけど、キーボードのキーを疑似的に
押すこととクリップボードを使ったペーストはやりかたが分かりませんでした。

135 :デフォルトの名無しさん:03/08/21 04:18
TDataModuleにTMainMenuを置いて、それをTFormのMenuプロパティに指定したところ、
設計時にはメインメニューが表示されるのに、実行時には表示されません。
お助けを。

136 :デフォルトの名無しさん:03/08/21 04:28
>>134
 製品版? ならバージョンによってCDROMにSendKeyとかいう名前のが入ってないかな


>>135
どこかのイベントで再度設定してみたらどう?


137 :あぼーん:03/08/21 04:34
http://endou.kir.jp/hankaku
http://homepage.mac.com/yamazaki8

138 :デフォルトの名無しさん:03/08/21 05:10
DataModule2のOnCreateで

MainMene1 := TMainMenu.Create(Self);

とやって、メインフォームのOnCreateで

DataModule2 := TDataModule2.Create(Self);
Menu := DataModule2.MainMenu1;

とやってみたけど、表示されませんでした。
素直にメインフォームにメインメニューを置く事にします。

139 :デフォルトの名無しさん:03/08/21 05:25
>138
なんかツッコミどころ満載な事やってんな。
それはいいとして、普通にFormのMenuプロパティに設定しただけで、ちゃんとメニュー出たよ。
どうせDataModule2を自動生成の対象から外してるとかそんなんじゃないの?

140 :デフォルトの名無しさん:03/08/21 05:52
>139

その通りでした。お恥ずかしい。

141 :デフォルトの名無しさん:03/08/21 07:42
Delphiもコンストラクター内で例外投げちゃダメですか?

142 :デフォルトの名無しさん:03/08/21 07:53
>>141
どうしてダメだと思うの?

143 :デフォルトの名無しさん:03/08/21 08:28
>>141
投げると自動的にデストラクタが呼ばれるようになっておる。

144 :デフォルトの名無しさん:03/08/21 12:09
質問させてください。
D7のオフィシャルコースウェアで財務管理システムを作る演習があるんですが、
そこのプログラムを実行するとカスタム例外処理の部分で例外が発生してしまいます。
コンパイルは通るんですけど、例外を知らせるプロンプトが出るべき部分を
実行させると、どの部分でもクラス生成のエラーが出ます。
どなたか同じ症状で悩んだ方いらっしゃいますか?
この原因はどのようなことが考えられるのでしょうか?


145 :デフォルトの名無しさん:03/08/21 13:04
>カスタム例外処理の部分で例外が発生
それでいいんじゃないのか?

146 :144:03/08/21 13:10
いえ、出るべきプロンプト(エラーメッセージ)が実行中に出ずに
アプリが停止してから”例外が発生〜”と出る症状なんです。


147 :144:03/08/21 13:13
いえ、結局実行中にでるべきエラーメッセージが出ずにその部分で
実行がストップしてしまうんです。
そのエラーが”クラス生成の例外が発生〜”なんですが。
カスタム例外クラスの記述は間違っていないです。
というか、付属CD-ROMから移しただけなんで問題ないはずなんですが。

148 :デフォルトの名無しさん:03/08/21 13:25
>146
聞けば聞くほどソレで正常だと思うのだが?
オフィシャルコースウェアに解説は無いのか?
ツール->デバッグオプション につていの解説とかさ

149 :144:03/08/21 13:36
無いんです…確かに「デバッガ例外が発生」ていうプロンプトです。
しかし、デフォルトでテーブルに入っているデータが参照出来ずにこの
エラーが出るんですよね。
何かチェック項目を変えればいいんでしょうか?こちらでも調べます。

あと接続周りもチェックして接続は出来ています。

150 :デフォルトの名無しさん:03/08/21 14:12
構造体に一気に代入するにはどうすればいいですか?
a = { 0 , 2 , 3 };
↑こういうことをやりたいんです

151 :デフォルトの名無しさん:03/08/21 14:14
そうか。 とりあえず、IDEで走らせて 例外が出たらそういう状態になるのは”正常”だ。

例外を出したくないなら、 ツール->デバッガオプションで無視する例外に入れておけばいい 

152 :デフォルトの名無しさん:03/08/21 14:15
>>150
そういう場合は 構造体を返す関数を作るのが簡単でスマートだと思うよ。

153 :150:03/08/21 14:42
>>152
できました。ありがとうございます

154 :デフォルトの名無しさん:03/08/21 15:04
cでいう'\n'に対応する改行コード教えてください。
あとラベル内で改行ってできますか?

155 :デフォルトの名無しさん:03/08/21 15:42
sLineBreakか#13#10
できます。

156 :デフォルトの名無しさん:03/08/21 16:08
ドッキングウィンドウを作成し、実際にドッキングさせると
細いタイトルバーっぽいのと閉じるボタンが出ますよね。

bsNoneにしているフォームでタイトルバー(もどき)を
自分で描画しているので、その細いタイトルバーとかも
なんとかイメージ統一のために自力で書きたいのですが、
何かいい方法はありませんか?


38 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)