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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001DELモナNGNG
DELモナーがどんな厨房疑問でもやさしく答えます。
DELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 ∧ ∧
( ´∀`)(    )
0002デフォルトの名無しさんNGNG
Delギコはどこに逝きましたか?
0003デフォルトの名無しさんNGNG
これってDelギコスレのPart5?
それとも別系統?
0004デフォルトの名無しさんNGNG
Delギコいなくなってから、険悪ムードがただよってる。
昔はあのスレ居心地よかったのにねえ。
最近は見る気もしないヨ。
0005デフォルトの名無しさんNGNG
ギコスレとは別でいいんじゃない?
一緒にすると、また荒らされそう。
0006デフォルトの名無しさんNGNG
Delギコ来てからから、険悪ムードがただよってる。
昔はDelスレ居心地よかったのにねえ。
最近は見る気もしないヨ。
00071NGNG
*やさしい*
は「やさしく答えてくれる」という意味でも有り
「あまり難しい質問には答えられない」という意味でも有りマする。
0008デフォルトの名無しさんNGNG
初心者スレはもうあるんですけど・・・
0009デフォルトの名無しさんNGNG
このスレのタイトルには
初心者
と書いてないような。
0010デフォルトの名無しさんNGNG
それって、

タイトルが違うんだから、似たような趣旨のスレ立ててもいいだろ

という主張ですか?
0011デフォルトの名無しさんNGNG
いくらなんでもスレ建て過ぎだろう。
0012デフォルトの名無しさんNGNG
ニセモノ カコワルイ
0013デフォルトの名無しさんNGNG
Delphi6 Pro
「ヘルプ」の「トピックを検索」で
単語を入力しても一覧に現れないんです。
'ExtractFilePath' とか 'TStrings' とか。
そのくせ、エディタ上で TStrings と書いてから F1 を押すと
ちゃんとヘルプが表示されます。

なんとかなりませんか。
0014デフォルトの名無しさんNGNG
だからサポートに電話しろって
0015Delあめ猫にゃNGNG
>>13
 それはOSの問題だから、簡単な解決方法はWindows2Kに開発システムを移動するとか
 ヘルプを自分で小さくするとか
0016デフォルトの名無しさんNGNG
>>15
そういう問題なの?
0017名無しさんNGNG
Windows 98/ME における Windows ヘルプインデックスの制限
Windows 95,98,および Millennium の Windows ヘルプエンジンは,
[トピックの検索]ダイアログの[キーワード]タブに 16 ビットのリストボッ
クスを使用しているので,32,767 語を超えるキーワードを表示できません。こ
の制限値を超えるエントリがある場合,[キーワード]は空白になります。これ
らのいずれかのオペレーティングシステムを使用している場合,ヘルプイン
デックス制御ファイル (Delphi6.ohi) に変更が加えられて,[キーワード]
表示からいくつかのヘルプファイルが除外されていることに気がつくことで
しょう。この変更は,ほかのヘルプシステム機能 (たとえばファイルの相互リ
ンクや〔F1〕キーによるアクセス) には影響しません。さらに,":Index" エン
トリの前にコメントを示すセミコロンを追加したり削除することで,インデック
スを拡張したりほかのヘルプファイル参照を追加または削除できます。ただし,
.OHI ファイルを編集する場合は,キーワード表示が空にならないように,
WinHelp ビューアの制限に注意してください。
(readme.txtから抜粋)
0018デフォルトの名無しさんNGNG
>>17
文章にメリハリが無く、ただ翻訳しただけの文体です。
技術文書なのですから、原因と結果、対策をはっきり分けて書きましょう。
0019名無しさんNGNG
>>18
Borland japanにいってください。
0020デフォルトの名無しさんNGNG
インデックスを2つに分けるにはどうすればよいですか。
0021デフォルトの名無しさんNGNG
IDE 終了後、Help\delphi6.ohx を Delphi6.ohi に上書きコピー。
そのあと Delphi6.gid を削除。.gid は隠し属性が着いているので
ちゃんと削除すること。
その後 IDE を起動すればよし。
0022デフォルトの名無しさんNGNG
>>21
インデックスからキーワードが全て消えました…
0023デフォルトの名無しさんNGNG
Help\*.gid ちゃんと消したか?
0024ななしヘタぐらまNGNG
>>17
なにぃ!?
ということは,Win9x系の環境では

[F1]キーでのヘルプはできるけど
自分でキーワードを打ち込んでは使えない

ってことですか?
だとしたら最悪(泣).

Delphi6への移行はコンピュータを更新するまでナシだなぁ.
0025Delあめ猫にゃNGNG
>24
 じゃなくて、ヘルプのキーワードが大きすぎるとwin9xはタコだから表示出来ないけど、
  ohiはテキストファイルだから
  自分で
  必要なの選んでねって事。

 自分でやるの嫌なら ohx って拡張子であんまり使いそうもないの消しといたから
それコピーして使ってねってのが >>21さんの説明
0026デフォルトの名無しさんNGNG
ん?ヘルプのキーワードリストって *.ohi に入ってるんですか?
てっきり文章中でキーワード属性にした単語を
自動収集しているのかと。見てみよう。
0027デフォルトの名無しさんNGNG
メモ:
 .GID/.Fxx これらのファイルはヘルプによって自動的に生成されるファイルです。
GID は General Index ファイルを示し,
Fxx ファイルは,全文検索を実行したときに生成されるファイルです。
ヘルプシステムの設定を変更したり,更新する場合は,これらのファイルを
削除することをお勧めします。
0028デフォルトの名無しさんNGNG
OpenHelp使えばそういう作業ラクなのに…(ボソ
0029デフォルトの名無しさんNGNG
>28 でも D6PersonaiにはOH.exe は付いてないし…(ボソ ボソ
0030デフォルトの名無しさんNGNG
ちゅーか開発にWin9xは不便すぎるだろ。。。NT系に移行しようよ。
0031デフォルトの名無しさんNGNG
>>30
ください
0032デフォルトの名無しさんNGNG
>>28 & 29
Personal は元からヘルプが少ないからキーワード表示できるし…(ボソ ボソ
0033デフォルトの名無しさんNGNG
>>31
買いましょう。

金がない?
放送大学に入ってアカデミックパック買い漁れ!!
以上。
0034デフォルトの名無しさんNGNG
初心者スレ見てもぜんぜん意味がわからない私は初心者失格ですか?
0035 NGNG
>>34 安心しろ、まだデルファイの話はでてない
0036デフォルトの名無しさんNGNG
kylixとDelphiを統合して欲しいと思ってるんですがダメですか?

過去にDelギコで何回か質問させてもらってるんですが全てDelphiの質問じゃなくてkylixでした。
「でもkylixです」って答えると他のスレにとばされるし、、

偽ってすいません。
0037デフォルトの名無しさんNGNG
Del猫が可愛くて、一匹飼いたいのですが、
どこで売っていますか?
0038デフォルトの名無しさんNGNG
>>37
こういうネタ野郎は、この板には必要無いと思うがどうよ?
0039一応フォローNGNG
でも可愛いし、、
ダメ?
004037NGNG
ヒドイイイイイイイイイ!
0041デフォルトの名無しさんNGNG
http://nekokick.tripod.co.jp/gikogiko.htm
0042デフォルトの名無しさんNGNG
そのうちカルピスウォーターのボトルキャップに付くんだ・・・
0043 NGNG
俺買うよ・・・
0044デフォルトの名無しさんNGNG
      ∧ ∧  |1匹300円|
⊂  ̄ ̄つ゚Д゚)つ|____|
  | ̄ ̄ ̄ ̄|     ||           / ̄ ̄ ̄ ̄ ̄
  |____|     ||    ∩_∩ <今なら逝きのいいギコが1匹300円だよ〜
                 G|___|  \_____
                  ( ・∀・)∩
                 ⊂     ノ
                  ) _ (
                 (_) (_)∧_∧  ∧_∧  ∩_∩
∧_∧  ∧_∧  ∩_∩      (∀`  ) (    ) (    )
(    )(    ) (    )      ( ∧_∧(    ) ∧_∧
( ∧_∧(    ) ∧_∧        (    )∩_∩ (    )
 (    )∩_∩ (    )        (    )(    )( 
逝きのいいギコ パート2
http://piza2.2ch.net/test/read.cgi?bbs=mona&key=999763206
0045デフォルトの名無しさんNGNG
Delあめ猫にゃ可愛い!
0046駄スレNGNG
駄スレ
0047こたえてくらはいNGNG
Del6セットアップするときにMSのインストーラー(msi)
突っ込まれるけど、その直後の再起動で凍って以来、
Windows98SEが再起動できない(途中で凍る)。
インストール直後の再起動でロゴに戻ったまま黙り込む。
MSのパッチ(シャットダウンサプリメント他、サービスパック
も手当たり次第)いれて、WindowsFAQのサイトにある対策全部
やったけどダメ。
なお、シャットダウンは可能。
他にこんな人いる?
0048DelモナーNGNG
>>47
 ∧ ∧
( ´∀`)( とりあえず、Del6消して再インストールするモナー )
0049デフォルトの名無しさんNGNG
 var
  I: Integer;
  S: TStringList;
 begin
0050ななしヘタぐらまNGNG
>>25
とりあえず何とかなるわけですね.
でもMMX Pentium 200MHzだとつらいかなぁ.

>>30
うちPC-9821なんですよ.
会社の予算がないからしばらくがまんですね.
0051デフォルトの名無しさんNGNG
Delphi6 Pro のキーワードが多すぎるだけ?
例えば1つの巨大なヘルプを2つに分割って不可能かしら?
ヘルプ内でリンクがある場合は無理かな。
0052デフォルトの名無しさんNGNG
>>47
>その直後の再起動で
ってことは Windows Installer のインストールに失敗しているよ?
まさか.... NEC 98 かい?
0053デフォルトの名無しさんNGNG
TList を継承して TMyType 型を格納するリストを作ったとします。

TMyType = class(TList)
...
public
 property Items[ Index:Integer]:TMyType read .. write .. ; default;
 property Last:TMyType read .. write .. ;
end;

Items プロパティは上書きされているにもかかわらず警告が出ませんが、
Last プロパティはばっちり警告が出ます
「 Last の最宣言のため基本クラスのメンバーが隠蔽されました」

プロパティには overload 識別子をつけられませんが、なぜでしょうか。プロパティはオーバーロードする事は出来ませんか?
0054デフォルトの名無しさんNGNG
Lastって、もともとプロパティじゃなくてメソッドでは?
メソッドとプロパティは別物だからダメなのでは。
よって

procedure Last: TMyType; overload;
とすればよいのでは。
0055デフォルトの名無しさんNGNG
>54 でもそれじゃ 代入 出来ない
0056Delあめ猫にゃNGNG
TMyType = class(TList)  と継承する一番のメリットは

○TListを渡せる場所に TMyTypeList を渡せる

でも、Lastに書き込みたい程の変更が必要なら
TListのリスト管理機構を利用したいだけだと思う

TMyType = class
list:TList;

とTListのメンバーを持たせて、 Listに似たインターフェースを被せたら
いいんじゃないの?
0057DelフサギコNGNG
SetLastメソッドつくれば?

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    マターリ
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
005853NGNG
>>56
なるほど、どうせオーバーライドするならそちらのほうが
スマートそう。
ありがとう。
0059デフォルトの名無しさんNGNG
質問でつ。
当方VBしかやったことないんですが、移行(フリーのやつへ)は簡単ですか?
操作性が全然違かったりするのでせうか?
0060デフォルトの名無しさんNGNG
>>59
テメエで考えろカス
人に聞かないと何にもできねえのかゴミ野郎
0061DelモナーNGNG
 ∧ ∧
( ´∀`)( ここは、モナーのスレなのでモナー以外は答えてほしくないのれす )
0062デフォルトの名無しさんNGNG
Σ(゚Д゚)ス、スマソ
0063デフォルトの名無しさんNGNG
>その直後の再起動で
>ってことは Windows Installer のインストールに失敗しているよ?
>まさか.... NEC 98 かい?
はうう、普通のDOS/V(P3B-F+PIII)です。
以前インストールは一発で完璧に終わりました。
HDDを交換して同じ環境を作ろうとして失敗。
違いと言えばソフトの導入の順番ぐらいですが...悲しい。
Kylixなら考えられない事態です。
0064デフォルトの名無しさんNGNG
エディタや環境の操作性はかなり異なると思う。
あとPASCALの文法ね。

Caption とか Top, Left などのプロパティ名は
大体一緒だし、代入演算子が違う事を除けば

Form1.Caption := 'きゃぷしょん';

等という風に、VBをやっていれば直感的に意味はわかる。
0065デフォルトの名無しさんNGNG
>>64
なんかDel6のはVBモードみたいなのが
あるらしいけど。
(まだPersonal試してないのでゴミン)

エディタに関して言えばVBみたいに
いたれりつくせりではないと思う。
(VBはやりすぎって感もある。
個人的にはVCのエディタぐらいが好きだな)

多分がいしゅつかもしれないけど、VBのデバッグで、
カレント実行プロセスをドラッグにより自由に元に
戻せたり、進ませたりできるなんて、
最初ぶっ飛んだよ。
インタプリタのなせる技なんだろうね。
006665NGNG
スマソ
>なんかDel6のはVBモードみたいなのが
>あるらしいけど。
->
なんかDel6の操作についてはVBモードみたいなのが
あるらしいけど。
0067デフォルトの名無しさんNGNG
VBからの移行で一番辛かったのは
妙に T で始まる名前が多い事だった。
はじめは、画像一枚表示するにも一苦労だ。

TGraphcis とか TBitmap とか TCanvas とか。

あと、一番最初から意味不明のコードがかかれていることね。
VBは白紙状態のソースコードから始まっていたから、
自分が書いた部分以外の事は気にする必要は無かった。
0068デフォルトの名無しさんNGNG
Helloのソースはowlmainより長いからなあ
まあ空のForm程の機能は無いが
0069( ´∀`)さんNGNG
VBからの移行か…
すくなくともVB->VC++ほとドラスティックな変化はないから、
安心して(・∀・)イイ!!

あと、VBでは <= =< どちらでもよかった(勝手に修正してくれる)けど、
Delにはそれがないので注意。

とりあえず、文法とクラスの扱い。これがわかれば、あとは
芋蔓式に理解できると思われ。


>>67
漏れは最初、フォームの名前、ユニットのファイル名、
プロジェクトファイル名の決め方でかなりとまどったよ(w
最初、フォーム名が T〜 としなきゃ逝けないのかと思ったね(w
0070デフォルトの名無しさんNGNG
>>67
Delも白紙から書くことも可能。
問題は、VBがいくらかコードを隠していると言う点であり、
その方が、初心者は入りやすいということだ(慣れるとどうでもいい)。

TGraphicsとかTBitmapは・・・確かに。
オレもあれを理解するまで一苦労した。
オブジェクト指向がわかってきた後、ようやく
TGraphicsやらTBitmap関係がわかってきた気がする。
0071デフォルトの名無しさんNGNG
>あと、VBでは <= =< どちらでもよかった(勝手に修正してくれる)けど、
>Delにはそれがないので注意。
GExpertsをインストールすればできるよ。
インストール直後だと、;=→:=ぐらいしかないけどユーザーで設定できるので、結構便利。

GExpertsは、他にも
標準で割り当てがないメニューのショートカットを割り当てたり、
エディタを拡張する(ショートカットで範囲選択した行の先頭にコメント入れたり)機能があったり、
かなり有用。今の環境に物足りない人は入れてみるべし。
http://www.gexperts.org/
0072デフォルトの名無しさんNGNG
gexpertsあげ
0073デフォルトの名無しさんNGNG
ミスったage
007471NGNG
あげられたついでに、gexpertsで他にどんなことができるか書いてみるか。

・エディタのタブを複数行にしたり、フラットボタンにしたり(どうでもいいか)出来る。

・エディタのウインドウにツールバーを配置できる(場所は、上下左右いずれか)
 解像度が低くて、エディタを最大化して使う人にはいいかも。

・インクリメンタルサーチ可能な関数リストがある。
 ショートカット一発、数文字入力ですぐに関数に飛べるのでこれは重宝してる。
 setTextという関数でもTextと入力するだけでいいという、部分検索も可能。

他にも山ほど機能があるんだけど、使ってない(使えない(藁))
0075デフォルトの名無しさんNGNG
     _____
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (6      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < 正直、Delphi飽きた
|| | | |  \ ┃  ┃/    \________
| || | |    ̄  ̄|
0076デフォルトの名無しさんNGNG
デルハイのえらい人教えてください。
大文字小文字と全角半角、ひらがなカタカナを区別しない文字列検索はありますか?
こんなの↓
xxAnsiPos('ア', 'あいうえお'); //trueになる
0077デフォルトの名無しさんNGNG
えらくはないが・・・
アルファベットの大文字小文字はAnsiUpperCaseを使えば
統一して比較できるから、あとは全半角と仮名はLcMapString
を使えばいいとおもう。
0078デフォルトの名無しさんNGNG
今日はDelphiスレが上がっていないのはなぜなのでしょう?
0079デフォルトの名無しさんNGNG
試験勉強でそれどころじゃないんです
0080デフォルトの名無しさんNGNG
>>78
これのダウンロードに忙しいとか。
ftp://ftp.borland.co.jp/pub/delphi/delphi6update1.exe
0081デフォルトの名無しさんNGNG
>>80
それって personal 用?
0082デフォルトの名無しさんNGNG
> ダウンロードファイル
>
>このアップデートファイルは、Delphi 6 のためのアップデートファイルです。
>Enterprise 版、Professional 版、Learning 版すべてにご使用いただけます。
>※重要 「Delphi 6 Enterprise 60日トライアル版」には適用できません。
って、D6のLearningってなんじゃいヽ(`Д´)ノ !!
0083デフォルトの名無しさんNGNG
全 SKU 対応
0084DELモナNGNG
 ∧ ∧
( ´∀`)( ここは、モナー専用なのれす  )
0085デフォルトの名無しさんNGNG
>>84
いいじゃん別に。
君がこのスレ立てたとしても、持ち主になったわけじゃないんだからね。
0086デフォルトの名無しさんNGNG
>>82
さんきゅ。うっかりミス。今直します。
0087デフォルトの名無しさんNGNG
>>86
うわっっっ!!!直ってる!!!!!びびったよ(´д`;)
関係者ですか?
0088デフォルトの名無しさんNGNG
>>87
天網恢恢疎にして漏らさず
0089デフォルトの名無しさんNGNG
>>86
えぇっ!
0090デフォルトの名無しさんNGNG
Delphi 6 Update Pack 1
Whistler serverで動かすと画面が出てこないです
俺だけ?
0091デフォルトの名無しさんNGNG
XP Pro での動作は確認していますが? >>90
Server のビルド番号は?
0092デフォルトの名無しさんNGNG
>>90
Update1 当てる前だと問題なかった?
009390NGNG
サンクス
今手元にないのでわからないのですがMSDNについてきたベータ版です
Delphi6使うのは普通に使えてます
おかしいのはアップデートのプログラムの方です
起動するとSetup.exeが裏(タスクマネージャ)で実行して表に画面が出てこないです
0094デフォルトの名無しさんNGNG
MSDN ベータだとだいぶ古いですね。
普通の InstallShield アプリですから、問題が出るとしたら OS の
問題でしょうか。
009590NGNG
OSは標準インストールです
Setupが途中で止まってるのか画面がShowしてないだけかもしれません
どっちにしてもこの環境は今週までなので他の環境にセットします

ちなみに
ComCtrls.pasのTSubItemsは
procedure TSubItems.Clear;
begin
inherited Clear;
FImageIndices.Clear;
end;
が治ってないようです
追加しないとFImageIndicesがクリアされません
0096デフォルトの名無しさんNGNG
( ´V`)
良い書き方を思いついたのれす。
変数宣言を見なくても、変数の型が一発で分かるのれす。
全変数の初期化なんぞも簡単にできるのれす。

例)

type
 TInt = (Age);
 TDbl = (Height, Weight);
 TStr = (LastName, FirstName);

var
 int:array [TInt] of Integer;
 dbl:array [TDbl] of Double;
 str:array [TStr] of string;
begin
 Write( 'LastName > ' );
 ReadLn( Str[ LastName ] );

 Write( 'FirstName > ' );
 ReadLn( Str[ FirstName ] );

 Write( 'Age > ' );
 ReadLn( Int[ Age ] );

 Write( 'Height(cm) > ' );
 ReadLn( Dbl[ Height ] );

 Write( 'Weight(kg) > ' );
 ReadLn( Dbl[ Weight ] );

 WriteLn( Format('%s %s %d Years old. %f kg, %f cm',[
  Str[LastName],
  Str[FirstName],
  Int[Age],
  Dbl[Weight],
  Dbl[Height]
 ]));

end.
 
00971NGNG
スレ立てたの私。ちなみに、1以外のモナーは全部私以外の人ですよ。
モナーと書いたのは、単にギコは既出だからという理由であって、
真意は「AA容認スレ」及び、たとえ厨房でも「罵倒はしない、やさしく諭す」という方針にしたかったから。

いや、それだけ。



さらば。DELギコ降臨を望む。
0098デフォルトの名無しさんNGNG
>>96
ハンガリアン表記をより凶悪に推し進めただけのトリッキーコードにしか見えない…。
0099デフォルトの名無しさんNGNG
全ての変数に接頭辞つけるやつは変数宣言を読むのがそんなに辛いんだろうか。
Delphiならフィールドに F 付ければ十分だと思う。
0100デフォルトの名無しさんNGNG
ひゃくばんげっちゅ
0101Del初心者NGNG
DelphiとVC++って、どう違うんですか?
あと、コンパイラ型ですか?記述はCに近いのですか?
0102デフォルトの名無しさんNGNG
>>101
Delphiはコンパイラ型です。
  記述は C や Basicと同じ種類の方式です。  LISPと比べるならばですが

Delphi と VC++は似てるのは、単に Windows用のネイテブコンパイラである
事くらいで、違う事の方が多く違いはあげられません
0103Del初心者NGNG
>>102
ありがとうございます。
0104Delあめ猫にゃNGNG
>>96 面白いかも

 実行時型情報に入るようにプロパティに登録して、変数名=値をファイルに書き出す
ようにしたら便利かも・・・・

でも、それローカル変数でやると最適化が効かないかもしれない
0105デフォルトの名無しさんNGNG
Rar形式で圧縮かましたいです。
Rar用の圧縮・展開ルーチンを収めたDLLあるかとぞんじます。
使い方を教えれ。エレ。エレ。エレ。

おねがいします。
0106デフォルトの名無しさんNGNG
ここで調べたら?
http://www.csdinc.co.jp/archiver/index.html

圧縮ルーチンは優良だと思ったけど。
0107デフォルトの名無しさんNGNG
質問です。
下の様なコード実行するとnew()でエラーが出るんですが
ヘルプ見る限り問題ないように思うんですが何処がおかしいのでしょうか?
サパーリ分かりません‥‥鬱だ‥‥

pFILE_DATA = ^FILE_DATA;
FILE_DATA = record
FileName: String;
Size: Integer;
Date: String;
end;

function AddFileList( const fileName: String): Integer;
var
NewItem: pFILE_DATA;
begin
new(NewItem);
NewItem^.FileName := fileName;
{ 以下略 }
end;

それとファイルのリストを保持する場合、TListに格納して変更があった時にUI側のListViewを更新するのと
直接ListViewに格納してそこから値を取り出すのとでは(Delphiでは)どちらが一般的なんでしょうか?
0108デフォルトの名無しさんNGNG
>↑
どんなエラーば出るの?
0109107NGNG
「Variants.pasが見つからねぇぞゴルァ(゚Д゚)」
です。。

Personalなんで手も足も尻尾も出ません。(泣
0110デフォルトの名無しさんNGNG
とりあえずパッチ当てたら?
0111デフォルトの名無しさんNGNG
>107
ん〜、そのエラーが new(NewItem); の行で発生するのかな?
0112デフォルトの名無しさんNGNG
>>109
ソースがないのでソースコードを追ってのデバッグができないというだけ。
さっくり無視(I)すれ。
0113DelフサギコNGNG

  ∧,,∧     / usesにVariantを追加するのかな?
 ミ,,゚Д゚彡  <
  U  U    \
〜ミ  ミ
  ∪∪

某NewsGroupeでこんな投稿があります、"Delphi6 の ライブラリが全てデバッグ版!?"
デバッグ版だとVCLソースをトレースしようとするので
ソスなしのPersonalはUp1のインストは必須です
0114107NGNG
>>111
さいです。
上下にMessageBox()はさんで確認(藁してます。

>>113
現在40%(泣)メタル線返せ〜<みかか
0115デフォルトの名無しさんNGNG
>>114
ン?実行時に出るのか?
レスを読む限りコンパイルエラーになりそうだが。
0116107NGNG
とりあえずアップデートして解決。
エラーの原因はむしろMessageBoxのhwndにCの感覚でNULLを入れてたのが不味かった模様‥‥

‥‥逝ってきます‥‥
0117デフォルトの名無しさんNGNG
>99
つーか、『識別子定義の表示』があるからなあ。型わかるし。
まあ、マウスでしかポップアップされないから、それがイヤなんだろうけど
# ていうか、この機能はキーボードからも出来てほしい・・・
0118デフォルトの名無しさんNGNG
>>117
キーボードからできるとして、どのキーに割り当てればよいと思う?
もうほとんどの組み合わせが使われてしまっているしね。
0119デフォルトの名無しさんNGNG
質問です。

デバッグの際、特定のコードで発生する例外では止めないようにするには
どうしたらよいのでしょうか?
意図的に例外を発生させていて、例外を発生する状態の方がむしろ正常なのです。

調べてもよく分からないので・・・よろしくお願いします。
0120デフォルトの名無しさんNGNG
>>119 ツール -> デバッカオプション で止めないように出来ます

興味があるのですが、
常に例外を発生させるようなコードというのはどういうものでしょう?
0121デフォルトの名無しさんNGNG
オプション設定で無視する例外を設定出来るYO!
0122( ´∀`)さん ◆Monar0j6 NGNG
>>119
まず常に例外を発生させるコーディングスタイルは
見直すべきと思われ。
どういうコードか書けばここに居る人が教えてくれるかもよ。
0123( ´∀`)さん ◆Monar0j6 NGNG
あ、もし例外が発生したときをシミュレートしてコードから
意図的に例外を発生させ、耐障害性とかエラー処理を
テストしてるんだったらごめん。
0124119NGNG
>>120-121 ありがとうございます

>常に例外を発生させるようなコードというのはどういうものでしょう?
オフコンにFTPでファイルを送るのですが
オフコン側ではそのファイルを処理してから消去します。
オフコンがそのファイルを未処理の場合はファイルを送ってはいけません。

そこで
「FTPで前に送ったファイルをGETしてみて
 失敗した場合(ファイルがない場合)にのみ処理を続ける」
という具合にしてみたわけです。
0125デフォルトの名無しさんNGNG
例外ってスピード速いし、普通に使って問題無いんだYO!

例外じゃなく、戻り値でエラー判断なんかやってるコードが問題だと思われ。
0126119NGNG
>>122-123 レスありがとうございます
>>125 フォローしていただきありがとうございます
0127デフォルトの名無しさんNGNG
>>124 それは 失敗した場合に例外を自分で出してるんだよね?
   そういう用途ならAbort でいいんじゃない

Abortならデバッカにひっかからないし
0128( ´∀`)さん ◆Monar0j6 NGNG
>>125
>例外ってスピード速いし、普通に使って問題無いんだYO!
そんなに早いもんだったのか、知らんかったよ。
>>119サソ、スマソ。

なんかどっかで実行中のプログラムの例外を補足して
ログとるツールがあったような記憶があって(曖昧でゴメソ)、
それで気持ち悪いなぁとか思ってね。

>例外じゃなく、戻り値でエラー判断なんかやってるコードが問題だと思われ。
だけど、Win32APIとかは戻り値でしかエラーの有無を判定できないと思われ…
0129119NGNG
>>127
サイレント例外は気がつきませんでした。
ありがとうございます。早速やってみます。
0130DelフサギコNGNG
 自分で例外発生させているなら
 継承した例外を発生させてIDEにそれを無視させるとか

 VCLが発生させる例外なら
 ブレークポイント2つで上下はさみ
 その間だけ例外ムシさせる方法があるぞよ

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧   
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
0131デフォルトの名無しさんNGNG
>それとファイルのリストを保持する場合、TListに格納して変更があった時
>にUI側のListViewを更新するのと
>直接ListViewに格納してそこから値を取り出すのとでは(Delphiでは)
>どちらが一般的なんでしょうか?

俺ならば、UpdateFileList みたいなメソッドつくっておいて、
リスト内容を更新するたびにそれを呼び出す。
0132デフォルトの名無しさんNGNG
ちゃうちゃう。
IDE内から実行しているから、例外でややこしいことになるのよ。
コンパイルして、エクスプローラから直接実行ファイルを
実行するようにすれば、何の問題もない。
0133Delphi6 Enterprise の自慢NGNG
いやあ、多機能っていいね!
コンポーネントいろいろついてくるし!
0134DelフサギコNGNG
         _________
  ∧,,∧   / >>131
 ミ,,゚Д゚彡<  TListなどにて内部データ構造を格納しつつ、
  ミつ つ  \ そのItemをListViewのTListItem.Dataと関連付けるのがいいかも
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  チョット手間かニャ
0135119NGNG
>>130
Indyが出す例外なので
> VCLが発生させる例外なら
> ブレークポイント2つで上下はさみ
> その間だけ例外ムシさせる方法があるぞよ
これを試してみます。
ありがとうございました。
0136デフォルトの名無しさんNGNG
256色のBMPファイルを使いたいです。
1.256色のBMPファイルからパレットを取得する方法(pal[256]という変数に取得したい。)
2.他のBMP画像を読み込み、上記1で取得したpal[256]のパレットにする方法。
が、知りたいです。
ご存知の方がいたら教えてください!
0137デフォルトの名無しさんNGNG
procedure ParettoWoToru(var Paretto:array [0..255] of TColor; ABitmap:TBitmap);
var
 p:PByteArray;
 x,y:Integer;
begin
 for y:=0 to ABitmap.Height-1 do
 begin
  p := ABitmap.ScanLine[y];
  for x:=0 to ABitmap.Width-1 do
   Paretto[x] := p[x];
 end;
end;
0138デフォルトの名無しさんNGNG
>>135
Indy が出す例外は、原則 IdException.pas で定義されている EIdException から
継承された例外クラスを使っている。だから「言語固有の例外 - 無視する例外の種類」
に EIdException を追加すれば、Indy 固有の例外で IDE が停止することは無くなる。
0139デフォルトの名無しさんNGNG
>>137
パレットってなんだか知っている?
Paretto -> Palette
0140デフォルトの名無しさんNGNG
パレット。256色モード時に色情報を格納。
各ピクセルにはパレット番号を格納。

それがなにか。
0141119NGNG
>>138
ありがとうございます。うまく行きました。
0142デフォルトの名無しさんNGNG
137 はネタのつもりだろうか?
0143デフォルトの名無しさんNGNG
136です。

>>137
ネタですか?ネタですよね!?
ネタでなければ、プログラムがバグっている&やろうとしていることが
違うと思います。

自分としては、>>140と同じ意味でパレットという言葉を使っています。

で、フルカラーモードで、256色ビットマップを扱うときに、
1.256色のBMPファイルからパレットを取得する方法(pal[256]という変数に取得したい。)
->BMPのファイルを読んで画面に表示して、その画像のパレットを変数palに代入したい。
というのをどうやるのかが、知りたいです。
よろしくおねがいします。
0144ねこまNGNG
GetPaletteEntries

あとは TNkDIB のソースでも見れ.
0145117NGNG
>>118
識別子の上でCtrl+Space。
関数の引数を見る(=補助情報を得る)のと同じ感覚で使いたい。
0146117NGNG
メンゴ。Ctrl+Shift+Spaceだ。
0147デフォルトの名無しさんNGNG
つーかさ、ならば256色時に
Scanlineを使って得られる値はなんなのさ。
0148デフォルトの名無しさんNGNG
それよりちょっと聞いてくれよ。
入力支援に1行ヒントってないものかね。

THoge = class
 ....
 procedure Hoge(x:Integer);{$HINT '引数 x をつかって〜する'}

てな風に書くと、
入力支援時、リストに

procedure THoge.Hoge(x:Integer) 引数 x をつかって〜する

つーふうにでてくると。
0149デフォルトの名無しさんNGNG
やるなら普通にコメントでいいんでは。
VCだと
struct foo{
 int bar; // hoge ←hogeがTIPヘルプで表示
}
ってできる
0150デフォルトの名無しさんNGNG
>>149
DELでそれできる?
0151ねこまNGNG
>>147
パレット番号

「ならば」とは何に対して言っているのか?
0152デフォルトの名無しさんNGNG
>>151
>ネタでなければ、プログラムがバグっている&やろうとしていることが
>違うと思います。
0153117NGNG
>>149
すごく(・∀・)イイ!
0154デフォルトの名無しさんNGNG
それなら変数名とか関数名だけで判るようにしとく方がいいと思うのは・・・俺が年寄りなった証拠?
0155デフォルトの名無しさんNGNG
>>154
いや、それでも分かりにくい場合ってあるでしょ?
0156 ◆YxrNykuM NGNG
>154
ライブラリとかにあると嬉しいかも。
0157デフォルトの名無しさんNGNG
>>144
GetPaletteEntries調べてみたのですがVBの解説しか
みつからなかったです。Delphiのヘルプにもないところをみると
APIか何かなのでしょうか?
パレット詳しい方いたら、教えてほしいです。
0158デフォルトの名無しさんNGNG
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=3

// パレットの色を取得
GetPaletteEntries(bm.Palette, 0, PalSize-1, pal.palPalEntry);

ってところか?

GetPaletteEntries に関しては
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_getpaletteentries.htm
ここを。
0159117NGNG
>>154
本末転倒なの
0160デフォルトの名無しさんNGNG
D6パーソナルって DsgnIntf 無いの?

自作のコンポD6で使いたいんだけど ヘルプにあるWinEditors ユニットも無いし
DesignEditors.ini なんてのがdocディレクトリにあるけど??

D5Proの時からDsgnIntfが変な所にあるなと思ってたけど、
なんかコンポーネントはコンパイル済みにしないとダメって事になったのかな?
それともD6パーソナル無料化の為に わざと不便にしてるのかな?
0161デフォルトの名無しさんNGNG
インターフェイスが分かってるようで理解できてないような、そんな
気がする今日この頃。

凡庸画像フォーマットを実現するには、

TCustomImage = interface
public
 procedure LoadFromFile(〜);
 procedure SaveToFile(〜);
 procedure CopyFrom(〜);
 property Pixels[x,y]:Integer 〜;
end;
みたいなインターフェイスを作ってやれば、
内部でどのような画像の表現方法を取っていても、
呼び出して利用するほうのコードを変更する必要はないということですか。

たとえば、これまでビットマップだったものを
処理速度の向上を理由に、配列にいろ情報を格納するように変更した
TPixelArrayImage なんて形式に変えても、利用するほうの
コードは変更する必要がないと。
0162デフォルトの名無しさんNGNG
>>160
Delphi4 の時から、デザイン時ライブラリを分割してね。って書かれているのに
いまだにこういう質問が出てくるとは..

Help 読みなさい
0163DelフサギコNGNG
   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <  自分で体感しないと知らないものです
  ミ つ且~~   \___________
〜ミ,,,,,, ,,ミ キビシイッス>>162さん

プロパチエヂタまでこだわって作っている人は少なそう。
こだわらなくてテキトに作っている人はD6になったとたんつまづーきますね。
フサも2週間前くらいに思いっきりツマヅイタ

>>160さん、とりあえず、Personalはつらそう……
ご検討を祈ります。

プロパティエディタ系コード(uses Designなんとか)
は実行時コンポーネントコードとは別ユニットにしましょう。


あと、TEditorの作者さま...
プロパティエディタ問題なんとかしてください。
フサの勘違いかもしれないけど、
思いっきりD6DsgnIntf問題にひっかかってません?
0164160NGNG
>>162 スマン。奇数時しかバージョンアップしない不良ユーザなもんで

ヘルプってこれだよな?
>DSGNINTF.DCU は Delphi に付属しなくなりました。したがって,コンポーネント開発者は
>設計時コードを実行時コードとは別のユニットに分離することを考える必要があります。
>実行時コードでは,それらのユニットを参照しないようにしてください。
>それが不可能な場合は,\source\toolsapi\ ディレクトリにある DSGNINTF.PAS をコンパイル
>することが可能です。ただし,この方法は一時の間に合わせとして提供されるもので,
>将来のリリースでは提供されない可能性があります。
>また,ライセンス契約の条項により,インプライズ社が所有するソースコードに基づく DCU
>を配布することは,そのコードがどのように提供されたかに関係なく,
>許可されないことに注意してください。
設計時ユニットと別けるってのは、単にプロパティエディとかを別ユニットに別けろって事だよな?
てことは、どっちにしたって、コンポソースがプロパティエディタを使う場合はパーソナルだ
けじゃ使えないって事だな・・・まあそんな制限無いと無料で配れないか・・・

 使ってみて便利だったらバージョンアップしようかと思ったけど、俺はVer7まで待つわ
0165デフォルトの名無しさんNGNG
>>コンポソースがプロパティエディタを使う場合はパーソナルだ
けじゃ使えないって事だな

どうしてそういう結論になる?設計時パケージに分離してそっちで
designide60.bpl を必須パッケージとして指定すればおわり。

Personal でもコンポ作成/インストールできるって。
0166160NGNG
>>165
うーん。方法があるのか?
DSGNINTFで使ってるのは RegisterPropertyEditor だけだから
 これを別ユニットにして、別に設計時パッケージに入れろって事だよな?

 自分のコンポーネントをuses して、RegisterPropertyEditorしてる
だけのソースを作ってみてプロジェクトファイルを弄ってみたけど、
やっぱりコンパイル出来ない。

 スマン。どうやってコンパイルしたらいいか教えてくれ
0167デフォルトの名無しさんNGNG
最近VCLってつかわないよ。だからEXEサイズ60kbyteいかだ
D6personalよりD5learningのほうが使用権が自由でよいなぁ
0168デフォルトの名無しさんNGNG
perl使えよ
0169デフォルトの名無しさんNGNG
IndyってフリーなのにどうしてD6personalに入れないかなぁ?
Windowsの場合非同期ソケットのほうがいいのわかってるのに
今非同期ソケットやってるのってICSとFastnetだけ、SynapseもIndyも
スレッド使いすぎだ

というよりなんか似たようなコンポーネントがごちゃごちゃしすぎだD6
0170デフォルトの名無しさんNGNG
>>166
>やっぱりコンパイル出来ない。
エラーはなんと?
0171160NGNG
あ!
 もしかして、設計時コンポ無くても実行ファイルは作れるだろうという意味か?
  そういう意味なら確かに作れたよ。
0172160NGNG
エラーは当然 DSGNINTF が無い。
 で、これを消せば
RegisterPropertyEditor が無いが出るよ
0173デフォルトの名無しさんNGNG
>>171
そうだね。多分すでに正解を手にしていると思う。
「設計時コンポ」ではなく「設計時パッケージ」ね。

設計時パッケージは IDE のみが使う。プロパティエディタも IDE のみ。
実行時パッケージおよびコンポーネントのユニットは設計時パッケージやデザイン用
ツールとは分離できる。
0174デフォルトの名無しさんNGNG
>>173
そこまでできているのなら、分離した設計時パッケージに
designide を追加すれば designide60.bpl が DSGNINTF を
提供してくれる。

デザインパッケージの実コード。
登録やプロパティエディタを定義。

unit x;

interface

implementation

uses DesignIntf, MyComp;

begin
 RegisterPropertyEditor( TypeInfo(TMyComp), TMyComp, 'Caption', nil); // nil にはプロパティエディタのコードが入るはず。
end.


Package1.dpk の部分

requires
 rtl,
 designide;

contains
 x in 'x.pas';
end.
0175160NGNG
>.174 ありがとう! 出来たよ。

dpkを開いて requires の下に
 rtl,
 designide,
 vcl:
と挟んで入れたらコンパイル出来た。 いやホントありがとう
0176160NGNG
しかし、今度はD5でコンパイルできなくなった

DsgnIntf/DsgnIntfを切り替えるのは {$IFDEF }でいいとして

  designide と dsnide50  はどうやったらいいんだろ?
まあ別名で作ればいいか
0177デフォルトの名無しさんNGNG
*.dpk だけはコンパイラバージョンごとに分けることを勧める。
幸い今後は DLL 名とパッケージ名が分離しパッケージ名には
バージョン番号が含まれなくなったから、今回だけですむ。はずだ。
0178デフォルトの名無しさんNGNG
>>169
Synapse のどこにスレッドが使われてる?
0179デフォルトの名無しさんNGNG
>>169
Indy は「スレッドが使えるんだ。ブロッキングで何が悪い?」という思想だから
スレッド使いすぎという批判は筋違い。
0180デフォルトの名無しさんNGNG
[666]
スマソ、誤送信
0181デフォルトの名無しさんNGNG
見る見るうちにモナー下がっちゃった。
やっぱり踊って歌える ギコのほうが人気高いんね。
0182デフォルトの名無しさんNGNG
しかし >>174 の情報は重要だからアゲ 
0183sNGNG
sage
0184デフォルトの名無しさんNGNG
あげ
0185デフォルトの名無しさんNGNG
Delphi5か6安売りしてるところはありますか?イクラですか?
0186デフォルトの名無しさんNGNG
>>185
Delphi6 は www.borland.co.jp からタダでDLできま。
0187デフォルトの名無しさんNGNG
ビジュアルスタジオエンタープライズエディションロクテンレイの
アカデミックばんはさんまんごせんほどでかえるからマイクロソ
フトマンセー
ボーランドはくがくせいにはきびしい成り
0188185NGNG
データベースコンポが無いよう>>186
学生であの膨大なVisualStudioは酷だよ。学生は根気が無いんだから>>187
0189通りすがりNGNG
>>187
Professionalが3万で買えるだろ。
BorlandのEnterpriseと比較するならMSDNじゃないと。
単純比較はできんが。
0190デフォルトの名無しさんNGNG
D6 Shell コントロール修正版発表記念上げ。

http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16739
0191デフォルトの名無しさんNGNG
アクティブデスクトップのように、
ウィンドウの位置を

←手前  奥→
タスクバー>デスクトップのアイコン>ウィンドウ>壁紙
の位置に持っていくことは出来ませんか。
0192デフォルトの名無しさんNGNG
スレッドを使っているのですが、スレッドからVCLを触る場合はSynchronizeをつかいますよね。
逆にVCL側からスレッドを触るにはどうすればよいのでしょうか。
スレッド側からSynchronizeでポーリングしなければならないのでしょうか。
それとも、ふつうにスレッド(のメンバ)を使っていい、、、わけないですよね。
0193192NGNG
Indyのソケットを使っているのですがスレッドに渡したソケットをメインスレッド側からも使ってイイ
のかなということです。Indyの実装によるのかな
0194デフォルトの名無しさんNGNG
まったくの初心者なものでつかぬことをお伺いしますが、
あるレコード型の中のフィールドに、
そのレコード型自身を指すポインタを指定するにはどうしたら良いんでしょうか?
Cで言えば、

struct CELL{
  int     value;
  struct CELL *before;
  struct CELL *next;
};

みたいなことをやりたいんですが、これをそのままやろうとすると
「〜型の宣言が完了していません」とコンパイラに怒られてしまいます。
まさか「汎用のpointer型を使うしかない」なんてことはないと思うんですが…
0195デフォルトの名無しさんNGNG
>>194
CELL = record; // コレ
PCELL = ^CELL;
CELL = record
value: integer;
before: PCELL;
next: PCELL;
end;

こんな感じ?
0196デフォルトの名無しさんNGNG
あるいは最初からクラスにするとか
type
  TCell = class
  public
    Value: Integer;
    Prev, Next: TCell;
  end;
0197デフォルトの名無しさんNGNG
>>195、>>196
早速のお答え、ありがとうございます。
レコード型で >>195 のようなforward宣言をしようとしても
コンパイラが受け付けてくれないので、
どうやらforward宣言が効くのはクラスだけみたいです。
ボーランドとしては、レコード型なんか使わずにクラスを使えってことなのかな…
とにかく、どうもありがとうございました。
0198デフォルトの名無しさんNGNG
CELL = record; // コレ
それいらない。

>PCELL = ^CELL;
>CELL = record
forward しなくてもこれでコンパイルできるでしょ?
Borland 以前、原典の Pascal から、^でポインタ型を定義するときだけ
未定義の型に対する参照が許されるんです。
0199デフォルトの名無しさんNGNG
PCell = ^TCell;
TCell = record
 ・・・
がDelphiらしいかな・・・クラスとレコードの区別がつかんけど
0200デフォルトの名無しさんNGNG
おねがいです、以下の仕様で最速の実装をしてください。
なお、宿題とは関係ありません。自分で書いたコードもあります。
要望があれば公開します。
私が作ったコードでは、1024*786*24BITで
15−20秒ほどかかります

{ Source で指定された画像を Scale 倍したものを
Dest に描画する。Dest のサイズも同時に設定される。
拡大縮小時には線形補完を用いて、そこそこ高画質にする。
Source は 24Bit カラーである事を前提とする }

function Zoom(Source,Dest:TBItmap; Scale:Extended);begin
 if Scale = 1 then
  Dest.Assign( Source );
  Exit;
 end;

 Dest.Width := Floor( Source.Width * Scale );
 Dest.Height := Floor( Source.Height * Scale );

 { なんたらかんたら }

end;
0201デフォルトの名無しさんNGNG
>>200
>最速の実装をしてください
が、ちと気に入らないが・・・。
>自分で書いたコードもあります。
とのことなので、まず自分のソースをあげてみよう。
そこから悪いところを直していけば勉強にもなる。
0202デフォルトの名無しさんNGNG
始めまして、私、Delphi3を使用しているのですが、
Delphi5 と Delphi6 にアップグレードしようしているのですが、

Delphi3→Delphi5

Delphi5→Delphi6

以上のように移行するにあたって、それぞれのメリット、
追加されたものがあれば、教えてください。
0203200NGNG
ウプしてみました。
もともと TBitmapEx というクラスのメソッドだったのですが、
関係有るメソッド、関数だけを取り出して一つのユニットに
まとめました。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004364661&res=1
0204デフォルトの名無しさんNGNG
>>200
ブロックに分けて、テーブルを使うのはどぉ?
0205デフォルトの名無しさんNGNG
テーブルというと、ピクセルの重なり具合というか、
ピクセルの色がどの程度影響しているかという指数というか、
そういう奴をテーブルにするという事ですか?
0206デフォルトの名無しさんNGNG
例えば、
1,2,3,4
5,6,7,8
って分けて、1で計算したのを2以降で使うようにするの。
0207デフォルトの名無しさんNGNG
>>203
揚げ足とり敵に細かいところを責めてみるか
・SetPixels、GetPixels、ComplementedBrightRGB等のループ内
 各関数をインライン展開して、オーバーヘッドを抑える
・Canvas.Pixels[x,y]やScanLine[y];は重いので使わずに、
 bit列へのポインタもらって自力で描いたり書いたり読んだりする
 # Canvas.Pixels[]など、速度が必要なときに使うのは論外中の論外!!
・浮動小数点は比較的重いので、固定小数点にする
 # 最近はあまり意味ないかもな
0208デフォルトの名無しさんNGNG
>>207
おお、どうもありがとう
早速修正したいとおもいます。

ところで…

>ScanLine[y];は重いので使わずに、
>bit列へのポインタもらって

今まで ScanLine[y] っていうのは y 行の
ピクセルデータへのポインタを得るものだと思っていたのですが、
そうではないという事ですか?
0209デフォルトの名無しさんNGNG
>207
自分で読み書きってことはCreateDIBSectionを使うってことなのかな?
ttp://www.sm.rim.or.jp/~shishido/dibsec.html

俺、Scanline使って遅いなあとか思ってたけど、これ使えばもっと速くなるかな。
(でも、ScanLineでもかなり速かったような気もするんだが。)
どのくらい速くなるのか解説きぼん
0210デフォルトの名無しさんNGNG
あの混線時にダウソしたけどになやっていいかわかりません。

とりあえず5もくならべのつくりかた教えて。

いままでエディタ+コマンドラインでコンパイルという
ことしかやってません。
0211デフォルトの名無しさんNGNG
さ、三目並べにしておけ・・・
というかまずはTmemoを使ってメモ帳作るところから始めた方が良いようなー

3目並べならTlabel のCaption使うだけで作っても良いかも。
0212デフォルトの名無しさんNGNG
Delphi4 or 5を叩き売りしてる店無いかな?age
0213デフォルトの名無しさんNGNG
5目並べは、画面にTStringGridを貼り付けて
 ○●を入れて貰って
後はなんとか頑張る
0214デフォルトの名無しさんNGNG
五目並べについては↓で丁度やってる

おまえら、五目並べ作ってみろよ!!!
http://pc.2ch.net/test/read.cgi/prog/1004278856/l50
0215Sock2に挑戦NGNG
すいませんサーバサービスで質問です。

WSAEventSelect()によって非同期によるクライアント待ちをする場合、
accept()実行後、
WSAEnumNetworkEvents()でFD_ACCEPTが成功したかどうか調べたいんですが、
その際、本来accept()の戻り値であるsocketハンドルは
どうやって取得すればいいのでしょう?

それとも
WSAEnumNetworkEvents()によってFD_ACCEPTを確認してから
accept()を実行するのでしょうか?
0216デフォルトの名無しさんNGNG
>>209
TBitmap自体、内部的にDIB使ってるけどScanLineの連続呼び出しはやっぱ重い。
検証用に、無理やりTBitmap継承してScanline使わないようにしたクラスが手元にあるんだが、
不完全だしさらすのいやだからなあ(笑
どうしてもっていうなら、さらし用のつくってみるけど。
いや、でも確実に速くなるよ。
02172000NGNG
ピクセルへ書き込み及び情報取得部分だけでも公開してくれませんか?
最低限のことさえ教えていただければ、自力でなんとかします。
0218216NGNG
ありゃ。さらし用のTBitmap派生クラスを作ってみたが、速度はちっとも変わらんだ。
おかしいな・・・。
0219209NGNG
>216
ScanLineをキャッシュすれば、多少は速くなる。
ttp://homepage1.nifty.com/beny/tips/dib02.html

まあ、ScanLineの方が分かりやすいし・・・。
0220216NGNG
あ、できたできた。
と思ったら>>219とほぼおなじじゃーん。
ガーソ。

一応あげとく。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1004364661&res=2
0221デフォルトの名無しさんNGNG
 ∧  ∧
( ◎_◎)
(    )
24bitではなく32BITにしてあるのは、ダブルワードの
インクリメントでちょうど1ピクセル分移動できるようにするためですか。
0222デフォルトの名無しさんNGNG
>>219-220
左上からなめるようにスキャンする場合は
効率が良いかもしれないけど、ランダムに
アクセスするような場合ってどうよ?
0223209NGNG
>222
それも、キャッシュするだけでちょいっと速くなるけど
やっぱ遅くなるね。ぼかしで広い範囲指定した日には地獄。
0224216NGNG
上げたコード、メモリ解放してないや。最悪ヽ(`Д´)ノ

>>221
そんなところで。

>>222
気持ちほど速くなる(藁
つーことは、今回の件ではあまり高速化には貢献できないことになりますか。
0225デフォルトの名無しさんNGNG
完全に2次元配列に入れてから処理をすれば…
0226デフォルトの名無しさんNGNG
★解決した問題はこちらへ★

2chで解決したDelphi質問をFAQ収集するスレ
http://pc.2ch.net/test/read.cgi/tech/1004501183/
0227デフォルトの名無しさんNGNG

DHCPサーバーからDNSサーバーのアドレスを取得したいんですけど、
出来ればサンプルが欲しい…。どなたか情報お持ちでないでしょうか?
0228デフォルトの名無しさんNGNG
Scanline プロパティが遅いのは、GDIFlush API を呼び出したりと
いろいろコストがかかる処理しているからだね。

俺は ScanLine から次のラインへのオフセットを計算して
以後それを使って高速化している。

var
 ScanLinePtr0: Pointer;
 ScanLineOffset: Longint;
 Y: Longint;
 P: Pointer;
begin
 { 画像の任意のラインのポインタを計算するための準備 }
 ScanLinePtr0 := Bitmap.ScanLine[0];
 if Bitmap.Height>1 then
  ScanLineOffset := Integer(Bitmap.ScanLine[1])-Integer(Bitmap.ScanLine[0])
 else
  ScanLineOffset := 0;

{ 各ラインのポインタを求める }
 for Y:=0 to Bitmap.Height-1 do
 begin
  P := Pointer(Integer(ScanLinePtr0)+ScanLineOffset*Y);
  // 取得したポインタPを使ってとりあえず何かしよう
 end;
end;
0229デフォルトの名無しさんNGNG
>>228
これはいいこと聞いた。感謝上げ。

…したいんだが荒らし、批判その他避けで下げ。
0230デフォルトの名無しさんNGNG
ネットワーク関係に困ったらIndyを使え。
何でも入ってるしソースから盗むこともできる
0231デフォルトの名無しさんNGNG
>228
ポインタの使い方が分からん。参考例全文をきぼん。
Delphi向けのポインタの詳しい解説サイトってないのかな。
0232デフォルトの名無しさんNGNG
>>231
http://user3.allnet.ne.jp/tadnakam/Delphi/delphi4/pascal/Pointer.htm
多分Cのポインタが分かっていれば、それと同程度に理解できるのでしょうが。
というわけでCのポインタ
http://member.nifty.ne.jp/maebashi/programmer/pointer.html
0233デフォルトの名無しさんNGNG
>232
ありがと
0234デフォルトの名無しさんNGNG
Delphi6 Enterprise 60日トライアル版を入手できるWebサイトはありませんか?
0235デフォルトの名無しさんNGNG
自分で作ったプログラムから、
他のアプリ(たとえば、かちゅ〜しゃ)を終了させるのってどうしたらいいの?
0236デフォルトの名無しさんNGNG
WM_CLOSE
0237デフォルトの名無しさんNGNG
>>235
Windows終了時にかちゅーしゃ終了させるアプリ作ってる?
需要あるから公開キボンヌ。
0238デフォルトの名無しさんNGNG
kill@cygwin
0239デフォルトの名無しさんNGNG
んーぐらい自分で作れドアホウ
0240235NGNG
>>236
    |うぇーん、どうしたらいいかわからないモナー
     ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ∧_∧
     ( ´Д⊂ヽ
    ⊂    ノ
     人  Y
    し (_)
Googleで調べたら、
 PostMessage(Self.Handle, WM_CLOSE, 0, 0);
ってすると、自分自身を終了できるけど、
Self.Handleのとこの変え方(?)がわかんない・・・。
こういうのの使い方ってどうやって調べるの?

>>237
2ch依存しすぎてるんで、
一定時間したら強制終了させられたらいいかな、と。

>>238
cygwin(?)だと、一定時間後とかってできないですよね?

>>239
できたら代わりに作ってください。お願いします。
0241デフォルトの名無しさんNGNG
>>240
EnumProcessとかFindWindowとか
0242235NGNG
できましたー。
FindWindowを使って、
 FindWindow(nil,'かちゅ〜しゃ');
ってしたらできました。
(こんな方法で良いのか、わからないけど・・・)

あとはタイマーつけて頑張ります。
この度はありがとうございました。
0243デフォルトの名無しさんNGNG
「かちゅ〜しゃ」フォルダも引っかかるかも
0244デフォルトの名無しさんNGNG
      ,−-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなこたーない
    ´∀`/    \_____
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0245デフォルトの名無しさんNGNG
>>242
むしろ、
FindWindow('TKatjushaMainForm', nil);
のほうがいいかも…
0246235NGNG
皆様のおかげで無事完成いたしました。
かちゅ〜しゃ起動・終了の代わりに、
このソフトで起動・終了をさせなくちゃいけなかったり、
色々と使いづらいところもありますが、満足なできになりました。
ありがとうございました。
0247235NGNG
ちゃんとできたような気もするのでageてみました
http://members.tripod.co.jp/RtFchs/KatjuClose_1113.lzh
0248DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < sageでゴメンなさい。
⊂,,,,,,,,,つつ.   \_

かちゅのパスが取得できていないみたいですので
http://homepage1.nifty.com/beny/tips/other10.html
これみて、かちゅ起動時には
フルパスを自動取得できたらいいなあ。
0249デフォルトの名無しさんNGNG
>>248
NTだとそれじゃフルパスが取得できないんだよねw
0250DelフサギコNGNG
    ∧ ∧  ソデシタカ
    ミ ゚Д゚彡  ジョウホウ サンクスコ
  〜ミ,,,,uuミ
0251249NGNG
>>250
EnumProcesses
EnumProcessModules
GetModuleFileNameExA

を組み合わせて作る。
たしかこれ併用して9x/NTどちらでも
プロセスをフルパスで列挙可能な非VCLがあったんだが…

コンポのソースに書いてあったURLに飛ぼうとしたら404、
MSDNの検索でも結果に飛ぼうとしたら、んなページねぇぞゴルァ言われた…
具体的なURLは出せないスマソ。
0252デフォルトの名無しさんNGNG
>>251
BorlandのQ&Aで見た記憶がある。
C++用だったかも。
0253235NGNG
あぁ、サパーリわからん( ; ´д`)
(>>248で上げられてるのを、どう使ったらいいのかわからないレベル・・・)
レベル的に無理そうだし、OpenDialogでの取得で落ち着きます。
http://members.tripod.co.jp/RtFchs/KatjuClose_1119.lzh
0254デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/995950803/l50
0255デフォルトの名無しさんNGNG
初心者質問なのですが、よろしくお願いします。
フォームを表示させる場合に、自動的に画面の中央に
表示させたいのですが、コーディングしないとダメなのでしょうか?
0256デフォルトの名無しさんNGNG
>>255
Form の Position プロパティのヘルプを読め!
0257255NGNG
>>256
Positionプロパティだったんですね、了解です。
0258デフォルトの名無しさんNGNG
ListViewコントロールをレポート形式で表示させているのですが、
データを追加するにはどうすればよいのでしょうか?
ヘルプにはAddItemにリンクが張られてなかったのですが・・・
0259デフォルトの名無しさんNGNG
>>258
VCL ソースを読んだら?
0260デフォルトの名無しさんNGNG
>>258
質問者がどこで引っかかっているのかがわからないが...

ListView1.AddItem(Item: String; AObject: TObject);
または
 with ListView1.Items.Add do
 begin
  Caption := 'XX';
 end;
こんな書き方は? Items.AddItem は第一引数の扱いが難しいから
あまり勧めない。
0261_NGNG
素直にこうすれば?

Item: TListItem;

Item := ListView1.Items.Add;
Item.プロパティ := 値;
0262デフォルトの名無しさんNGNG
>>261
おなじじゃん...
0263デフォルトの名無しさんNGNG
最近Delphi6Parsonalをダウンロードしました。
そこで、環境変数のPathを変更する機能を作ろうと思ったんですが、
読込方法しかわからず、書き込み方法がわかりません。
DelphiMLとか、WebでWin32APIとか検索したんですが、どうにも見つかりません。
知っている方、教えていただけませんか?
0264DelフサギコNGNG
>そこで、環境変数のPathを変更する機能を作ろうと思ったんですが、

   ∧,,∧   /
(,,,,,,,ミ,,゚Д゚彡 < 実は、かなり調べたけどフサにはわからなかったんだな。
⊂,,,,,,,,,つつ.   \
 もしかしてBATファイルで設定できないでしょうか?

 そしたら、テキストファイルとしてBATを作成して実行して削除すれば
 いいのかも....
0265DelフサギコNGNG
拾得
#define ENV_MAX 256 //特に根拠のない数字
char EnvOfTmp[ ENV_MAX ];
GetEnvironmentValiable( "TMP" , EnvOfTmp, ENV_MAX );

設定
SetEnvironmentValiable( "TMP", "C:\Windows\Temp" );

   ∧,∧     ,::  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡っ━'~  | 改めて調べたらいきなりわかった。
  ミ∪  ~,ノ    < BCBコードは訳しておくれ。
   ミ  '' ミ       \____________
   し'~し'

今は亡き、BCBサイト[ARAHIQS]のTipsですす。

試してないので、動作確認よろしう。
0266258NGNG
>>260
サンプルソースで理解できました。
ありがとうございます。
0267デフォルトの名無しさんNGNG
>>265
ありがとうございます!
早速試してみたんですが、未定義の識別子:'SetEnvironmentValiable'
と言われてしまいました。
現在GetEnvironmentValiableの方は動いております。
何か、Usesに加えたりすれば解決するのでしょうか?
0268名無しヘタぐらま ◆B18Bks.Y NGNG
>>258
文字列リストのObjectsプロパティのような
関連するデータへの参照ということでしたら
>>261さんの方法でもできますです.
レポート形式ということなので蛇足ながら
2つ目以降の列の設定のコードの例もあげるです.

procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TListItem;
begin
NewItem := ListView1.Items.Add;
NewItem.Caption := 'なんとか';
NewItem.Data := FMyNantokaObject; // データへの参照.
NewItem.SubItems.Add('さぶ1');
NewItem.SubItems.Add('さぶ2');
NewItem.SubItems.Add('さぶ3');
end;
0269DelフサギコNGNG
  ∧⊂ヽ, /
  ミ゚Д゚,ミ,ノ< ハニャーン
  ミ⊃ ,ミ  \
  ミ,  ,,ミ    >>267、あら、見つからないですね。ガセかしら。
  ⊂,,,ノ
    ∪
Windows.pasにはこんな風にかかれてるけど。
function SetEnvironmentVariable(lpName, lpValue: PChar): BOOL; stdcall;
0270デフォルトの名無しさんNGNG
>>265
ValiableじゃなくてVariable。lとr間違ってる
0271デフォルトの名無しさんNGNG
>>270
間違っていました(汗
修正したら動くようになりました!
フサギコさん、270さんありがとうございました。
0272デフォルトの名無しさんNGNG
初めて書き込みます。

現在テキストエディタを製作中なのですが、
作業中にTabを押してもメモ帳のようにカーソルが移動しません。
これはやはりOnKeyPressでそれ相応の処理をさせないと
いけないのでしょうか?(空白を入れる、など)
一通りTipsを探し回ってみたのですが、それに近い答えが見つからなかったもので…。

お願い致します。
0273DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < WantTabs
  UU""" U U   \_______________
0274デフォルトの名無しさんNGNG
フサギコさん有難うございます。解決致しました。
まさかプロパティだったとは…。

もう少し勉強してからお邪魔致します。
厨な質問申し訳ございませんでした。
0275DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < そんな恐縮せんでも、
  UU""" U U   \_______________
ガツガツ質問して、盛り上げてくれたらいいのでは?

MLとか、広場とかでやられるより
ここで質問したほうがよくない?
0276デフォルトの名無しさんNGNG
>>275
それは>1だからいえることで、イパーソジソには禁句と思われw
0277HSP厨房NGNG
Delphiを解説している、本はない?
0278デフォルトの名無しさんNGNG
Delphi6パーソナルでフォームを透明にするコンポーネントってありませんか?
0279デフォルトの名無しさんNGNG
>>278
おもいっきし TransparentColor とか AlphaBlend とかいうプロパティがあると思うけど
0280デフォルトの名無しさんNGNG
272です。タブキーの件ではお世話になりました。

引き続きテキストエディタに関しての質問です。
読み取り専用ファイルを開いて[上書き保存]の処理をさせた時に、
「読み取り専用なので保存出来ません」と言った内容の警告を出したいと思っております。
とりあえず自分が考えたのは、

1)読み込んだファイルの属性を変数Ftype(仮)に格納
2)ダイアログを使用しない[上書き保存]の処理の際にFtypeの値を参照し、
 それぞれの処理に分岐させる

と言う感じの処理です。
OpenDialog等でファイルを開いた時に対象ファイルの属性を取得したいのですが、
取得する場合はどうすればいいのでしょうか?

>>276さん、フサギコさん
ありがとうございます。まだDelphiを始めて間もないですが、
自分なりに努力してやって行こうと思っております。
ご迷惑をお掛けするかも知れませんが宜しくお願いします。
0281デフォルトの名無しさんNGNG
>>280
ExtractFilePathでファイルがあるフォルダを取得して
FindFirst、FindNextをループさせて頑張る。
0282デフォルトの名無しさんNGNG
>>280
他にもあるかもしれないけど FileGetAttr

人に聞くのも一つの解決法かもしれないけど、ヘルプを引く癖をつけた方がいいよ。
このFileGetAttrという関数を覚えていたのではなく、ヘルプを開いて、「VCLリファレンス」
「ルーチン一覧(カテゴリ別)」、「ファイル管理ルーチン」と辿って見つけた。約1分。
>>280を書いて、俺がたまたま読んで、このレスを書くまで約30分。この差は大きい。

Delphiのヘルプって使いづらいとか言われてるから、慣れるまで時間がかかるかも
しれないけどね。俺は他の言語をほとんど使ったことがないのでよくわからないけど。
0283デフォルトの名無しさんNGNG
>>281
FindNext って、あんたワイルドカードを含んでいるわけじゃないんだから、
ファイル名が確定している状態で FindFirst に渡せばそのファイルの属性が取れる。
0284デフォルトの名無しさんNGNG
>>280
あと、ReadOnly のファイルに上書きしたい。という欲求が出てきてもおかしくないから
「開いたときの属性」ではなく「保存時の属性」で判断したほうが自然。
0285デフォルトの名無しさんNGNG
実際に書き込もうとしてみてエラーが出てから
原因を表示しても良し。
0286デフォルトの名無しさんNGNG
>>281-285の皆様、ご教授ありがとうございます。
282さんの解説して下さったFileGetAttrで処理する事に致しました。
対応としてはメモ帳と同じように、読み取り専用のファイルの場合は
[名前を付けて保存]の処理に移動させるようにしたいと思います。

>>282さん
ご注意頂き申し訳ございませんでした。
これからはヘルプ、Tips等を参照してから質問するかどうかを判断したいと思います。
今回のように基本的なことはすべてヘルプで解決出来そうなので…。

お邪魔致しました。
0287282NGNG
>>286
「質問うぜー」とかって意味じゃないよ。
調べる手段を複数持っていた方が解決が早くなるときもあるから
そういうことを勉強するのも大切って話。
0288デフォルトの名無しさんNGNG
インテリマウスで何個スクロールするか、一画面スクロールするか、
みたいな設定を自作のコンポのスクロールに反映させたいのですが。
現在は、WM_WHEELlを受信したときWM_VSCROLLに置き換えて1単位ずつ雨後貸しています。
0289デフォルトの名無しさんNGNG
>>288
そうですか。
0290デフォルトの名無しさんNGNG
雨後貸しって何?
0291デフォルトの名無しさんNGNG
>>279
遅くなってスミマセン。ありがとうございます。
しかしそれはwin98じゃできないみたいです。
0292デフォルトの名無しさんNGNG
雨後貸=動かし
こんな2ch用語あったか?
0293デフォルトの名無しさんNGNG
これの再現かと思ったのに・・・。
http://yasai.2ch.net/test/read.cgi?bbs=win&key=994872359&st=316&to=323
0294デフォルトの名無しさんNGNG
Delphiって、どういう意味ですか?
0295デフォルトの名無しさんNGNG
>>291
あきらめろ。
0296デフォルトの名無しさんNGNG
>>294
イルカ。
0297デフォルトの名無しさんNGNG
>>295
わかりました。どうも、ありがとうございました。
0298デフォルトの名無しさんNGNG
どるふぃん。
0299デフォルトの名無しさんNGNG
M$Wordのマスコットってイルカじゃなかったですか?
0300デフォルトの名無しさんNGNG
300get
0301デフォルトの名無しさんNGNG
Delphiは古代ギリシャの町の名前。
ボーランドはギリシャが好きらしく、
Midas (手に触れるものすべてを黄金に変える力を
与えられた王)などのソフトがある。
0302-NGNG
そして Delphi で Oracle(神託) を受ける
0303なんでNGNG
comp.lang.delphiってないの?
0304デフォルトの名無しさんNGNG
comp.lang.pascal.delphi.* は?
http://groups.google.com/groups?hl=ja&group=comp.lang.pascal.delphi
0305デフォルトの名無しさんNGNG
アイコン選択ダイアログボックスってどうやって実装するの?
アプリによってUIがまちまちなんで全部自前で作らないと駄目なのかな
0306デフォルトの名無しさんNGNG
>>305
SHChangeIconDialog を使う。
0307デフォルトの名無しさんNGNG
Delphi6Parsonalをインストールした。
でDEMOSにあるサンプルを見たが、どれが何だかわからん、ヘルプに説明無いし。
どっか説明してるとこあったら教えてくださいませ。
0308sageNGNG
ツールボタン用のbmp画像がたくさんあるサイト知りませんか?
絵心がないもので...。
0309デフォルトの名無しさんNGNG
>308
別のDelスレにレスがあるよ
0310デフォルトの名無しさんNGNG
XPのカコイイボタンやタブコンはどうすれば使えるんですか?
0311デフォルトの名無しさんNGNG
>>310
まにふぇすとを用意する。
0312デフォルトの名無しさんNGNG
別のソフトの最大化を無効にしたいのですが、無理でしょうか?
SetWindowLongで無効にするだけだと、Userの操作での最大化は防げても
プログラム自体がShowWindow辺りで最大化するのは防げませんでした。
何かヒントなどありましたら教えてください。お願いします。
0313無断転載NGNG
CBTProcフック プロシージャは、 次のような場合にシステムが呼び出す、 アプリケーション定義またはライブラリ定義のコールバック関数です。

・ ウィンドウがアクティブにされたり、 作成されたり、 破棄されたり、 アイコン化されたり、 最大化されたり、 移動されたり、 サイズ変更されたりする前

・ システム コマンドが完了する前
・ システム メッセージ キューからマウス イベントやキーボード イベントが削除される前
・ キーボード フォーカスが設定される前
・ システム メッセージ キューを同期させる前

フック プロシージャが返す値により、 Windowsがこれらの操作のいずれかを許可するかまたは許可しないかが決まります。コンピュータ ベースのトレーニング (CBT) アプリケーションは、 システムから有用な通知を取得するために、 このフック プロシージャを使います。
0314デフォルトの名無しさんNGNG
>>312
強引な方法だが、KERNEL32.DLL以外で、
対象アプリが起動時に読み込むDLLのラッパを作成。
そのラッパDLL内部で最大化したくないウィンドウをサブクラス化する。
そして最大化のメッセージを拾ったらそれを捨てる。

イメージとしてはWinMXに対するchime、かちゅ〜しゃに対する
Katjusha Extenderな感じだね。

これでどうだろう?外部からあれこれいじるのはあまりスマートに
実装できないし…(少なくとも漏れはスマートに実装する方法は知らない)
こうやって内部に侵入した方が(・∀・)イイ!と思われ。
0315デフォルトの名無しさんNGNG
>>313
システムフックって開発/デバック時、
Windowsや他のアプリにDLL掴まれて再構築とか
出来なかったりして面倒だし、最悪システム全体に
悪影響及ぼすから、あまりスマートとは思えないスマソ。
0316デフォルトの名無しさんNGNG
312くらいのことだったら始めはdllなしで組んで、グローバルじゃなくて
スレッドに掛けるようにすればという所感。
0317312NGNG
色々とありがとうございます。
サブクラス化かフックということになるのですね。
詳しく調べて実験してみようと思います。
0318デフォルトの名無しさんNGNG
Magic of Delphi どこ逝ったの
0319デフォルトの名無しさんNGNG
>>318
閉鎖
0320デフォルトの名無しさんNGNG
すいません。
Delphi4が1000円で売っていたのですが
今、持っているDelphi6Personalをそのまま使用したほうがいいでしょうか?
それとも買いですか?
0321デフォルトの名無しさんNGNG
Delphi4 の何なのかわからないと答えようがない
Pro以上なら買いだ
0322デフォルトの名無しさんNGNG
>>320
Client/ServerかProfessionalなら買い。Standardなら不要。

VCLソースが入っているかどうか判断の基準。
実際に使うのはDel6PersonalでDel4のVCLソースを参考にするという
使い方がいいと思う。
0323デフォルトの名無しさんNGNG
しかしユーザー登録してバージョンアップできるから
\1000ならやっぱり買いだ
0324デフォルトの名無しさんNGNG
>>320
正規ライセンスがついていれば買い。
もちバージョンアップが前提。
0325デフォルトの名無しさんNGNG
>309
どのスレかだけでも教えて
0326デフォルトの名無しさんNGNG
>>325
フサギコ
0327デフォルトの名無しさんNGNG
>326
見つけました。ありがとうございます。
0328DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < 他にアイコン画像のいいサイトがあったら報告してね。
  UU"""" U U    \_______________
Delphiお役立ちサイト(コピペ)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0329( = ゚ ω゚ )NGNG
助けてください
2つ目のフォームを追加し、その名前を aa.pasなどとして保存し、
1つ目のフォームの uses に aa.pasを追加して
実行(コンパイル)すると、
usesの中にある Forms に対して
Forms.pasはどこにあるの?指定して
というエラーメッセージが出てしまう。
コンパイルされない・・・・
フォーム一つだけならこんなことならずにコンパイルできるのに
フォームが1つのプログラムしか作れなくて困ってます。
助けてぇ
0330DelフサギコNGNG
 ∩ ∩
 ミ ゙''゙〜
 ミ∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < そんな風にならないけど…
 U U   \________

関係ないと思うけど、D6?Personal?
Updateはあてましたか?<<大切なのでアテテください
0331( = ゚ ω゚ )NGNG
D6personalだよぉぉ
0332( = ゚ ω゚ ) NGNG
2つのフォームのプログラムなら
Form1(Unit1.pas)
Form2(Unit2.pas)
をつくって、
メインフォームであるForm1のusesに
Unit2を追加するだけで良いの?
それから両フォームで使用する変数って
値が変化せずにちゃんと引き渡されるのかな
なんか変数が初期化されちゃうんだけど(0になる)
0333DelフサギコNGNG
 ∩|
 ミ ゙''゙゙゙つ
 ミ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < で、とりあえずウプデト1は当てた?
 U U    \当ててないなら、大切だから当ててチョよ。

Form1のusesっていうのは
interface節ですよね。

今回の問題とは関係ないと思うけど
implementationにもusesできますので
区別しておきましょう。

>メインフォームであるForm1のusesに
>Unit2を追加するだけで良いの?
[ファイル(F)]-[ユニットを使う(U) Alt+F11]
するといいんじゃない。

>それから両フォームで使用する変数って
>値が変化せずにちゃんと引き渡されるのかな
>なんか変数が初期化されちゃうんだけど(0になる)

詳しくは

Delphiテクニックマスター集中講義 谷尻かおり(谷尻 豊寿 監修)
技術評論社 \2,718 ISBN4-7741-0305-5

このあたりの本に載ってるんだけど…
ここでは教え切れない面も多いので
変数スコープに関して書いている書籍を調べた方がいいです。


両フォームで変数を共通に使うよりも
Formのメンバーにアクセスする方がいいんだけどなあ....
0334( = ゚ ω゚ )NGNG
フサギコちゃん、ありがとうございます

なんかうまくいかないから、初めからやり直してる。
今のところ問題なくいってるよ
Form1,2を別々に作ってから、
後でプロジェクトの追加でForm1にForm2を追加すると
おかしくなっちゃうんだ。
でもこれだと、前に作ったformが全て使えない事になってしまうぅぅ。

updateは今DL中です。

Formのメンバーってなんですか?
0335ソース貼れNGNG
0336( = ゚ ω゚ )NGNG
変数宣言の仕方が良く判らないのですが
private
tt: integer; ←(1)
public
ss: integer; ← (2)
end;

var
rr: integer; ← (3)

この(1)で宣言したttは、このフォーム内でのみ使用
(2)のssはどのフォームでも使用可能ということですよね?
どのフォームからでも、ssの値を参照したり、
値を代入したりできるのですよね?
ここでは var はいらないのですか?

(3)のrrはこのフォーム内のみで使用可能らしいのですが
何故privateのところで宣言しないのでしょう?
(1)と(3)にはどんな違いがあるのですか?
0337( = ゚ ω゚ )NGNG
ここからソース張ります
0338デフォルトの名無しさんNGNG
>>336
>(1)と(3)にはどんな違いがあるのですか?
(1)はフォーム(=クラス)ローカル
(3)はユニット(=ファイル)ローカル
いまはたまたま一ユニット一フォームなんで違いが目立たないだけ
といっても今の知識じゃわからないだろうから
とりあえず(1)を使うべし
0339( = ゚ ω゚ ) NGNG
unit YaMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, YaTask, Menus;

type
TMainForm = class(TForm)
TPNameBox: TEdit;
(中略)
TaskOrder: TMemo;
procedure TaskStartBtnClick(Sender: TObject);
procedure O1Click(Sender: TObject);
procedure S1Click(Sender: TObject);
procedure X1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
MainForm: TMainForm;
PresentTP: String;
TAD, AAD: array[1..100] of Integer;


implementation

{$R *.dfm}

procedure TMainForm.TaskStartBtnClick(Sender: TObject);
begin
TAD[1] := 5; AAD[1] := 9
TaskForm.ShowModal
end;
0340( = ゚ ω゚ )NGNG
次にサブフォーム(YaTask)

unit YaTask;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TTaskForm = class(TForm)
(中略)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
TaskForm: TTaskForm;

implementation

{$R *.dfm}



procedure TTaskForm.FormCreate(Sender: TObject);
begin
label1.Caption := IntToStr(TAD[1])
end;
0341デフォルトの名無しさんNGNG
(1) の上に class ってあるでしょ?それが違い。

とりあえずマニュアル読めや。同じ言葉は同じ意味を持つようにしないとコミュニケーション
できないからな。

マニュアル読んで、わからなかったらそこを聞け。
0342( = ゚ ω゚ )NGNG
YaMainのvarで宣言してグローバル変数になってる筈の
TAD[1]が、YaTaskの方で
未定義の識別子 TAD
って出てしまう。
どーしたらいいの?
ベーシックしか使った事無いんだけど
Delphiがこんなにややこしいとは思わなかったよ
フォームの追加とか本の通りにやってるのに
エラーがでまくって全然コンパイルできない
個々のフォームは文法エラーとか解決してるのに
泣けてくるよぉ
0343デフォルトの名無しさんNGNG
>>342

BASIC のことを一度完全に忘れろ。
0344デフォルトの名無しさんNGNG
共通データはフォームとは別のユニットに切り離すのが定石
uses YaData;
interface
PresentTP: String;
TAD, AAD: array[1..100] of Integer;
implementation
end.
ってユニット作ってから両フォームからuses YaDataする
0345( = ゚ ω゚ )NGNG
Form1でXという変数に'5'を代入して
Form2でXの値をYに代入するには、
Form1とForm2にどんな文章が必要なのですか?
XとYはどこで宣言すれば良いのですか?
とりあえずこれだけ知りたいです。
0346( = ゚ ω゚ )NGNG
↑
Form1、Form2じゃなくて
Unit1、Unit2かな
0347( = ゚ ω゚ )NGNG
>>344さん
YaDataで宣言した変数は、
YaTask,YaMainで宣言無しでいきなりしよう出来るのですか?
0348デフォルトの名無しさんNGNG
>>342
誰でも使えるように「許可」する。
ってのと
誰でも使える物を「使用」する。
ってのは本来別の作業。

未定義エラーがでたユニットに,TAD を定義したユニットを
[ファイル | ユニットを使う] で追加。

もし「追加できない」と言われたら,未定義エラーがでたユニットの
'uses' 節を確認し,TAD を「使う」場所より上の uses 節で
TAD を「定義」しているユニットが現れるように修正。
0349( = ゚ ω゚ )NGNG
unit YaData;
interface
PresentTP: String;
TAD, AAD: array[1..100] of Integer;
implementation
end.

これでコンパイルしようとしたら
3行目をさして
宣言が必要な場所に識別し PresentTPがありますってエラーがでたよぉ・・・・
0350デフォルトの名無しさんNGNG
無意味にアゲるな。
使っている環境をかけ。D6 Personal だっけ?
マニュアルは目を通したか?読んでいないならそう書け。ただで教えを求めているのだから
少しは恥をさらせ。

D6 Personal のクイックスタートには例の問題があるから,
Delphi 5 クイックスタート・アップデートファイル
ftp://ftp.borland.co.jp/pub/delphi/d5onlinedocup/D5DOCTET.zip
を入手して最低限の知識を付けろ。
ここにでてくるプログラムの意味を理解できるようになったら出直してこい。
0351デフォルトの名無しさんNGNG
>>349
いい加減にしろ。そのエラーに対して F1 ヘルプを読め。
エラーがでたら思考停止か?ボケ?

「宣言が必要な場所に識別子」があるんだよ。
0352( = ゚ ω゚ )NGNG
>>350 のエディタの作製は読んだけど
2つのユニットで変数をやりとりするって話は出てこないのでは?
>>348 の方法で2つユニットで共通の変数を使用できる様になったけど
こんどはユニットごとでその変数を初期化してしまう・・・
ユニット1で代入した値がユニット2ではゼロになってる。
D6personalですよ。
マニュアルにユニット間での変数共用に付いて解説してるページ、ありましたか?
0353デフォルトの名無しさんNGNG
まあでもnamespaceってのは、BASICERには結構分かりづらいかもね。
これでもみて悩んでちょ↓
unit A;
interface
type
TALPHA = class
private
fMember1:Integer;
public
fMember2:Integer;
procedure Func;
end;
var
gVar:Integer;
implementation
var
Var2:Integer;
procedure Func2;
begin
//使えるもの:Var2,gVar
//使えないもの:fMember1,fMember2,Func,FuncB
end;
procedure TALPHA.Func;
begin
//使えるもの:fMember1,fMember2,Var2,gVar,Func2
//使えないもの:FuncB
end;

end.

unit B;
interface
implementation
uses
A;
var
Alpha:TAlpha;
procedure FuncB;
begin
//使えるもの:gVar,Alpha.fMember2,Alpha.Func
//使えないもの:Var2,fMember2,Func2
end;
0354デフォルトの名無しさんNGNG
あなたは DelphiML に入って質問するといいよ
みんな親切に答えてくれるよ
特に戸田って人が。
0355デフォルトの名無しさんNGNG
>>353
ネームスペース,っていうよりスコープの概念が欠落しているというか。

いいんじゃないの?コンパイル時とリンク時の2段階ある C/C++ で悩むより
1段階ですむ Delphi で可視性を学んだ方が楽だと思うよ。
0356デフォルトの名無しさんNGNG
BasicってVB? VBでも構造体があるでしょ? Formクラスで宣言してるのは構造体の定義みたいなもの
だから、実際には変数として定義しないといけない。

var Form1:TForm1; ってあるところが実際の定義だから
クラス内でxxx:integer; とか定義したのは クラスの外からは Form1.xxxで参照しなければいけない。

 ただ、クラスの場合は定義しただけじゃ実体がまだ出来てないのが構造体と違う所。

構造体じゃない所で varで定義してるのが変数。
interface で定義したら グローバル 他の ファイルから見える
implementation で定義したらローカル 他のファイルからは見えない
0357デフォルトの名無しさんNGNG
>>339
PresentTPやらTADやらAADをTMainFormのパブリックメンバにして
TMainForm = class(TForm)
public
PresentTP: String;
TAD, AAD: Array[1..100] of Integer;
end;

unit YaTaskのimplementation部でuses YaMainして
unit YaTaskからは、TMainForm.TAD[0] := 3; とかした方が楽だと思うが?
0358デフォルトの名無しさんNGNG
>>352
フォーム同士でやりとりする場合は
 直接公開するよりメソッドにするか プロパティにする方がいいよ
0359デフォルトの名無しさんNGNG
もしかして、「宣言」、「定義」、「識別子」とかいう意味からして理解してない?
とりあえずObjectPascal言語ガイド通し読み10回の刑に処す。
0360( = ゚ ω゚ )NGNG
>>359
はぁぁい
只今読んでおります。
0361デフォルトの名無しさんNGNG
>>360
読んでてもつまらないかも知れないが、基本は大切だ。頑張れよ。
0362デフォルトの名無しさんNGNG
Delモナはどこへ逝きましたか?
「Delフサギコの *やさしい* Delphi質問スレ」になってますな。
0363デフォルトの名無しさんNGNG
>>362
どうでもいいじゃないか。
どうせ匿名掲示板なんだし。
0364デフォルトの名無しさんNGNG
>>354
 ∧ ∧
( ´∀`)( 中村ってオッサンも答えてくれるよ。仕事してないのかな?   )
0365デフォルトの名無しさんNGNG
Delphiのエンタープライズ版とプロフェッショナル版は
具体的に何が違うのでしょう?
どっちを買った方がいいですか?
0366味噌醤油醸造株式会社NGNG
>>365
http://www.borland.co.jp/delphi/del6/features.html
0367デフォルトの名無しさんNGNG
>>366
ありがとうございます。
参考にさせていただきます。
0368DelフサギコNGNG
エンプラ版は個人で買うには高すぎるような....

大人買いを超えるブルジョ-ア買いが必要

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧   
  ミ,,゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
0369デフォルトの名無しさんNGNG
Delphiでアプリを作ると、どうしてあんなにファイルサイズがでかくなるのでしょうか?
Upxとかを使って圧縮するほかに、ファイルサイズを小さくするテクニックってありませんか?
0370ねこまNGNG
あるよ
http://halbow.cool.ne.jp/
0371デフォルトの名無しさんNGNG
>>370
なるほど、ありがとうございます。
やっぱり、VCLを使うかぎり重くなるのは仕方ないんですね。
直APIか・・・
0372デフォルトの名無しさんNGNG
VCL -> でかい
ってのは都市伝説に近いものがある。

そりゃ、API のみ呼び出しでけりがつくプログラムならそっちが小さいが、
ある程度のプログラムになるとみな同じ。
0373デフォルトの名無しさんNGNG
ファイルサイズと重いと混同してる>>371

WinアプリのExeはどれも数メガ単位。
VBなんかはExeが小さくても超重いし、メモリ不足がすぐ起きる(ナンデ?って感じ)。

Delphiだとフォーム一枚のときはExeが大きく感じるが、
それからフォームをどんどん増やしていってもそれからは余り大きくならない。
0374デフォルトの名無しさんNGNG
らんたいむが思いの?
0375デフォルトの名無しさんNGNG
>>374
Delphiはランタイム使わなくてスタティックリンクしたら良いYO!
Delphi&VCLって重いっていうより高速って話なんだけど。

VBのランタイムなら重いしメモリを一杯積んであっても自己メモリ不足エラーを起こす。
0376デフォルトの名無しさんNGNG
>>375
でもランタイム配布面倒だYO!


高速かはわからんが、少なくともVCアプリと同等レベル、
もしくはそれを前後するかと思われ。
だったコード次第でどーにでもなることだし。

で、重いっていうより、コードサイズがでかくなるんだよな>ランタイム


>VBのランタイムなら重いし
そうそう、VCLの比じゃないよな、あのサイズは。
ちょっとしたツール作ってFDに入れたとき、Delphiなら
ランタイムを気にしないで(・∀・)イイ!!から(゚д゚)ウマー
0377デフォルトの名無しさんNGNG
375はランタイムやめて、スタティックリンク使えと書いてるZO!>>376
0378375NGNG
Σ(゚д゚lll)ガーン
よく見てなかった…鬱氏
逝ってきます…
0379376=378NGNG
オマケにレス番間違えた…今すぐ逝こう…
0380デフォルトの名無しさんNGNG
ちゃっちゃとな。
0381デフォルトの名無しさんNGNG
Windows2000で動いていたOLEでWORDを動かすソフトが、
XPにしたら動かなくなってしまいました。
呼び出し先が呼び出しを拒否しました、ってどういうことだろう・・・。
この場合、WORDの設定が悪いと考えるべきでしょうか?
0382デフォルトの名無しさんNGNG
>>381
Windows XP 上の Office XP ? それとも Office 2000 ?

Windows 2000 の上で動いていたときの Word と
動かなくなった XP 上の Word と
二つのワードは同じ版?
0383デフォルトの名無しさんNGNG
>>382
WORDはWindows2000で動いていたのと同じ、Office2000シリーズの物を
WindowsXPにインストールしたのです。
Word.Applicationでバージョンも指定していないので、問題ないと思うのですが・・・。
0384デフォルトの名無しさんNGNG
>>383
XP でセキュリティが厳しくなったのかねぇ。
手元の .net server には Office 入れていないので
テストできないから、すぐには答えられないけど。

とりあえず dcomcnfg とかわかるなら、動かしてComponent Service / Computer の
プロパティの Default COM Security をチェックしてみたら?
0385デフォルトの名無しさんNGNG
直API でミニサイズのEXEを作るのは
ちょっと面倒なので、どなたか TTinyForm クラスを作ってくれませんか?
0386デフォルトの名無しさんNGNG
なんでそこまでexeのサイズにこだわるんだ?
サイズが大きくて具体的にどんな問題があるのかいってみ
0387デフォルトの名無しさんNGNG
>385
どこが面倒なの?
0388デフォルトの名無しさんNGNG
>387
アフォ?
0389デフォルトの名無しさんNGNG
>>386
ウィルスのサイズが360KBもあるとダサイじゃん。
0390387NGNG
>388
アフォですが、何か?
0391デフォルトの名無しさんNGNG
お前のウィルスは、律儀にフォーム表示しながら動作するのか?
0392デフォルトの名無しさんNGNG
オー、ユーザーフレンドリーダネ
0393デフォルトの名無しさんNGNG
世界最初のウィルスコンストラクションキットが Delphi の先祖の TurboPascal せいだった。
ってことを覚えている人がどれだけいるか。
0394DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < 元々しらへん
  UU"""" U U[大阪弁]_______________
0395デフォルトの名無しさんNGNG
>>385
halb○wさんのページに行くといいよ(知ってるか
0396デフォルトの名無しさんNGNG
>>385
直APIでよく作るけど、TForm並みのものを作るのはかなり面倒。
TFormってそれ自体独立してなくて、VCLがいろいろからんで来るから余計。
ていうか、そこまでするならVCL使った方が早いよ。
0397デフォルトの名無しさんNGNG
何とかって言うウィルスはDelphi製で、感染するとファイルサイズが360KBぐらい増えるそうだ。
0398デフォルトの名無しさんNGNG
>>397
それでも今の時代じゃ 360KB 増えても気付かないだろうな・・・
0399デフォルトの名無しさんNGNG
普通にクリックできて、ドラッグもできて、
表示する画像も指定できて、フラットスタイルにできる
スピードぼたんなのって何かないですか?
0400デフォルトの名無しさんNGNG
TSpeedbutton
0401デフォルトの名無しさんNGNG
>>400
TSpeedbuttonをドラッグさすのって、
MouseMovwのとこにざくざく自分でコードかかんかったら
駄目なんかな
0402デフォルトの名無しさんNGNG
漏れにはボタンをドラッグするという意味が分からないのだが・・・
0403デフォルトの名無しさんNGNG
ドラッグするのなら、クリックは出来ないと思う。
0404デフォルトの名無しさんNGNG
>>402
あれじゃないの?MS-Officeのツールバーみたいに
カスタマイズできるやつ。
0405401NGNG
MS-Officeのツール場は知らないけれど、多分それっ。
0406デフォルトの名無しさんNGNG
クールバーを一つずつとか
0407デフォルトの名無しさんNGNG
>406
ナイスアイディアで賞。
0408デフォルトの名無しさんNGNG
スレ違いを覚悟で質問。

Delphi6付属の InstallShield Express Borland Limited Edition で、
ひとつの*.msiだけ配布すればいいようなビルドはできますか?

どーやっても、*.msiと*.cabのふたつができてしまいます。
0409828NGNG
http://pc.2ch.net/test/read.cgi/tech/993005709/828
より移転。

828 :デフォルトの名無しさん :01/12/13 13:59
変な質問でごめんなさい。
DllとExeでstringの受け渡しをする時、RefCountを0にしないように気をつければ
BorlandMM.dllを使わなくても大丈夫ですか?
0410デフォルトの名無しさんNGNG
理屈の上では RefCount が増減しなければ問題ない。

けど、文字列型の管理は目に見えないところで行われるから、気をつけたほうがいいよ。
0411デフォルトの名無しさんNGNG
TFileOpenWithが標準アクションの追加ダイアログに表示されません。
何か条件があるんでしょうか?
0412デフォルトの名無しさんNGNG
TThreadの質問なんですが、Synchronizeメソッドがどうなっているのか
知ろうと思い、ソースを眺めてみましたが、スレッドを作るときに
ダミーっぽいウィンドウを作りそのウィンドウにメッセージを送って
Synchronize引数の関数を実行しているようにしか見えないのですが、
こんなんでメインスレッドとの同期が取れているのですか?
0413デフォルトの名無しさんNGNG
>>412
 メッセージは電話のように割り込みで送られるわけではなく、
メールをチェックするように、来てるかなと問い合わせますよね?
0414デフォルトの名無しさんNGNG
プログラムの実行中に動的に作成したフォームを、プログラムの途中で
解放してやっても、タスクマネージャで見ると使用メモリ量が減らないのは
何故ですか?
ちゃんと解放されていないのでしょうか?
普通に Free メソッドを呼び出しているのですが・・・
0415デフォルトの名無しさんNGNG
メモリマネージャ
0416デフォルトの名無しさんNGNG
バスケ部のマネージャー
0417デフォルトの名無しさんNGNG
秘密戦隊ゴレンジャー
0418デフォルトの名無しさんNGNG
ハイチュウ食べたいんじゃー
0419デフォルトの名無しさんNGNG
Delphi に限らず、ほとんどの言語処理系は実行時ライブラリ側で
メモリ管理を行います。そのため、メモリブロックを開放したからといって
その時点ですぐに OS にメモリが返却されるとは限りません。
0420デフォルトの名無しさんNGNG
タイガー炊飯ジャー
0421デフォルトの名無しさんNGNG
寄せて上げるブラジャー
0422414NGNG
>>415-421
ありがとうございます・・・

では解放したメモリをOSに返却するにはどうすればようのでしょうか?
常駐するタイプのアプリを作っていて、できるだけメモリを節約したいのですが。
0423デフォルトの名無しさんNGNG
NewInstanceをオーバーライドするとか?
フォーム自身が使うメモリは大した事ないと思うのですが。
InstanceSizeで見れるのか?
0424デフォルトの名無しさんNGNG
メモリマネージャをWin32API直叩きするようにすげ替える。
詳細はヘルプにある。
0425デフォルトの名無しさんNGNG
>>422 ワロタ、あんた強者だよ。
0426デフォルトの名無しさんNGNG
返却には返却カードをお持ちください。
またのご利用をお待ちしております。
0427デフォルトの名無しさんNGNG
 
0428デフォルトの名無しさんNGNG
Del6Proの開発者ガイド 30-3 に XML
コンポーネントの話が載っているけど、
そんなのどこにも見当たらない。Enterprise 版のみの機能?
0429828NGNG
>>409-410
ありがとうございました。
うまくいきそうです。
0430デフォルトの名無しさんNGNG
全てのキーボード入力(Alt+Ctrl+Del含む)をロックするにはどのように
したらよいのでしょうか?
初心者質問ですいません。
0431デフォルトの名無しさんNGNG
>>428
Delphiヘルプ - Delphi6の新機能 - XMLのサポートを見ると
タイトルが
「XMLのサポート(Enterprise 版)」
となっているのでそうかも

開発者ガイド 30-3の記述どおり、Ent版の[Internet]ページにはある
0432デフォルトの名無しさんNGNG
CLXアプリケーションで新規作成したとき、

var
p:Tpoint;
rgbcolor:Tcolor;
begin
 if button =mbleft then begin
 GetCursorPos(p);
 p := image1.ScreenToClient(p);
 rgbcolor:=image1.Canvas.pixels[p.X,p.Y];
・・・
のように
イメージ上のクリックした点の色データを収得したいのですが、
pixelsがcanvasにみつからないんです。
なにか、ほかの方法ってありますか?
0433デフォルトの名無しさんNGNG
Del6のパーソナルだとデータベースに接続できないので、
Professional版を買いました。
Professional版でもSQL-ServerやOracleに接続できるのでしょうか?

それとも、Delphiユーザーでデータベースを使われる方は、
Enterprise版を買われているのでしょうか・・・(泣

初心者質問ですいません。
0434DelモナーNGNG
>>433
ADOExpressで接続できる。
0435デフォルトの名無しさんNGNG
StatusBarの1つのパネルをクリックすると、
それに対した処理ってどういう風にやったらいいですか?
OnClickはStatusbarにしかなく、
StatusBarのどこをクリックしても同じになっちゃいます。

Moon Browser や Netscapeの、アイコンクリックで
オンライン・オフラインの切り替えができるようなものです。
0436デフォルトの名無しさんNGNG
>>433 personalでもADOを使えばできる。
0437デフォルトの名無しさんNGNG
>>385
OpenGLかdirectを使えばformより表現力があってfilesizeは50kbyeくらい
サンプル豊富

あとKol+MCKというのを使うとビジュアルで開発できてファイルサイズは50kbyteで
ADOにも対応

あと基本だけどdelphi3を使えば基本コードは180kbyte、まだ現役でd5やd6と合わせて使う人は多い
D5とかd6で関数を作ってd3でアプリを作るのが手っ取り早いのかも

もっともWin32APIベースでもテンプレート作っちゃえばあとは楽じゃない?
delphiはBCBやVCよりもAPIベースのアプリ書きやすいと思うが
0438437NGNG
direct → DirectX
0439デフォルトの名無しさんNGNG
>>434 >>436
回答ありがとうございます、少しホッとしました。

質問ばかりで申し訳ないのですが、
SQL LINKは、教えて頂いた接続方法と何が違うのですか?

どちらを使う方が良いのでしょうか?
0440素人考えNGNG
>>435
OnMouseDownかOnMouseUpで位置からパネルを算出、
それにより該当処理、でどうよ?
0441435NGNG
>>440
ありがと

なんだか大変そうだけど頑張ってみる
0442デフォルトの名無しさんNGNG
>>441

uses
CommCtrl;

function WhichPanels(SB:TStatusbar;x,y:integer):integer;
var
i:integer;
r:TRect;
pt: TPoint;
begin
result := -1;
pt := Point(x,y);
for i := 0 to SB.Panels.Count-1 do begin
SendMessage(SB.Handle,SB_GETRECT,i,LPARAM(@r));
if PtInRect(r,pt) then result := i;
end;
end;

procedure TForm1.StatusBar1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
ret:integer;
begin
ret := WhichPanels(Statusbar1,X,Y);
if ret <> -1 then
Label1.Caption := 'You Clicked Panels of '+IntToStr(ret);
end;
0443デフォルトの名無しさんNGNG
>>442
こういうのがさらりと出てくるのカコ(・∀・)イイ!!
0444デフォルトの名無しさんNGNG
>>443
そらもう Borland 直営サポートサイトですから。
0445435NGNG
>>442
ありがとーーーーすごいです。
神!!!って感じでうs

無事に実装?することができました。
自分でやってたら、無理とあ諦めてたかも・・・
0446デフォルトの名無しさんNGNG
他のアプリケーションを操作したいんですけど、どうすればいんでしょうか?
0447デフォルトの名無しさんNGNG
>>446
マウスイベントとキーボードイベントを使え。
0448デフォルトの名無しさんNGNG
お願いです。 Command パターンを使った例を教えてください
Object Pascal で。
0449デフォルトの名無しさんNGNG
>>448
デザインパターンの一種?
0450デフォルトの名無しさんNGNG
>>448
例なら他の言語のでもいいんじゃない?
Java 読めないとか?
0451デフォルトの名無しさんNGNG
>>449
そーです
Undo とか実装する時に使うんだったかな
0452デフォルトの名無しさんNGNG
TQUERYコンポーネントを使ってデータベースの内容を
DBGridに表示するのですが、ユーザーからの条件入力によって、
絞り込みを行うにはどうすればよいのでしょうか?
0453デフォルトの名無しさんNGNG
>>452
SQLでお好きなように。
0454デフォルトの名無しさんNGNG
>>452
またはフィルタ使うとよろしい。
0455デフォルトの名無しさんNGNG
>>453
試してみます。

>>454
フィルタ・・・ すいません、まだ初心者なので、よくわからないのです。
SQLを何度も書き換えなくても、Delphiらしい便利な機能があるんですね。

フィルタってどんな感じで使う物なのですか?
0456デフォルトの名無しさんNGNG
文字列変数に ' を代入するには、どうすればよいのでしょうか?
0457デフォルトの名無しさんNGNG
>>456
'を2つ並べる。つか、色々試してみると聞くより早く解決すると思われ。
0458デフォルトの名無しさんNGNG
>>457 ありがとうございます。
そうですね、色々試してみます。 m(__)m ぺこり
0459デフォルトの名無しさんNGNG
>>455
Query.SQL.Append('SELECT * FROM HOGE');
として
Query.Filter := 'HOGE1=1';
とかSQLのWHERE以降を入れて
Query.Filtered := true;

つーかHelp読め。
0460デフォルトの名無しさんNGNG
Magic of Delphiはどこに逝ったの?
0461デフォルトの名無しさんNGNG
>>460
あ、探してる人がいた(^^;。
二つ検索でひっかかるけど、どっちも無いんだよねー。
移転or新装開店中なんかしらん?
0462デフォルトの名無しさんNGNG
「かしらん」て何語だよ!!
0463デフォルトの名無しさんNGNG
かしらん
〔連語〕(「かしらぬ」の変化した語)
1 文末に付いて、終助詞的に用い、疑いや問いかけの気持を表わす。…だろうか。かしら。*滑・浮世床‐初「あれでもすむ事かしらん」

Kokugo Dai Jiten Dictionary. Shinsou-ban (Revised edition) ゥ Shogakukan 1988/国語大辞典(新装版)ゥ小学館 1988
0464デフォルトの名無しさんNGNG
       ||
     ∧||∧
    ( / ⌒ヽ
     | | 462|
     ∪ / ノ
      | ||
      ∪∪
オタしか使ってるのを見てなかったので
オタ用語だと思ってました。
ご迷惑おかけしました。
0465デフォルトの名無しさんNGNG
かしらん

〔「か知らぬ」の転。近世江戸語以降の語〕
(副助)意味・用法は「かしら」に同じ。
「あの人はどこ―へ行ってしまいました」「毎日商(あきねえ)から帰りにはの、何―竹の皮へ買つて来ての/滑稽本・浮世風呂 2」
(終助)意味・用法は「かしら」に同じ。
「どこへ行ったの―」「バスにしよう―」「あれでもすむこと―/滑稽本・浮世床(初)」
〔江戸語では男女ともに話し言葉として用いたが、現代語では主として女性に用いられる。
また、現代語では「かしら」の形が一般に用いられる〕→かしら(副助・終助)
0466デフォルトの名無しさんNGNG
>移転or新装開店中なんかしらん?

「かしらん」じゃなくて、「新装開店中なんか、しらん?」じゃないの?
0467デフォルトの名無しさんNGNG
       ||
     ∧||∧
    ( / ⌒ヽ
     | | 462|
     ∪ / ノ
      | ||
      ∪∪
お願いです。
もうそっとしておいてください。
0468デフォルトの名無しさんNGNG
>462
逝くこたぁないだろ。生きろ。





一生十字架背負ってな。
0469デフォルトの名無しさんNGNG
Pixels[x,y]の読み書きがやたら遅いんだけど
どうすりゃいい?
0470デフォルトの名無しさんNGNG
>469 ビットマップに読み込んで 行毎に処理
0471デフォルトの名無しさんNGNG
Magic of Delphi のめぼしい記事は全部回収したので
オレとしては消えてもらってもィィ!!
0472デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Delphi
0473デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley-SanJose/2560/delphi4/index.htm
だと思うんですが。
0474デフォルトの名無しさんNGNG
>>473
ありがとう( `∀´)
0475Del若葉まーくNGNG
VBからDelphiに乗り換えようとして勉強している
Del初心者です。よろしくお願いします。

日付型変数で、1日後、1ヶ月後、1年後を取得するには
どうすればよいのでしょうか?

年が変わったり、うるう年だったりとか面倒なので、
VBのDateAddやDateSerialみたいな関数を探してみたのですが、
見つけきれなくて、ここに書き込んでみました。

よろしくおねがいします。
0476デフォルトの名無しさんNGNG
DBGridにデータを表示する際に、
日付とか書式を設定して表示するにはどうすればいいのでしょうか
0477461NGNG
「なのかしらん?」の「なんかしらん」です。
昔の本にはよく、この表現が出ますな。

で、どーなったんだろう?<Magic of Delphi
0478delhpiNGNG
http://www.google.com/search?q=delhpi&hl=ja&lr=
↑「ウェブ全体から検索」
http://www.google.com/search?hl=ja&q=delhpi&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
↑「日本語のページを検索」
このネタ、もうあった?自分も一回書いちゃったことがあるんだけど、
検索ひっかかるんで…。たくさんあるねぇ…。
0479デフォルトの名無しさんNGNG
救いは .com .uk .ru とかも出てくる所ですね.

"exploler" とかだと .jp しか出てこない
同じ日本人として恥ずかしい……
0480デフォルトの名無しさんNGNG
D++って何ですか?
0481           NGNG
Magic of Delphiはどこに逝ったの?
この所為でしょう http://www.allnet.ne.jp/info/index.html
作者の別のページ http://hp.vector.co.jp/authors/VA003670/
がんばってリニューアルして欲しいよ
0482デフォルトの名無しさんNGNG
delphiのページってなぜか.ruが多いよね。全然読めんが。
>>475
DataAddはないと思うんですが、日付計算はEncodeDate, DecodeDate
を良く使いますね。
DecodeDate(Date, y, m, d);//今日取得
明日の日付=EncodeDate(y, m, d + 1);
ッてな感じです。
>>476
http://kova.cside2.jp/bbs/cyclamen.cgi?log=db&tree=r87
0483482NGNG
良く考えてみたら普通に足せばいいですね。
明日の日付=Date+1;
でした。あとIncMonthっていう関数もあるみたいです。
0484デフォルトの名無しさんNGNG
ははぁ…。なるほど。サンクス>>481
0485Magic of DelphiNGNG
ここからどうぞ
http://web.archive.org/web/20011024020701/http://user3.allnet.ne.jp/tadnakam/
0486デフォルトの名無しさんNGNG
>>485
トップページしか見られない。ダメダメだよ?ん。
0487デフォルトの名無しさんNGNG
D++って何ですか?
D++って何ですか?
D++って何ですか?
D++って何ですか?
D++って何ですか?
0488デフォルトの名無しさんNGNG
生きているって何ですか?
人を愛すって何ですか?
僕はなんのために、毎日飯食って糞しますか?
0489デフォルトの名無しさんNGNG
>>488
カート・ヴォネガットの本でも読みな。
0490DelフサギコNGNG
>D++って何ですか?
         _________
  ∧,,∧   /
 ミ,,゚Д゚彡<  日本初のDelphi雑誌じゃなかった?
  ミつ つ  \ 編集者がバックレてしまって廃刊になったとか...
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  MLのログで罵り合いがあったような

ヨクシラン シリタクモナイ
0491DelフサギコNGNG
>>475
>>483で答え出てましたが
一応、つことで。

 ̄ ̄∨ ̄ ̄ ̄
  ∧,,∧
 ミ,,゚Д゚彡
  ミ つ[ ソウス ]).
〜ミ ,, ミ 
  ∪∪   1年後は12ヵ月後にしてしまおう

procedure TForm1.Button5Click(Sender: TObject);
var
 Ago1Month: TDate;
begin
 //現在日を表示
 DateLabel1.Caption := DateToStr(Date);

 //5日前を表示
 DateLabel2.Caption := DateToStr(Date - 5);

 //1ヶ月前を表示
 Ago1Month := IncMonth(Date, -1);
 DateLabel3.Caption := DateToStr(Ago1Month);
end;

  ∧,,∧     />>482
 ミ,,゚Д゚彡  < Decode/EncodeDateだと
  U  U    \実在しない日付の場合、例外が出てやばいよ。
〜ミ  ミ
  ∪∪  12月32日とかね。
0492デフォルトの名無しさんNGNG
関係ないが、身の回りでは

[ ] は強めの発音
(1) 「[デ]ルファイ」 デを強く発音し、ル、ファイと弱くなる。
(2) 「デ[ルファイ]」 デを弱めに発音し、ルファイ はデよりも少し強めに。
(3) 「[デ]ルフィー」

の3通りの読み方に分かれた。
俺も含め最も多いのは (1) だった。

辞書で見たら デルポイ とかでてたけどどうよ。
0493デフォルトの名無しさんNGNG
そういえば デルファー って呼んでたやつもいたな。
0494IME2002NGNG
でるふぁい − Delphi
でるふぉい − Delphi
でるふぃ − 出るふぃ
0495デフォルトの名無しさんNGNG
でるふぁいは打たれる
0496デフォルトの名無しさんNGNG
関係ないレスかもしれんが、>>495は文章を入力してるときに
自分で「おもしろい! これはワラタをGETできる!」と思ってるの?
0497デフォルトの名無しさんNGNG
デルファ[イ]
0498デフォルトの名無しさんNGNG
>>496
某ページにあるネタなんだから一々けちつけないの…
0499ななしヘタぐらま ◆B18Bks.Y NGNG
>>491
Decode/EncodeDateで例外を出しちゃうバグは私も経験アリです.
おかげでIncMonth関数を覚えました.
0500デフォルトの名無しさんNGNG
デ[ル]ファイ
0501デフォルトの名無しさんNGNG
ネ
タ
ニ
マ
ジ
レ
ス
カ
コ
ワ
ル
イ
0502冬休みで厨多過ぎです氏ねNGNG
でるふぉ[え]ーーーで正解
0503delhpi NGNG
delhpiは何て読もうか?
デルフピ?
カワイイ。
0504デフォルトの名無しさんNGNG
inc(D)
0505名無し募集中。。。NGNG
Dephiの発音
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=delphi&sw=0
0506デフォルトの名無しさんNGNG
>>505
デ[ル]ファイで決定と。
0507デルフピNGNG
よく「DLLのいらないアーカイバ」ってあるけど、
アレって、どーゆー仕組みなんだっけ?
昔、そんなスレあったけど、結局どーだったのか忘れた(結論見てないだけかも?)。
どーやってるの?
0508デフォルトの名無しさんNGNG
>>507
自前で圧縮・解凍の処理を書いてるに決まってんだろ
0509デルフピNGNG
>>508
ありがとう。やっぱりそうなんだ!すごいなぁ。
0510デフォルトの名無しさんNGNG
面倒なだけでさして凄くもないと思うが。
仕様が分かってるのだし。
0511デルフピNGNG
>>510
いやぁ、アッシからするとスゴイでやんス。
まだヒヨッコなんで。デルファイの。
0512デフォルトの名無しさんNGNG
>>507
じゃあDLLはどうやって作ってんだ?ということを考えれば一目瞭然。
でも面倒なだけっつっても対応形式増えると馬鹿にならんなー。
0513デフォルトの名無しさんNGNG
だいたいCなので、CコンパイラでObjファイルを作ってリンクするのが簡単。
0514デルフピ NGNG
ほうほう。難しくてよく分からんけど(^^;。
0515デフォルトの名無しさんNGNG
ん、もしかして、作る側でなくて使う側の人かな?
0516デルフピNGNG
いや、作る方ですが…。まだまだ始めたばかりダスんで。
0517デフォルトの名無しさんNGNG
DLLをリソースに入れて、アドレス検索して呼び出してるなんて事はないのかな
0518Del若葉マークNGNG
>>482 >>491
遅い返事ですいません。
親切にありがとうございました。

皆さんの様に、Delphiをバッチリ使えるように、
早く若葉マークを取りたいです・・・(泣
0519Del若葉マークNGNG
Delphiユーザーの方って、親切な人が多いですね。

また、初心者質問をするかもしれませんけど、
宜しくお願いします。 m(__)m ペコリ
0520デフォルトの名無しさんNGNG
>>519
そんなことは無い。by 吐駄
0521デフォルトの名無しさんNGNG
>>517
リソース内のWinAPI呼び出しがうまく行かないと思うYO!
0522デフォルトの名無しさんNGNG
>>517
グローバル変数が使えないので、メモリマネージャの初期化に失敗する。
スタックだけでやるしかなYO!
0523517NGNG
なるほど、エクスポートだけじゃなくてインポートも自分が解決しなくちゃいけないのか・・・

という事は ・・・結局逆アセしてリンクした方がマシか
0524デフォルトの名無しさんNGNG
WordApplicationやCreateObjectでWord.Applicationを指定すると、
「呼び出し先が呼び出しを拒否しました」とか言われるのですが、どうしてでしょうか。
Excelの場合はそんなことないようです。

ttp://www.dm4lab.to/~usa/dekigoto/200110c.html

ここの人と似たような状態なのですが、解決策がわからず・・・。
Word側にSP2までは当ててみました。
0525デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1003113413/381
と同じ話だね。
0526デフォルトの名無しさんNGNG
delphi6のファイルサイズにむかついている人は何で少ないのですか?
D3→D5はかろうじてがまんしたしWinAPI使えばどうにかなったけれど
フォームだけで
180k(D3)→280k(D5)→360k(D6p1)
D6だとフォームすら使っていないOpenGLアプリが
700kbyte→1.1Mbyteです。

なんかうまいてないですか??
0527デフォルトの名無しさんNGNG
Del6をCPU1GHz, HDD100GB, MEM512MBのPCで使って
まったくむかつきませんが何か?
0528デフォルトの名無しさんNGNG
>>526 とりあえず

1)UPX で圧縮する うまくゆけば1/3くらいになるぞ
  これはホントにお薦め

2)D6は編集だけに使って配布する時はD3で
  まあ実際にはD3は厳しいだろうからD4で
0529デフォルトの名無しさんNGNG
>>526
メインアプリはAPIベースで作ってるのでむかつきません。
0530デフォルトの名無しさんNGNG
ちょっとまって、フォームすら使っていないOpenGLアプリがなんでそんなにデカイの?
ま、フォーム使って無くても、コンポーネント使っただけでアウトなんだろうけど。
0531デフォルトの名無しさんNGNG
気になってOpenGLの簡単なの作ってみたら13KByteにしかならんかったZO!!
0532デフォルトの名無しさんNGNG
>527
Del6をPentiumPro200MHz、HDD 1.2+1.0+3.2+20GB、MEM128MBのPC-9821で使って
まったくむかつきませんが何か?
0533デフォルトの名無しさんNGNG
クラスのインスタンスへのポインタってどうやって取得すればいいのかな。

strList := TStringList.Create;
ShowMessage('$' + IntToHex(Integer(@sl)));

とかじゃ駄目だよねぇ。。
0534デフォルトの名無しさんNGNG
ShowMessage('$' + IntToHex(Integer(@strList)));
2行め、でした。
0535デフォルトの名無しさんNGNG
>>528
UPX 等のバイナリ圧縮は糞。
はっきりいって無駄な抵抗。
0536デフォルトの名無しさんNGNG
1Mbps以上出るようになってバイナリサイズは気にならなくなったw
どうせフロッピーなんざ使わんし。
0537デフォルトの名無しさんNGNG
>>535
先生!UPXの何が糞かさっぱりわかりません!
0538デフォルトの名無しさんNGNG
>>537
http://pc.2ch.net/test/read.cgi/software/1007333774/
めんどいからここ読め
0539デフォルトの名無しさんNGNG
圧縮するメリットはあると思うよん。
でも、圧縮されたファイルしか配布してないソフトは却下だな。
0540デフォルトの名無しさんNGNG
厳しいねぇ<却下
どーもUPXって、怪しくて使ってないけど。
日本の「同じ様な仕組みのツール」も開発されないもんかね。
フリーで。
って、前もどこかで同じこと書いたな。
0541デフォルトの名無しさんNGNG
UPXかー。
APIベースで組んでて小さいのをさらに小さくする(見た目のインパクト)のに使ってるよ。
大き目のアプリ組むでも100KByteくらいに抑えられるのがいいね。

>>539
いやだったら、upxで解凍できるだろ?

>>540
そういやDOS時代はあったね。
0542デフォルトの名無しさんNGNG
>>528
D3復活は考えた。フリーコンポーネントをベースにする場合はD3がベストかも
痛いのはDword問題のみだがこれは結構タイプライブラリーとかにも影響する。

D5learningがあるのでこれがメインになりそう...

>>530 >>531
そりゃWindowsだけ宣言してやればいいけれどsysutilesとclassesを使う場合
必要なものだけ取り込まないとだめみたいだ。

バイナリーサイズ気にならないというけれど
バージョンアップやdll分散考えた場合200kbyteと400kbyteの差は大きいのでは?

あと別スレにあったkolというのを使ってみたがD6のばあいこれはよさそう

どうしてもコンポーネントにこだわるならばdll化してdfmファイルを圧縮して
リソースに入れて読み込ませるのも一案かも...

あと調べたらADO関連はボーランド純正とフリーのものとデータ更新時に最悪10倍くらい
速度が違ってくるし
普通の計算はもちろんのこと
アセンブラでSSEで組んだ場合D5よりもD6のほうが乗算が遅めになるみたいだし

どうもソース編集をD6でやってD5でコンパイルというのが道筋みたい

ちなみにDCC32だけ使うでライブラリーが全部自前のときって
出来上がりのアプリを業務用や営利で使っても法的に問題ない気がする。

汎用性のためのラッパーなのに
結局はクラスを使わないでWinAPIを使ったほうがDelphiのバージョン間での
互換性が高いのってなぜ...

あとUPXだけどこんなん使うならば自己解凍式EXE使ったほうが無難じゃない?
0543デフォルトの名無しさんNGNG
Delph6:Delphi5=WindowsXp:Windows2000
成り立つ?
0544デフォルトの名無しさんNGNG
PersonalをDL中です! がんばります 有難う>Borlandたん
0545デフォルトの名無しさんNGNG
C#>>>>>>>>>>>>>>>>>>>>>>>Delphi
0546デフォルトの名無しさんNGNG
>>542
sysutilsはよいとしてclassesはなぜいるの?

upxはまあほとんどキモチの問題だろ。
自己解凍式exeは意味不明。自己解凍して自動実行してくれるならupxでいいし。
ただ小さくするってんならまさに普通の圧縮形式でいいし。
0547デフォルトの名無しさんNGNG
配布の事を考えてでしょ。
でもzipよりもupxの方が小さくなるという事はよくあるね。
ところでdel関係スレを上げまくっているのは同一人物?
0548デフォルトの名無しさんNGNG
>>534

クラスのインスタンスははじめからポインタだよ。

ShowMessage('$' + IntToHex(Integer(strList)));

でよいのでは?
0549548NGNG
ShowMessage('$' + IntToHex(Integer(strList)));

じゃなくて

ShowMessage('$' + IntToHex(Integer(strList),8));

ね
0550デフォルトの名無しさんNGNG
>>545

マジレスはカコワルイそうだが

> C#>>>>>>>>>>>>>>>>>>>>>>>Delphi

これはそもそも比較できないのでは? Delphi.NET ができたら
比較できるでしょ。でも、.NET 上では、なんで開発しても中間
コード生成であほくさいでしょ。

.NET 自体がダサい。
0551デフォルトの名無しさんNGNG
C#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Object Pascal
0552DelphianNGNG
>>551
悔しいがその通りだ。
C#がうらやましい…。
0553デフォルトの名無しさんNGNG
なんだこのクソ芝居は
0554デフォルトの名無しさんNGNG
>553
君も冷静かつ公正にC#/.NET評価してみれば
その価値を理解できるよ。
0555デフォルトの名無しさんNGNG
C#か…。
かねてから凄いといううわさは聞いていたが。
そろそろDelphiは終了かな。
0556デフォルトの名無しさんNGNG
Delphi は Borland が生きてる限り終了ということはない。

C# は、言語的には Jaba と VB を足して2で割ったような感じ。
.NET でなかったら、スカな言語です。

Delphian なら Delphi.NET で十分。

.NET は5年後、MS でさえ忘れているかもしれないよ。
0557デフォルトの名無しさんNGNG
速度のアドバンテージは完全消滅なんだよね?>C#
0558デフォルトの名無しさんNGNG
>>556
Jaba?
0559デフォルトの名無しさんNGNG
適材適所だろ。

ま、実際問題速度的なものを見るとDelphiでいいんだけど、
言語だけ見ればC#は確かにいいね。
C#-.netとIDEがあれば、浮気しちゃうかも。
0560デフォルトの名無しさんNGNG
C#:Delphi=Delphi:VB
成り立つ?
0561デフォルトの名無しさんNGNG
C#ってMLでは不気味なほど話題にならんな
信者のすくつだからか?
0562デフォルトの名無しさんNGNG
>>561
うーん。ここ2chだから平気でC#の話題出してるけど、
Delphi専門のMLだとチョットマズイ気がする
0563デフォルトの名無しさんNGNG
>>562
>Delphi専門のMLだとチョットマズイ気がする
なんでだよ〜VBは平気で叩いてるくせに
誰かC#>>>>Delなメール投げて袋叩きになる勇者はいないのか(藁
0564デフォルトの名無しさんNGNG
Delphi の ML なんだから C# の話題を出しても、怒る前に困ると思う。
users.gr.jp は C# の ML も持っているんだからそちらに誘導されるだけでは?
0565パスカル触ってみた人NGNG
free pascal 入れてみました。
program stringtest
uses sysutils;
var pc:pchar; i:integer;
begin
pc:=getmem(1000*sizeof(char));
pc:='123456789012345678901';
writeln('strlen='+inttostr(strlen(pc)));
{この結果は21なるほど21文字あります}
pc:=reallocmem(pc,strlen(pc));
writeln('pc='+pc);
for i:=0 to strlen(pc)-1 do
writeln(pc[i]);
writeln(pc[strlen(pc)]); {あれ?アクセスできるなあ}
writeln(pc[strlen(pc)+1]); {これがアクセスできてしまうのはどういうこと?}
writeln(pc[100100]);{さらにこれさえ、できてしまう不気味でしょうがない.}
freemem(pc)
end.
なんかおれ馬鹿なんでしょうか?
デルファイではどうなりますか?
0566デフォルトの名無しさんNGNG
ソースの先頭に{$r+}って入れてみるとか
0567パスカル触ってみた人NGNG
やっぱり最後の不気味な三行は実行されます
改行が3つ表示されました。
0568デフォルトの名無しさんNGNG
?
Delphiでも実行できるけど?
0569パスカル触ってみた人NGNG
そうなんですか?何でなんだろう?
pcはポインタでメモリ割り当てないと
使えないですよね?
あるわけもないpc[100100]にどうしてアクセス
できるのかがよくわからないんです。
0570パスカル触ってみた人NGNG
reallocmemを取り除いたらちゃんとaccess violationがでるようになりました.
pcharのサイズを調節するにはどうしたらいいんでしょう?
0571パスカル触ってみた人NGNG
{$r+}
program stringtestbak;
uses
sysutils;
var
pc:pchar;
i:integer;
begin
pc:=getmem(1000*sizeof(char));
pc:='123456789012345678901';
freemem(pc);
end.

とおもったら上のソースを実行してもアクセスバイオレーション
がでるようになった。
だめだ俺にはパスカルはわからない.
0572デフォルトの名無しさんNGNG
565のはfpcのメモリマネージャーがある程度一度にOSからメモリを
受け取っているのかもしれない(ソースを読めば分かるのかもねー、あははー)
571のはpc:='......';が、pcがGetMemでもらったポインタじゃなくて
リテラルをさすポインタに変更する危険なコードだとおもう。
ちなみにDelphiだと565のは通らないんじゃないのかね。
0573パスカル触ってみた人NGNG
ああ、なるほど、constのアドレスを代入しようとする事
になるんでしょうか
それを開放しようとして怒られるみたい。
571のpc:='...'の部分はポインタとしてのpcに何かしら他の
{$r+}
program stringtestbak;
uses
sysutils;
var
pc:pchar;
tmpp:pchar;
i:integer;
begin
pc:=getmem(1000*sizeof(char));
tmpp:=pc;
pc:='123456789012345678901';
if pc=tmpp then writeln('equal')
else writeln('not equal');
freemem(tmpp);

end.
ならエラーはでませんでしたやっぱり等しくなかったです.
まだ文字列のコピーの方法がわかりませんが
本もヘルプもないのでデルファイでやってみます。
0574何だろう君NGNG
なんで、メモリリークって発生するの?
勝手にアプリケーションの方で正常終了したら
解放すればいいんじゃないの?
freeしないとダメなヤツとかの話ね。
0575デフォルトの名無しさんNGNG
getmemだのallocmemだののヒープメモリは自分で解放しないとダメちん
0576何だろう君 NGNG
何故ゆえに?
もしくは
「勝手に解放しない仕様にした」のは何故?
もしかして「アホまるだし」な質問してる?
0577デフォルトの名無しさんNGNG
GCをキーワードに調べてみろ
0578デフォルトの名無しさんNGNG
あ、GCだけだとGraphics Contextとかも引っかかっちゃうかも。
garbage collectionとかメモリ管理とか。
0579デフォルトの名無しさんNGNG
>>574
アプリケーションが正常終了したらまともな OS ならメモリはちゃんと開放されるぞ。

だからとはいえ長時間(何週間, 何ヶ月)走りつづけるプログラムとかもあるんだからそれだけじゃ困るだろ。
そうでなくても毎秒 MB 単位で漏れたりしたら数分ともたんだろ。
0580何だろう君NGNG
なんだか「へりくだった」CGギャラリーがひっかかるみたい。
garbageって、ごみくずって意味?
そー書いてあったけど…。
まぁ、「そうすることに意味がある」ってことにしときます。
くどくなりそーなんで。
答えてくれた人、どーもです。
あ、ヒープってのも意味分からんな。検索してみよう…。
0581何だろう君 NGNG
あれま、すれちがい…。
えーと、finallyでfreeするstringlistとかは…?
でもま、だいたい分かりました<理由
どーもです。
0582デフォルトの名無しさんNGNG
GCといったらゴッド・チャイルドでしょう。
0583デフォルトの名無しさんNGNG
つまり、VirtualAllocで確保したメモリはプロセス終了時に
開放されるって事?
0584トリックのエンディングは妙だNGNG
PVの鬼束ちひろさんは怖い。普段は割とカワイイ。
0585デフォルトの名無しさんNGNG
reshackerで英語のアプリを日本語に翻訳して
wdiffで日本語化パッチを作ろうとしても
「ファイルをオープンできません」と出ます。
どなたか対処法をしらないでしょうか?
ヘルプファイルは目を通しており、やり方にミスは無いかと思います
差分ファイルを保存する際の拡張子は WDF or EXEのどちら?
当方 WIN98SEです。95じゃないと動作しないという落ちでしょうか?
0586デフォルトの名無しさんNGNG
>パスカル触ってみた人
ポインタがわかってないのをパスカルのせいにしないで。
言語で禁止してくれるのを頼りにしすげると、ワナにはまりますよ。
わかってると思うけど、コンパイルが通ったからって必ずしも上手く実行されるとは限らないので。
0587パスカル触ってみた人NGNG
ごめんなさい別にパスカルのせいにしたつもりはないんです。
パスカルがわからないんじゃなくてポインタがわからないでした。
ただ、571は今見るとおかしいですがそのときは本当にわからなかったんです。
565は文字列の配列のインデックスってどうなっているのか
とか自分の中で混乱する部分を調べて
アクセスしてみてエラーを出して確認したかったんです
0588デフォルトの名無しさんNGNG
そうそう、アクセスしてもエラーがでるかどうかってのは不確定だから
混乱するんだよね。上手くいっているように見えてそれは単なる偶然。

そういや、Cの実験室って本でポインタ周りをとことん実験して調べてて面白かったな。
今見ると当たり前のことが書いてあるんだけど、
ポインタの理解があやふやだったころは目からウロコだった。
0589デフォルトの名無しさんNGNG
Delphi6パーソナルで
テキストエディタを作っているのですが
ActionManagerコンポーネントがありません。
どうすればよいのでしょうか?
0590デフォルトの名無しさんNGNG
age
0591ageNGNG
ageる世
0592デフォルトの名無しさんNGNG
>>589
ないのであきらめましょう。
ActionManagerがなくてもなんとかなります。

それかpro版を買うか
0593名無しさん@EmacsNGNG
>>589
> Delphi6パーソナルで
> テキストエディタを作っているのですが
> ActionManagerコンポーネントがありません。
> どうすればよいのでしょうか?

入ってないよ!!<ActionManager
BorlandのFAQに入ってないことは書いてあったけど、
俺も迷った(w
つーか、俺も今ヘルプのチュートリアルやってるけど、
そこで止まってる

メインメニューは作れたけど、
そこからオープンダイアログを開く方法がわかんね。

procedure TForm1.Open1Click(Sender: TObject);
begin

end;

このbeginとendの間に何か書けば良いと思うんだけど
どう書いたらよいんでしょう?
0594デフォルトの名無しさんNGNG
動作確認しないで流し書きするけど

// オープンダイアログを開く
if OpenDialog1.Execute then begin
 // ファイルが選択された場合
 // テキストファイルとして読み込む
 Memo1.Lines.LoadFronFile(OpenDialog1.FileName);

end;
0595デフォルトの名無しさんNGNG
>>593
結局抜かして先に進めということでしょうか?
0596名無しさん@EmacsNGNG
>>594

> // オープンダイアログを開く
> if OpenDialog1.Execute then begin
>  // ファイルが選択された場合
>  // テキストファイルとして読み込む
>  Memo1.Lines.LoadFronFile(OpenDialog1.FileName);
>
> end;

出来た出来た♪コンパイルしようとしたら
Memo1のところで未定義の識別子ってでて来たけど、
これはMemo1をちゃんと定義してやればおっけーってことですよね?
その部分をコメントアウトしたらコンパイルは通って思ってた挙動を
してくれました。ありがとう。

>>595
抜かすと言うか別の方法を考える。
どう操作したって壊すことは無いんだから
いろいろクリックしまくってみるとか
0597デフォルトの名無しさんNGNG
protectedってどんな時に使うのか、ず〜〜〜〜っと疑問だったんだけど
他人が作った、あまり出来が良いとは言えないTLabel系コンポーネントを
継承してみて、初めて使い方が理解できたよ(笑
改めて見るとTCustomLabelって凄い!良く練られてる。
0598Delphiの初心者NGNG
すいません。いきなりですが質問で〜す。

FindDialogの使い方教えてください。
0599デフォルトの名無しさんNGNG
FindDialog はダイアログが出るだけですから自分で検索部は作って下さいね
0600デフォルトの名無しさんNGNG
つーか、申し訳ないけど、もう「メモ帳」の類と、
「メモリークリーナー」の類はいらないと思う。
0601デフォルトの名無しさんNGNG
公開するかどうかは別にして
del入門でメモ帳クローンは避けて通れないでしょ。
0602デフォルトの名無しさんNGNG
delphiでメモ帳作りたいんだけれど
WIN32APIでエディットコントロールのセルまではわかるんだけど
コンポーネント見たく背景色を指定するのはどうしたらよいのでしょう。

とりあえずブラシは一つ作っているのですが
あとListvewとかの背景色もきぼーん kol使うというのは無しで
0603デフォルトの名無しさんNGNG
ActionManagerとか言う前に、もっと勉強することたくさんあるぞ。
質問する前に検索して探すことをお勧め。
いっぱい書いてくださってるぞ<delphiの先輩方
0604Delphiの初心者NGNG
↑の方のを聞くと質問しにくいんですが(笑)
検索について詳しく書いてあるページとかありますか?
0605デフォルトの名無しさんNGNG
>>604
http://www.users.gr.jp/query.asp
http://www.google.com/
「検索について」が何を示すのか分かりませんが、この辺とか。
google知らないとかってのは無いですよね?
最初のURLはメーリングリストの過去ログですが、ちょっと使いづらいかも。
0606Delphiの初心者NGNG
すいません。説明不足でした。テキストエディタなどを作る際の検索です
0607605NGNG
>>606
604のURLで足りませんか?「delphi FindDialog」とかで。
0608605NGNG
「Magic of Delphi」が、最初に参考にするページとしてはベストだと思う。
つーか、「フリーで入手して説明書(?)が無くて何から学べばいいんじゃい?」
って人には。オレがそう(藁
でも、ただいま停止中。つーか、アドレスが使えなくなってる。
0609Delphiの初心者NGNG
う〜ん… またあしたさがしています。ありがとうございました。
0610デフォルトの名無しさんNGNG
>>608
ここへどうぞ。
http://www.geocities.co.jp/SiliconValley-SanJose/2560/delphi4/index.htm
0611608NGNG
>>610
あれれ。いつの間にジヲに?
つーか、もうオレは全部見たから。
0612デフォルトの名無しさんNGNG
ひとつのOSでDel6ProとPer両方入れることってできる?
Proで作ってPerでビルドできるか確認したいんだけど
0613何だろう君NGNG
http://pc.2ch.net/test/read.cgi/tech/1001442200/のスレの38あたりに
同じようなこと書いてますね<メモリの解放
先読めば良かった。すんずれいしました。
0614デフォルトの名無しさんNGNG
淫乱アセンブラ
0615デフォルトの名無しさんNGNG
>>606 AFEDITのソースって結構参考になるのでは?
コンポーネントでなければなおよかったのだけど

>>612 ひとつのOSでというかおかしくなるからやめたほうがよい
Per版用にHDDを買って切り替えたほうが無難では?

delphi6をWin2Kにインストールしたんだけど
通常使用するのは当然管理者権限じゃないんだけれど
管理者権限で許諾とったのに未許諾になってしまったのは切れた
つまりdeelphi自体全体的にフェールセーフにはできていない
許諾もソフトでとるんじゃなくて郵便でとんないとアプリとして管理できない

もしもボーランドが文句いわないのだったら
朝インストールして許諾とって夕方アンインストールしてもいいと思っている。
0616デフォルトの名無しさんNGNG
>>600
勉強用途のソフトと使ってもらおうと思って公開するのは別でしょ。

以前はそれを間違えて、勉強用に作ったあまりにありふれて不完全なものを
公開してシェアウェアにしていたものがいたが、
ま、最近はそういう人はそんなにいないだろ。
# 2ch見てる人ならなおさら
0617デフォルトの名無しさんNGNG
>>616 どーい
勉強用の場合おんなじテーマのもののほうがスピードとかの差がわかっていい。
極端なのがhello worldだと思うけれど
日本の場合IMEという厄介なものがあってエディタ関係というのは奥が深いと思う

ただ開発途上のものとか動作テストレベルのものでも
いろんな環境で見てもらうという意味では公開してもいいんじゃないかと思う。

シェアウェアにしても売れなきゃいいんだけど
コントロール並べただけで著作権がありますなどという奴もいるからなぁ。
というか著作権や特許のあるもの使っててGPLとか抜かす奴もいるし
0618デフォルトの名無しさんNGNG
GPLって何?
0619デフォルトの名無しさんNGNG
>>618
GNU GENERAL PUBLIC LICENSEの略
早い話がこのソースやライブラリーを使ったソフトを公開するときは
全ソースを公開しなくちゃだめってライセンスで
GPLを使ったら必ずGPLのライセンスをつけてGPLで出さないといけない。
dllにして制御すれば本体はよいというのがLGPL

ソース公開しなくても商用でもOKというのがMPL
とりあえずアプリケーションがフリーでも商品でもライブラリーがMPLか完全にふりーのものであれば
特許関係がクリアされているものならば問題なく使える
GPLで作ると例えばできのいい有料のコンポーネントなどを使って一部分だけ
GPLのものという形ができないのでオープンソースにも向かないと
折れは思う。
0620618NGNG
さんくす
0621Del歴3日(NGNG
Pascalもろくに解からない厨房です。型チェックがきびしすぎる
文字 → ASCIIコード、の変換はどうやるの?
Delphiの入門書には載ってない。StrToIntは使えないし・・・

取りあえずアセンブリ機能を使ってこんな事やってます。
var
Character: Char;
AsciiCode: Byte;
begin
asm
MOV AL, Character
MOV AsciiCode, AL
end;
0622デフォルトの名無しさんNGNG
>>621
(;´д`)

AsciiCode := Ord(Char);
0623Del歴3日(NGNG
>>622
ありがとう(;_;)
0624文字列…NGNG
Delphiの文字列ってなんかややこしくないですか?
0625デフォルトの名無しさんNGNG
C文字列との互換を考えると最初はやっかいだけど、
Stringだけ使ってれば簡単じゃない?
0626デフォルトの名無しさんNGNG
まあ初期の設計思想からはずれて便利さを追求した結果
多少歪で半端な仕様になっちゃってるからね
文句たれずに覚えちゃえばあとはどってことない
0627デフォルトの名無しさんNGNG
Delphi内だけで完結するならいいけど、
そうでないなら面倒かも。
Cのchar*やら、C++のstringやら、Delphiのstringやらどれかになれすぎていると、
逆に戸惑うな。
0628デフォルトの名無しさんNGNG
char*は論外だろ
0629デフォルトの名無しさんNGNG
ごめん、なぜ?
0630文字列…NGNG
pcharより長い文字列が気持ち悪いです。
{$H-}
で頑張ってる人いますか?
0631ウィルス職人NGNG
end;


(;なのでまたprocedureかなんかで再開しろ)
0632デフォルトの名無しさんNGNG
WideStringの方が楽
はやく標準にしろ!!
0633デフォルトの名無しさんNGNG
>>632
Unicodeやだ!!VBじゃねえんだから。
0634デフォルトの名無しさんNGNG
WideStringはUnicodeじゃなくって2バイト文字列
s: WideString;
s:='感じ';Writeln(s[1]); // '感'
ってこと
0635デフォルトの名無しさんNGNG
Strings.IndexOf が大小文字を区別するのかしないのかでまようんだよな。
ソースコード見たらAnsiSameText 使ってたから区別しないって分かったけどさァ

Strings.IndexOfText
Strings.IndexOfStr

って区別してほしかったナ☆
0636デフォルトの名無しさんNGNG
全てのクラス型に使えるような

procedure SaveClassToFile(Filename:string; obj:TObject);
procedure LoadClassFromFile(Filename:string; obj:TObject);

関数作れませんかね。
ポインタを格納している場合は、その実体までさかのぼって
保存してくれるような。
0637デフォルトの名無しさんNGNG
無理でしょう。ただ
・すべてのフィールドに対してプロパティを宣言する
・すべてのプロパティをpublishedにする
・レコード型、ポインタ型は使わずクラス型で置き換える
・配列は使わず、TList型にする
等々守れば出来るかも知れませんが……
0638デフォルトの名無しさんNGNG
>>634
WideStringってウニコードでしょう?
0639デフォルトの名無しさんNGNG
634 は自動的に変換が行われている事を知らないのでしょう
0640デフォルトの名無しさんNGNG
>>630
PascalやBasicになれていれば長い文字列の方を選ぶのでは?
そりゃ俺だって、実行速度が必要なところでは仕方なくpchar使うけどさ。
0641デフォルトの名無しさんNGNG
長い文字列って便利だからつい 文字列以外にバイナリ保存先に使っちゃわない?
0642デフォルトの名無しさんNGNG
LongStr1, LongStr2: String;
LongStr1 := 'TestString';
LongStr2 := PChar(@LongStr1[4]);
こんな感じの使い方を良くやるんだけど、コスト高いんだろうか?
PCharで統一した方が良い?気にする必要なし?

あと長い文字列の場合
if Length(LongStr1) > 0 then
Result := Length(LongStr1) div 3;
と、した場合(Length(LongStr1)が2回)と
Len := Length(LongStr1);
if Len > 0 then
Result := len div 3;
と、した場合(Length(LongStr1)が1回)でコストは違う?違わない?
0643デフォルトの名無しさんNGNG
delhiのstringは実質的に可変長バイナリなので
レコードの動的配列などをDelphi3で使う場合は便利です。

というかINT64が使えてCardinalが32bitならばD3最強なんだが...
(D5,D6のTstream 32bitだし)
0644デフォルトの名無しさんNGNG
>>642 明示的にsetstringすればいいんじゃない?
0645デフォルトの名無しさんNGNG
>>644
SetString(LongStr2, PChar(@LongStr1[4]), Length(LongStr1) - 4);
こんな感じかな?なんか余計にコストが掛かりそうな気が・・・・
0646デフォルトの名無しさんNGNG
なんで copy 使わないの?
0647デフォルトの名無しさんNGNG
1.LongStr2 := PChar(@LongStr1[4]);
2.SetString(LongStr2, PChar(@LongStr1[4]), Length(LongStr1) - 4);
3.LongStr2 := Copy(LongStr1, 4, Length(LongStr1) - 4);
4.LongStr2 := RightStr(LongStr1, Length(LongStr1) - 4);
む〜ん、色んなやり方があるもんだ。
私的には4.が読みやすくて良さ気だけど・・・・・
0648デフォルトの名無しさんNGNG
:= Copy(LongStr1, 4, High(Integer));
0649デフォルトの名無しさんNGNG
LongStr2 := LongStr1; // 参照カウントが増えるだけで高速
Delete(LongStr2, 1, 3); // ここで初めて最初の3文字が削除されたコピーが作成される
0650デフォルトの名無しさんNGNG
マジ質問です。
エクセルのような表計算ソフトを作りたいのですが、
どのような手順でやればいいかわかりません。
使用するコンポーネント、コード等を教えてください。
環境はdelphi 5 proです。
0651ねこまNGNG
TStringGrid に表計算機能を付加するコンポーネントが
Delphian World にあったと思う.

以上
0652デフォルトの名無しさんNGNG
Excel埋め込め
0653デフォルトの名無しさんNGNG
ActiveXタブにある F1BOOK は Excel互換のデータを読めますよ
0654デフォルトの名無しさんNGNG
あのですね、仮想テキストファイル(自分が命名)を実現するクラスを作りたいのです。
簡単に言えば、レジストリエディタのように、ツリー構造で
ディレクトリもどきとファイルもどきが存在し、
テキスト形式のファイルで保存できるというものです。

ディレクトリの名前変更やファイル移動、コピーなどを実装したいのです。
スマートに実装する方法は無いものでしょうか。

[\c\windows\temp]
tempfile1="aefawef"
tempfile2="apweofawef"
[\c\windows]
system1="pokokp"
system2="pppp"

という感じで保存できるように。
0655デフォルトの名無しさんNGNG
XML
0656デフォルトの名無しさんNGNG
TREEもどきでバーチャルINIファイルに保存してください
0657ねこまNGNG
簡単にやるなら TTreeView で SaveToFile, LoadFromFile
TreeItem.Data に属性持たせとけばよさそう
そのまま表示できるのでデバッグも楽ちん

XML も良いアプローチ.
0658デフォルトの名無しさんNGNG
>>654 文字列の改行とかヤバイ文字をエンコードデコードしてそのまま
 レジストリに書き出せば?

function EncodeStr(const s:string):string;
var i:integer;
begin
Result:='';
i:=1;
 while i<=length(s) do
  begin
  case s[i]of
  #0..#31,'"','''',',','&','%':
      Result:=Result+'%'+IntToHex(ord(s[i]),2);
  else begin
    Result:=Result+s[i];
    end;
  end;
   inc(i);
  end;
end;

function DecodeStr(const s:string):string;
var i:integer;
begin
Result:='';
i:=1;
 while i<=length(s) do
  begin
  if s[i]='%' then
   begin
    try
     Result:=Result+ char(StrToInt('$'+s[i+1]+s[i+2])) ;
    except end;
     inc(i,3);
   end else begin
   if not(s[i] in[#$0d,#$0a]) then
    Result:=Result+s[i];
   inc(i);
   end;
  end;
end;
0659デフォルトの名無しさんNGNG
xmlってHTMLもどきじゃないんですか?
そんなに複雑なことも簡単にできるの?
0660デフォルトの名無しさんNGNG
てゆうか、Del6Pro にXMLコンポーネントは
付いてないですよね…はあ。
0661デフォルトの名無しさんNGNG
>>660
MSXMLつかえ
0662デフォルトの名無しさんNGNG
>>659
HTML は 「Web用の文書」 を書くための言語。
XML は 「何らかの言語」 を書くための言語。
自分で好きな言語を定義できる。
狭義ではデータ構造の定義でもいい。

>>660
msxml 使えば?
0663デフォルトの名無しさんNGNG
どやってつかうの?>msxml
0664デフォルトの名無しさんNGNG
MSXMLってコンポーネントのことですか?
探してもみつからないけど、MSXMLっていう
Delphiからでも使えるライブラリがあるんですか
0665デフォルトの名無しさんNGNG
>XML は 「何らかの言語」 を書くための言語。
>自分で好きな言語を定義できる。
>狭義ではデータ構造の定義でもいい。

あ、そうなんだ。
てっきりHTMLの後継者だとおもっていた。
さっそくXMLの雑誌を買ってこよう。
0666デフォルトの名無しさんNGNG
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, Chartfx3;
type
TForm1 = class(TForm)
Chartfx1: TChartfx;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure TForm1.Button1Click(Sender: TObject);
var i: byte;
begin
for i:=1 to chartfx1.NValues do chartfx1.Value[i]:=i;
chartfx1.Refresh;
end;
ってなときにぼたん1押しても値が変わりません
なにがわるいんでしょうか
へたれな質問ですまそ
0667デフォルトの名無しさんNGNG
データを変更する部分はOpenDataExとCloseDataで囲ってあげてください。
0668デフォルトの名無しさんNGNG
XMLってSGMLの2の舞になりそうな気がするんだけどな....
チャンク構造のバイナリファイルのほうがよいとおもふよ。折は
データベースでも何でもチャンク構造がよい
参考フォーマットとしてはPNGがよいな。

あとXMLは確かTorryにフリーとシェアと両方あったと思う。
タイプライブラリーでXML関連のを読み込んでもいいけれどでもソースのある奴は
やっぱ参考になるね、
コンポーネントは極力ボーランドのものじゃないほうが実行時バイナリと
開発時バイナリが分離されていて効率がよいように思える。
0669デフォルトの名無しさんNGNG
すいません、チャンク構造ってなんですか
0670デフォルトの名無しさんNGNG
>668
すみません、
>SGMLの2の舞
ってなんですか?
0671デフォルトの名無しさんNGNG
>>669
個別のデータ要素のタイプにかかわらず、要素の枠としてのフォーマットを統一して格納する方式。
たとえば種別(4文字程度)、サイズ、データ実体という組で一つのチャンクとして定義して、それに
則って読み書きするだけで汎用のリーダー/ライターが書け、知らない種別は無視しても
読み続けられるために後から種別が増えても下位互換性を保つようにできる。
さらにチャンクの中にさらにサブチャンクとして並べたりもすることでこの構造をツリーにすることもある。
バイナリの画像や音声フォーマットはチャンク形式を採っているものが多い。

XMLはこの考え方をテキストベースに置き換え、チャンクのフォーマットにあたる部分も
別途定義・記述するようにしたものといえるかな。
0672デフォルトの名無しさんNGNG
ぐっちゃぐっちゃ何でもかんでも取り込んで記号化したふり
したものなんか見たくも無い
0673デフォルトの名無しさんNGNG
>>669
671に補足すると、Windowsでは昔からRIFF形式ってのに使われてるよ。
で、RIFF形式ってのはWAVやAVIに使われてる。
0674668NGNG
>>671 丁寧なフォロー あんがとー

htmlが成功したのは自己完結型だからだと思うんだけど
XMLは例えばXML__type**みたいなのがきっちり決まっていればいいんだけど
一歩間違えるとただの暗号になっちゃう

仮にXMLを実装するとしても自己完結型か明示的に文法ファイルを指示したい

あと脱線しちゃうけれどMP3ファイルにRIFFヘッダーつけただけでACM APIで
再生できるのでDirectSoundでMP3をやる場合はありがたい
0675デフォルトの名無しさんNGNG
>>674
何かよくわからんが、普通 XML は DTD か XML Schme で文法を定義する。
0676デフォルトの名無しさんNGNG
MSXMLのドキュメント
http://www.microsoft.com/japan/developer/xml/default.asp
ほかにもIBMのDLLやOpenSourceのがあったはず
0677デフォルトの名無しさんNGNG
最近は階層構造のiniファイルとしてXMLの構造のみ使わせてもらってる
DTDやSchmeはよくわからんのとめんどくさいしほかとの連携もないのでパス
印刷する時はxslで見やすいようにしてIEで表示
0678デフォルトの名無しさんNGNG
>>671
wavやaviなんかそのたぐいだね。
確かにバイナリデータを扱うのが前提ならチャンクはらくだ。
0679デフォルトの名無しさんNGNG
LeftStrとかRightStrて日本語を1文字として数えてるようなんだけど
これを止めさせることって出来ないんでしょうか?
S := 'C:\テスト\dir\';LeftStr(S, 8);
とかすると、Sに'C:\テスト\d'が返ってきて迷惑ヽ(;´Д`)ノ8byteトリダシタイノー
0680デフォルトの名無しさんNGNG
>697 copy(s,1,8) ではダメ?
0681デフォルトの名無しさんNGNG
>>680
copyも日本語を1文字と数えるようで同じ結果が返ってきたです。
0682679=681NGNG
>>680
681は間違いで、ちゃんとできました!大々的に感謝です。
0683デフォルトの名無しさんNGNG
嘘こいてんじゃねえゴルァ!
0684デフォルトの名無しさんNGNG
というか それ8byteで切ったら、後困らんのかい?
0685デフォルトの名無しさんNGNG
Delphi6+up1で外部ツールを起動するとき
カーソル位置の単語$CURTOKENって展開されなくない?
0686685NGNG
-s$CURTOKEN
みたいにスペースを入れないと駄目なようで
-s $CURTOKEN
としたらOKでした。が、これではツール側が認識しない...
0687デフォルトの名無しさんNGNG
そうそう、スペース入れないと展開されない仕様はなんとかならないかな。
俺もツール登録するときに困った口。
たしか結局batファイル経由にしたけど。
0688デフォルトの名無しさんNGNG
Win2KにD6-pro入れて使用許諾とってからアップデートしたんだけど
ほかのユーザーでは未許諾になっちゃう。
これってどうすれば直る?
0689 ◆woDeLPHI NGNG
>688
 許諾を取った時のユーザで6.0のレジストリを保存して
それをマウス右ボタン->結合でやってみたら?
 色設定とかもそれで移せるからさ
0690デフォルトの名無しさんNGNG
>>689 あんがと それでやってみます。
確かバイナリのデータが入っているのでそれかな?
0691おしえてNGNG
でるファイてvcより簡単で
作成したアプリも高速らしいけど
本当ですか?

当方vbより乗り換えようと思うのですが
周りにユーザがいないのでふんぎりがつきません
長所、短所おしえてください

当方の使用用途はげーむせいさくです
あと、製作用のエディター

どうでしょ
0692デフォルトの名無しさんNGNG
とりあえずはpersonalただなんで、試してみたらどうでしょうか?
delphiが向いてるのはエディター制作ですが、これならpersonalの
ライセンスでもOKだと思います。
0693デフォルトの名無しさんNGNG
すでに C++ や Win32API の知識があるのなら、
Object Pascal や Delphi 流のアプリの組み方を覚えなくて良い分
VC++ の方が簡単かもしれません。
GUI を作ることと、既存のコンポーネントを利用して出来る範囲に限って言えば
VB と同じくらいに簡単で VB 以上の表現力を持っています。
それ以上のことをしたいならば、オブジェクト指向や
Delphi におけるプログラミングテクニックを学ばなければいけませんが、
これは VC++ においても状況は変わらないでしょう。
0694デフォルトの名無しさんNGNG
>691
VC++にしなさい。
ゲーム作成に一番よく使われていて、就職にも困らないよ。
0695デフォルトの名無しさんNGNG
両方やってみたらいいんじゃないの?

Delphi知ってる事が荷物になるわけじゃないし
C++がそんなに難しい言語って事でもないし

片方で詰まったらもう一方に乗り換えるのを繰り返すのが上達が速いかもね
0696デフォルトの名無しさんNGNG
DelphiでWindowsプログラミングの基礎を掴んで、VCへ移行。
これ最強。
0697デフォルトの名無しさんNGNG
>片方で詰まったらもう一方に乗り換えるのを繰り返すのが上達が速いかもね
ただの二度手間
0698デフォルトの名無しさんNGNG
>>696
ただし、Windows依存とそうでないものが区別できなくなるという危険も伴う、諸刃の剣。
0699デフォルトの名無しさんNGNG
文字列の可変長多重配列ポインタを関数に渡すの面倒臭いんで
すぐDelphiに逃げちまうな
悪い癖だ(w
0700デフォルトの名無しさんNGNG
まあ、おまえら素人はバッチファイルでも作ってなさいってこった
0701 NGNG
別のサブルーチンに飛ばすにはどう書けばいいのでしょうか?
(TForm1.Button1ClickからTForm1.Button2Clickに飛ばすというような)
探したんだけど見つからない…
0702デフォルトの名無しさんNGNG
VirtualTreeViewの使い方がサパーリわかりません。
サンプルソース、ワケワカメだし…
ネットで解説ページを探してみても、それらしいのは見つからないし…

これはサンプルを読めるようになるか、市ねって事でしょうか?
0703デフォルトの名無しさんNGNG
VirtualTreeViewじゃねえや、VirtualListViewだ…
やっぱり死のう…
0704デフォルトの名無しさんNGNG
>>701
Button2Click(sender);
じゃないのか?
0705701NGNG
>>704
うわー本当だ
ありがとうございました
0706DelフサギコNGNG
  ∧,, ∧
  ミ。_。彡   ペコッ
〜ミ,,,U U,,ミ 且~~  あけましておめでとうございます。

   ∧,,∧      / ̄
  ミ,,゚Д゚彡  <  Button2Click(nil)でもいいよ
  ミ つ且~~   \_
〜ミ,,,,,, ,,ミ
日本Delphi振興会
・SenderのないprocedureからSenderを持つprocedureを呼ぶ。
http://hp.vector.co.jp/authors/VA009712/take/delphi/kabedel.htm#sender
0707デフォルトの名無しさんNGNG
Delphiの最大の利点て あっというまにコンパイルじゃないの?
Delphi使ったら例えVCLやIDEがだめでも他にいけないと思うよ。
特にBCBは最悪、
>>702 わかんないときはまとめてコンポーネント化しているもの使えばよいのでは?

>>698 Window以外の環境なんてないと思ったほうがいいのでは?
仕様とかデザインとかファイルフォーマットとかプロトコルさえ抑えていれば
どうにでもなると思う。

例えば外注に丸投げするとき必要なのはプログラムソースではない。
いまできる最大限のことをやれ゛いいんじゃないかとおもうのです。
それっていまのDelphiの逆だけど...

http://halbow.cool.ne.jp/ShousaiIndex.html
とか
http://bonanzas.rinet.ru/
にいくとWin専用機としてのDelphiの可能性が見えてくる。
あと
http://www.sulaco.co.za/
もはずせないな全部非VCLのサイト
0708デフォルトの名無しさんNGNG
>>707
高速コンパイルこそが唯一にして不可侵の Delphi 最大の利点に同意
これに慣れると他の物が使えない諸刃の剣
0709デフォルトの名無しさんNGNG
俺もPascal知らなかったからBCB使ってたけど、試しにDelphi使ってみたら
コンパイル速度に驚愕。それ以来ほとんどDelphiだなぁ。
0710デフォルトの名無しさんNGNG
マシンスペックが上がったらコンパイル速度は
差が縮まると思っていたが、いまだに開いている。
友人のVCユーザは未だにうらやましがっている。

Javaの実行速度が問題なくなるくらいまでは(w
しばらくはDelphiのコンパイル爆速神話は続くと思われ。
0711デフォルトの名無しさんNGNG
ていうか、ここQuake2をDelphiに移植しようとしてるんだけど(藁
http://www.sulaco.co.za/quake2/
0712デフォルトの名無しさんNGNG
>>711 Sullacoの64kbyteでもはD6でコンパイルすると192kに...(藁

Geforceのコードは使っていないけれど
Pickingのサンプルとかあるのでよろしい。
Quake2というよりすでにMD3ファイルローダはできてるようだ

あとDelphi3DとかGLSCENEなんかもよいのだが...
0713デフォルトの名無しさんNGNG
許諾コードって何回取得してもチェックしてないんだと。
だから毎日クリーンインストールして取り直してもOK

あとD6の製品版は不良品だけど作っちゃったから10/18のパッチはあてないんだと..
そんなんが日本の法律でOK?

あとライセンスでは1台のPCといっているけれど
向こうの認識は1台のPC、1つのOSでデュアルブートで常時1台しか動いていないけれど
OSは違うというのはだめだけれども記述に誤りがあるという認識らしい。

ということで基本的に不正コピーしなければボーランドのライセンスは
法的根拠が何もないし、罰則もない
ボーランドに法律関連を扱う部署や品質管理の部署はないみたいなので
訴訟の心配もない、個人情報の搾取も会社レベルではやってない

ということでプロ版かって再インストールとかで二の足踏んでいる人は
安心してアンインストール再インストールできると思います。

逆に将来性が薄いのでただだからといういってPersonal版やるくらいなら
freePascalにいったほうが良いです。
0714デフォルトの名無しさんNGNG
許諾コードって?
普通は許諾一回取ったら再インストールしてもレジストリから復元するんじゃないの?
そんなメンドクサイ事しないでしょう
0715デフォルトの名無しさんNGNG
>>714 基本的にWindows2000ではいまだに許諾コード取得のバグがあるそうで
管理者権限以外では許諾コードをユーザーごとに取り直さないといけないそうです。

それにやってないけれどアンインストールして情報残っていたらアンインストールとはいえないのでは?

基本的にWin2KやWinXpでDelphiを使うのは無理っぽいのでWin-MeのHDDにしようと思うのですが

許諾は何回とっても関係ないという情報は特に初心者向きだと思うのでこのスレに書きました。
あと未許諾でコンパイルしても特に影響はないそうです。
0716デフォルトの名無しさんNGNG
>>715 みんな黙ってるだけで、
  レジストリのどこにソレがあるかくらいは判ってると思われ
0717質問NGNG
Delphi6の初心者向け勉強サイトで
いいところ知ってる人いる?
グーグルで検索しても何年も昔の
しかもあまり詳しくないのしか出てこないYO!
プリーズ!
0718デフォルトの名無しさんNGNG
初心者向けって いったい どこが判らないのよ?
0719717NGNG
どこがわからないと言うか
なにもわからないのが現状・・
一番初歩の初歩から学びたい今日この頃・・
0720デフォルトの名無しさんNGNG
Delphi、どこで買ったらいいの?
0721デフォルトの名無しさんNGNG
一ヵ月後に俺が作ってやるから待ってろw
0722717NGNG
本気で激しく希望!!
つーかいいサイト知らない?
0723デフォルトの名無しさんNGNG
本買え
0724 ◆woDeLPHI NGNG
>>717 じゃ今から やってみたげるから
ファイル(F)->プロジェクトを開くで
 Demos\doc\TextEdit\ のTextEdit.dprを開いてみて
0725717NGNG
>>724
開いた!
ボタンが1つ出てきた!
あっちなみにPesonalね!
0726 ◆woDeLPHI NGNG
まずコンパイル&goしてみよう やり方は判る?
 プレイボタンみたいなのか 実行->実行(F9)ね
0727717NGNG
実行できたけどこれは一体?
RichTextファイルを開くもの?
自分で作るには?
0728 ◆woDeLPHI NGNG
じゃ、それを終了して MDIFrame.pas を開いてみよう
 方法は、表示->ユニットの表示とか表示->プロジェクトマネージャから選択ね
0729 ◆woDeLPHI NGNG
最初は画面に文字を書いてみよう

F12 を押して TextEdiorと書かれたフォームを手間に持ってきて
 フォーム内のグリッドの中央をクリック
F11を押してオブジェクトインスペクタを出し イベントをクリック
OnPaintというのを探してクリック
 その右の空白の 部分をダブルクリック

これで以下のような状態になる筈 なった?

procedure TFrameForm.FormPaint(Sender: TObject);
begin

end;
0730717NGNG
このプログラムの意味がサパーリ・・
Object Pascalだっけ?
0731 ◆woDeLPHI NGNG
つぎは その間に
procedure TFrameForm.FormPaint(Sender: TObject);
begin
Canvas.TextOut(20,20,'こんにちは');
end;

と1行入力して 実行してみよう
0732717NGNG
ちっちゃくこんにちはって出てきた!!
これはテキストを表示させるものらしい?
0733717NGNG
ごめんアナウンサー見たいんで落ちます
でぁでぁ
0734 ◆woDeLPHI NGNG
procedure は手続きを定義しますという意味
TFrameForm.FormPaint は手続きの名前。
 ドットが間にあるから、これは手続きでもメソッドと呼ばれるもので
 TFrameFormというクラスの FormPaintと いうメソッドを定義しますという意味
 意味判らんでも覚えてね

で、(Sender: TObject); は引数。 とりあえず無視してOK

begin 〜 end; はブロックで、 この間が関数の本体になるわけ

追加した Canvas.Text の意味とかは そこにキャレットをあわせて F1を押して調べてね
0735デフォルトの名無しさんNGNG
>>717
サイトでなないが
ヘルプ-Delphiヘルプ-チュートリアル:テキストエディタアプリケーション
では駄目か?
0736717NGNG
おおぉーー!
難しいがなんとなく理解!
感謝感謝!こんな感じで他のもできる?

ちなみに733は贋物!
0737717NGNG
>>735
サンクス!気づかなかった!
これでいいもの作ってみんなにあげるから待っててくれ!!
0738デフォルトの名無しさんNGNG
次に717は
「すみません、ActionManagerが見当たらないんですが…」
と言う
0739 ◆woDeLPHI NGNG
たぶんね。

>717
 ActionManagerの代わりに StanderdタブにあるActionListを使います

しかし
\Program Files\Borland\Delphi6\Source\Vcl\ActnRes.pas

はどうしようか?
0740デフォルトの名無しさんNGNG
>>712
> Sullacoの64kbyteでもはD6でコンパイルすると192kに...(藁
本当だ(w
readme.txtにDelphi5ってかいてあるけれど、それでも60KByteなんていかねって。
upxで圧縮も解凍も出来ないところから、何か別のexe圧縮使っているとみた。
0741 ◆woDeLPHI NGNG
【アクションマネージャにアクションを追加する】まで来たら
【イメージリストにイメージを追加する】まで2ページ飛ばして
1、ファイル->新規作成->フォーム
2、オブジェクトインスペクタ-> Name欄をForm2から StandardActions に
3、フォームの上でマウスの右ボタンでテキストで表示を選ぶか ALT+F12
4、ファイル->開く-> ファイルの種類を全てのファイル(*.*) にして
  Lib\ActnRes.dfm を開く
5、編集->全て選択(ctrl+A) の後コピー(Ctrl+C)
6、タブでUnit2.dfmを選び、編集->全て選択(ctrl+A) の後貼付(Ctrl+A)
7、ALT+F12でフォームを表示
8、あとは、HELPに書いてあるようにImageList1をコピーする
  まだActionListもついでにコピーする

そしてこのページからActionManagerを ActionList1 コンポーネントと読み替えます

【メニューの追加】
ActionMainMenuBar も無いので StanderdにあるMainMenuを使います
これを貼り付けてダブルクリックして適当にメニューを追加し
ここのメニューのActionプロパティに設定してゆきます
0742 ◆woDeLPHI NGNG
しかし、ホント D6パーソナルには D5 のチュートリアルを付けるべきじゃないのか?
0743デフォルトの名無しさんNGNG
http://www.text2music.com/mine/delphi/index.html
とか
http://hp.vector.co.jp/authors/VA015233/pascal/Pascal2Delphi.htm
とかでPascalの基礎を学んだ後、
http://home.onestop.net/mineko/index2.html
でDelphiの基礎を学べばいいと思われ。
んで、この後はそこらへんにあるTipsサイトで済ませる。

でも、まじめにプログラミングを学びたいなら、
やっぱ本買った方がいいよ。
0744デフォルトの名無しさんNGNG
つーか、こんなこと、どっかチャットでやらんか?普通。
0745 ◆woDeLPHI NGNG
>744 スマン 1回やってみたかんだ
 というか1回やったら記録残るから2回やらんでいいしと
0746デフォルトの名無しさんNGNG
あのー、「ソースファイルがみつかりません:classes.pas」、っていうダイアログが出るんですが、
どうすればいいんでしょう?

ちなみに日経ソフトウェア2月号の郵便番号検索を初めてパソ版で作ってるんですが・・・
0747デフォルトの名無しさんNGNG
>>746
アップデートを当てろ。
0748746NGNG
>>747
いやお恥ずかしい、すいません。
0749デフォルトの名無しさんNGNG
例外出すとワケワカメなヤツのソース要求されるヤツじゃないの?>>746
アレ、直らんのかな?
最初は「ハァ?」って思う。
例外なら「例外よ♥」って出てくれ。
0750DelフサギコNGNG
   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <  だから、パッチ宛ててってば。
  ミ つ且~~   \ dcuがデバッグ版らしいので
〜ミ,,,,,, ,,ミ       パソナるなのにソースを要求されるようだ
            と、ボランドNEwsGで報告があたよ.
0751超初心者NGNG
FileNameの文字列をフルパスじゃなくて、ファイル名だけ欲しい場合は
どうすればいいですか?
0752素数2NGNG
>>751 たぶん
ExtractFilename(パス付きファイル名); string で返ってくる。
0753デフォルトの名無しさんNGNG
ExtractFileName
0754デフォルトの名無しさんNGNG
>>752-753
おおっ、素早いレスありがとうございます!
早速やってみますね
0755デフォルトの名無しさんNGNG
>>752-753 ケコーン
ってのはないんだな、ここ
0756デフォルトの名無しさんNGNG
32ビットCRCって何ですか?

Delphiで生成するファイルのとある番地から番地までのデータにとある計算(32ビットCRC?)を施して
4バイトのチェックサム値をとある番地に格納したいのですが定番の方法ってあるのでしょうか?

できればソース付だと大変うれしいです。
0757デフォルトの名無しさんNGNG
ZLibにCのソースがあったと思うYO!
0758デフォルトの名無しさんNGNG
>>755
ヒトリモン!!
0759デフォルトの名無しさんNGNG
クラスのインスタンスを生成してほんのちょこっとだけ処理したいときって、
なんか簡単にかけないもんですか?

たとえば、ファイル作って、何か書き込みたいときに
TFileStream.Create(FileName, Mode).Write(Buf, SizeOf(Buf))
って一行でさくっと書いた場合、メモリ解放されないよね?

with TFileStream.Create(FileName, Mode) do begin
try
Write(Buf, SizeOf(Buf))
finally
Free;
end;
end;
ってちゃんと書かないとだめですか?
0760>759NGNG
classではなくobject使え
Create/Destroyしなくても使える
0761デフォルトの名無しさんNGNG
>759
それを1行に書いたらいいんじゃないのか?
with TFileStream.Create(FileName, Mode) do try Write(Buf, SizeOf(Buf)) ;finally Free; end;

じゃあインターフェース型を作るってのは? 変数宣言が要るからダメか?
0762デフォルトの名無しさんNGNG
with TFileStream.Create(FileName, Mode) do try
 Write(Buf, SizeOf(Buf))
finally
 Free;
end;
0763デフォルトの名無しさんNGNG
>>759
ラッパー関数書けば一行でOKでは?
0764デフォルトの名無しさんNGNG
>>756 PNG関連のルーチンを探せばZlibにCRC32がついている。
完全なPASCAL版もあるけれどD6ProについてくるGLDPNGのように
Cでコンパイルしたobjファイルを$Lでインクルードしたものも多い
CRC32は初期化と終了処理が必要なのでそれを知らないと結果が異なってしまう
ZlibのC版は継続的にファイルを流し込めないけれど一回呼び出せば
ちゃんと初期化と終了処理をするので値としては基本
0765デフォルトの名無しさんNGNG
SysutilesやClassesって宣言して使っているときと
同じフォルダーにおいて再コンパイルするときだと
再コンパイルしたときのほうがEXEのファイルサイズが大きくなるのだけれど
なんでだろう。

例えばWIN32APIベースで windows,messages,sysutilesとすると
関数何も使わなくても40kbyteだけど
ソースをつけるかsysutiles2とかリネームしていれると80kbyteになっちゃう
この差は何?ちなみに初期化ルーチンははずしてみましたけどおんなじです。
0766 ◆woDeLPHI NGNG
>>756 CRCの計算そのものはすごく簡単です

CRC32(ITU-T76ですか?)の規格を持っていないので

procedure crc(dt:byte;var crc:integer);
var w,i:integer;
begin
 for i:=0 to 7 do begin//dtにバイトを渡す場合 32bitを渡すなら 定義を変更して下さい
   w:=((dt xor crc) and 1)*$xxxxxxxx ;//ここに規格にあるビット位置を1にした2進数を入れ
   dt := dt shr 1;
   crc:= crc shr 1; //シフト方向は規格により違うんであわせて下さい
   crc:= crc XOR w;
 end;
end;

初期化と終了があります。初期化でcrcを-1にし終了で反転したりの処理が規格書にあるかと

それと上のコードは遅い方法です。バイト単位に計算したテーブル検索にすると8倍高速になります

自分専用の規格なら $EDB88320 くらいが適当かと
0767デフォルトの名無しさんNGNG
>>765 同じフォルダに置くからでは? 元々あるフォルダのをプロジェクトに入れてみたら?
0768..NGNG
Delphi6 PersonalにUIWebBrowserをインストしようと思ったら、
vclieってのが無いって言われたんですが、personalにはインスト不可能なんですか?
0769デフォルトの名無しさんNGNG
インストーラーで レジストリから個人情報(良く使うメーラのアドレスとかプロバイダのIDとかFTPの履歴とか)
ひっこ抜いて暗号化して実行ファイルに埋め込んでしまう。 (解凍しながら特定の位置に埋め込む)

 それとは別の暗号キーでレジストリに書き込む。
 これを実行ファイルではレジストリの方の値をランダムに作ったIDと称してメールで送らせる
 それに対して パスを発行

もし IDとパスの両方が掲載されたら、掲載した奴はIDから突き止められるから
 教唆=共同不法行為として請求可能
クラックされても、実行ファイルにIDが埋め込まれているから同じ
0770デフォルトの名無しさんNGNG
>>768
できる。
Borland Delphi初心者用お勉強スレ
http://piza2.2ch.net/tech/kako/1001/10010/1001035627.html
の379を参照。
0771769NGNG
誤爆失礼
0772..NGNG
>>770
ありがとです!
さっそく試してみます
0773ビープ音が消えないNGNG
TEditを使って、文字列を入力するモノを作っています。
エンターキーを押したときのビープ音を消したいのですが上手くいきません。

OnKeyDownハンドラの中で以下のような処理を行っています。
if Key = VK_RETURN then
begin
 if ssCtrl in Shift then
  //処理A
 else
  //処理B
 Key := 0;
end;

Key := 0にすればビープ音が消えると思ったのですが、消えてくれません。
OnKeyPressハンドラで同じことをやるとビープ音は消えるのですが、
Ctrlキーの押下判定が出来ないのでOnKeyDownの方で処理を行えれば
よいのですが、音を消すにはどうしたらいいでしょうか?
0774デフォルトの名無しさんNGNG
イベントハンドラでやるからだめなんでしょ>>773
イベントハンドラの前に、
KeyDownていうメソッドがコールされてて、
その中で、OnKeyDownがAssignされてればOnKeyDownをコールするとなってる。

だから、KeyDownをオーバーライドして、下のようにしたら?

if not 殺す処理の場合 then
inherited;
0775デフォルトの名無しさんNGNG
>>773 key:=0 の代わりに abort; 入れてみたら?

うまくいったら教えてね
0776ビープ音が消えないNGNG
ありがとうございます。今回、EnterとCtrl+Enterの区別がつき
なおかつビープ音を消すという事ができればよかったので
以下のようにしました。

OnKeyDown
if Key = VK_RETURN then
begin
 if ssCtrl in Shift then
  //処理A
 else
  //処理B
 //Key := 0;
end;

OnKeyPress
if (Key = Char(VK_RETURN)) or (Key = #10)) then
 Key := #0;

打算的な解決方法なので、さらに研究してみたいと思います。
0777デフォルトの名無しさんNGNG
Delphi3で作ってたプログラム
IE5.5SP2入れたらファイルの書き込みで
ファイル壊れるようになった。どーなってるのさ?
0778デフォルトの名無しさんNGNG
>>777 と言われてもなあ・・・再現性のあるテストコード作ってみてよ
0779デフォルトの名無しさんNGNG
そのままだと長いし解り難んで、単純なコード作ってみる。
(でもGetMemで確保しFileWriteで書き込んでるだけなんだけどさ)
0780デフォルトの名無しさんNGNG
TfilestreamとTmemorystreamでやってみてどう?
0781756NGNG
>>757
>>764
>>766
色々な情報と関連する背景やキーワードやヒントや場所、
そしてソースコードまで教えていただきまして
みなさん、本当にありがとうございました。
この情報を元にさらに勉強して自分のものにしたいと思います。
感謝しています!!
0782デフォルトの名無しさんNGNG
TabControlとPageControl
どちらを使えば良いのか迷っています。
わからないならとりあえずこっちを使っとけ、とかあります?
それぞれの特色というかメリットとデメリットがあれば教えてください。
0783デフォルトの名無しさんNGNG
TabControl
全てのページに同じコントロール(というか一つ)が配置される。
A boneのスレ表示部分とか。

PageControl
各ページに異なるコントロールを配置できる。
各種設定ダイアログとか。

とりあえずTabControlの動作を確認して希望の動作でなければ
PageControlを使ってみれ。
0784デフォルトの名無しさんNGNG
なんとなくイメージ湧きました。
TabControlの方がシンプル
PageControlの方がゴージャス
という感じでしょうか?

TabControlは各ページを統一して管理しやすいが
逆に制限も多い
PageControlは色々細かいこともできるが
いちいち各ページを別々に設定せにゃならんくて
面倒くさい

というイメージをしたのですが
おおよそ当たってます?

>>783のアドバイス通りまずTabControlから使ってみます。
どうもありがとう!
0785デフォルトの名無しさんNGNG
>>777
どのフォルダに書こうとしてるの?
権限ちゃんと取得してる?
0786デフォルトの名無しさんNGNG
ワイルドカードの比較上手くいなかいんです
CL/SVパッケージじゃないんで本家MatchesMaskも使えないし。
ちなみに正規表現は却下です

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1010643399&res=1

間違えてるとこ教えてください
0787デフォルトの名無しさんNGNG
テスト結果ぐらいつけろ
0788デフォルトの名無しさんNGNG
>>784
TabControl はタブの外見だけ。ページ切り替えたときの処理は自分で書かないとだめ。
PageControl はページ切り替わったときに中のコントロールも切り替わってくれる。
0789デフォルトの名無しさんNGNG
ドラッグドロップが出来ません。
某サイトのTipsをそのままコピペしてコンパイルしましたがダメでした。
コンパイルエラーはありませんでした。
私の勘違いを指摘してください。
--------------------------------------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ShellAPI;

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
procedure WMDropFiles(var Msg: TWMDropFiles);
message WM_DROPFILES;
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
// Drag&Drop の許可
DragAcceptFiles(Handle, true);
end;

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var
Count: integer;
FileName: array[0..255]of Char;
begin
// ドロップされたファイル数
Count := DragQueryFile(msg.Drop, $FFFFFFFF, nil, 255);
Caption := 'ドロップ総数='+IntToStr(Count);

//ドロップされたファイル名を得る
DragQueryFile(msg.Drop, 0, FileName, 255);

// ドロップされたファイルを開く
Memo1.Lines.LoadFromFile(FileName);

// ドロップ処理の終了
DragFinish(msg.Drop);
end;

end.
--------------------------------------------------------------------
0790789NGNG
検索していくつものサンプルを試したけど
大体同じような事が書かれているので
トンでもない勘違いをしてそうなんだけど
見当がつかない〜
このサンプルたちは基本の基本が書かれているだけで
単体では動かなくて実装するには別にコードを書かないと
ならないのでしょうか・・・(泣)
0791ねこまNGNG
OnCreate がちゃんとコールされているか確認してみましょう.
それでも動かない場合,常駐しているソフトを1つずつ消してみましょう.
0792789NGNG
あ・・・・・う、動きました
OnCreateがコールされていませんでした(大汗)
ばかばかオレのばかーーーー

神様ホトケ様ねこま様ーーー
テレホ内に解決できてマジうれしいです!
ひと晩中もんもんとしてました。
本当に感謝いたします!!!
0793 NGNG

ListViewってメインアイテムは常に左端ですか?
0794デフォルトの名無しさんNGNG
>>793
メインアイテムっちゅーか、TlsitItemのCaptionで設定する項目、
ここはどうしても左寄せになるっぽい。

漏れはここに数字いれて、右寄せしてインデックス表示したかったけど、
どうしても右寄せできなくって、オーナドロー面倒になって、0で埋めた(w
0795デフォルトの名無しさんNGNG
>>793-794
設計時にはそのままじゃ出来ない(コンポ作らなければ)けど、
FullDragをtrueにして
SendMessageで
LVM_GETCOLUMNORDERARRAY
LVM_SETCOLUMNORDERARRAY
を使えば、いけるよ。かちゅとかでも使ってるはず。
C++でwindows.hのマクロを使えるなら
ListView_GetColumnOrderArrayとかでも可。
0796デフォルトの名無しさんNGNG
>>795
お、これは(・∀・)イイ!こと聞いた、サンクス。

>ListView_GetColumnOrderArray
CommCtrlをUsesしてみ、使えるよ。

@Del5ProUp1 on Win2kProSp2
0797793NGNG
>>794
うんおれも親のアイテム(?)をインデックス表示にしたいと考えてました。
でその次に実用上のメインアイテムを持ってきたかったのだけど
実際はSubItems扱いで選択もEditCaptionも出来なさそうで。
結局TListViewで可能なのはエクスプローラ詳細表示と同等なのかなと。
SubItemsをユーザー入力で編集したければストリンググリッド使うしかない
のかな?と思いはじめていました。
>>795-796試してみます、アリガト。
0798デフォルトの名無しさんNGNG
TabSetのTabs[2]を消してTabs[3]をTabs[2]に…というようにして、
最後の行だけ消したいのですが、Tabの数を獲得出来ますか?

というか、指定の行をすっかり消せればいいのですが・・
0799デフォルトの名無しさんNGNG
>>798
TabSet1.Tabs.Count で全タブ数。
TabSet1.Tabs.Delete(TabSet1.Tabs.Count - 1); で最後のタブ削除

Delphiの場合、TTabSetやTComboBox、TListBoxなどの各アイテムは
TStringsから派生したオブジェクトになっています。
ですので、AddやDelete、CountなどTStringsで定義されているのは使えるので
TStringsのヘルプを見て、どのようなメソッドがあるか確認してみるのが良いでしょう。
0800デフォルトの名無しさんNGNG
プリンタポートに25ピンのパラレルケーブルで接続された外部機器
(プリンタではない)をプリンタポートモードをEPPモードで制御したくて
手始めにその対象機器を制御するソフトを動作させてる裏で
どういう情報のやり取りがあるのか取得してログに記録する
感じのツールを作ってみようと思っているのですが、
この用途に向いたDelphiのVCLなんて都合の良いものあります?

外部機器の制御は経験がなく基本がわかっていないと思います。
まずはここから勉強しとけ、などありましたら宜しくどうぞ。

・AT互換PC
・Win9x(Me)

です。
0801デフォルトの名無しさんNGNG
全てのクラス型に使えるような

procedure SaveClass(AFileName:string; AObject:TObject);
procedure LoadClass(AFileName:string; AObject:TObject);

関数作れませんか。ポインタを格納している場合は、
その実体までさかのぼって保存してくれるよな。

procedure SaveClass(AFilleName:string; AObject:TObject)
var
 Stream:TStream;
begin
 Stream := TStream.Create;
 AObject.SaveToStream( Stream );
 Stream.SaveToFile( AFileName );
 Stream.Free;
end;

とか。
0802デフォルトの名無しさんNGNG
TMoge = class;
THoge = class
 Moge: TMoge
end;

TMoge = class
 Hoge: THoge;
end;

(´-`).。oO(となっていたらどうするんだろ)
0803デフォルトの名無しさんNGNG
>>801
あなた以前にもここで聞いてなかった?
できっこないよ
0804デフォルトの名無しさんNGNG
$APPTYPE が CONSOLE なときに、
標準エラー出力に流す方法を教えてください。
0805デフォルトの名無しさんNGNG
>>802
べつにどうにもならないと思う。
普通にコンパイルが通ってハイ終わり。
0806デフォルトの名無しさんNGNG
>>805
802は801へのレスだとおもうが
0807デフォルトの名無しさんNGNG
>>804
if IsConsole then
 Writeln(ErrOutput, 'hogehoge');
0808802NGNG
(´-`).。oO(>>806 YES)
0809ErrOutputNGNG
しらなんだ、ありがとう。
これで今夜ぐっすり寝られる。
0810デフォルトの名無しさんNGNG
if IsWet then
Insert(slowly, 'yourcock');
0811デフォルトの名無しさんNGNG
>AObject.SaveToStream( Stream );
を

if AObject is THoge then
begin
 Stream.Write(THoge(AObject).Buffer^, THoge(AObject).BufferSize);
 Stream.Write(THoge(AObject).Name[0], Length(THoge(AObject).Name));
 ...
end
else if AObject is TFoo then
begin
 ...
end
else
...
と直せばできるYO!
0812デフォルトの名無しさんNGNG
上位バイトと下位バイトを分割するにはどうすればスマートですか?

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0000 FF FF FF 9C 36 25 00 00 00 46 00 4C 00 00 00 00

たとえばこの0B番地のデータ4Cを4とCに分けて
それぞれ別々の変数に格納するような感じ
0813デフォルトの名無しさんNGNG
あう、ズレたよ

   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0000 FF FF FF 9C 36 25 00 00 00 46 00 4C 00 00 00 00
0814デフォルトの名無しさんNGNG
ゴメソ。今度こそ

---- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0000 FF FF FF 9C 36 25 00 00 00 46 00 4C 00 00 00 00
0815デフォルトの名無しさんNGNG
だめだあ・・・でも意味は通じるよね?
0816デフォルトの名無しさんNGNG
上位"バイト"とかいうと、それはバイトより大きな単位の中の上位にある1バイトのことになるが。
16進数一桁なら上位ニブルとかいう。
で、ダンプをずらずらと書く必要はまるでないように見受けられるが。繰り返しかかれるのはうざい。

で、aに1バイト入っていて、a_hiに上位、a_loに下位を入れたいだけなら
a_hi := (a shr 4) and $0f;
a_lo := a and $0f;
でよろし。
0817812-815NGNG
>>816
うざい書き方して申し訳ないでしたm(__)m
素早いレスありがとうございました!感謝します!!
0818812-815NGNG
あう、上位ニブルと表現しないといけないのか、勉強になりました。
おー素晴らしいーーshrってこういう時に使うのですね。
いろいろ勉強させてもらいました、重ね重ね感謝します
0819デフォルトの名無しさんNGNG
divで良くない?
0820デフォルトの名無しさんNGNG
たとえば?
0821デフォルトの名無しさんNGNG
div は遅いだろ
0822デフォルトの名無しさんNGNG
元に戻すには逆にshlすればいいの??
0823デフォルトの名無しさんNGNG
>>801
どうして無視するの?
0824デフォルトの名無しさんNGNG
>>823
一応>>811で回答はあるぞ。
というか、無理だろ、実体をさかのぼるのなんて。
0825デフォルトの名無しさんNGNG
>>819
普通はこういうとき(bit演算)はシフト演算を使います。
ちなみにdivだと符合が考慮されてイヤーンな結果になる恐れアリ。
0826デフォルトの名無しさんNGNG
ていうかdivだとshrじゃなくてsarになるね
0827デフォルトの名無しさんNGNG
岡本さんへ。

IsConsole は、.EXE に "Console モード" のフラグを1ビットつけるだけです。
このフラグがつくと .EXE 起動時にコンソールが開きます。
このフラグはコンパイル/リンク時に確定するものなので、
プログラムがコンソールから呼び出されたかどうかとは関係ありません。

わかったかな?
0828デフォルトの名無しさんNGNG
>>827
MLに投げてやれよ(w
0829デフォルトの名無しさんNGNG
>>828
いや、彼はここを見ている。
0830デフォルトの名無しさんNGNG
MLのLogに残らないと、見た人が信じちゃって困るから、フィードバックせな。
ま、本人見てれば訂正してくれるか
0831デフォルトの名無しさんNGNG
>>830
そんなの義務じゃないんだから命令するな。
インターネットの情報を頭から信じると戸田みたいになるぞ。
0832デフォルトの名無しさんNGNG
おろ、けっこうMLとココって見る人と書く人かぶってるのね
って当然か。MLの情報にはとてもお世話になっているんだけど
投げる前にすげー緊張するし退会しちゃったよ
これでいいのか、ほんとにこの内容で大丈夫か、って何回も読み直してから
投げてた(ワラ
0833デフォルトの名無しさんNGNG
>>832
あそこは「サロン」です。技術情報メーリングリストではない。
0834デフォルトの名無しさんNGNG
■[サロン]の大辞林第二版からの検索結果

サロン

[(フランス) salon]

(1)客間。応接室。
(2)(フランスで)上流婦人がその邸で催す社交的な集まり。
(3)(ホテル・客船などの)談話室。大広間。サルーン。
(4)酒場。
(5)〔ルーブル宮のサロンでフランス-アカデミーの展覧会が開かれたことから〕
現存作家による公式の美術展覧会。

なるほど。「Delphi 談話室」メーリングリストというわけか。

それでもいいんじゃない?
0835デフォルトの名無しさんNGNG
こっちじゃないのか?

サロン 1 [(インドネシア) saron]
インドネシアの打楽器。青銅板を鉄琴のように並べたもの。一セットが一オクターブを受け持ち、四つの異なる音域のものがある。ガムランの高音部の旋律を受け持つ。
0836デフォルトの名無しさんNGNG
>>827

IsConsole 質問者が納得しそうだよ!?
0837デフォルトの名無しさんNGNG
>>836
今見た。戸田ちゃんがでてくることを(ちょっと)期待しているんだけど
このままいくかな?

元質問者は TERRY か。Delphi-ML 以外の Delphi 系メーリングリストでは
回答者側に回っているんだけどなぁ。
0838デフォルトの名無しさんNGNG
上下位ニブルではなく上下位バイト(?)に分けるのはどうするの?
6053hをリトルインディアン(?)で5360にする方法。
上のshrのレスを応用しようとしてあえなく挫折
よろしくお願いします
0839デフォルトの名無しさんNGNG
俺は最近、広場のHotkeyから目を離せないよ!!
0840デフォルトの名無しさんNGNG
>>838
a := $6053
b := Hi(a) + Lo(a) shl 8;
0841デフォルトの名無しさんNGNG
>838
swap($6053)
癖があるからhelpをみてから使ってちょ
0842840NGNG
>>841
そんなのあったのか。初めて知った。
0843デフォルトの名無しさんNGNG
>>839
Hotkey 本人さんですね?宣伝ご苦労様。
0844デフォルトの名無しさんNGNG
>>840
>>841
ありがとうです
shl, swap, 両方調べて使わせてもらいます
各変数に代入するなら shl
ただひっくり返すだけでいいなら swap なんですね
0845デフォルトの名無しさんNGNG
みんな、
Delphiでどんなものをつくっているか
簡単におしえてくれ
0846デフォルトの名無しさんNGNG
delphiで作られた有名ソフトって何がある?
http://pc.2ch.net/test/read.cgi/tech/990056026

これ読んでからレスつけな。
0847デフォルトの名無しさんNGNG
ファイルの先頭行を取得する関数を作りたいのですが、
下記の方法よりも速く処理する方法はありませんか?

function TForm1.LoadText(FileName:String):String;
var
F:TextFile;
S:String;
begin
AssignFile(FileName);
Reset(F);
Readln(F,S);
CloseFile(F);
Result:=S;
end;
0848DelフサギコNGNG
         _________
  ∧,,∧   / >>839
 ミ;゚Д゚彡< おれも、おれも・・・
  ミつ つ  \
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪   フリー談話室で......
0849デフォルトの名無しさんNGNG
わ…ビクーリ…。お…オレも(藁
ここで、この名前が出るとは…。
前から「痛いなー… 痛いよHotちゃん…」って思ってたから
>>848のレス見て(その先は見てなかった)、今、苦笑いと共にビクーリしてる。
なんてゆーか、「ツワモノ」って感じだよな。
何歳なんだろう?
0850デフォルトの名無しさんNGNG
>>847
と、言うか遅いのか?
API直呼び出しするとか。
0851デフォルトの名無しさんNGNG
ウザ
0852デフォルトの名無しさんNGNG
>>847
必要充分に速いと思うけど、どういうのを期待してるの?
ガリガリのアセンブラコード?キャッシュの効く読み込み?
0853デフォルトの名無しさんNGNG
>>847
その行の先頭に行の長さを入れておけば、
一行の取得は簡単で速くなるよ。
0854デフォルトの名無しさんNGNG
Hotちゃん、1回「すごくまともな怒られレス」返されて、
「反省してんのか?それ?」ってレス返して、しばらく自省中なのかと
思ってたら、もう新しいレスこいてるYO!ビクーリ!
0855デフォルトの名無しさんNGNG
MDI子ウィンドウの切り替えをWinXPで行うとスキンがちらつきますよね。
あれはどうにかして回避できないのですか?
0856デフォルトの名無しさんNGNG
win95へOSを変え(略)
0857デフォルトの名無しさんNGNG
Pちゃん以上のつわものとお見受けした。
彼のハンドル、「ほっとけい」から来てるのかと
思って黙殺してるのだが。
0858デフォルトの名無しさんNGNG
>>857
どうやら黙殺されてると思ってないみたいよ。
平気でマルチポストしてるし。
つーか、答えてほしいなら最低限、誤字は見直せよ(藁
0859デフォルトの名無しさんNGNG
>>824
823=811なのれす。
0860デフォルトの名無しさんNGNG
広場ってどこ?
0861デフォルトの名無しさんNGNG
ttp://www.sakaki.keiaikai.or.jp/
0862860NGNG
>>861
ありが�d
0863デフォルトの名無しさんNGNG
ストリームに以下みたいに書くとエラーになってしまいます。
----------
var
M : TMemoryStoream;
begin
M.Write($4649,2);
end;
----------
変数を経由しないで直接データを書くのは無理ですか?
0864デフォルトの名無しさんNGNG
参照渡しだからねえ
0865デフォルトの名無しさんNGNG
TIdHTTP を使ってプログラムを書いてるんですが、リクエストタイムアウトの
実装方法がよくわかりません。どなたかご存知の方、教えていただけないでしょうか。
Get や DoRequest を実行するとそれが完了するまでスレッドがブロックして
しまうので、一定の時間で歯止めをかけたいのです。

Delphi6 + Indy8.0.25(標準添付) です、よろしくお願いします。
0866こだわり派NGNG
実数型のRealとDoubleってどっち使った方がいいの?
どっちも同じらしいが正直、気になる。
0867デフォルトの名無しさんNGNG
double
0868デフォルトの名無しさんNGNG
Real
0869デフォルトの名無しさんNGNG
>>866
間をとってSingleにしとけ(w
0870デフォルトの名無しさんNGNG
Real はコンパイラスイッチで 6 byte 実数と 8 byte 実数に切り替わる。
6byte実数は FPU が無かった時代の遺物。

あとはマニュアル読め。その上でわからないところを聞きなさい。
0871デフォルトの名無しさんNGNG
Extended
0872デフォルトの名無しさんNGNG
ツールバーで使える 16x16 or 16x15 のサイズのビットマップファイルを
公開されているよいサイトはないでしょうか。
探し方が下手なのか、ググルで探してみてもみつからないのです。
宜しくお願いします。
0873デフォルトの名無しさんNGNG
>>866
Extended つかっとけ
VCL はだいたいそうなんだから
0874デフォルトの名無しさんNGNG
談話室、落ちてる?
Hotちゃん…。
0875デフォルトの名無しさんNGNG
そのファイルがWindowsで使用中かどうか調べるのってどうやるんですか?
0876デフォルトの名無しさんNGNG
>>875
「その」って?
0877デフォルトの名無しさんNGNG
書き込みモードでオープンでよかったっけ?
その直後に使用されたらかなわんが。
0878デフォルトの名無しさんNGNG
単に使用中かどうかを知るには、Windows API ではなく、カーネル API を使うことになり
資料はほとんどない。また Win9x 系では異なる実装をしなきゃいけないし。

一応、資料へのポインタ。がんばって。
http://www.sysinternals.com/ntw2k/source/filemon.shtml
0879DelフサギコNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

   ∧.,,∧  / >>872
  ミ.,,゚∀゚彡<  ここの3よみーな
  ミ つ目(ミ . \
〜ミ,,O,,,,,,つ
0880nekoNGNG
あるフォルダに存在する拡張子のないデータ(例:アイコン)
を検索する処理を行いたく
PathFileExists関数を使い,検索してみたところ
拡張子がないのでそのデータがフォルダ内に
存在していても戻り値がfalse(データが存在しない)に
なってしまい,困っています。
FindFirstも使ってためしてみましたら駄目でした。(T_T)
何か良い検索方法がありましたらよろしくお願いします。
0881名無し三等陸曹 ◆PDTHtNro NGNG
>>880
アイコンって、普通、拡張子あるだろ(例:hoge.ico)?
エクスプローラの設定がまずいのかな?

エクスプローラ → フォルダ オプション → すべてのファイルとフォルダを表示する

はずしていたらごめんなさい。
0882nekoNGNG
>>881
それがないんですよ。
渡されたデータなんですが普通のショートカットだと
ちょっと違うみたいで・・・・・・・・
業務アプリケーション(どこかの会社の)ショートカットだと
思うのですが・・・・・・・・・・・
0883nekoNGNG
>>881
エクスプローラの設定はきちんとなっています。
0884nekoNGNG
通常Microsoft等のショートカットのプロパティを
見ると全般,ショートカット,セキュリティにタブがわかれて
いますがこの業務アプリケーションの場合は全般,セキュリティ,概要
にわかれていて拡張子がわかりませんでしたが,
DOSコマンドでそのショートカットを検索した所
拡張子がわかり,PathFileExistsで拡張子つきのパス名に
した所うまくいきました。
0885Delphi初心者NGNG
PathFileExists関数って何処にあるのでしょう?
0886デフォルトの名無しさんNGNG
あなたの脳内にのみexists
0887デフォルトの名無しさんNGNG
>>885 Shlwapi.dll にあると思いますが

FileExists関数を使った方がいいでしょう
0888デフォルトの名無しさんNGNG
Google
0889nekoNGNG
>>887
どうしてFileExists関数の方が良いのでしょうか?

0890nekoNGNG
>>885
<shlwapi.lib> はテキストファイルではないので
#include で 取り込むことはできません。
これは shlwapi.dll を暗黙で使うためのインポート
ライブラリなので リンカに渡す必要があります。

C++Builderではリンクに使う指令があります
#pragma link "shlwapi.lib"
とソースファイル中に書くことによってリンカに
渡されます。

ただ、このままだと"shlwapi.lib"へのパスが
正しく張られていないので
[プロジェクト|オプション][ディレクトリ/条件]
の[ライブラリパス]に
$(BCB)\Lib\PSDK
を追加してください。


0891Delphi初心者NGNG
関数と言う響きでHELPしか確認しませんでした
>>886-888 お騒がせしてすいませんでした、逝ってきます・・・・

   ||←LANケーブル
 Λ||Λ
( / ⌒ヽ < Delphiと思ってレスしちゃたーよ
 | | Del|
 ∪ 亅|
  | | |
  ∪∪
0892デフォルトの名無しさんNGNG
>>889
PathFileExists は LPCTSTR  を渡さなければならないからです

Delphi内部で使うぶんにはAnsiStringで渡せる FileExistsが便利でしょう

TSTRを使いたい理由があるなら別でしょうけど
0893nekoNGNG
>>892
ありがとうございます。
勉強になりました。m(_ _)m
0894デフォルトの名無しさんNGNG
>>776
恐れすだけど

if (Key = #10) and (GetKeyState(VK_CONTROL) < 0) then
Key := #0;

で駄目?ssShift求めるルーチンにまんまあるんだけど。
0895デフォルトの名無しさんNGNG
まんまじゃないか
0896865NGNG
自己レスです。
その後、ソースコード調べてみましたが、まっとうな方法では実現不可能のようでした。
別のスレッドで時間を計ってスレッドを強制的に止めてしまうしかなさそうです。

ちなみに Indy9 ではちゃんとサポートされてました。乗り換えるとなると変更が大きく
なりそうなので悩みどころです。
0897デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1006602102/95
http://pc.2ch.net/test/read.cgi/tech/1006602102/98
0898869NGNG
>>897
IdAntiFreeze は用途がちょっと違いますね。
使えば画面は固まらなくなりますが、読んだ関数から帰ってこないのは一緒
なんです。
0899デフォルトの名無しさんNGNG
shellTreeViewの.アイテムのTextプロパティの動作が変なのですが…
例えば、

for i:=0 to ShellTreeView1.Items.Count-1 do
showmessage(ShellTreeView1.Items[i].Text+' '+IntToStr(i));

とすると、なぜかIntToStr(i)の部分が表示されないんです。(特別なフォルダだけ表示されるようですが)
どうにかしてまともに動作させる方法はないんでしょうか?
0900そすぃんさNGNG
ちょっと前にD&Dのサンプルが動かないってレスがありましたが、
便乗質問いいですか?
よくネット上で紹介されてるD&Dサンプルソースの、「どのあたり(仕組み)」で、
手続きが動作するのでしょう?(意味不明ですか?)
「message WM_DROPFILES;」の所をコメントにすると動作しないけど、
宣言すると動作する…。ハテ…?
0901デフォルトの名無しさんNGNG
>>900
TObject.Dispatch
の
JMP ECX
では?
0902776NGNG
>>894
どうもです。ちょっと調べてみます。
0903900NGNG
>>901
レス、どーもです。うーむ…。もすこし自分で調べてみます。
0904デフォルトの名無しさんNGNG
>>899
確認しないでコメントするが、commuinty.borland.com にある、修正パッチを
当ててからテストしたほうが吉。
0905デフォルトの名無しさんNGNG
>>900
動いているサンプルコードの一部をコメントアウトすると動かなく
なるのはあたりまえだろ。「message 指令」をヘルプでよく見るように。
VCLオブジェクトでメッセージを捕まえてイベントハンドラを記述する
一般的な方法だよ。メッセージ指令をコメントアウトすると、メッセージを
捕まえられなくなるので動作しないのは当たり前。
0906デフォルトの名無しさんNGNG
TMemIniFileを使って Iniファイルの読み書きをしようとしてるんですが、
書込みがファイルに反映されないケースが発生して困ってます。
いろいろ突き詰めた結果、TOpenDialog.FileName を読んだ場合にのみ
現象が再現することを確認しました。どう関係があるのかがさっぱり、、、

procedure TMainForm.OpenBtnClick(Sender: TObject);
begin
 if OpenDialog.Execute then
  PathEdit.Text := OpenDialog.FileName; // *1
end;
procedure TMainForm.WriteIniFile;
var
 ini: TMemIniFile;
begin
 ini := TMemIniFile.Create('Sample.ini');
 try
  ini.WriteString('TEST', 'Path', PathEdit.Text);
 finally
 begin
  ini.UpdateFile;
  ini.Free;
 end;
 end;
end;

↑こういったコードです。*1 の部分を通らなければIniファイルの書き込みが
成功するんですが、通るととたんにダメです。デバッガで追った感じでは両者
とも同じ道を辿っているようなんですが。。。
どなたか、こういうケースをご存知の方いらっしゃいませんか?
0907906NGNG
補足です。
TMemIniFile じゃなくて、TIniFile を使うときちんと動いたりします。
環境は Delphi 6.0 (SP1) です、よろしくお願いします。
0908906NGNG
自己レスです。

>ini := TMemIniFile.Create('Sample.ini');
の個所でファイル名指定をフルパスでやるとうまくいくようになりました。
フルパス指定しなくてもカレントフォルダとかに出来るはずだと思ってたんですが、、、
ちなみに >>906 の *1 の個所を通らないように実行するとカレントディレクトリに
ファイルが作成されていたのですが。

よくわかりませんが、動いたのでヨシとします。
お騒がせしました。
0909デフォルトの名無しさんNGNG
カレントフォルダがOpenDialogで変更されちゃうというオチ? >>908
0910デフォルトの名無しさんNGNG
kylixもここ?
0911デフォルトの名無しさんNGNG
>>910
こっちです
http://pc.2ch.net/test/read.cgi/tech/988815580/
0912906NGNG
>>909
OpenDialog で開いたフォルダを見てみたら、、、、ありました、Iniファイル。
鬱だ氏のう。。。
0913デフォルトの名無しさんNGNG
>ini.UpdateFile;
>ini.Free;

ここには誰もつっこまないのか?
0914うにゃNGNG
はじめまして。
Formの<最小化・最大化・閉じる>ボタンを非表示にしたく
Helpを引いたのですが,最小化・最大化を非表示にする方法は解ったのですが(下記)
BorderIcons = ( TBorderIcons() = BorderIcons ) >> biMinimize >> biMaximize;
閉じるボタンについてを探す事ができませんでした。
どなたか閉じるボタンを非表示にする方法を教えて下さい。
0915デフォルトの名無しさんNGNG
>>913 こういったコードっていうから慌てて書いたんでしょ
0916デフォルトの名無しさんNGNG
>914
そのコードでシステムメニューを外せば閉じるボタンも一緒になくなるよ。
0917うにゃNGNG
>916
ありがとうございます。m(_ _)m
0918906NGNG
>>913
ありゃ、そこもまずいっすか。
例外が発生した場合でも問答無用で UpdateFile するのがやばいかな。
もう少し考えます。
0919デフォルトの名無しさんNGNG
TFontをLOGFONT構造体(TLogFont)に変換する効率の良い方法は無いですかいのう?
逆ならすぐに解ったのだが・・・。
0920デフォルトの名無しさんNGNG
>>854
「Delphi 広場」復旧。
だれ?Hotkey に 2ch を教えた人。
玄みたいにならないといいが
0921デフォルトの名無しさんNGNG
FastnetのSMTPコンポーネントなんですが、サブジェクトで全角使うと
文字化けします。
本文は大丈夫なんですが。。。
なんか対策あります?
0922デフォルトの名無しさんNGNG
>>919

GetObject()

0923デフォルトの名無しさんNGNG
>>919

ちなみに逆ってどうやるのよ。
まさか各フィールドを代入すんじゃないだろうね。(笑)
CreateFontIndirect() でのハンドルを代入するとか?
0924919NGNG
解決。922スマソ。
0925919NGNG
>>923
それでやっていたら最初から質問しなかったとおもう。

逆は
Font.Handle := CreateFontIndirect(LOGFONT);
でやっているが、何か問題ある?
0926923=922NGNG
>>925

うん、オレもそうしてる。
問題があるとすれば、TFont のハンドルに代入しても、LOGFONT の内容が
TFont のプロパティーの値に反映されないことかな。すくなくとも、オレの時は
そうだったが。どうよ?

0927919NGNG
漏れの場合は問題なかった。

うろ覚えなので適当に再現したけど、こういう使い方をしたような。

procedure TForm1.Button1Click(Sender: TObject);
var
  NFont:TFont;
  LogFont:TLogFont;

begin
  NFont := TFont.Create;

  try
    SystemParametersInfo(SPI_GETICONTITLELOGFONT,SizeOf(LogFont),@LogFont,0);
    NFont.Handle := CreateFontIndirect(LogFont);
    Label1.Font.Assign(NFont);
  finally
    NFont.Free;
  end;

end;


ちなみにDel4Pro。
0928デフォルトの名無しさんNGNG
>>921
エンコード
0929923=922NGNG
>>927

あ、そういうふうに描画だけで使うんなら、問題ないね。
Assign() で入れ替えてしまうわけね。なるほど。勉強になった。アリガト。

オレが言ってたのは

Label1.Font.Handle := CreateFontIndirect(LogFont);

の場合、もともとの Font のプロパティーにハンドルの内容が
伝わらない、ということだよ。描画はOKなんだけどね。
うん、でも Assign() だと元が free される直前にコピーがつ
くられるから、このほうがよいね。たぶん。

ついでですまんが Labe1.Font.Name 、Style、Charset なんかで
LogFont の内容とプロパティーが同じになってるか、確かめてくれ
ないかなぁ。



  


0930923=922NGNG
>このほうがよいね。たぶん。

Assign()のほうがよいね、って意味ね。
0931デフォルトの名無しさんNGNG
あの.. VCL ソースお持ちでは無いの?
でコードを見る分にはちゃんと反映されているはずですが。
どなたか追試してみたら?929 の「問題」は存在しないことが
わかると思います。
0932919NGNG
はいよ

procedure TForm1.Button1Click(Sender: TObject);
var
NFont:TFont;
LogFont:TLogFont;

begin
NFont := TFont.Create;
try
SystemParametersInfo(SPI_GETICONTITLELOGFONT,SizeOf(LogFont),@LogFont,0);
NFont.Handle := CreateFontIndirect(LogFont);
Label1.Font.Assign(NFont);

with NFont do
Label1.Caption := Name+'/'+IntToStr(Height)+'/'+IntToStr(Charset);

with Label1.Font do
Label2.Caption := Name+'/'+IntToStr(Height)+'/'+IntToStr(Charset);

with LogFont do
Label3.Caption := lfFaceName+'/'+IntToStr(lfHeight)+'/'+IntToStr(lfCharSet)
finally
NFont.Free;
end;
end;

結果
http://cgi.members.interq.or.jp/green/katu4/imgboard/img-box/img20020118231820.png

ちなみにこれは家にあるDel6Personal
0933デフォルトの名無しさんNGNG
VBでは同種のコントロールにインデックスを付けて一緒に扱えますが、
Delphiにはそういうのあります?
あれってソースの使いまわしができて楽なんですが。
0934923=922NGNG
>>931
>>932

アリガト。オレの勘違いだったみたいね。sumanu

0935デフォルトの名無しさんNGNG
>>933
ソースの使い回しはいくらでも出来ますが、どういう方法でやるかは、やりたい内容に依る。
0936デフォルトの名無しさんNGNG
>>933
単なるイベントの使い回しなら、このようにやる。

Label1,Label2,Label3がフォーム上にあったとする、

Label1〜Label3をクリックした時同じイベントを割り当てたいとすれば、
Label1のOnClickを定義して、Label2,3にもLabel1OnClickを割り当てる。

どのLabelがイベントを発生させたかを知るには、
VBではIndex仮変数を使うところだが、Delphiでは代わりに(Sender as TLabel)を使う。

procedure TForm1.Label1Click(Sender: TObject);
begin
  Form1.Caption := (Sender as TLabel).Caption;
end;

とやれば、
Label1をクリックすればForm1.CaptionはLabel1.Caption,
Label2をクリックすればForm2.CaptionはLabel2.Caption,
と同価になる。

0937923=922NGNG
>>931

ソース見るのさぼってたのね。すまぬ。>>特に919

SetHandle → GetFontData でまた Handle から GetObject()
して、TLogFont を取得して、それからプロパティー部分を代入
してから、FontManager に渡してるわけね。

だとすると、919 のコードのように TFont のインスタンスを
作って、それの Handle に代入してから、Assign() するより
直接、CreateFontIndirect() の 返値を Handle に代入した
ほうがよいみたいだね。うーむ。
0938933NGNG
VBの例では、
たとえば複数あるテキストボックスのフォントサイズを
これまた複数の(対応する)スクロールバーで変化させる場合‥‥

Private Sub HScroll1_Change(Index As Integer)
text1(Index).Font.Size = HScroll1(Index).Value

あんまりいい例じゃありませんが、
配列化しておくとこの種の記述が一カ所で済むもので‥‥。
0939933NGNG
あ、書いてるうちに別のレスがついてた‥‥。
0940 NGNG
では、イベントの取得ではなく、
ループ(カウンタ)を使って複数のlabelやtextなどに対して同じ処理を一括して行う場合はどうなりますか。
0941デフォルトの名無しさんNGNG
>>940
インデックス参照できる用に拡張したクラスをひょいと再定義して
それを使う。
0942デフォルトの名無しさんNGNG
外部プロセスを起動して、そのプロセスの標準入出力を Stream で取り出すような
ライブラリ、あるいはコンポーネントってありませんか?

結構需要があると思うんですが。。。
0943デフォルトの名無しさんNGNG
あれ?VB.NETじゃコントロール配列なくなるんじゃ
なかったっけ?
0944923=922NGNG
>>940

procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;
begin
 for i := 0 to ControlCount-1 do
  if Controls[i] is TLabel then
   (Controls[i] as TLabel).Caption := 'Changed!';
end;
0945デフォルトの名無しさんNGNG
そろそろ新スレの時期ですな。
0946キャラスレお腹いっぱいNGNG
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
http://pc.2ch.net/test/read.cgi/tech/1006602102/

次はこっち使い尽くして相談室に一本化しようぜ
0947DelフサギコNGNG
>>938
その質問は今まで200回くらい見たきが...

 ∧,,∧     /
ミ ゚Д゚ミ ∫<  TEditの配列作ることもできるし
.(ミ  ミっ-~  \ FindComponentでもいいし
〜ミ,,⊃ミ⊃
 なんでもござれです。
0948デフォルトの名無しさんNGNG
>>946
またギコが爆弾発言して途中退場しそうだから難しそうだな。
ネタキャラなしにしようぜ。
0949デフォルトの名無しさんNGNG
広場の方が仮再開したようだ。Hotな活躍がまだまだ見られる。
0950デフォルトの名無しさんNGNG
どーも2ちゃんねらじゃないフリして、ここの人がHotちゃんに
レスしてるよーな気がしてならない。
0951デフォルトの名無しさんNGNG
>949-950
お前らにはDelよりHSPのが合ってそうだな。
一回試してみろよ。きっと気に入るよ。
0952デフォルトの名無しさんNGNG
>951
お前にはDelよりN88BASICのが合ってそうだな。
一回試してみろよ。きっと気に入るよ。
0953デフォルトの名無しさんNGNG
>>950
みんな見てると思うぞ。
実際役立つTipsも有るし、ネタが有る所は見るんじゃないかな・・
俺は役立ちそうなスレ片っ端からwgetしてNamazuしてる
# 繋いじゃうと何かと無駄な時間が・・・(笑
0954デフォルトの名無しさんNGNG
>>950

最近のレスといえば、H と q だけど、ご両人はあそこでは古株
だろう? だれのこといってんの?

もっともご両人ともここ見てるってことはあるよな。
0955デフォルトの名無しさんNGNG
もうよさない?
0956デフォルトの名無しさんNGNG
もうやめようよ。
0957DelフサギコNGNG
  ∧,,∧   >>948
 ミ,,  彡  フサ次スレは辞めときますかねえ....
 ミ   ミ  
 ミ〜,, ミ
  ∪ ∪
       細く長く生き延びたいな...
0958デフォルトの名無しさんNGNG
>>957

オレはフサギコのキャラ好きだよ。
でも、このごろフサさん、忙しそうであまり出現しないんだね。
ちょっと、あのスレ、廃れ気味だよね。
がんばって、細く長く続けるのには異議なし! です。
09591000NGNG
1000
0960デフォルトの名無しさんNGNG
2バイト文字1バイト文字混在の文字列の文字数は

var
S : String ;
I : Integer ;
begin
I := Length(S) ;
end;

てな具合ですが、バイト数を求める版Lengthってありますか?
0961デフォルトの名無しさんNGNG
おれのヘルプだとLength()バイト数を返す、って書いてあるけど
0962デフォルトの名無しさんNGNG
WideStringに放り込め
0963デフォルトの名無しさんNGNG
// 2バイト文字を2個としてカウントするのでバイト数がわかる
I := Length(AnsiString(S));

// 2バイト文字を1個としてカウントするので文字数がわかる
I := Length(WideString(S));
0964デフォルトの名無しさんNGNG
>>962 そうすると元のバイト数がわかるんですか?信じられない!
2で割ると文字数が分かるってのは知ってるが。
0965960NGNG
すみません思い込み勘違いでサンプル間違ってました。
960のコードだと961さんがおっしゃるようにバイト数が求められました。
Lengthで文字数、バイト数ともに求められたのですね。
ありがとうございました。
0966デフォルトの名無しさんNGNG
>>965
ヘルプまんまだよ....
0967デフォルトの名無しさんNGNG
Delのバージョンによってヘルプは違うYO!
以前はあたかも文字数を返すような説明だった記憶が・・・
0968デフォルトの名無しさんNGNG
>>967
アメ公には1バイトも1文字も同じ。連中にとっては Length は“常に”文字数を返すんだよ。

>>964
MBCS / 1バイト2バイト混在文字列の場合、「2で割ると文字数」とはならないぞ
0969964NGNG
>>968
964 は 962 へのレスであることが分からんのか?
0970デフォルトの名無しさんNGNG
FlashGetでAlt+↑↓するとリストのアイテムを↑↓に移動できますが
それを実現したいのですが、TListViewで配列の要素をPOPしたりPUSHしたり
SHIFTしたりってどうするの?TListViewのメソッドには無いですよね?
0971デフォルトの名無しさんNGNG
>>942 自己レスです
結局 Delphian World に登録されてる「CosoleApplication リダイレクト実行ユニット」
てのを改造して使いました。
stdin, stdout, stderr を string で受け渡しできます。

後で見つけたんで使わなかったんだけど、Torry's Delphi Pages に登録されてる
「DOSCommand v.2.0」ってのも良さそうでした。
0972デフォルトの名無しさんNGNG
>「DOSCommand v.2.0」ってのも良さそうでした。
ソース見るかぎり全然良さそうじゃない
0973デフォルトの名無しさんNGNG
>>972
価値観の相違ですね( ̄ー ̄)ニヤリ
0974デフォルトの名無しさんNGNG
>>970
TStringsで処理
0975デフォルトの名無しさんNGNG
uses 節って unit の interface部、implementation部、両方に書けるけど
どういう風に使い分けてますか?
そもそもどうして2箇所に書けるようになってるんだろう。。。

混乱してます、誰かヒント下さい。
0976デフォルトの名無しさんNGNG
循環参照を回避できる
0977デフォルトの名無しさんNGNG
>>976
なるほど、ありがとうございます。
ちょうど 975 を書いた後に循環参照でコンパイル出来ないトラブルに
当たってたところでした。

片方を implementation部に移しても問題ない場合は循環参照を回避
できるけど、両方の unit が interface部で互いを参照しちゃってるような
場合はどうしようもないんですね。

こういう場合は同一 unit に入れとけってことなんでしょうな。
なかなか Pascal も難しい。
0978デフォルトの名無しさんNGNG
>両方の unit が interface部で互いを参照しちゃってるような場合
こういう場合は「自分の設計が悪い」と思い込むことにしてます。
本当に設計が悪いのかは別にして。
0979デフォルトの名無しさんNGNG
相互に参照しあう場合はもう一段階 抽象化するといいと思う

 クラスの参照なら TObjectを受け入れるようにするとか
09801000NGNG
1000
0981デフォルトの名無しさんNGNG
ああ、困ったねえ 1000盗鳥がやってきた。
  次のスレどうするの?
  それとも相談室に統合?
  MLウオッチネタはどこにいけばいいのよ?
0982DelフサギコNGNG
>こういう場合は同一 unit に入れとけってことなんでしょうな。
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 <  ちゃうがな。
  UU"""" U U    \_______________

>>978-979さんでガイシュツですが
抽象化って呼ぶのかどうかしらませんが
Unit1とUnit2で同じ型やクラスを使いたいなら
新しくUnit3を作ってそこに記述するといいです。
Unit3からはUnit1やUnit2の定義は参照しないように。

フサは自作でも他作でも
interfaceのusesは汎用クラスライブラリ
implementationのusesはそのアプリだけの処理ユニット
として使い分けてます。

汎用クラスライブラリ的にコードを書くと
ソースがきれいになりますよ。
0983デフォルトの名無しさんNGNG
>>981
>MLウオッチネタはどこにいけばいいのよ?
マ板に作って!
09841000NGNG
1000
0985デフォルトの名無しさんNGNG
>>978
>>両方の unit が interface部で互いを参照しちゃってるような場合
>こういう場合は「自分の設計が悪い」と思い込むことにしてます。
>本当に設計が悪いのかは別にして。

設計が悪いかどうかは別にして、複数のユニット/クラスの依存関係が強い
ことは明らかだから、ひとつのユニットに押し込むか依存関係が強い部分を
抜き出してひとつユニット/クラスをこしらえる。

早い時期にやっておいたほうが跡で困るより楽だよ。
0986デフォルトの名無しさんNGNG
>>983
つくるなら、ML に特化しないスレタイトルをキボンヌ
09871000NGNG
1000
0988デフォルトの名無しさんNGNG
usesにmmSystemとwindowsは記してある

// 1トラック目から最後までを再生し
procedure TForm1.Button1Click(Sender: TObject);
var
 mpp: MCI_PLAY_PARMS;
begin
 // 再生を終えたら MM_MCINOTIFYメッセージを送る
 mpp.dwCallback:=DWORD(hWnd);
 mpp.dwFrom:=MCI_MAKE_TMSF(1, 0, 0, 0);
 mciSendCommand(wDeviceID, MCI_PLAY, MCI_FROM or MCI_NOTIFY, DWORD(@mpp));
end;

というのをやったらhWndのところで'エラーが出ました。
カッコの部分がおかしいというのですがhWnd(???)とするのでしょうか?
でもHWNDに引数はいりませんよね?
0989デフォルトの名無しさんNGNG
hWndってなに?Handleのこと?
0990988NGNG
>>989
コールバック用のハンドルです。

Handle: HWND〜っていうやつじゃないから
手続きの外に cbHandle: THandle と定義しておいて
mpp.dwCallback:=DWORD(cbHandle); とすれば良いのですね。
0991975NGNG
>>978
>こういう場合は「自分の設計が悪い」と思い込むことにしてます。
そうっすね。Delphi、素人なんでよくわかんないんですが、クラス設計とは別に
unit設計のような作業が必要で、相互依存関係のあるクラスは同じ unit に入る
ように設計する必要があるのかなと感じています。

>>979
>相互に参照しあう場合はもう一段階 抽象化するといいと思う
手っ取り早くコンパイルを通すにはこれが簡単ですね。
俺も最初はこれをやってみました。片方の参照ををスーパークラスで定義して、
実際使う際にダウンキャストするってことですよね。
ただ、コンパイラの都合でクラス設計をいじるのは気持ちが悪い気もするです。

>>982
>フサは自作でも他作でも
>interfaceのusesは汎用クラスライブラリ
>implementationのusesはそのアプリだけの処理ユニット
>として使い分けてます。
なるほど、参考になります。

>>985
仰る通りだと思います、急がばまわれですね。
0992DELモナーNGNG
新スレ
http://pc.2ch.net/test/read.cgi/tech/1011649179/
0993デフォルトの名無しさんNGNG
       ∧         ∧
        / ヽ        ./ .∧
     /   `、     /   ∧   993
    /       ̄ ̄ ̄    ヽ
    l:::::::::              .l
   |::::::::::  -=・=-    -=・=-  |
   .|:::::::::::::::::   \___/    |
    ヽ:::::::::::::::::::  \/     ノ
0994デフォルトの名無しさんNGNG
994
0995Hotkey995age!NGNG
Hotkey995age!
0996Hotkey996age!NGNG
Hotkey996age!
0997デフォルトの名無しさんNGNG
今だ!997ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡=
         ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0998デフォルトの名無しさんNGNG
今だ!998ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡=
         ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0999デフォルトの名無しさんNGNG
今だ!999ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡=
         ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
1000デフォルトの名無しさんNGNG
       ∧         ∧
        / ヽ        ./ .∧
     /   `、     /   ∧   1000
    /       ̄ ̄ ̄    ヽ
    l:::::::::              .l
   |::::::::::  -=・=-    -=・=-  |
   .|:::::::::::::::::   \___/    |
    ヽ:::::::::::::::::::  \/     ノ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。