Delphi相談室その5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG■前スレ
Delphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/
■気楽な雰囲気がよければこちら
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/test/read.cgi/tech/1021201697/
■C#も含む話題はこちらに
C# 仲良し Delphi Round 2
http://pc.2ch.net/test/read.cgi/tech/1022662451/
つづく >>2-3 あたり
0002デフォルトの名無しさん
NGNGミ,,゚Д゚彡フサギコのフサフサDelphi談話室�B
http://pc.2ch.net/test/read.cgi/tech/1021554929/
★クライアントサイド最強の Delphi に物申す★
http://pc.2ch.net/test/read.cgi/tech/1001442200/
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/
■過去スレ
Delphi相談室その4
http://pc.2ch.net/test/read.cgi/tech/1018211735/
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/
Delphi相談室その2
http://pc.2ch.net/tech/kako/995/995950803.html
Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0003デフォルトの名無しさん
NGNGuses 節から 1つづつ取り外してはコンパイルしてみてエラーが出るかどうかという方法を使おうと思います
標準出力を得る為に無名パイプが必要になるので、
検索した所、サンプルコードはみつけました。
そこで、無名パイプ クラスを作ろうかと思います。
既に誰か作って公開してあるのなら無駄なので、ご存知なら教えて下さい
0004デフォルトの名無しさん
NGNGだからその方法は駄目だって。
usesから必要なユニット外してもコンパイルエラーでないことがある。
0005デフォルトの名無しさん
NGNGなんで出ないの?
0006デフォルトの名無しさん
NGNG自分もこの方法をよく使うもんで、どういった状況でそうなるのか気になる。
よければ教えて欲しいかも。あと、再構築とかだったらどうだろ?
0007デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1021554929/
このスレに同じ話題がある
0008デフォルトの名無しさん
NGNGそのスレの148だな。なるほど。
00096
NGNG褒められたもんじゃないけど、バグ対策だったか何かで・・・。
この場合、usesからユニットはずしてもコンパイルが通るね。サンクス >>7-8
0010デフォルトの名無しさん
NGNG再構築ぐらいせえよ
0011デフォルトの名無しさん
NGNG( ´,_ゝ`)プッ
0012デフォルトの名無しさん
NGNG先入れ後出し配列を使おうと思います。
で、Stringを格納するクラスを作ろうと思うのですが、Contnrユニットにあるクラスを継承させるか、
TStringsList周辺のクラスから継承させるべきか迷っています。
どちらから継承させるのがベストでしょうか?
0013デフォルトの名無しさん
NGNGTObject から。マジレスだよ
0014デフォルトの名無しさん
NGNGRedoの実装には Queue を2本用意するか、
循環リストを用意する必要があると思われ。
循環リスト作るならTObjectListでリングバッファとかな。
001614
NGNG吊ってくる。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGありがとうございます
循環リストと後出しリスト2本、どっちが実行効率が良いでしょうか?
後出し2本だとUndo・Redoするたびにリストに追加/消すを行うことになるから、
やっぱりリング作ったほうがいいですかねぇ…
0019デフォルトの名無しさん
NGNGTObjectStack って事前に割当量を設定できないっぽいから。
どうせなら循環リストクラスを作って公開しておくれ >>12
用途を考えるとどこかに公開されてそうだが、見た記憶がない、、
作るなら13の言う通り内部に動的配列を抱えた TObject 継承かね。
基底クラスはPointerで扱ってTObject用に継承したのを用意する、と。
利用中にリングサイズを変更できる仕様でタノム
あとTOrderedListクラスと使用感が近いと好感度が高いかも。
0020デフォルトの名無しさん
NGNG>リストの伸長に伴う再割当てのコストを考えると循環リストかね。
>TObjectStack って事前に割当量を設定できないっぽいから。
TObjectStackやTObjectQueueは配列とは根本的に異なるデータ構造を
しています。だから割当量を設定できないのも当然、再割当てのコストは
どのような状況でもほぼ一定です。
あと循環リストならTObjectQueueで代用可能じゃないかな?
00213
NGNG(結構難しかったです。 最初取り出した後、スレッドが終了できなくて困った)
ただ、パイプで出力を拾わなくても、終了コードが 0か1かで判定出来る
という事が判ってガックリです。
0022名無し~3.EXE
NGNG前スレ936さんに教えていただいた
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
この方法では、最小化時にスタートボタンの上にタイトルバーだけ残るといった症状が表れてしまいました。
ShowWindow(Application.Handle,SW_HIDE);
これでは全く変化が無く、
RichEdit1.Lines.Assign( Memo1.Lines);
これだと実行時にWindowまで現れません。
Delphi Personalだからなのか、
OSがWin2kということで起こるのでしょうか?
どうかタスクバーから表示を消す良い方法を教えてください・・
0023デフォルトの名無しさん
NGNGTIconHideってコンポーネントがそのものズバリなものだからソース見てみたら?
0025Delフサギコ ◆zE1iiRdQ
NGNGuses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
ShowWindow(Application.Handle,SW_SHOW);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
_____________
,,,,,,,,,,,,,,,,∧,,∧ /
〜′,,,,,,,,,,ミ,,゚Д゚彡 < ゴルァ?
UU"""" U U \_______________
0026デフォルトの名無しさん
NGNGぶらくら?
002722
NGNGRichEdit1.Lines.Assign( Memo1.Lines);
→ Application.ShowMainForm := False;
0028デフォルトの名無しさん
NGNGなんの意味があるの?
0029デフォルトの名無しさん
NGNGBecky! みたいに最小化するとタスクバーから見えなくするには
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private 宣言 }
public
procedure AppMinimize(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.AppMinimize(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_HIDE);
Timer1.Enabled := true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := AppMinimize;
Timer1.Enabled := false;
Timer1.Interval := 5000;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
ShowWindow(Application.Handle,SW_SHOW);
Application.Restore;
end;
0031ビル・デイツ
NGNGフォーム1のボタンをくりくするとフォーム2を呼び出す。
このとき、フォーム2が表示されている間、フォーム1は最小化若しくは操作不能状態にする。
フォーム2を終了させると、フォーム1を元のサイズに戻し、若しくは操作可能状態にする。
というのは、どうすればいいのですか?
ちなみに、フォーム1のボタンに
form2.show;
form1.enabled := false;
フォーム2のボタンに
form1.enabled := true;
form2.close;
とかやってみたけど、だめだった。
0032デフォルトの名無しさん
NGNGフォーム2.ShowModal;
0033デフォルトの名無しさん
NGNG↓が常套手段だと思う
// Form2を開くメソッド
TForm1.OpenForm2;
begin
Form2:=TForm2.Create(Self);
Minimize;
Form2.Execute;
Normalize;
Form2.Release;
end;
procedure TForm2.Execute; // publicメソッド
begin
ShowModal;
end;
Form2は自動作成しないでおくこと
0034デフォルトの名無しさん
NGNG× Form2.Release;
○ Form2.Release;
○ Normalize;
だったかな
0035デフォルトの名無しさん
NGNGいったい、どうしたいのかわからない。
タスクバーに表示しないようにして、さらに最小化時にアイコン化
しないようにしたら、完全に消えてしまうような気がするが・・・。
どうやって復帰させるの?
どういうアプリなのか、複数のフォームがあるのか、それとも
タスクトレイにアイコンがあるのかもわからんし。
そうやって情報を小出しにされると答える側も萎えると思うんだが。
003622
NGNGすみません。
ランチャーを作っていて、タスクトレイに常駐させたいのです。
タスクトレイにアイコンを表示してあって、
現在そこから最小化、元に戻すはできます。
そこでタスクバーにも表示されると邪魔なので消したいのですが、
上記の通り何故か表示されたり、
表示されなくても最小化時にタイトルバーだけ残ってしまったりと、
おかしな現象が起きているのです。
0037デフォルトの名無しさん
NGNG22は「教えてクン養成マニュアル」の実践者なのでしょう
こういう場合、放置が正しい扱い方かと思われ
003922
NGNG嫌がらせはやめてもらえませんか?
私は自分なりにかなり調べたつもりです。
前スレと本スレにも書いてある通り
一般にタスクバーから消去する方法は試しています。
あなたが分からなくて暇だからと余計なことを書き込まないで下さい。
私は真剣にプログラミングについて勉強したいのです。
これ以上は荒しと同等と思われては嫌なので、
私の質問に対して答えてくださる方へのレスしか書き込みません。
原因や解決策がわかる方、どうかよろしくお願いします。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGこれじゃだめなのか?
type
TForm1 = class(TForm)
ApplicationEvents1: TApplicationEvents;
procedure ApplicationEvents1Minimize(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
Hide;
end;
end.
004241
NGNGprogram Project1;
uses
Forms, Windows,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
004322
NGNGだめっぽいです。
タスクバーにもでてきます。
でも2日も経って似たような症状の人の書き込みも無いので、
私の環境だけの特殊な症状なのでしょうか?
一度OSごと再インストールした方がいいのかな・・
004422
NGNGこれではタスクバーからは消えるんですが、
最小化時Windowのタイトルバーだけ残ってしまいます。
>>41さんありがとうございます。
どうしてうちだけムリなんでしょう・・・
0045デフォルトの名無しさん
NGNG004641
NGNG>>44
TForm1.Hide; で消えてたタスクバーに現れるって事?
それともTForm1.Hide; でフォームが消えないって事?
どっちにしても謎だな。これ以上はわからん。スマンな。
0048デフォルトの名無しさん
NGNG004941
NGNG両方やってなかっただけなのか。
そう書いとくべきだったか。スマンな。
まあ、うまくいってなにより。
ちなみに>>36の
> 表示されなくても最小化時にタイトルバーだけ残ってしまったりと、
> おかしな現象が起きているのです。
は、おかしな現象でもなんでもない正常な動作だよ。
Delphiはサイズ0のアプリケーションウィンドウ(タスクバーに表示されるのはコレ)
があって、すべてのフォームはそのアプリケーションウィンドウに所有された
ウィンドウであることを覚えとくといいかもね。
005022
NGNGご教授どうもありがとうございます。
> Delphiはサイズ0のアプリケーションウィンドウがあって
これは知りませんでした。
まだまだ奥が深いですね。
もっと勉強してきます!
ホントにありがとうございました。
0051デフォルトの名無しさん
NGNGアプリケーションウィンドウの存在は、奥が深い、というより
VCL 実装上の理由によるので、欠点だと思っている人の方が
多いのだよ。
0052デフォルトの名無しさん
NGNGコンポーネントをDLして解析するだけでは? 22 の Application ウィンドウ
の動作はどこか変なので、それを解明した方が根本的な解決につながると思ふ
0053ビル・デイツ
NGNGあ、そうか〜。
さんきゅです。
0054ビル・デイツ
NGNGいまいちよく分からないんですけど、このコードは、正しいんですか?
minimizeとかnormalizeだけの行が、エラーになるんですけど。
0055デフォルトの名無しさん
NGNGじゃないかなー
0056デフォルトの名無しさん
NGNG30ページに「ディスクトップ」の文字を発見して、愕然とする。
今の版では直ってるだろうか?
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG消えてしまうのって回避する方法ってありますか?
MainFormと別のフォームを、一度に片方しか表示しないで
切り替えたいんだけど、途中でタスクバーの表示が点滅してしまい、
他にタスクバーに表示があると一番右端に動いてしまいます。
procedure TForm1.Button1Click(Sender TObject);
begin
Hide;
Form2 := TForm2.Create(Application);
try
Form2.ShowModal;
finally
Form2.Release;
Show;
end;
end;
こんな感じです.
これテストしてて気が付いたけど、もともとFormのVisibleをプロパティエディタで
Trueにしとくと、ShowModalって使えなくなるんですね・・・
0059もういないんじゃねーの? ◆gnutn99c
NGNG0060デフォルトの名無しさん
NGNG(゚д゚) Form2のOnActivate(OnShowだとタスクバーがちらつく)でForm1を消して、
~( )− Form2のOnCloseでForm1を表示しる!
/ >
0061デフォルトの名無しさん
NGNGネタは放置しる!
0062デフォルトの名無しさん
NGNG0063Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
ミ,,゚Д゚彡 < VCLのForm挙動にこだわるのは
,;゙ ミ \_茨の道だよ。
ミ. ミ
/゛゛゛゛
http://homepage1.nifty.com/wizman/component/neosdi/index.html
これを使うと、なかなか改善されて鬱が解消されるかも。
0064デフォルトの名無しさん
NGNGできたー!ものすごくありがとう!誰だネタって言ってるのは.
しかし、あっさりできてちょっと鬱・・・俺の2時間・・・
>63
頂いたので、研究してみます
0065デフォルトの名無しさん
NGNGObjectPascalで使えるドキュメント自動生成ツールはないでしょうか?
006665
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG無いです。Delphiなんて業務じゃ使えないので。
0069デフォルトの名無しさん
NGNG上司が無能だとお互い苦労するね、VBで組んだ方がいいシステム組めるとかって
錯覚してる奴多いよね、自分の能力がVBにマッチしてるだけなのにさ。
しかも、効率効率と五月蝿い上司ほど、VBが好きなのは笑える、効率重視ならDelphi使う
のが普通だろうに。まぁC#って選択もこれからはあるかもしれないけど、まだ安定性とか
未知な部分が多いからDelphiを使いたいよね。
007069
NGNG68は煽りなのかな(?_?;
0071デフォルトの名無しさん
NGNGdoxygenやjavadocみたいにクラス階層や依存関係をビジュアルに出力してくれるツールは
便利だと思うが。
特にしばらくほったらかしにしといたコードを読む場合や他人が書いたコードを読む場合とか。
0072デフォルトの名無しさん
NGNG有料なら
"ドキュメント自動生成 Delphi"で検索すれば出るでしょ
日本でDelphiのみのものが2つ、幾つか対応してるのも
0073デフォルトの名無しさん
NGNG無料の物を探しています。
0074デフォルトの名無しさん
NGNGじゃあ国内はこの程度かな
http://www2.big.or.jp/~osamu/
Unit Reporter非営利目的の使用はフリー
http://www.cyberware.co.jp
フリーウェアのVer 1.2では、Word未対応、グローバル変数、関数対象外
0075デフォルトの名無しさん
NGNG両方使ってみたのですが全く使い物になりませんでした。
Unit ReporterはBDEが初期化できないというエラーが出て動かない。
D/Scribeは印刷プレビューしようとするとメモリを食い尽くしてしまってプレビューできない。
国内じゃなくてもいいので有名どころのツールは何か無いでしょうか?
0076デフォルトの名無しさん
NGNGできればHTMLやRTF等で結果が出力できればいいのですが…
0077デフォルトの名無しさん
NGNGHTML出力は出来ましたが依存関係やクラス階層等を出力してくれないのと、
出力するHTMLがdoxygenに比べて気が利いていない感じです。
doxygenのdelphi対応版とか誰か作っていればいいんですが…
0078デフォルトの名無しさん
NGNG自分でやってみたら?
0079デフォルトの名無しさん
NGNG私にはそういう高度な事はできそうにないので…
0080デフォルトの名無しさん
NGNGBDEが初期化出来ないって、もしかしてD6パーソナル?
D/Scribeも自分の所では問題無かったし
海外版は自分で試してみて・・評価は教えてね
http://www.torry.net/tools_documentation.htm
0081デフォルトの名無しさん
NGNGhttp://www.google.com
0082デフォルトの名無しさん
NGNGDel6パーソナルです。
D/Scribeはこちらの環境ではプレビュー時にいくら待っても
プレビューしてくれなくてメモリだけどんどん食っていって
400MB位持っていかれたところで強制終了しました。
それとページ紹介ありがとうございます。
フリーのものを2つとも試してみましたが、
DelphiDoc v.2.0 …見た目はそれなりに良いが
依存関係や呼び出し関係等が出力できない
dpd3…印刷専用
という感じでした。
>>81
もう調べました。
DocBuilderもgoogleでみつけたものですし。
0083デフォルトの名無しさん
NGNGhttp://www.zeitungsjunge.de/delphi/rjPasDoc/Index.htm
0084デフォルトの名無しさん
NGNGminimize→WindowState:=wsMinimized;
normalize→WindowState:=wsNormal;
と読み替えておくんなせい
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087Delフサギコ ◆zE1iiRdQ
NGNG________
| .|
| 教えて! .|
|_______|
∧,,∧||
ミ*゚Д゚||
〃 ⊃||
教えてくださいませ。
今更なんですが、コンストラクタとか
オブジェクトの生成についての質問っす。
引数付きコンストラクタを実装して
その引数の条件によってはそのオブジェクトを生成したくない
というものを作りたいとします。
例えば、
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=10
ここのTShortcutFile
constructor TShortcutFile.Create(FileName: TFileName);
begin
if not FileExists(ChangeFileExt(FileName,'.lnk')) then
raise Exception.Create('ファイルが存在しません');
inherited Create;
ShellLink := CreateComObject(CLSID_ShellLink) As IShellLink;
try
OleCheck(ShellLink.QueryInterface(IPersistFile,PersistFile));
くコ:彡 イカ略
こんな実装をしてます。
0088Delフサギコ ◆zE1iiRdQ
NGNGShortcutFile1 := TShortcutFile.Create('C:\無題.lnk');
try
処理
finally
ShortcutFile1.Free;
end;
こんな風にしているのですが...
これって、ちゃんと正しく動作しているんでしょうか?
今ひとつ不安なんでございます。
コンストラクタをキャンセルする
正しい書き方があるのなら、教えてくださいな。
___________
∧,,∧ /
_ ミ,,゚Д゚彡_< これで大丈夫なん?
.=| |=U=U=| |= \
| | .ミ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |ノ∪''∪. | |
| | | |
0089デフォルトの名無しさん
NGNGコンパイルでエラー出まくって試す事さえできませんでした。
0090デフォルトの名無しさん
NGNG大丈夫。例外がでたらtryにすら到達せず、外側に飛んでいきますな。
0091デフォルトの名無しさん
NGNGなぜかDelではあまり見ないが。
0092デフォルトの名無しさん
NGNGコンポーネントはありますか? フリーなコンポーネントでもかまいません。
で、もし、あるとした場合ですが…
セルにチェックボックスみたいなのをつけることはできますか?
よろしくお願いします。
0093無責任だが
NGNG>コンストラクタの実行中に例外が生成された場合,Destroy デストラクタが
>自動的に呼び出されて未完成のオブジェクトが廃棄されます。
とあります。では、例外を使わずに、自前で解放する方法は無いかという事ですが
残念ながら良い方法はありません。
コンストラクタ内で free してしまっても
帰り値はfreeする前に一時的に生成されたアドレスが帰ってしまいます。
ではそれを無理やりnilにする方法は無いかという事になります。
例えば self:=0; としてしまうとどうでしょう?
そうすると、AfterConstructionという仮想関数の呼び出しが失敗します
無理やりの方法として調べた範囲内では
procedure AfterConstruction;override;
とコンストラクタ呼び出し後の処理を継承して、この中でfreeした上で
asm
mov esi,0
end;
とやれば、なんとか誤魔化せそうですが・・・・・ とりあえず例外使いましょう
例外でIDEが止まるの嫌なら Abortを使うとよいでしょう
0094無責任だが
NGNGfunction ShortcutFileCreater(FileName: TFileName):TShortcutFile;
と関数で作成させるという方法も考えられます。
帰り値が nil なら作成出来ないと判断する訳です
もし、このオブジェクト生成作業に多様性を持ち込みたい場合はクラスメソッドにする方法もあります
0095Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
_ ミ,,゚Д゚彡 _< これでステップアップ!
.=| |=U===U=| |= \
| | .ミ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |ノ∪''∪. | |
| | | |
確認なんですが
begin
処理A
ShortcutFile1 := TShortcutFile.Create('C:\無題.lnk');
try
処理B
finally
ShortcutFile1.Free;
end;
処理C
end;
この状態でTShortcutFile.Createで例外が発生すると
処理Cは動作しないですよね。
0096Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧___ /
/ミ,,゚Д゚ミ/\< あってる?
/| ̄∪∪ ̄|\/ \_____
|____|/
コンストラクタで例外が発生しても
処理Cを動作せせるためには
begin
処理A
try
ShortcutFile1 := TShortcutFile.Create('C:\無題.lnk');
try
処理B
finally
ShortcutFile1.Free;
end;
except
on Exception do
end;
処理C
end;
こんなのや
begin
処理A
try
ShortcutFile1 := TShortcutFile.Create('C:\無題.lnk');
try
処理B
finally
ShortcutFile1.Free;
end;
finally
処理C
end;
end;
こんな風にするのでいいのでしょうか。
0097無責任だが
NGNGTShortcutFile = class
private
constructor Create(FileName: TFileName); //ホントのコンストラクタ は隠してしまいます
public
class function CheckCreate(FileName: TFileName):TShortcutFile ;
begin
if not FileExists(ChangeFileExt(FileName,'.lnk')) then result:=nil
else Result:=Self.Create(FileName);
と作成出来ない場合は nil を返してしまいます。
使う時には
ShortcutFile1 := TShortcutFile.CheckCreate('C:\無題.lnk');
if ShortcutFile1<>nil then with ShortcutFile1 try
処理
finally Free end;
と使うので、使う時の外見上は>>93で無理やりnilを返すコンストラクタと区別はつきません
0099デフォルトの名無しさん
NGNGが嫌だから例外投げるんだし
一つの機能を複数の方法で提供するのは混乱の元だ。
0100デフォルトの名無しさん
NGNGなぜ? 色々な切り口を提供出来る方が混乱が少ないと思う
実際 VCLでも同じ機能を実現する方法を複数用意してるでしょ?
たとえば ShowとVisibl とか フォーカスの設定とか
>>96の場合は例外をネストして判り難くするより、 条件判断で処理
した方がスマートでしょう?
0101デフォルトの名無しさん
NGNGはげどう
使う方も保守するほうも。
0102Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ /
ミ,,゚Д゚彡 < かしこくなりました。サンクスコ
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
>>98
そっすか、正解でよかったです。
親切というよりかは>>95-96のコードは
美しくなさすぎなんで、
なんとかきれいになる、関数&クラスメソッドの方を
フサは使おうと思いますです。
>>100に俺は同意っす。
>>96がもっとスマートに書けるならともかく
書くの面倒だから、代替手段があってもいいのではないかしら?
0103無責任だが
NGNGそれはまあ、混乱すると思うならそれでいいと思うよ。
ただ、メモリが足りなくてもコンストラクタで例外が投げられてしまう。
だから例外は出来るだけリソース不足に統一した方がいいとも思うよ
こういう方法を使うと、使う方では例外を場合別けしなければいけなくなるわけで
それは複雑さを増してしまうという見方もあるんじゃないの?
と書こいてたら >>102 のレス・・・
元のソースを見るとTShortcutFileのコンストラクタとしてファイル名を引数
に取るからこういう問題が出るわけで、
コンストラクタでは CreateComObject までにしておいて
function LoadShortCut(ファイル名):boolean;
function SaveShortCut(ファイル名):boolean;
とメソッドを別に用意したほうがいいんじゃないの?
0104Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧
ミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~)
>元のソースを見るとTShortcutFileのコンストラクタとしてファイル名を引数
>に取るからこういう問題が出るわけで、
TShortcutFileは一例としてなんですが、
そもそもCreateで例外発生させるコードは
よろしこないですかねー。
> とメソッドを別に用意したほうがいいんじゃないの?
そういえば、TIconとかTPictureとかTFileStreameもそんな感じかな。
でも、TIniFileはそんな感じじゃないかも?...
0105無責任だが
NGNGその真似をするなら、
constructor TShortcutFile.Create ではファイルがあれば読み込みまでして
そのファイルが無くても例外にしない戦略の方がいいんじゃないの?
0106無責任だが
NGNG(それは言語の機能だから好きにしたらいいんだけど)
コンストラクタでの例外はリソース不足とかに絞った方が使い易い事が多いというだけです。
0107デフォルトの名無しさん
NGNGコーディングが苦でなければ、StringGridで実現できます。
簡単な方法として、StringGridの該当セルの上にチェックボックスを乗せて、
セルの中にチェックボックスがあるかのように見せかけるのが一般的ではないでしょうか。
コーディングが苦でしたら、フリーなコンポを使うことになります。
http://home1.infonia.ne.jp/~delphian/delphi/
この中から希望する機能が実現できそうなのを探して下さい。
D6パソにはありませんが、DBと連携させるならDBGridを使うことである程度は貴方の望んだ結果が
得られるかもしれません。
0108デフォルトの名無しさん
NGNGスマートなクラスメソッド版のエラー処理ってこんな感じ?
>>96のはユーザーへのある程度のエラー原因の通知処理も含まれてるんだけど
どこがスマートじゃないんだろ。
ShortcutFile1 := TShortcutFile.CheckCreate('C:\無題.lnk');
if not Assigned(ShortcutFile1) then
begin
ShowMessage('ショートカットファイル(名前は失念)を開けませんでした、
原因は不明です。なにしろお馬鹿なTShortcutFile.CheckCreateメソッド
がエラーの原因やファイル名を全て捨ててしまったからです。一番考え
られるのは指定したファイル(ファイル名はわかりますか?)が存在しない
ことですが、他にもアクセス拒否やメモリ不足、内部エラーなどあらゆる
原因が考えられますのでがんばって原因を究明して下さい(藁');
Abone;
end;
0109デフォルトの名無しさん
NGNGCheckCreateはファイルが無い時にだけnilを返し、そうでない場合はCreateを呼ぶんでしょ?
という事はメモリ不足やCOM生成失敗は例外が出るんでしょ?
だから、ショートカットファイルがありません とだけメッセージを出すべし
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGそういう細かいエラーメッセージはShowMessageに直接書かずに、
例外使って Exception.Message で処理した方が綺麗だと思う。
try
ShortcutFile1 := TShortcutFile.Create('C:\無題.lnk');
try
処理
finally
ShortcutFile1.Free;
end;
except
on E:Exception do ShowMessage(E.Message);
end;
try .. finally .. end と try .. except .. end は根本的に用途が異なるので
入れ子になっても特に汚い記述だとは感じないが。。
0112デフォルトの名無しさん
NGNG見当違いだったけどナー
0113デフォルトの名無しさん
NGNG0114無責任だが
NGNGだから、別に例外で伝えても悪い訳じゃないって言ってるのに・・・
ただ今回は、Createの引数のファイルが無くても TShortCutFileの
機能に支障はないわけで、逆にSaveShortCutFileが無いのが不思議なくらい。
で、最初の書き込み付近では、それを細かく見ていなかったけど、
他のVCLの実装と比較しても、ファイルが無いから即例外にするのはマズイな
と思った。
なぜかというと、そのファイルが無かったらXXしたいという事は多い筈。
そして、この場合、ファイルが無いという例外のほかに、COMが作成出来なかった
場合の例外とかメモリが足りないような例外も飛んで来るから、ここで例外を
捕捉したら、場合別けして例外を投げ直す必要がある。
というような趣旨ね
0115デフォルトの名無しさん
NGNGTFileStreamはCreateでopenできないと例外が飛ぶし
ほかもいろいろVCLで例外が飛ぶコンストラクタを持つクラスあるような。
0116よく解らなくなってきた
NGNG1.コンストラクタ内で例外を生成して失敗を伝える。
2.リソース不足以外で例外を生成する。
3.コンストラクタ(相当のメソッド)がnilを返す。
4.エラーの種別によってnilを返すまたは例外を生成する。
5.スマート>>>>>>>>>>>>シンプル
私は
◎、○、×、×、△?
0117デフォルトの名無しさん
NGNGコンストラクタに変数引数でも付けるのか?
それでも使えないインスタンスをいちいちFreeするより、例外の方がいいのでわ。
2. ○ こんな例ならいくらでもある。
リソース不足以外で例外を使うべきではない、という考えの方が不自然。
3,4. × コンストラクタがnilを返すなんて、ObjectPascalの仕様から外れすぎ。
最初からそういう仕様ならともかく、今になってそういう異端なことをしないでほしい。
5. 質問の意図がわからない。
0118無責任だが
NGNG1.○コンストラクタ内で例外を生成して失敗を伝えるしかありません。
2.○リソース不足以外で例外を生成しても問題ありません。
3.×コンストラクタがnilを返してはダメです
4.?エラーの種別によってnilを返すまたは例外を生成するのは普通では?
5?.コードは出来るだけ簡単であるべきです
0119無責任だが
NGNG言いたかった事は、
1)コンストラクタで例外を投げたら必ずFreeされる事
2)コンストラクタでnilを返す方法は無い事
3)だからコンストラクタでエラーなら例外を投げるべき
その上で、
例外を投げてしまうと都合の悪い場合もあるなら 使い易いように
関数でラップしておく方法もあるよという意見を追加したつもり
0120デフォルトの名無しさん
NGNGメモリ不足だろうがファイルが無い(とか作れない)からだろうが、
いずれにしろ実行を継続できないから処理を中断しなきゃならないわけで。
結局のところユーザにエラーメッセージを示すということに違いはない。
エラーの内容によって処理を分けることってあんまし無さそうだけどなぁ。
あるかもしれんけど、そんときは例外クラスによって補足し分けるしか。
>>108
ファイル名は例外オブジェクトに保存しとけばいいだろ・・・と思いつつも、
VCLの例外クラスはそんな付加情報は持ってない模様。わろし。
>>109
ファイルは存在するけど読み取りアクセス権がないとか、ファイル形式が違うとかかも知れない。
戻り値 nil だけじゃ原因がわからん。
>>114
場合分けして投げ直すというのは解らん。
例えば EFOpenError だけ補足すればいいんじゃ?
0121120
NGNGLoadFromFile メソッドを別に作ってロードしようがどっちでも構わんけど、
nil を返すより例外を投げる方が良いってのが自分の主張なんで。そこんとこよろしく。
0122よく解らなくなってきた=116
NGNG3.これはclass function TMyClass.GetObject: TMyClassなどで
間接的に生成する場合も含みます。
4.これは3に○をつけた人のへの質問で、一つのコンストラクタTMyClass.Createの内部で発生したエラーの種別によってnilを返したり例外を返したりするということです。
constructor TMyClassCreate;
begin
if foo then Result := nil // このコードは嘘です
else bar then raise EMyClass.Create;
// 成功
end;
5.これはおまけの質問でVisible, Showのように
一つの機能を複数の手段でアクセスできるようにすることを
ここではスマートと呼んでいます。要するに字面の見栄えの話です。
perl vs pythonの価値観といえば通じるでしょうか。
0123無責任だが
NGNG元ソース
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=10
自分の考えた方のクラス定義
type
TShowCommand = (scNormalWindow, scMinimize, scMaxmize, scUnknown);
TShortcutFile = class(TObject)
private
ShellLink:IShellLinkA;
function GetHotKey: Word;
function GetLinkFileName: TFileName;
function GetShowCommand: TShowCommand;
function GetWorkFolder: TFileName;
procedure PutLinkFileName(const Value: TFileName);
procedure PutWorkFolder(const Value: TFileName);
procedure SetHotKey(const Value: Word);
procedure SetShowCommand(const Value: TShowCommand);
function GetArguments: string;
function GetDescription: string;
function GetIconLocation: string;
procedure SetArguments(const Value: string);
procedure SetDescription(const Value: string);
procedure SetIconLocation(const Value: string);
protected
public
function LoadShortcutFile(FileName: WideString):boolean;
function SaveShortcutFile(FileName: WideString):boolean;
constructor Create;
destructor Destroy; override;
published
property LinkFileName:TFileName read GetLinkFileName write PutLinkFileName;
property WorkFolder: TFileName read GetWorkFolder write PutWorkFolder;
property HotKey: Word read GetHotKey write SetHotKey;
property ShowCommand: TShowCommand read GetShowCommand write SetShowCommand;
property Arguments :string read GetArguments Write SetArguments;
property Description :string read GetDescription Write SetDescription;
property IconLocation:string read GetIconLocation Write SetIconLocation;
end;
0124無責任だが
NGNGbegin ShellLink := CreateComObject(CLSID_ShellLink) As IShellLinkA;
end;
function TShortcutFile.LoadShortcutFile(FileName: WideString): boolean;
begin
Result := FileExists(ChangeFileExt(FileName,'.lnk'));
if not Result then exit;
with ShellLink as IPersistFile do
OleCheck( Load(PWideChar(FileName),0));
end;
function TShortcutFile.SaveShortcutFile(FileName: WideString): boolean;
begin
with ShellLink as IPersistFile do
Result:= 0=
Save(PWChar(FileName),False);
end;
function TShortcutFile.GetHotKey: Word;
begin OleCheck(ShellLink.GetHotKey(Result));
end;
procedure TShortcutFile.SetHotKey(const Value: Word);
begin OleCheck(ShellLink.SetHotKey(Value));
end;
function TShortcutFile.GetLinkFileName: TFileName;
var pfd:WIN32_FIND_DATA ;
begin
SetLength(Result,MAX_PATH);
OleCheck(ShellLink.GetPath(PChar(Result),Length(Result),pfd,SLGP_SHORTPATH));
Result:=PChar(Result);
end;
procedure TShortcutFile.PutLinkFileName(const Value: TFileName);
begin OleCheck( ShellLink.SetPath(PChar( Value )) );
end;
function TShortcutFile.GetShowCommand: TShowCommand;
var ShowCmd:Integer;
begin
OleCheck(ShellLink.GetShowCmd(ShowCmd));
case ShowCmd of
1: Result := scNormalWindow;
7: Result := scMinimize;
3: Result := scMaxmize;
else Result := scUnknown;
end;
end;
procedure TShortcutFile.SetShowCommand(const Value: TShowCommand);
var ShowCmd:Integer;
begin ShowCmd:=0;
case Value of
scNormalWindow :ShowCmd:=1;
scMinimize :ShowCmd:=7;
scMaxmize :ShowCmd:=3;
end; OleCheck( ShellLink.SetShowCmd(ShowCmd) );
end;
0125無責任だが
NGNGbegin
SetLength(Result,MAX_PATH);
OleCheck(ShellLink.GetWorkingDirectory(PChar(Result),Length(Result)));
Result:=PChar(Result);
end;
procedure TShortcutFile.PutWorkFolder(const Value: TFileName);
begin OleCheck(ShellLink.SetWorkingDirectory(PChar(Value)) );
end;
function TShortcutFile.GetArguments: string;
begin
SetLength(Result,MAX_PATH);
OleCheck(ShellLink.GetArguments(PChar(Result),Length(Result)));
Result:=PChar(Result);
end;
procedure TShortcutFile.SetArguments(const Value: string);
begin OleCheck(ShellLink.SetArguments(PChar(Value)) );
end;
function TShortcutFile.GetDescription: string;
begin
SetLength(Result,MAX_PATH);
OleCheck( ShellLink.GetDescription(PChar(Result),Length(Result)));
Result:=PChar(Result);
end;
procedure TShortcutFile.SetDescription(const Value: string);
begin OleCheck(ShellLink.SetDescription(PChar(Value)) );
end;
function TShortcutFile.GetIconLocation: string;
var idx:Integer;
begin
SetLength(Result,MAX_PATH);
OleCheck(ShellLink.GetIconLocation(PChar(Result),Length(Result),idx));
Result:=PChar(Result);
end;
procedure TShortcutFile.SetIconLocation(const Value: string);
begin OleCheck(ShellLink.SetIconLocation(PChar(Value),0) );
end;
0126無責任だが
NGNGつまり、そもそも >>87のコードは既に CreateComObject が失敗すれば例外を出す
それなのに、わざわざ FileExists でチェックして例外を出して良いのかと聞くと
いう事は、 FileExists を特別視しているということ、つまりファイルが無ければ特殊な
事をしたい様子。 それならこういう方法もあるという説明をしてきたつもりであって
例外を投げるなという事ではないのだと
だから、
>ファイルは存在するけど読み取りアクセス権がないとか、ファイル形式が違うとかかも知れない。
>戻り値 nil だけじゃ原因がわからん
FileExistsがfalseを返す時だけ nil を返すというコートを示したのであって
それは失敗だという意味ではない。ファイル形式が違うとかアクセス権の問題とは別という事
つまり>>87は
成功、失敗のほかに、引数のファイルが無いという3つの状態を返したかったのだと考えたから
nilを渡す方法で3つの状態を返せるよと解説してきたつもり。
で、どうしてコンストラクタで3つの状態を返したいような事になったのかというと、プロパティを
コンストラクタで全部読み出して、プロパティはその静的な値を読むだけになっているから、
つまりCreateShortcutFile という関数を作っているけど、ReadShortCutFileで全部読み出せば
いいわけで、クラスにする必要が無いというか、クラス設計を見直した方がいいと
0127デフォルトの名無しさん
NGNG0128Delフサギコ ◆zE1iiRdQ
NGNGΣミ ゚Д゚ミy-~~ ヨクワカンネー
誰かショートカットファイルをもっと
楽に使えるようにラプしてクレ
0129無責任だが
NGNGショートカットを 作る時の例
with TShortcutFile.Create do begin
LinkFileName:=Application.ExeName;
SaveShortcutFile(path+'MyApp.lnk');
end;
ショートカットを読むのは
with TShortcutFile.Create do begin
LoadShortcutFile(path+'MyApp.lnk');
Caption:=LinkFileName
end;
これ以上どう簡単にしろと?
0130デフォルトの名無しさん
NGNGΣ(゚Д゚ )y-~~
∧,,∧
Σミ ゚Д゚ミy-~~
ってなったんじゃねーの?
0131無責任だが
NGNGなるほどね。 でもコッチも
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=10
このコード読ませられたんだからお互い様だと思うんだが?
やっと ShortCutFileExists がやってるらしい事が判ってきた
たぶんTFileListがファイル一覧を取るのだろうと思うから
function ShortCutFileExists(FolderName, ExeFileName: String): String;
var F: TSearchRec;
begin
ExeFileName:=ExpandFileName(ExeFileName);
//フォルダ名の最後が\で無ければ追加
if copy(FolderName,Length(FolderName),1)<>'\' then FolderName:=FolderName+'\';
with TShortcutFile.Create do try
if FindFirst(FolderName+'*.lnk',faAnyFile,F)=0 then repeat
result:= FolderName+F.Name;
try
LoadShortcutFile(result);
Writeln(LinkFileName);
if AnsiSameText( ExpandFileName(LinkFileName),ExeFileName) then Exit;
except end;
until FindNext(F)<>0;
finally Free; end;
Result := '';
end;
こんな感じの事をやってるんだと思う。
0132デフォルトの名無しさん
NGNG例外を使うのを妙に避けたがる人が多いような気がするんだが。
確かにちゃんと例外処理も書いてるのに、 StrToInt とかで例外を出され
ると禿げしく面倒なんだよな。
できればコンパイラ指令とかで、
「もうここはデバッグは終了したから、この部分を実行中に発生した
例外をデバッガは捕捉しなくてもいいよ〜」
みたいな機能があればいいんだが、そういうのって難しいのかな。
おしえて、エラい人。
0133エライ人
NGNG貴様は「VB以外使っちゃダメ〜の刑」に処す!
はい次!
0134無責任だが
NGNG確かにデバッガオプションを動的に変更出来たら便利だね
けど今日は疲れたからもう調べるのはいいや・・・
あと確かに StrToIntとかだと自分も 例外を使わずにValで検出する
それは例外を使わない方が少しだけ高速かもしれないとか期待してるからかも
0135デフォルトの名無しさん
NGNG例外でデバッカが止まるのが嫌ってのが大きい
でValで検出して abort投げたりして
0136無責任だが
NGNGそれから、もし、TFileListがサブディレクトリも掘ってゆく仕様なら
ShortCutFileExists を再帰的に呼び出す必要がある
最初のループが終った後、Result:=''の直前に
if FindFirst(FolderName+'*.*',faDirectory,F)=0 then repeat
Result:=ShortCutFileExists(FolderName+F.name , ExeFileName);
if Result<>'' then exit;
until FindNext(F)<>0;
result:='';
end;
と3行追加すればいい。
0137デフォルトの名無しさん
NGNG例えば、正の整数をEditから受け取りたいときに、
try
n := StrToIntDef(Edit1.Text,0);
if n <= 0 then raise Exception.Create('正の整数を記入してください。');
その後の処理
except
on E:Exception do ShowMessage(E.Message);
end;
みたいに、かなり気軽に例外を使ってる人って、もしかして少数派?
「処理を中断するような場合は例外を使う」というポリシーでソース
書いてるんで・・・
0138Delフサギコ ◆zE1iiRdQ
NGNGΣミ ゚Д゚ミy-~~ 疲れすぎだYO
さんくすこ、明日でも検証してみる。
死後吐agaりが12:00だと
フサはストレス氏しそうだゴルァ
例外を消すコンパイラ指令はないはず。
ブレークポイントで前後を挟むとヨシ。
>>137
少数派だと重います。
デバッガでとまるとヤだもん。
0139デフォルトの名無しさん
NGNGフォーマットは以下の通りです。
(図解)
http://www68.dns.ne.jp/~bbs2/upload3/helen/OB00012183.zip
----------------------------------------------------
・ファイルヘッダ (8)
・含まれるファイル数 (4) ファイルの数分つづく
▼ファイル情報
・ファイル名 (32) ファイルの数分つづく
・ファイルのサイズ (4) ファイルの数分つづく
・結合ファイルの先頭から
目的のファイルのデータまでのオフセット (4) ファイルの数分つづく
・ファイルデータ そのものズバリのファイルの中身ナカミ (不定)
----------------------------------------------------
※含まれるファイルの数は固定じゃ無いです
0140デフォルトの名無しさん
NGNGどうしろ、といわれてもな。
とりあえずTFileStream使うとよさげ、とだけ言っとく。
Seekとか駆使してガムバレ。
0141デフォルトの名無しさん
NGNG全然わからないけどこんな感じじゃ無いのかな?
Var
FS : TFileStream;
Buf1 : Longint;
Buf2 : Boolean;
Buf3 : Array [ 0..255 ] Of Char;
Begin
FS := TFileStream.Create( 'C:\Temp\Test.Bin' , FmOpenRead ); Test.Binを読み出しモードで開きます
ShowMessage ( InttoStr ( Fs.Size ) ); ファイルサイズを表示します
FS.Read (Buf1, SizeOf ( Longint ) ); Buf1にLongint型のサイズ分だけデータを読み出します
FS.Read (Buf2, SizeOf ( Boolean) ); Buf2にBoolean型のサイズ分だけデータを読み出します
FS.Read (Buf3[0], 256 ); Char型配列Buf3に256バイトのデータを読み出します
FS.Free; オブジェクトのインスタンスを解放します ( 同時にファイルは閉じられます )
End;
転載元
http://member.nifty.ne.jp/deepforest/delfromv.htm
0142デフォルトの名無しさん
NGNG> 例外を消すコンパイラ指令はないはず。
> ブレークポイントで前後を挟むとヨシ。
ブレークポイントでこういう事もできるのですね。(既に「ブレーク」ポイントじゃ無い気が)
しかしブレークポイントが保存されず、プロジェクトを開き直すと水の泡。
デスクトップの保存設定をONにしたら保存されましたけど窓のサイズとかまで保存されるのが嫌。
デバッグ関連の設定だけ保存する方法は無いかな…。
コメントを読む限りDebugHook変数が近い気がしたのですが、
試しに0とか2とか代入しても何も変わりませんし、何でしょうこれ。
0143デフォルトの名無しさん
NGNG{$D-}
i := StrToInt(s);
{$D+}
とかやると、{$D-}から{$D+}の間をサブルーチンも含めて実行中に発生
した例外はデバッガは無視する、とかいう機能が欲しいです。
ちなみに{$D}はすでに別の用途で定義済みだけど・・・
0144デフォルトの名無しさん
NGNG例えばこうネストすると、*で発生した例外の扱いはどうなります?
procedure A;
begin
{$D-}
i := StrToInt(s);
{$D+}
j := StrToInt(t) {*}
end;
begin
{$D-}
A
{$D+}
end.
…指令が実行文として変数を増減させなければならなくなる気が。
0145デフォルトの名無しさん
NGNGまた、デバッガオプションでEConvertErrorとかで止まらないよう設定しとけばいい。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG例外を出したくないんじゃなくて、例外が出ても許容範囲内なら
デバッガに感知されたくないんですけど。
で、いつもEConvertErrorを無視してもらっても困る。
明らかにデバッグ済みの部分だけ無視してもらいたい。
やっぱ無理そうですね・・・
0148デフォルトの名無しさん
NGNGここで議論してる時間で自分が気に入るような変換関数を
つくったほうがいいのではないかと。
0149デフォルトの名無しさん
NGNGStrToIntDef等という関数があったのか。
Del2→Del6だったので全然しらなんだ…。
0150デフォルトの名無しさん
NGNG質問
ファイルのサイズ、4バイト ってそれで足りるのかな?
どんなファイル使うのか分からないけど。
ファイル名ももう少し多い方が。
0152デフォルトの名無しさん
NGNG保存させるという事はできないのでしょうか?OpenToolsAPIに詳しい人とかいませんか?
保存のタイミングとファイル名さえ分かれば、後は*.dskから不要な行を消すだけでいけそうなのですが…。
>>148
例外を出さない変換関数、ではなく、例外は駆使したいのですが
それでデバッガがいちいち停止するのは面倒なので、
デバッグ済みの部分に関してはデバッガが例外を検知するかどうかを動的にON/OFFしたい、
という事なのですけど。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG本番用例外はデバッガで止まらないようにして。
0157無責任だが
NGNG1)実際の例外は systemユニットの procedure _RaiseExcept; が本体で
構造化例外APIのRaiseExceptionが呼ばれる
2)構造化例外は全てデバッカで一度捕捉されてしまう
デバッガオプションで EAbort等については無視
3)try は以下の5行のアセンブラ出力に変換される(思ったより例外のコストは低い)
xor eax,eax
push ebp
push exceptのアドレス
push dword ptr fs:[eax]
mov fs:[eax],esp
4) exceptのアドレスには
system._HandleOnException;
がある。
だから、やろうと思えば、system.RaiseExcept で
グローバル変数、デバックマスクフラグを用意し
そのフラグ値によってAPIの構造化例外の代わりに自前で例外を処理する
( ebpとfs:[0] を戻してアドレスにジャンプする)
ようにすれば、デバック中に場所によってマスクするような事が可能かも
0158デフォルトの名無しさん
NGNGあ…同じようなこと考えている(w
RaiseExceptionProcというポインタを通じて例外が発行されている
(System.pasの初期化部でRaiseException APIのアドレスに設定される)ため、
これを独自ルーチンに上書きして例外オブジェクト(ESP + 24)をEAbortインスタンスにすり替え、
無視させることが(手元の実験では)できました。
でもこれをやってしまうと on EXXX do で種類分けして補足できなくなるので157さんの方法に期待。
0159無責任だが
NGNG書換え可能なのは DLL のポインタ部だけなんで
function DllProcChange(new,old:pointer):Pointer;
var p:^Integer;
begin
p:=Pointer(integer(old)+2); //FF25 [xxxxxxxx]
p:=pointer(p^);
Result:=pointer(p^);
p^:=Integer(new);
end;
として
DllProcChange(@NewExcept,@RaiseException);
とやると、 Windows.RaiseException が書き換わってしまうし
@RaiseExceptionから手繰ろうとしても、@が先頭についてるからダメだし
system.pas を書き換えるのは嫌だしで難しいですね
0160デフォルトの名無しさん
NGNGユニット単位でデバッグする・しないが
簡単に指定できるんだからそれでいいじゃん。
0161デフォルトの名無しさん
NGNG-DDEBUG;CUSTOMなどとやって条件定義を追加できますが、
逆に条件定義をコマンドラインオプションで外すにはどういう風にすれば良いのでしょうか?
教えて下さい。
0162139
NGNG>>139の横の数字の単位はバイトです。わかりにくくてすいません。
こんなの
http://www68.dns.ne.jp/~bbs2/upload3/helen/OB00012462.zip
一応読み込んで見たところファイルの容量とかまでは取得できました。
0163デフォルトの名無しさん
NGNGいや、別に仕様がわかりにくくて・・・ということじゃなくて、
課題を丸投げしている点に問題があるんですが・・・
0164デフォルトの名無しさん
NGNGSystemユニットの@付き手続きのアドレスはインラインアセンブラで取れませんか?
mov EAX, offset System.@RaiseExcept
無責任ですが期待してます
0165デフォルトの名無しさん
NGNG作ろうとしてるんだけど、どっかに転がってない?
とりあえず↓は見つけたけどCR+LF→\nの際に\nが
入っていた場合の考慮が足りないのでダメだった。
ttp://www.nifty.ne.jp/forum/fdelphi/samples/00355.html
で、作るとしてテストケースは以下で足りてるかレビューキボン
変換前にAdjustLineBreaksを使う事で#10のみ,#13のみの
テストはナシの方向で考えてる。
#13#10 ←→ \n
abc#13#10def ←→ abc\ndef
abc\ndef ←→ abc\\ndef
abc#13#10\n#13#10def ←→ abc\n\\n\ndef
abc\#13#10\def ←→ abc\\\n\\def
#13#10abc ←→ \nabc
abc#13#10 ←→ abc\n
\nabc ←→ \\nabc
abc\n ←→ abc\\n
#13#10#13#10#13#10 ← #13#10\n#13#10
0166デフォルトの名無しさん
NGNGもし見つからなかったら、ここにコード書いてた筈だから探してごらん
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
0167デフォルトの名無しさん
NGNG表n ←→ 表n
(表はSJISで2byte目が \ )
>abc\ndef ←→ abc\\ndef
abc\\ndef ←→ abc\\ndef
じゃないの?
0168無責任だが
NGNG////////////////////
// \エンコードをする
// \n=$0d$0a
function EncodeStr(const s:string):string;
function IntToHex2(d:integer):string;
const c:array [0..15] of char ='0123456789ABCDEF';
begin
Result:= c[d div 16]+c[ d and 15];
end;
var i:integer;
begin
Result:='';
i:=1;
while i<=length(s) do
begin
case s[i]of
#0..#8,#10..#12,#14..#31,'"','''',',','=':
Result:=Result+'\x'+IntToHex2(ord(s[i]));
#9: Result:=Result+'\t';
#13: begin
if (i+1 <= length(s)) and (s[i+1]=#10) then
begin
inc(i);
Result:=Result+'\n';
end else
begin
Result:=Result+'\x'+IntToHex2(ord(s[i]));
end
end;
'\': Result:=Result+'\\';
else begin
Result:=Result+s[i];
end;
end;
inc(i);
end;
end;
0169無責任だが
NGNG// \デコードをする
// \n=$0d$0a
function DecodeStr(const s:string):string;
var i:integer;
begin
Result:='';
i:=1;
while i<=length(s) do
begin
if s[i]='\' then
begin
inc(i);
case s[i] of
'x':
try
Result:=Result+ char(StrToInt('$'+s[i+1]+s[i+2])) ;
inc(i,2);
except end;
'b': Result:=Result+#$08;
'a': Result:=Result+#$07;
'f': Result:=Result+#$0C;
'r': Result:=Result+#$0D;
't': Result:=Result+#$09;
'v': Result:=Result+#$0B;
'n': Result:=Result+#13+#10;
else Result:=Result+s[i];
end;
inc(i);
end else begin
Result:=Result+s[i];
inc(i);
end;
end;
end;
0170165
NGNG早い&的確な反応ありがとう。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238&rm=50
のコードと168-169の両方を検討して気に入った方を使ってみる事にするよ。
>>167
"表" は忘れてたよ、感謝。で、変換仕様の方なんだけど
>>165:abc\ndef ←→ abc\\ndef
>167:abc\\ndef ←→ abc\\ndef
165の変換仕様で良いと思う。で、167のはこうなるかな
abc\\ndef ←→ abc\\\\ndef
何か考慮漏れが漏れてるだろーか
0171165
NGNG↑は早とちり。相談室3の674で出たAdjustLineBreaks+αの
動きをするコードっぽいので目的とは違ってたよ。
前スレ探したかったけどdat落ちでした。
0172Delフサギコ ◆zE1iiRdQ
NGNGまずはテストコードを書くことが漏れている
__________
∧,,∧ /
ミ,,゚Д゚彡 < コードで仕様をあらわすといいです
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
0173下手人
NGNG0174デフォルトの名無しさん
NGNGかちゅスレ逝け
0175165
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1023549124
ところで >>168は何故 "=" も\xnn変換する対象なのでせう?
引用符とかカンマはまだ分かるんですが。
0176デフォルトの名無しさん
NGNGMP3ファイルを自作ソフトに関連付けして再生させたいのですが、
MP3をダブルクリックしてソフトが起動するとこまでは出来ました
でも再生されません。
ファイル関連付けコンポーネントのプロパティの、
コマンドラインで、あるソフトに対して、このファイルが
”ドラッグ&ドロップされたよ”と通知することは不可能でしょうか?
0177デフォルトの名無しさん
NGNGすいません、書き込みミスりました。
ファイル関連付けコンポーネントのプロパティの
”起動時に渡すパラメータ”の部分だと思うのですが…
0178デフォルトの名無しさん
NGNGとりあえず、渡された値はParamStr, ParamCountで取れるんじゃないの?
DDEとかその辺のことはしらんが。
0179176
NGNGhttp://home1.infonia.ne.jp/~delphian/delphi/compo/system.html#SY0084
0180デフォルトの名無しさん
NGNG>MP3ファイルを自作ソフトに関連付けして再生させたいのですが
自作ソフトに関連付けることができたとする。
そのファイルをエクスプローラでダブルクリックする、または
ShellExecute() から関連付けられた実行プログラムを起動する
ということはできてるわけですよね。
でも、その関連づけられた自作ソフトがコマンドラインパラメータを
解釈しないと意味がありません。178 さんのコメントを考慮する必要が
あります。
0181デフォルトの名無しさん
NGNG4の場合 0004
12の場合 0012
です。
0182デフォルトの名無しさん
NGNGIntToStrした結果に
10より小さかったら"000"
100より小さかったら"00"
1000より小さかったら"0"を付ける
(2)
Formatを使う
0183デフォルトの名無しさん
NGNGIDEからコンパイルした時は定義有り。
MakeFileからMakeした時は定義無し。
にしたいのですが。
もしかしてDelphiでmake使うような方はおられないのでしょうか?
0184デフォルトの名無しさん
NGNGで良いんですかね。
0185デフォルトの名無しさん
NGNG(# `�D´)ノ<つかってたしかめろ! なのれす!
いちいちきくな!なのれす!
0186デフォルトの名無しさん
NGNG0187モーヲタうざい
NGNG0188デフォルトの名無しさん
NGNG(# `�D´)ノ<うるせーはげ!
0189デフォルトの名無しさん
NGNG$UNDEF
0190デフォルトの名無しさん
NGNGFormat('%4.4d' 〜〜〜)
>>185
同感だけど、形式文字列のHelpは難解なことで有名だし…
0191デフォルトの名無しさん
NGNG-$UNDEF ABC
-$UNDEF=ABCと試してみましたが両方とも効果がありませんでした。
0192デフォルトの名無しさん
NGNG何じゃそりゃ(笑)
IDEのほうのプロジェクトオプションで識別子追加するのは駄目なの?
0193デフォルトの名無しさん
NGNGいやそうじゃなくて、ソースに
{$IFDEF NOIDE}
{$UNDEF ABC}
{$ENDIF}
て書いておいたら、-DNOIDE で、ABCが定義されなくなるだろ。
0194デフォルトの名無しさん
NGNG(新幹線の中で出る、読売新聞ニュース◆ みたいな奴)
横書きにした文字を縦方向にスクロールさせる良い方法ってありませんか?
一行の表示領域で、できるだけウザくない方法で複数行のStringsを出したいのです。
(数秒おきに一行ずつペロっとスクロールするようなのが(・∀・)イイ)
0195デフォルトの名無しさん
NGNGExceptionClass 変数に代入されているクラス参照の派生クラスにしかIDEは反応しないようです。
従って、適当な例外クラスをでっち上げ代入してやることで無視させることができました。
インラインアセンブラを駆使した努力は何だったんだ…
参考文献: DELPHI IN A NUTSHELL
0196デフォルトの名無しさん
NGNGそういう事だったのですか。
dcc32 -?で
-$<dir> = Compiler directive
って出てくるのでそういう方法が出来るのかと思いました。
全てのソースファイルに書かなければならないみたいなのが
多少気が進まないのですが、ありがとうございました。
0198デフォルトの名無しさん
NGNGスミマセヌ、上手く説明できてないですね・・・。
電車の行先幕みたいな、一行が上下にスライドするモノを実現させたいんです。
試しにいろいろ描画してみます。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGActiveXの取り込みで一覧に"Microsoft XML"らしきものが
出てきません。ひょっとして別の名前がついているとか
そういうことはないのでしょうか?
0201A
NGNGこんなかんじかな?
フォントと同じ高さの Image1 置いて、ブラシやフォントの色を適当に設定。
Interval を 100 にしたタイマーのイベントに、
with Image1.Canvas do begin
FillRect(ClientRect);
TextOut(0,0-T,'1行目');
TextOut(0,Abs(Font.Height)-T,'2行目');
Inc(T);
if T>Abs(Font.Height) then begin
T := 0;
Timer1.Enabled := False;
end;
end;
とか書いてみた。T:Integer はどっか消えないところに置いといて(笑
0202デフォルトの名無しさん
NGNGあ、TImageのTextoutか!ありがとう、使ってみます!
0203デフォルトの名無しさん
NGNGどういう仕組みなのですか?
ソースが手元に無くてもあんなことできるの?
0204デフォルトの名無しさん
NGNGDelphiでも一緒の事出来るけど。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGOnMouseWheelUP Down の処理内容を例えばButton1Clickとすると、
ボタン1を2回クリックしたことになってしまいます。
これを1回クリックというようにできないでしょうか?
0209デフォルトの名無しさん
NGNGえ?
1回だけど
0210デフォルトの名無しさん
NGNG2回分になってしまうに50ペリカ
0212208
NGNGいや、解決はしてないけど簡単なプログラム作って試してみたところ、
確かに1回でした。
一体何が悪いのかはまだ分かんないけど自分でなんとかしてみます。
スレ汚しすみません・・
0213208
NGNGボタンとメモを用意して、
procedure TForm1.FormCreate(Sender: TObject);
begin
x:=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=x+1;
memo1.text:=inttostr(x);
end;
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Button1Click(Sender);
end;
ってしてホイールまわすと2ずつ増える・・
0214デフォルトの名無しさん
NGNGバグってるぞ。
ホイールを処理したときは Handled := True; しる!
0216デフォルトの名無しさん
NGNGヘルプちゃんと読んでないだけ
0217デフォルトの名無しさん
NGNGすんげぇめんどくせぇ。
せめて、フォーム情報だけでも自動コンバート
してくれるようなツールがあったりしない?
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGVBやっとけ。
0220デフォルトの名無しさん
NGNGVBで作ってみては?
0221デフォルトの名無しさん
NGNGVisual Basic to Delphi conversion program
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=17064
0222デフォルトの名無しさん
NGNGフォームからクイックレポートを呼び出す。クイックレポートのデータソースはSQL。
SQLにはパラメタがあり、フォームに配置したリストボックスなどの値をパラメタに渡し、印刷する。
つまり、フォームで「日本」を選択して印刷ボタンを押すと「日本のデータ」が、「韓国」を選択して印刷ボタンを押すと「韓国のデータ」が印刷される、というようなのをやりたいのじゃよ。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGところで、Delphi6でフォームやフレームを編集すると
ソースのあるディレクトリに.ddpってファイルができちゃうよね。
ダイアグラムなんて使う気ないし、ソースのアーカイブ
作るときに激しく邪魔。
このファイルを作らせないようにするか、dcuみたいに
別のディレクトリに隔離することってできないかな?
0225デフォルトの名無しさん
NGNG・多チャンネル(最大4チャンネル程度)のサウンドを別ファイル(wav)から再生
・各チャンネルで独立してボリュームを制御できるようにする
必要な機能は以上2点です。いまのところ映像と音声の同期は無視してます。
(十分処理速度が速ければ、ずれが無視できる程度に収まっている?)
QuadrupleDの中にあるDDSDを使って実現しようとしているのですが、
「メモリに入りきらない長大なwavファイルの再生」がうまくいきません。
(チュートリアルが中途半端なのもあって・・・)
他のコンポーネントを利用する方法でも構いませんので、どなたかご教示お願いいたします。
Delphiのバージョンは5です。
0226222
NGNGで、フォームから、クイックレポートのSQLにパラメータを渡す方法がわからないんです。
0227デフォルトの名無しさん
NGNG自分はそういうのやるときは低レベルオーディオAPIで
0.1秒程度のバッファを3つくらい順に回して再生させてる
それでwav ファイルでもサンプリングレートの違いを吸収する為に
acmAPIを使ってる
0228デフォルトの名無しさん
NGNGDelphiで株のチャート分析&予想をするソフトを作ろうとしています。
色々とネットを検索したらTeeChart?,Tchart等を使う方法やPaintBoxを
使っている人等がいて、何でトライしたら良いのかいまいち良く分かりません。
お薦めの方法、あるいは参考になるサイトやスレがありましたら教えてください。
各方法の利点欠点だけでも結構です。
今まで画像系の処理はした事ないので四苦八苦してます。
出来るだけ、簡単に出来る方法を選びたいです。
最初から高機能は求めてません。
開発環境はD6パソ(自宅)&エンプラ(会社)です。
どうかよろしくおながいします。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGManifestファイルを使うとわかり、とりあえず見た目は対応させれたんだけど.
ListViewが表示されるフォームではどこでもとにかくエラーが出るんです.
なんだか、Del6だとアップデートすればいいみたいだけど、Del5では
どうしようもないんでしょうか?
0231デフォルトの名無しさん
NGNG取りあえず出てるパッチ適応すれば?
0232デフォルトの名無しさん
NGNGActiveXからWindowsMediaPlayer取り込むのは?
0233デフォルトの名無しさん
NGNGUpdatePack1はあててます・・・
0234230
NGNGエラーになるのはListViewのViewStyleをvsReportにしてるときです.
どうも、ヘッダ部分の描写をしようとしたときに落ちるっぽいんですけど・・・.
HeaderControlのほうは大丈夫みたいですねー.
0235230
NGNGComCtrls内、UpdateColumnの中で
if FImageIndex <> -1 then
fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES;
というところを
if FImageIndex <> -1 then
fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES
else
mask := mask and not (LVCF_IMAGE);
とするといいようです.意味はまったくわかってません(;´Д`)
商用アプリでComCtrlsをローカルにコピーして使うのはまずいのかなあ?
0236230
NGNGこの方法じゃできないんだった.鬱・・・.
0237デフォルトの名無しさん
NGNGマルチポストかよ、たまんねぇーなぁ、
モナースレで十分にレスが付いてるようだが、
他に何が聞きたいんだ?
0238デフォルトの名無しさん
NGNGいや、こっちに書き込んだ時はあちらでは何も教えてもらえませんでした。
0239デフォルトの名無しさん
NGNGttp://www.nifty.ne.jp/forum/fdelphi/faq/00146.htm
0240デフォルトの名無しさん
NGNG参考にします。ありがとう。
0241デフォルトの名無しさん
NGNGTDateTimeを使うと時間の所も表示されてしまいます。
時間部分を隠す方法って無いんですか?
無理だとすると、どういう方法で作るのが一番良いのでしょうか?
教えてください。
0242デフォルトの名無しさん
NGNGDateToStr関数を使ってみたりするとか。
0243241
NGNGストップウォッチだったら、
自分で時間計算するのがベストかと。
Timeのインターバルを100にしておくとして、
それまでのカウントを数える数値をCounter:integerとする。
OnTimerが呼ばれるとCounterに1を加算して
Label1.Caption:=Format('%d分:%d秒:%d',[Counter div 600, Counter div 10,Counter]);
みたいな感じで。
0244243
NGNGあぅひとりで動揺してしまった...
0245241
NGNGでも、その方法だと、位が上がる時(パラメータの配列の2つ目が60になった時・3つ目が10になった時)
にその位が一0にならないような・・・
0246デフォルトの名無しさん
NGNGはっ...そういえばそうでした。
その場合は、
Label1.Caption:=Format('%d分:%d秒:%d',[Counter div 600, Counter div 10 mod 60,Counter mod 10]);
こうしてみるといけるかも。
0247デフォルトの名無しさん
NGNGそれにしてもDelphiはオブジェクト指向じゃないな。
0248デフォルトの名無しさん
NGNG0249248
NGNG( ´∀`)/< 先生!>>248は無視してください!
_ / / / \___________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0250241
NGNGいい感じっす!
でも分の所を常に2桁表示したかったので、以下の様に書いてみましたが、おかしいですよね?w
Inc(Counter);
if Length(IntToStr(Counter div 10 mod 60)) = 1 then
Label1.Caption := Format('%d分0%d秒%d', [Counter div 600, Counter div 10 mod 60, Counter mod 10])
else
Label1.Caption := Format('%d分%d秒%d', [Counter div 600, Counter div 10 mod 60, Counter mod 10]);
0251デフォルトの名無しさん
NGNGTimerって正確じゃないよ。
0253241
NGNG形式文字列っていうのは、時間以外はよくわかってないです。
今ヘルプ見たけど、精度指定子っていう物で2桁表示にするんですかね?
>>252
StartTime, StopTime, PassageTime: TDateTime;だとすると、
スタートの時に
StartTime := Time;
ストップの時に
StopTime := Time;
PassageTime := StopTime - StartTime;
Label1.Caption := TimeToStr(PassageTime);
みたいな感じでしょうか?
それだと途中経過が出ないような?
どこかのスレでTTimerは精度が低いからTimeGetTimeを使った方がいいという書き込みは見た記憶がありますが、よくわかりません。
0254デフォルトの名無しさん
NGNGGetTickTimeでもよさそうなきがする。
ところでストップウォッチって精度はいかほどを考えてるの?
0255241
NGNG特に精度は気にしてないです。
>>241の様な質問や、>>250みたいなコードを書いてる時点で俺はドキュソケテーイなので、
簡単なことからゆっくりやってみたいと思っています。
結局、>>241の答えとしては、
Inc(Counter);//Counter: Integer;
Label1.Caption := Format('%d分%0d秒%d', [Counter div 600, Counter div 10 mod 60, Counter mod 10]);
が最強なんですかね?
秒以下を一桁しか表示しないなら、TDateTimeを使って、IncMilliSecond(Counter)とやってもできる気がしてきましたが・・・(^^;
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGフォームにラベルとボタンを2つ貼って、以下ようにすればどーなのさ。
このまんまじゃ、不都合もあるけど、こんな感じでどーよ。
Button1でスタート Button2でストップ でも、一旦スタートすると終了させる前に button2を押さないと終われない罠
var
StartDate:int64;
procedure TForm1.Button1Click(Sender: TObject);
procedure timeLoop;
var
wStr:String;
wTT:TTimeStamp;
begin
while StartDate<>0 do
begin
wTT.Time:=GetTickCount()-StartDate;
wStr:=FormatDateTime('nn:ss.zzz',TimeStampToDateTime(wTT));
Self.Label1.Caption:=wStr;
Application.ProcessMessages;
end;
end;
begin
StartDate:=GetTickCount();
timeLoop;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
StartDate:=0;
end;
0259241
NGNGできないっす!・゜・(ノД`)・゜・
var
PassTime: TDateTime;
procedure TForm.Timer1Timer(Sender: TObject); //Interval は 1
begin
IncMilliSecond(PassTime);
Label1.Caption := FormatDateTime('n:ss:zzz', PassTime);
end;
これじゃダメなんすか?
>>258
かなり凄くて感動しましたけど、理解不能です、すいません。
Timerを使わないでできる仕組みとか、ヘルプに載ってないGetTickCount、Button1Clickのヘッダーとbeginの間にまた手続きらしき物があるとか・・・
GetTickCountっていうのはAPI関数っていう物でしょうか?
わからんことだらけです。
0260デフォルトの名無しさん
NGNGGetTickTimeはWin32APIです。
Windowsの起動からの経過時間をmsecで取得するので
Timerのインターバルあたりで、差分を表示すれば
ストップウォッチらしいものができると思います。
私は、楽なので計算や表示の時間を計るときの目安としてこのAPIつかってます。
0261デフォルトの名無しさん
NGNG>Button1Clickのヘッダーとbeginの間にまた手続きらしき物がある
procedure や function の中に、その手続きや関数内でだけ使える関数を書く事が出来る。
procedure aaaa(xxx);
procedure aaaa1;
begin
処理
end;
procedure aaaa2;
begin
処理
end;
var
i:integer;
begin
for i:=1 to 10 do aaaa1;
for i:=1 to 20 do aaaa2;
end;
こんな書き方が出来るようになる。
慣れると便利、特に再帰処理書きやすくなるから絶対に慣れておくべき。
GetTickCountは、D6のヘルプには載ってますが?
経過時間を扱う場合には、引き算1つで差が算出できるので普通使うでしょ、
覚えておいて下さい。
0262241
NGNGGetTickCountですよね。ありがとうございます。
これ、TDateTimeに代入しても、Integerに代入しても大丈夫なんですね。
具体的に使ってみたかったんですが、
procedure TForm1.Button1Click(Sender: TObject);
var
T: TDateTime;
begin
T := GetTickCount();
ShowMessage(FormatDateTime('hh:nn:ss', T));
end;
これはどこがダメですか?00:00:00と出ます。
>>261
なるほど、ローカルな関数みたいな感じでしょうか、ありがとうございます。
ヘルプに載ってますか?
俺のには載ってないみたいですが・・・。
キーワードで調べても出てきません。
0263デフォルトの名無しさん
NGNGだから、割算が必要
例:
Caption:= FormatDateTime('hh:nn:ss', GetTickCount/(1000*60*60*24) );
---------------------------------------------
ついでに、それを使わないで整数演算でする場合は
var OldCnt:Cardinal;
procedure TForm1.Button1Click(Sender: TObject);
var NewCnt,dt:Cardinal;
begin
NewCnt:=GetTickCount;
dt:=NewCnt-OldCnt;
Caption:= format('%02d:%02d:%02d.%02d',
[ dt div(60*60*1000)
,(dt div (60*1000)) mod 60
,(dt div (1000)) mod 60
,(dt div (10)) mod 100]);
OldCnt:=NewCnt;
end;
0264デフォルトの名無しさん
NGNGあなた他人の話聞いてる(読んでる)?それとも、ちょっと読んで理解できなかったら
読まないようにしてるのかな?
判らない部分があったら Help -> MLログ -> google の順で調べて下さい、でないと、
永久に自分ではプログラム作れませんよ。
因みに、
ローカル宣言についてはヘルプにもマニュアルにも記載してあります。
ヘルプの目次->Object Pascal言語ガイド->手続きと関数->ローカル宣言 でどーぞ。
ヘルプはキーワード検索だけじゃなくて、暇なとき 目次の内容も読んでください、Pascalに
慣れていない人や我流な人(私もだが)にはとても有益な情報が密かに詰まってたりします。
(Delphiのヘルプは印刷物のマニュアルの内容と同じです。)
0265241
NGNGおおお、できました!
ありがたや、ありがたや。
後半はストップウォッチみたいな物ですか?
やってみたら、2回目以降は、前に押してからの時間が出ます。
1回目は謎な時間が出てしまいますが・・・。^^;
>>259はどこがダメなんでしょうか?
0266デフォルトの名無しさん
NGNG(n-1回目の時間)−(n回目の時間)
ってやってるだろ?n=0ならどうなる?
プログラム以前に・・・。
0267デフォルトの名無しさん
NGNG0268225
NGNGその後色々と試したのですが、>>232さんの方法で何とか実現できました。
ありがとうございます。
あまりにも取り込み→利用が簡単で驚きました・・・(;´Д`)
0269デフォルトの名無しさん
NGNG全然分からないんですけど、
どうすれば 皆さんのように分かるようになりますか?
0270デフォルトの名無しさん
NGNGヘルプ片手に試行錯誤の連続。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG言語(道具)やアルゴリズムやデータ構造(基礎となる部品)を習うことは否定しない。
でも、何を作るか、どう工夫するかは自分の頭で考え体で実行しないとダメでしょう。
0273デフォルトの名無しさん
NGNG何かを作りたい!という目的を持つ、これ最強。
0274素人
NGNG1.○○するツールが作れないかなぁ?
2.そのツール作るにはどーすればいいのかなぁ?
3.ネットで検索してヒントから学ぶ
こーゆー形で理解してきたが…。
よーするに「必要」から、と。後は>>273に同意。
0275デフォルトの名無しさん
NGNGおおむね同意。
ヒトによっては、熱意だけあって、激しいクレクレ君に変身する場合もあるので。
0276241
NGNG他の人が教えてくれた物は、Helpで調べるとかして、できる限り理解する様に努めています。
手続き・関数のローカル宣言はよくわかりました、ありがとうございます。
>>266
>>263で
Button1を一回押した時点では、OldCntには何も代入されていないから、
NewCntの値、つまりGetTickCountの戻り値がそのままCaptionになるということですよね。
0277デフォルトの名無しさん
NGNGDelphi5 で動くフリーの奴
0278デフォルトの名無しさん
NGNGIncMilliSecondは手続きではなく、関数ですよ。(Incは手続きだけど)
だから PassTime := IncMilliSecond(PassTime); にしなきゃダメだと思う。
どれくらいの誤差が出るのか、さきほどこの方法で自分でやってみましたけど、
MSecの百の位が秒を刻んでる様に見えるほどの誤差でした。(藁
こんなにTimerって誤差があるのか・・・
0279デフォルトの名無しさん
NGNGIndy のデモプログラムじゃだめか?
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGマルチメディアタイマー使えばいいんだと思うけど
やはりGetTickTimeを使うのがいいのかな...
0282デフォルトの名無しさん
NGNGGetTickTime って何?
GetTickCountの事なら ストップウオッチの応用なら Now を使えばいいと思うけど?
たしか精度同じ程度でしょ
マルチメディアタイマも単位は msだし、使い難いから
実行時間を計算するような場合はパフォーマンス カウンタを使う方がいいと思う
RDTSC命令を呼ぶか QueryPerformanceCounter を使うか
0283デフォルトの名無しさん
NGNGGetTickCount や Now など時刻を基準として差をとるべきです。
241の問題で残っているのは、単に表示の仕方だけ。
0284デフォルトの名無しさん
NGNG計時関係の精度について
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q172338
によると
Several timers of differing accuracy are offered by the operating system:
Function Units Resolution
---------------------------------------------------------------------------
Now, Time, Timer seconds 1 second
GetTickCount milliseconds approx. 10 ms
TimeGetTime milliseconds approx. 10 ms
QueryPerformanceCounter QueryPerformanceFrequency same
したがって GetTickCount がもっとも手軽で精度も通常用途では十分だと
思われる。タイマなど時間間隔をつかった計時は、誤差が累積するので
時刻差を利用したほうがよいのは当然。
0285デフォルトの名無しさん
NGNGNT系ではデフォルトの精度が10msecなので、
timeBeginPeriod(1);
を忘れるな。
0286デフォルトの名無しさん
NGNGカンタン!Delphiプログラミング―あなたにも作れるWindowsプログラム 日経BPパソコンベストムック
http://www.amazon.co.jp/exec/obidos/ASIN/4822216888/
Delphiパーソナルプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4839907161/
Delphi Graphic Secrets―Know‐how & Libraries
http://www.amazon.co.jp/exec/obidos/ASIN/4797319224/
Delphi 6 プログラミングバイブル
http://www.amazon.co.jp/exec/obidos/ASIN/4844316346/
0287デフォルトの名無しさん
NGNG時刻と時間の違いに関してですけど、時刻を扱う時はTDateTimeを使えばいいとして、
時間を扱う時はTDateTimeを使っていいのでしょうか?
それとも、カウンターとして整数型の変数を利用した方がいいのでしょうか?
0288デフォルトの名無しさん
NGNGTDateTime を使ってもよいと思うが、時間間隔を TDateTime に変換する
コストや変換にともなう誤差を考慮すると、わざわざ TDateTime に変換する
意味はないと思うよ。
例えば、GetTickCount で時間差を計時すると、ミリ秒単位での数値が得られ
るわけですから、これを時間、分、秒に換算するのは簡単です。どこにも
TDateTime への変換を考慮する必要はありません。
0289デフォルトの名無しさん
NGNG一旦delphiを再起動すると治る。 ってな症状が出てるの俺だけですか?
0290デフォルトの名無しさん
NGNGオレもD5sp1ユーザだが、そんな経験はしたことない
0291デフォルトの名無しさん
NGNG例えば、ある項目値が全て0のとき、ボタンを押したら全て1にしたいとき、
SQLで
dataset.sql.add('update table1 set yn=1');
とやってみたり、
while not(table1.eof) do
table1.start;
0292デフォルトの名無しさん
NGNGテーブルの値を、ボタンを押したら一括して変更するようなのは、どうすればいいんですか?
例えば、ある項目値が全て0のとき、ボタンを押したら全て1にしたいとき、
SQLで
dataset.sql.add('update table1 set yn=1');
とやってみたり、
while not(table1.eof) do
begin
table1.start;
table1.fieldbyname('yn').asinteger := 1;
table1.next;
end;
みたいなことをやってみても、エラーになってしまいます。
0293デフォルトの名無しさん
NGNGtable1.fieldbyname('yn').asinteger := 1;
table1.next;
table1.start;
table1.fieldbyname('yn').asinteger := 1;
table1.next;
table1.start;
table1.fieldbyname('yn').asinteger := 1;
table1.next;
0294デフォルトの名無しさん
NGNG上の方を読んで、精度が必要な時はGetTickCountの差で求めるのかなと思ったのですが、
基本的に時間を使う時はGetTickCountの差で良いってことですかね。
教えてくれてアリガトです。
0295デフォルトの名無しさん
NGNGGetTickCountが一周して0にもどってもいいように処理してね。
0296デフォルトの名無しさん
NGNGリソース不足なんでは?
以前Win98で使ってて、リソース不足でフォントが異様に大きくなり、
その製でスクロールバーが馬鹿でかく膨らんだ経験あり。
解決策は、NT系に乗り換えること。
とはいえNT系でも無尽蔵なわけでもないが。
0297デフォルトの名無しさん
NGNGgoogleで調べてみるとtimeGetTimeの方が精度いいみたいですね。
0298デフォルトの名無しさん
NGNGStartなんてメソッドはないよ。Firstです。
Table1.First;
Table1.Edit;
while not Table1.EOF do
begin
Table1.FieldByName('field1').AsInteger := 1;
Table1.Next;
end;
0299デフォルトの名無しさん
NGNGあ、そうですね。うろ覚えでカキコしたもんで、間違えました。コードはちゃんとfirstとやってます。
0300デフォルトの名無しさん
NGNGとりあえず、どういうエラーか書け。
0301デフォルトの名無しさん
NGNGどこか参考になるようなサイト教えてください。
0302デフォルトの名無しさん
NGNGhttp://www.ba.wakwak.com/~h-kova/
リンクページなら
http://www.alpha-net.ne.jp/users2/jj3fkc/1000link/main9.htm
0303デフォルトの名無しさん
NGNG0304299
NGNG大体こんな感じなんだけどな。
「プロジェクト○○がEDataBaseクラスの例外を生成しました。データセットが編集又は挿入モードではありません。」
0305デフォルトの名無しさん
NGNGそのままやん。Table1 の宣言の方法などをさらせば識者のご加護が得ら
れるだろう。(俺は、Delphi 使いじゃねーから期待するなよ。)
0306デフォルトの名無しさん
NGNG一回ずつPostしなきゃだめだろ?
with Table1 do
begin
First;
while not Eof do
begin
Edit;
FieldByName('Field1').AsInteger := 1;
try
Post;
except
Cancel;
end;
Next;
end;
FlushBuffers;
end;
0307299
NGNG参考のため、今作成中のヤツをあぷします。
まず、データモジュール「dm」にテーブル「tbl1」、データソース「ds1」がある。
ds1のデータセットはtbl1である。
別のフォームで、tbl1を利用する。usesなどはちゃんと処理している。
フォームに、DBControlGridを貼り付け、データソースは「dm.ds1」。AllowDeleteとAllowInsertはFalseにしている。
と、ココまでは問題ないはず。実際、このフォームを実行して、DBControlGridに貼り付けたDBEditなどは編集できる。
次に、フォームにコマンドボタン「btnUpdate」を貼る。で、そのクリック時のプロシージャ。
with dm.tbl1 do
begin
Open;
First;
Edit;
end;
while not(dm.tbl1i.EOF) do
begin
with dm.tbl1 do
begin
FieldByName('ID').AsInteger := 1;
Next;
end;
end;
なんだけど、これが、299のようなエラーになる。
0308299
NGNGedit; は、書き込みの度にやらなければならないようですね。場所を変えたら、うまくいきました。
ども、皆さん、ありがとうございました。
0310デフォルトの名無しさん
NGNGUpdateSQLを使用した更新を行っているのですが
更新ボタンを押すと、Query1.ApplyUpdatesを実行するようになっています。
しかし、この時点でアプリを起動したままWindowsをシャットダウンすると
書き込んだはずのデータが消えてしまうんです。
ディレクトリ内に MBファイルが残っているところを見ると
正常に更新ができていないという事なのでしょうか?
ちなみにアプリケーションをきちんと終了した場合は
データはちゃんと書き込まれています。
0312デフォルトの名無しさん
NGNGクライアントがむちゃな操作をするもので…
0313デフォルトの名無しさん
NGNGまさか Commit してないとか?
ヘルプより
>データセットを更新する方法としては,個々のデータセットの ApplyUpdates
> メソッドを呼び出すよりは,データベースコンポーネントの ApplyUpdates
>メソッドを呼び出すことをお勧めします。
>データベースコンポーネントの ApplyUpdates メソッドは,
>トランザクションのコミットおよびロールバックを処理するとともに,操作が成功したときにキャッシュをクリアします。
0314...
NGNGDataset.Filter := '''YOMI = '' + ''あ*' or 'YOMI = ''い*' .....以下同じ...''';
みたいなことをやろうとしているのですが、’の数とか訳分からなくなってしまう厨です。
もっといい方法ありますか?
0315デフォルトの名無しさん
NGNG横一行に書くんじゃなくて段落分けしなされ。
orの部分で改行すべし。
0316デフォルトの名無しさん
NGNGクライアントを教育しろ
そんな奴らならシャットダウンせずに電源切ってるやつもいるだろ?
0317デフォルトの名無しさん
NGNG>315 の意見もいいが、漏れ的には配列と、for と、Formatを組み合わせるな。
配列は 10(50音の行の数)×15(もっとも長くなる「は」行がは、ば、ぱの三種類
×5個)にして、それに50音表を用意しておく。
あいうえお
かきくけこがぎぐげご
さしすせそざじずぜぞ
たちつてとだぢづでど
なにぬねの
はひふへほばびぶべぼぱぴぷぺぽ
まみむめも
やゆよ
らりるれろ
わをん
行を指定されたら、配列から一行分の列を順に読みつつ、Format 使って一文字分の
フィルターを作っては追加してく、と。配列の一行分の長さは別にもってりゃいいし。
0318デフォルトの名無しさん
NGNGTable1.Filter :=
'YOMI =' + #39 + 'あ*' + #39 + ' or ' +
'YOMI =' + #39 + 'い*' + #39 + ' or ' +
'YOMI =' + #39 + 'う*' + #39 + ' or ' +
'YOMI =' + #39 + 'え*' + #39 + ' or ' +
'YOMI =' + #39 + 'お*' + #39;
みたいにしたら、うまくいきました。
quotedstr()関数を使ったらもっと簡単みたいですね。
0319デフォルトの名無しさん
NGNGfilterは、濁音・半濁音は区別しないようですが、区別させるスイッチか何かあるんですか?
ワシの所では、'は*'だと「は〜」も「ば〜」も「ぱ〜」もヒットしますけど。できれば区別させたいです。
0320TeamB/2ch ◆SE69s0c2
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGPixelformatでみたらどうすか?
それとも1bit以外のBmpで白と黒だけが使われているってことですか?
0323デフォルトの名無しさん
NGNGあ、そうですね。PixelFormatで見ます。
0324デフォルトの名無しさん
NGNGImage1.LoadFromFile('ファイル名');
if Application.MessageBox('白黒ですか?', '突然ですが質問です', MB_YESNO or MB_ICONQUESTION) = ID_YES then
//白黒
else
//カラー
0325デフォルトの名無しさん
NGNG文法エラー。
0326デフォルトの名無しさん
NGNG実際に処理する部分をすぐ書けるように出来たと記憶してるんですが、
なんでしたっけ? 3個ほど一緒に押してたような…。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGさんきう。〔Ctrl〕+〔Shift〕+〔C〕 がそうらしいのだけど、
押しても何もならない。今日、delphi6 personal 入れたばかりで
設定とかはディフォルトのままのはずなのに…。
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGマジ? なんでこんなものを省略するわけ?
ぼうらんどさんよ、もうね、アフォかバ…(以下略
0332 ◆tare/k3c
NGNG補完しなくてもソラで打てるようにならないと上達しないよ。
0333デルファイの名無しさん
NGNGデーターベースよりもActiveXよりもVCLソースよりも何よりも、
コード補完と[Ctrl]+上下の移動がprofessional最大の価値と僕は思ってます。
0334デフォルトの名無しさん
NGNGまぁ、初心者かな。N88-BASIC のころからサンデープログラマー(死語)もどきでは
あったんだけどね。つーか、あれでしょ、Delphi に限らないと思うんだけど、
覚える単語っていうかスペルっていうか多すぎ。
これで飯を食っていかなくちゃいけないのならともかく、休みの暇つぶしにやる程度なら、
絶対覚えれないって、、、たぶん (;´Д`)
>>333
なるほど…(w
0335デフォルトの名無しさん
NGNGこんなもんは上達しようというのが無理。
趣味だって、一所懸命やらなくては物にならんよ。
単語覚えるのは、言語の文法を覚える以前の問題だと思う
0336デフォルトの名無しさん
NGNGアルファベットの列と見るから覚えられない。
アレは意味のある英単語だ。
0337デフォルトの名無しさん
NGNG言いたいことは分かるが、はっきり言って、補完が効くものを全て覚えようという気はない。
限られた時間のなかでの優先順位は 文法>単語 だな。単語をいちいち覚えるくらいなら、
自分の作りたい処理(アルゴリズム? ちょっと大げさか)を考るほうが楽しいし、やりたい。
0338デフォルトの名無しさん
NGNGCのような自由さがないからいいんだけど、
なさ過ぎてこまったり・
0339デフォルトの名無しさん
NGNG買えよ。
0340デフォルトの名無しさん
NGNGやだね。
0341デフォルトの名無しさん
NGNG文句たれんなら買えっての。アホ。
0342デフォルトの名無しさん
NGNGやだね。
0343デフォルトの名無しさん
NGNGOrd でやんすね。 反対は Chr かな。
文字型は順序型に含まれると。
0344 ◆tare/k3c
NGNGもし16進数にするならFormatを加味するといいよ。
Format('%2.x', [Ord('a')]);
おまけ
Delphiで16進数は頭に$を付ける。「$1A」とか。
16進数をOrdに戻すには、StrToInt('$' + '1A'); みたいにする。
OrdをCharにするにはChr()を使う。
0345デフォルトの名無しさん
NGNG考える前に手が動くので、コード補間などいらん。
むしろ勝手にprivate部に置いてくれたり、インデント幅が自分のスタイルと違う(かなり深刻)ので使えん。
0346デフォルトの名無しさん
NGNG項目がMEMO型の場合、dbgridを使うと、(MEMO)としか表示されませんが、DBMEMOコントロールを使わずに内容を表示する方法はありませんか?
グリッドにアクセスとかエクセルとかみたいに一覧表示をさせたいのです。
0347TeamB/2ch ◆SE69s0c2
NGNGうまく収まるかなど溢れた場合の対策をきちんと行う必要がありますが
Memo 形フィールドに対応する TMemoField を作成し、
OnGetText で
procedure TForm1.Table1NotesGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := Sender.AsString;
end;
とすればメモの文字列が全部手に入ります。
0348デフォルトの名無しさん
NGNG'ファイル検索中です...'みたいにして待っててもらおうと思い
実行ファイルと同じフォルダにaviファイルを置いて、Animationにそのパスを
毎回知らせて使ってるのですが、このaviファイルは、実行ファイル内に
取り込むことはできないのでしょうか?宜しくお願いします
0349デフォルトの名無しさん
NGNGAnimate1のcommonAVIをaviFindじゃだめなの?
0350デフォルトの名無しさん
NGNG>>343
ナルホド。順序型と考えるなら、すごく納得できます。ありがとうございました。
>>334
16進数の場合も教えてもらってありがとうございます。
Pascalやってた時使わなかったから、その内またココで聞いてしまったかも!?
0352デフォルトの名無しさん
NGNGイベントOnDownloadProgressのStatusTextを取り込むには
どうしたらいいんだ?
0353デフォルトの名無しさん
NGNGwindows制御でctrl+英数 を押下することで半角カナモードにしている場合
それをdelphiで制御するのどうやるの?
IimeModeは単にIMEだけの制御みたいでできません。
ほとんどの領域はカナ入力である部分だけ英数にしたいのです。
ctrl+英数 なんて使うな!という回答がないよう祈っています。
0354デフォルトの名無しさん
NGNG大文字小文字、全角半角の織り交ぜ方が素敵です。
0355デフォルトの名無しさん
NGNGImeModeでなにが足りないの?
0356デフォルトの名無しさん
NGNG日本語勉強しろや、と思ふことしばし。
0357デルファイの名無しさん
NGNG0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG取り込む?マジで意味わかんねーよ!?
オマエStatusTextが何なのかは知ってるか?
フォームにTMemoでも貼り付けて Memo1.Text:=StatusText; とでもしたらどーだ ゴルァ!
0361352
NGNGありがとう。TMemoに表示させたらURL(TDownLoadURL.URL)がでてきたよ。
でも、Helpにある「StatusText は,ダウンロードの状態をユーザーに表示」ってこんなものなのかなぁ(´-`)。o ○
0362黒き風
NGNGストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!ストッピング、ゴー!!
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG0365352
NGNG´▽`)解決したよ。Thanx
0366346
NGNGコメントありがとうございました。実験してみて、また結果等をうぷします。
0367デフォルトの名無しさん
NGNG信長発見!
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGDelphi でまた続きからやろうとしても、
実行(F9)が無効になっていて実行できないんですが、
これは Borland の嫌がらせですか?それとも、
Personal では、保存したらもう二度と使えないという
罠ですか?マジレスお願いします。
0371デフォルトの名無しさん
NGNG*.dpr開け
レスありがとうございます。
*.dpr はなくて、*.pas と *.dfm しかありません。
もしかして、昨日作ったぶんはあぼーんですか?
0374デフォルトの名無しさん
NGNG保存してない可能性もあるけど、別の場所に保存した可能性もあるから
HDを *.dpr で検索してみたら?
それでもダメなら 新しいプロジェクト作って その *.pas を開いて
プロジェクトに追加するだけでいいと思うよ(普通は)
レスの入れ違いになりましたが、解決しました。
その後の方法でできました!
アドバイスありがとうございました!
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378625
NGNG0379デフォルトの名無しさん
NGNG625 は Delフサスレからのです。
0380age man
NGNG0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG0383Delフサギコ ◆zE1iiRdQ
NGNG/
∧,,∧ < 暑苦しいと?おっしゃる?
ミロ゜ ,彡 \
U ミ \
ミ @  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U''U
 ̄ ̄ ̄ ̄
0384デフォルトの名無しさん
NGNG/
∧,,∧ < 暑いので、毛、刈られますた
ミロ゜ ,| \
U | \
| p  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U-U
 ̄ ̄ ̄ ̄
0385天下統一
NGNGで、あるな。
0386デフォルトの名無しさん
NGNGディレクトリ内のファイルを列挙するために
procedure Tekitou(DirPath:string);
var
SearchRec: TSearchRec;
begin
if 0=FindFirst(DirPath+'*.*', faAnyFile, SearchRec) then try
・
・
・
finally
FindClose(SearchRec);
end;
でいままで列挙してたのですが、今日急に
"cardinalとTSearchRecには互換性がありません" >FindClose(SearchRec)
とでるようになりました 原因は何が考えれるでしょうか?
0387デフォルトの名無しさん
NGNG「0=FindFirst」?
「0=FindFirst」???
0388デフォルトの名無しさん
NGNG新しいプロジェクトで最小限のコードでも再現する?
0389デフォルトの名無しさん
NGNG同名の API と混同されている。
uses 節の Windows と SysUtils の順番に注意
0390デフォルトの名無しさん
NGNG左辺定数の評価式は基本だろ?知らないのか?
0391387
NGNGで、あるか。
0392デフォルトの名無しさん
NGNGよかったな。賢くなったぞ。
友達に自慢しれ。
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG左辺定数キライ……
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNGタイムスリッパー発見!397誰?
0398397
NGNG0399386
NGNG同名の API と混同されている。
uses 節の Windows と SysUtils の順番に注意
SysUtil,・・・,Windows になってました
Windowsを先頭に持ってきたら見事直りました。有難うございます
usesにも順番ってあるんですね、まったく知らなかったです
ところで同名の API と混同されている。というのはどういう
意味なのでしょうか?
>>387 左辺定数には特に意味無くつかってます。というかコピペさせてもらったのを
使ってるだけですので..
0400デフォルトの名無しさん
NGNG>>399
SysUtilsで宣言されているDelphiの関数FindFirst, FindCloseと同じ名前のWindowsAPI
がある。これの関数宣言はWindowsユニットにある。
同じ名前の場合は、usesでは後から宣言したほうが有効になったはず(確か)
だから入れ替えたらSysUtilsのほうが使われるようになる。
明示的にユニットを指定して関数を呼ぶこともできる。SysUtils.FindCloseとかWindows.FindCloseというふうに。
間違ってたらスマソ。
0401デフォルトの名無しさん
NGNG0402389
NGNG400 さんの説明どおりです。解決してよかったですね。
ちょっとつけ加えると、
VCLの SysUtils ユニットの FindFirst()、FindNext()、FindClose() は
Windows に宣言されている FindFirstFile()、FindNextFile()、FindClose() API の
ラッパーなんですね。そして、FindClose() だけが名前が同じなんです。コンパイラ
は関数名や変数名、定数名などの識別子を見つけるために、最初に、そのコードが書
かれているユニットの前方を探します。そこで見つからないと、直前の uses 節の
うしろの方のユニットから順番に探します。ですから、uses 節の並びの順番は重要
なんです。Delphi の Object Pascal に名前空間の概念がありませんが、このように
して、各ユニット間での参照の優先順位を設けることによって識別子を解決します。
ほかにも TControl.GetClientRect と GetClientRect API のようにメソッドで同名
のものもあります。400さんが指摘されているように、優先順位が低いユニットの
識別子を使うときは、ユニット名を参照します。
0403386
NGNGあるのですね、問題解決以外にも知らなかったことを教えていただき
非常にためになりました(説明文にも分からない単語がいくつか...w
調べてきます)。有難うございます。
0404デフォルトの名無しさん
NGNGそのフレームを貼り付けたフォームの中の同じEditのExitイベントに別の記述を行った場合、
フレーム側で記述してあったイベントの処理が流れないのですが、
これは仕様なのでしょうか?
(あれ?と思いinheritedも書いて見ましたが駄目でした。)
0405404
NGNGFrame21.Edit1Exit(Sender);
ってな感じでかくんですね(汗)
0406デフォルトの名無しさん
NGNGフレーム自体は、貼り付けたフォームに対してクラスとして扱われないのでしょうか?
クラス内クラス的に定義出来れば、フレーム元を継承してinherited等ですっきり爽やかに書けそうなのですが
Delphiのクラスはクラス内に多段階的にクラス定義(継承?)できないのですか?
# クラス・クラスと書いてますが、まだ勉強始めたばかりでよくクラスについても分っていないのですが・・・。
0407デルファイの名無しさん
NGNGでも、フレームとフレームを貼ったフォームは所有関係になるので継承は関係ないですね。
それと、イベントを上書きした時元が呼ばれないのは、
イベントは(仮想関数では無くて)メソッドポインタ型のプロパティにすぎないからです。
0408デフォルトの名無しさん
NGNG確かに>>405で書いてるような使い方じゃちょっと使いづらいね。
あ、フレーム内にコード書かないような作りにしちゃえばいいだけか。
0410デフォルトの名無しさん
NGNGでもコンパイル時にイベントが上書き定義されてる!って
警告でも出して欲しいとか思ったりするけど。
0411takuo
NGNG0412デフォルトの名無しさん
NGNG2chと勘違いしてる香具師もアレだが、それに反応するのもウザイさね
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGChr(i) で文字コード i の文字が得られますが、2 バイト文字の文字コードから文字を取得
するにはどのようにすればよいのでしょうか? いろいろ試したり調べたりしたのですが
お手上げです。
0415デフォルトの名無しさん
NGNGbegin
SetLength(Result, 2);
Result[1] := Chr(hi);
Result[2] := Chr(lo);
end;
0416414
NGNGできました。ありがとうございました。
今までできなかったのはエンディアンを逆にしていたからだったなんて
恥ずかしくて言えません……。
0417デフォルトの名無しさん
NGNG普通オブジェクトのインスタンスをつくるときは、
myobj := TMyObject.Create;
try
//いろいろ
finally
myobj.Free;
end;
って try .. finally を使いますよね。
もし、
for i := 0 to MAX do
myobj[i] := TMyObject.Create;
// いろいろ
for i := 0 to MAX do
myobj[i] := TMyObject.Free;
みたいにオブジェクト配列を作りたい場合、どのタイミングで
try .. finally を使えば良いんでしょうか?
0418デフォルトの名無しさん
NGNG生成・廃棄のタイミングは変わらないのでは。
0419デフォルトの名無しさん
NGNG0420Delphi好き ◆0YAPhEjk
NGNGこんな手はメンドクサイかもしれませんけど、単純に安心したいやりかたとしては、
for i:=0 to MAX do
myobj[i]:=nil;
try
for i:=0 to MAX do
myobj[i]:=TMyObject.Create;
// いろいろ
finally
for i:=0 to MAX do
if Assigned(myobj[i]) then myobj[i].Free;
end;
とかやっちゃうかもしれません。私の場合。
でも、もっと楽な方法とかありそう?
0421Delフサギコ ◆zE1iiRdQ
NGNGTDateTimeを二つ用意して
その差分の分を求めるには
どしたらいいでしょうか?
"+30"分とか"-180"分とかで
表示してみたいのです。
0422デフォルトの名無しさん
NGNGT2 := Now;
TDiff := (T2 - T1);
Label1.Caption := Format( '%d分', [TDiff * MinsPerDay]);
でどお?
0423デルファイの名無しさん
NGNG0424デフォルトの名無しさん
NGNGFreeAndNilを使っても良いのでは?
nilをつっこむ手間もはぶけるはずです。(うろ覚えですが…
0425Delphi好きッ◇0YAPhEjk
NGNG便利なものを教わりました。有難う御座います。
0426デフォルトの名無しさん
NGNG応じた幅にしたいのですが、良い方法はないでしょうか?
0427デフォルトの名無しさん
NGNGのですがどうやらこの方法で生成されたbmpファイルはPhotoShop等に嫌われる
(ヘッダが解析できない、とエラーが出る)ようです。
で、疑問なのが皆さんはどうやってこれを回避しているのでしょうか。
…やっぱり手作業でbmpファイルを生成ですか?
0428デフォルトの名無しさん
NGNGどのように実現すれば宜しいでしょうか?
フォームのKeyDownイベントだと常に効いてしまいますし・・・。
0429Delphi好きッ ◆0YAPhEjk
NGNG>>426
ColWidthsプロパティとOnDrawCellイベントを利用して出来そうですがどうでしょう。
面倒かなという気もしますけど…。
>>427
私も先日同様の問題に直面いたしまして。各所ホームページを参照しながら作成しま
した。折角ですし、TBitmapを継承したクラスで実装しては如何でしょう?
>>428
プロジェクトソースでGetKeyStateを利用すれば簡単に実装できますよ。
0430427
NGNGあぁ…そう言えばそうですね。早速作っておきます。
それがその、回りくどいことにTJEPGImageのbmp版?を作ってました(笑
いやいや、あまり笑えません。ありがとうございます。
0432427
NGNG何故に変な形式なのかなぁと久々にTBitmapが吐いたbmpファイルを眺めていた
のですが、よくよく見ると32bit/pixな形式になってました(気付けよ)。
どうやら画面モードが32bitになっているのにつられてそうなったようです。
で、試しに
bitmap.PixelFormat := pf24bit;
とやってみたところ24bit/pixなbitmapが生成されました。
これだとPhotoShop他でも問題なく読めました。
32bit/pixなスタイルがいけないのかどうなのか不明ですが、これでひとまず
大丈夫なようです(いいのかなぁ)。
今後はもう少し熟考してから質問します。失礼しました。
0433デフォルトの名無しさん
NGNGGUID?何じゃそりゃ?って感じです。
どなたか教えてください・・・。
0434デフォルトの名無しさん
NGNG表示させるフォームが常に一つだけという形にしなくてはなりません
メインフォームを非表示にし、他のフォームだけを表示させたいのですが
SubForm1.Visible := True;
MainForm.Visible := False;
ではだめですし。。。
SubForm1.ShouModal;
だと メインフォームが可視状態ですし。。。
0435デフォルトの名無しさん
NGNG.dprファイルで、CreateFormする前に
Application.ShowMainForm := False;
とすれば?
0436デフォルトの名無しさん
NGNGご回答ありがとうございます
起動時はそれで解決できたのですが、
その後、メインフォームを一度表示させてから、
メインフォームが受け取るイベントによって>>434で記述したように
他のフォームと表示・非表示を切り替えたいのです
0437デフォルトの名無しさん
NGNGHide, Showとか使っても・・・同じか
0438デフォルトの名無しさん
NGNGていうか普通に出来るぞ。
どういうイベントで、どういう状況?
0439デフォルトの名無しさん
NGNGあ!
これ やってみたらできますぃた!!!
Hideじゃだめかと思っていたんですが
Visible := False;
と同じだとばかり思っていましたが、違うみたい。。。
ありがとうございます
参考までに他の手段をご存知でしたら、お教えください
0440デフォルトの名無しさん
NGNG起動時に
Apprication.ShowMainForm := False;
として メインフォームではないフォームを表示させて、
タイマーきって そのフォームを閉じて、メインフォームを表示させます
その後 メインフォームにあるボタン等のOnClickメソッドで、
他のフォームを表示させて、メインフォームは非表示にする。。。
という部分ができなくて
メインフォームが残ってしまったりして。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGいや、同じだぞ・・・。
参考;Forms.pasのソース
procedure TCustomForm.Hide;
begin
Visible := False;
end;
0443Delphi好きッ ◆0YAPhEjk
NGNG多分、あれじゃないですかね。
MainForm.Visible:=False;
と処理したのではなく、オブジェクトインスペクタで代入した…と。
その場合、Application.ShowMainFormプロパティに触れていなければ強制的に表示
されますんで。違うかな?
0444ななしへた ◆B18Bks.Y
NGNGリストクラスを作ってしまった方が簡単確実だと思います.
// 手抜きリストクラスの宣言
TMyObjectList = class(TObjectList)
private
function GetItems(index: integer): TMyObject;
public
property Items[index: integer]: TMyObject read GetItems; default;
end;
// 手抜きリストクラスの実装
function TMyObjectList.GetItems(index: integer): TMyObject;
begin
result := inherited Items[index] as TMyObject;
end;
// 使う
myobjs := TMyObjectList.Create;
try
myobjs.OwnObjects := True;
for i := 0 to MAX do
myobjs.Add(TMyObject.Create);
// いろいろ
// 各オブジェクトは myobjs[i] と配列のように表せます(文字列リストと同じ).
finally
myobjs.Free;
end;
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG下のほうにまだ生きてるから保存しる
0448デフォルトの名無しさん
NGNGここに統合された。
0450デフォルトの名無しさん
NGNGmessageも載ってる様です。
yokohama.cool.ne.jp/chokuto/hsp/index.html
ww2.tiki.ne.jp/~yuarin/toy/api.htm
0451デフォルトの名無しさん
NGNG下の方の掲示板面白いね。
0452デフォルトの名無しさん
NGNGというか、本屋に行ってもDelphiの本が少ないんですが。
0453デフォルトの名無しさん
NGNG最近の Delphi-ML では 日経BPの「カンタンDelphiプログラミング」というのが
初心者向けではいい! ということになっているようです。
0454デフォルトの名無しさん
NGNG何が面白いの?
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG仕事ある言語を覚える。言語スレで言うのもなんだが、言語に寄りかかるなよ。
0457デフォルトの名無しさん
NGNG本屋でちらっと見たんですが、ムックですよね。
無くなる前に購入してみます。
回答ありがとうございました。
0458素人
NGNG本は少ないやねぇ。でもネット徘徊してれば必要無いよ。
特に最初のうちは。
んで、突っ込んだヤツを考え始めるといろいろ困る。
しかし、delphiマガジンっていまだに見たことないんだけど、伝説上の本か?(^^;。
近所の図書館にLinuxマガジンが入ってるのを見た時は「delphiマガジンも購読してくれよ!」
と思いますた。
0459デフォルトの名無しさん
NGNGDel6(Personal)で、以前に作った時も同じバージョンです。
エラー文
---------------------------
エラー
---------------------------
モジュール 'rtl60.bpl' のアドレス 40009054 でアドレス 00000054 に対する読み込み違反がおきました。.
---------------------------
OK
---------------------------
0460デフォルトの名無しさん
NGNG自分で企画・提案・計画・仕様書書け!!
0461デフォルトの名無しさん
NGNGDelphi6の修正RTLダウンロードしてインストールした?
0462459
NGNGしてません。(名前を聞くのも初めてです。・゜・(ノД`)・゜・)
Borlandのページかな?
逝ってきます。
0465デフォルトの名無しさん
NGNGkakoっていうフォルダを実行ファイルと同じフォルダに置いてます。
どこが悪いですか?
以下、関係する部分です。
var
kakoPath: String;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
kakoPath := IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName)) + 'kako\'; //kakoフォルダの場所
end;
procedure TfrmMain.S1Click(Sender: TObject);
var
res: Integer;
begin
res := frmSave.ShowModal;
if res = mrOK then
with frmSave do
Memo1.Lines.SaveToFile(kakoPath + YEdit.Text + '/' + MEdit.Text + '/' + DEdit.Text + '.txt'); //YEdit・MEdit・DEditはfrmSaveに属します
end;
____________________________________________________________________________________________________________________________________________
これより、pasファイルが変わります。
var
frmSave: TfrmSave;
implementation
{$R *.dfm}
procedure TfrmSave.SaveBtnClick(Sender: TObject);
begin
frmSave.ModalResult := mrOK;
end;
procedure TfrmSave.CancelBtnClick(Sender: TObject);
begin
frmSave.ModalResult := mrCancel;
end;
0466デフォルトの名無しさん
NGNGUnix 風ディレクトリセパレーターである / を DOS の
セパレーターである \ と同一視していた時代があったため。
ためしに 期待するファイル名を手で作成してごらん。はねられるから。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGW2K でもデフォルトではだめでしょ?
0471Delphi好きッ ◆0YAPhEjk
NGNGDLLプロジェクトなんですが、起動時に表示されるフォームを画面上部に画面横幅い
っぱいに表示したいと思っています。(その後は、サイズ調整自由)
この時、フォーム内のコンポーネントには、横幅にあわせて位置が変わるコンポーネ
ントもあります。(AnchorsプロパティでakRightを指定してあります)
実現方法として、OnFormCreateイベント中で、フォームのWidthにScreen.Widthを
代入するという方法をとりました。
ところが、この手で大きさを変えると、AnchorsにakRightを指定したコンポーネン
トが、とてもフォームの右端を基準に調整したとは思えない場所に表示されます。
どなたか、原因、解決策等ご存知でないでしょうか?
0472デフォルトの名無しさん
NGNGFormCreate はオブジェクトが作成された時点のイベントだから、
OnShow の方がよいと思う。
0473Delphi好きッ ◆0YAPhEjk
NGNGOnShowを利用したのですが、同様にうまくいきませんでした。
追記)一応場所が動いてはいるのですが、十分に動いていない(予定位置の半分くら
いの位置で止まっている)のです。何が原因なんでしょうか…。
0474Delphi好きッ ◆0YAPhEjk
NGNGOnCanResizeイベント内で、
if NewWidth<480 then NewWidth:=480;
と、最低幅縛りを入れるとAnchorsプロパティにakRightを指定してもまともな位置に
表示されないようです。原因はわかりませんが…。
とりあえず、どのような解決法がありえるんでしょうか。
0475デフォルトの名無しさん
NGNGWindowの大きさ制限はフォームのプロパティでやるようにしたらどうですか?
0477でもどり初心者 ◆KcG2I.hg
NGNGDelphi6.0Personalも再インストールしようと思ったんですが、
使用許諾コードの取得でまでは完了するんですが、
キャプションが「Delphiの登録」のウィンドウの下の方に
「登録に失敗しました。もう一度試して見てください。」
とでるんですが、何度やっても先に進みません(涙)
捨てメアド取得して1から再インストしないとだめなのかなぁ
ネットで配るんなら、認証もっとゆるくしてくれよぉ
0478素人
NGNGで、結局どーなったんでしょう?おちおち再インストールも出来ないですなぁ…。
ところで、関係無いですが、英和訳エンジンって便利だけど
○全体的にユニークな確認者(GUID)
○タイプ図書館
○ActiveX図書館
○COMオブジェクト魔法使い
やっぱりまだまだかなぁ(^^;。ところどころで「タイプライブラリ」って
訳せるくせにどうして図書館になるかなぁ?あと「COMオブジェクト魔法使い」が
気に入った。
0479デフォルトの名無しさん
NGNGあれは十分ゆるい/ぬるい認証システムだとおもうがなぁ。
使用許諾コードを新しいマシンの上で生成したのだよね?
最悪、Borland に電話してみたら?
0480Delphi好きッ ◆0YAPhEjk
NGNG私、会社のマシンでDelphi6インストールして、そのままのコードを使って自宅のパソ
コンにもDelphi6インストールしたらうまくいきました。
まぁ、同じWin2ksp2ではありますけど。
0481デフォルトの名無しさん
NGNG0482でもどり初心者 ◆KcG2I.hg
NGNGインストールしてうまくいきました。って、うまくいくの当たり前か。
>>479
金払ってないから、サポートに電話するの気が引けるんだよね(汗
認証はMSのアクチに比べると緩々だと思うけど、
せめて、もうちょいわかりやすくメアド登録して、帰ってきたパスを
打ち込むぐらいにして欲しかった。
いや、タダで使わせてもらってるから、大きい声ではいえないんだけど(w
>>481
どのレジストリのキーかわかりますか?
0483TeamB/2ch ◆SE69s0c2
NGNGPersonal 版は無料で公開しているものなのですから、サポートに電話してみても
問題ないと思いますよ。
もちろん、Pro/Ent の不正コピーとかという話だとまた別ですが。
0484デフォルトの名無しさん
NGNGそれにレジストリ保存しないと色とかの設定で困らないの?
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGせっかく統合したのに談話室の方が人気ある
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGexeだけ移動して実行すると「***.bmpは開けません」という
エラーメッセージがでます。
0490デフォルトの名無しさん
NGNG簡単なのはイメージリストとかvisible:=falseなイメージとか。
リソースに組み込んでもいいけど。
0491デフォルトの名無しさん
NGNGありがとうございます。リソースに組み込むのをやってみようと思います。
0492Delフサギコ ◆VzDeLphI
NGNG彡ミ | | ∧,,∧ |__ /
|ヽ | | ミ,,゚Д゚ミ/ / < 世間はぶっそうだなあ
|ヽ | | (ミ ,/__()旦~~ \
⊥ |  ̄| ̄|| ̄ ̄ ̄ ̄ ̄|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__| ◎ ̄| ̄| ̄ ̄ ̄ ̄ ̄|
ところで、DateTime型を受け付ける
プロパティエディタってないでしょうか?
MilliSecまで設定できる奴がいいです。
自作るのも面倒だし、、、
できればTTimeStampでも同じ動作する
と、うれしいです。
0493デフォルトの名無しさん
NGNG勘違いかもしれんが
type TDateTime = type Double;
だから、そもそも published にできないのでは?
0494デフォルトの名無しさん
NGNGビットマップやアイコンしか入りませんが、
リソースにバイナリデータを埋め込むにはどうスレば良いのですか?
(アプリケーションで、このデータをまるごとファイルに書き出してのに使います)
0496Delフサギコ ◆VzDeLphI
NGNG彡ミ | | ∧,,∧ |__ / はて?
|ヽ | | ミ,゚Д゚,ミ/ / < フサんちではDateTimeも
|ヽ | | (ミ ,/__()旦~~ \ Doubleもインスペクタに出ますよ
⊥ |  ̄| ̄|| ̄ ̄ ̄ ̄ ̄|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__| ◎ ̄| ̄| ̄ ̄ ̄ ̄ ̄|
0497493
NGNG実数型は,Real48 を除いて published が指定できます。
でした。
0498デフォルトの名無しさん
NGNGリソースに任意のファイルを埋め込む事のみを目的にしたコンポって
作れないのかな?
それとも原理的に無理なの?
あれば便利だと思うんだが。
初級者丸出しな質問ですまそ。
0499デフォルトの名無しさん
NGNGリソースは、コードがコンパイルされる前にコンパイル済みでなくては
ならないので、コンポーネントにするのは非常にむつかしい。
*.dfm に取り込むなら簡単だけど。以前、ML で議論されていた。
0500498
NGNGdfmに取り込まれるってことは、実行するとメモリ上に展開されるってことでいいのかな?
つーことは巨大なファイルだとメモリを大量消費するのかな?
0501デフォルトの名無しさん
NGNGところで >>495 のURLの方法では何が不満なの。テキストファイルひとつ
書くだけじゃん。
0502デフォルトの名無しさん
NGNGDelphiで小さな実行ファイルを作ろう
http://pc3.2ch.net/test/read.cgi/tech/1009080085/167
のように、初期化のついたバイト配列として埋め込んでおくのはダメ?
リソースに埋め込む方法もこのスレの21にあるよ
0503デフォルトの名無しさん
NGNGTImageのようなのを作れば可能と思うよ
ByteImageプロパティと SaveToFileメソッドだけのコンポーネントね
ただByteImageプロパティエディタも作らないといけないけど
>>500
dfmはたしかリソースに入ってるから、ストリームとして読まれるんじゃなかったっけ?
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG確実なのは、BMPのファイルイメージをバイナリリソースにして
おいて、実行時にリソースから読み出したバイナリ列でピクセル
列を作成する方法かな。
0506デフォルトの名無しさん
NGNGdelphiの反応が無くなるようになって作業にならないんですが(;´Д`)
OSの再インスト時期なのだろうか……
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGTMemoやRichEditに改行マーク↓や[EOF]マークを
付けるようにするには、どうしたらよいのでしょう?
0509デフォルトの名無しさん
NGNGTEditor使え
0510ななしへた(以下略) ◆B18Bks.Y
NGNGDelphiが出たばかりの頃に出た昔の某Y氏の本に
実数型はpublishedにできないと書いてあったので
しばらくだまされた(^^;ものです.
#まだDelphiをよく理解しないうちに書いたように思える本でしたが
この本のおかげでDel始めてすぐにコンポを作れました.
0511デフォルトの名無しさん
NGNGTEditorのようなものを自作したいので、
どのようにやるのか方法が知りたいんです。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGありがとうございました。
0514デフォルトの名無しさん
NGNGえっ!!!!!!!
0515デフォルトの名無しさん
NGNGはすごいね。26分で解決だと。
0516デフォルトの名無しさん
NGNG文末と行末に TLabel を貼ったのか?
0518デフォルトの名無しさん
NGNGPenやCanvasで文字のあとに描くのでは、
0519デフォルトの名無しさん
NGNG丁度、コンボボックスのリストの高機能版のようなことをさせようとしているのですが、以下の問題が
解決できません。
1.フォームBを表示させるとフォームAからフォーカスが奪われる
2.フォームAにフォーカスが移動するとフォームBが後ろに回って見えない。
何か良い解決策はないでしょうか。
0520デフォルトの名無しさん
NGNGTForm では無く、TListBox とかの普通のコントロールを動的に生成して
位置あわせしたらどう?
0521デフォルトの名無しさん
NGNGそれはOnCreateが呼び出されるのがフォームのインスタンスが作成された直後で、フォームが表示される前だから、Canvasは反映されないっていう考え方で合ってますか?
0522デフォルトの名無しさん
NGNGちょっと項目が多いのでフレームでなんとかやってみます、有難うございました
0523デフォルトの名無しさん
NGNGprocedure TForm1.FormCreate(Sender: TObject);
begin
show;
Self.Canvas.Pen.Color:=clRed;
Self.Canvas.LineTo(100,100);
end;
やろうと思えば、こんなかんじで show 入れるとできますけど。
0524デフォルトの名無しさん
NGNGなるほど、勉強になりますた。ありがたや、ありがたや。
0525無責任だが
NGNGtype
TForm2 = class(TForm)
・・・
procedure CreateParams(var Params: TCreateParams); override; //これを追加
end;
その実装部
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style:=WS_CHILD;
Params.WndParent:=Form1.Handle; //親をForm1に変更する
end;
フレームと違って、位置合わせはコードでやらないといけない。
でも、フォームにPaintBoxを貼っておいて
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.BoundsRect:=PaintBox1.BoundsRect;
Form2.show;
end;
と、PaintBoxの範囲にあわせるようにすると楽
0526デフォルトの名無しさん
NGNGTToolBarのWrapableプロパティをTrueにした状態で、ToolBarのWidthを縮めると
ToolBarが折り返されるんだけど、折り返されたときのイベントって分かりますか?
0527デフォルトの名無しさん
NGNGヘルプ♪
0528526
NGNG全然違うツルバのResizeにブレクポインコ張ってた。テヘ。
0530デフォルトの名無しさん
NGNGありませんか?
0531デフォルトの名無しさん
NGNGあってたまるかと。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG何かいい方法ありませんか? columns のwidth 設定はちょっと・・・
幅変更のマウス表示すら無くしたいのですが。
0534デフォルトの名無しさん
NGNGListView1.ShowColumnHeaders := False;
だったら変更できなくなるけどヘッダが見えなくなるからなあ・・・
そういうスタイル定数やメッセージも見当たらないし。
TStringGridで見せかけるのは?
0535デフォルトの名無しさん
NGNG0536533
NGNGサンクス。やっぱり無理っぽいので、美しくないけど Width で逝きます。
TStringGrid は跳び選択? が出来ないので使うの辞めました。
あと、書き換え時のデータ初期化がめんどいから。
0537デルファイの名無しさん
NGNG別途THeaderを置いておくとか、駄目ですか?
0538デフォルトの名無しさん
NGNGポインタは変わっちゃうけど。
0539デフォルトの名無しさん
NGNG>TListView の vsReport 表示のときに、項目幅を変えさせたく無いんですが、
LsitView をサブクラス化して、子ウィンドウであるヘッダーコントロール
からのメッセージを処理すると column 幅変更を阻止できます。
{ Private 宣言 }
public
OrignalProc:TWndMethod;
procedure SubClassProc(var Msg:TMessage);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
Commctrl;
procedure TForm1.FormCreate(Sender: TObject);
begin
OrignalProc := ListView1.WindowProc;
ListView1.WindowProc := SubClassProc;
end;
procedure TForm1.SubClassProc(var Msg:TMessage);
begin
OrignalProc(Msg);
if Msg.Msg = WM_NOTIFY then
if pNMHDR(Msg.LParam)^.code = HDN_TRACK then begin
Msg.Result := 1;
ListView1.Refresh;
end;
end;
0540便乗で質問
NGNG何かいい方法ありませんか?
0541デフォルトの名無しさん
NGNGサブクラスプロシージャを以下のようにします。そのはかは 539 と同じ
procedure TForm1.SubClassProc(var Msg: TMessage);
begin
OrignalProc(Msg);
if Msg.Msg = WM_PAINT then
ShowScrollBar(ListView1.Handle,SB_HORZ,false);
end;
0542デフォルトの名無しさん
NGNGprocedure TForm1.SubClassProc(var Msg: TMessage);
begin
OrignalProc(Msg);
case Msg.Msg of
WM_PAINT:ShowScrollBar(ListView1.Handle,SB_HORZ,false);
WM_VSCROLL:begin
OrignalProc(Msg);
ShowScrollBar(ListView1.Handle,SB_HORZ,false);
ListView1.refresh;
end
end;
end;
0543デフォルトの名無しさん
NGNGprocedure TForm1.SubClassProc(var Msg: TMessage);
begin
OrignalProc(Msg);
case Msg.Msg of
WM_PAINT:ShowScrollBar(ListView1.Handle,SB_HORZ,false);
WM_VSCROLL:begin
ShowScrollBar(ListView1.Handle,SB_HORZ,false);
ListView1.refresh;
end
end;
end;
0544デフォルトの名無しさん
NGNGprocedure TForm1.SubClassProc(var Msg: TMessage);
begin
OrignalProc(Msg);
case Msg.Msg of
WM_PAINT:ShowScrollBar(ListView1.Handle,SB_HORZ,false);
WM_VSCROLL:ListView1.refresh;
end;
end;
0545デフォルトの名無しさん
NGNGある。
0546デフォルトの名無しさん
NGNG0547デルファイの名無しさん
NGNGAllocMemはゼロ初期化がされますけど、どうせ何かのデータを入れるならGetMemで取って個別に代入しても結局同じですし。
0548デフォルトの名無しさん
NGNGプロパティの名前って何がいいですか?
Accelerater? HotKey?
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGどのようにしてデータを引っ張ってきて、どのような単位(行単位とか?)で、
引っ張ってこれるのかが、わからなくて。。。
ADOを使用したりしまする?
0551デフォルトの名無しさん
NGNGA,B,Cのユニットがあります。
Aのinterfaceで、列挙型を宣言しています。
type
TMyColor = (mcBlue, mcRed);
Bのuses節にAを加えれば、TMyColorを参照できます。
しかし、Cのuses節にBを加えてもAのTMyColorは参照できません。
ここまでは、理解しています。
お聞きしたいのは、これを可能にする方法です。
試しに、Bのinterfaceで
type
TMyColor = A.TMyColor;
と宣言してみたのですが、Cで参照すると未定義のエラーになりました。
数珠つなぎにすることは可能なのでしょうか?
0552Delphi好きッ ◆0YAPhEjk
NGNGunit unit3;
interface
type TMyType = (ltest, ltest2);
---------------------------------------------------------
unit unit2;
interface
uses unit3;
type TMyType = unit3.TMyType;
---------------------------------------------------------
unit unit1;
interface
uses Unit2;
var t : TMyType;
…
こんな感じ?一応コンパイルできましたが…。??
0553550
NGNG質問の仕方がいけないでしょうか?
こまっちょります。。。。・゚・(ノД`)・゚・。
0554デフォルトの名無しさん
NGNG一太郎でマクロ使えば?
それとも
obj = CreateObject("JXW.Application")
obj.Visible = true
obj.Documents.Add()
obj.TaroLibrary.Insert("Hello, Ichitaro.")
こんな漢字でやるとか
どっかにコンポがあったような
0555デフォルトの名無しさん
NGNGそれが可能ならJustSystemのサイトで技術情報公開してるはず。
してなかったらアンテナハウスに聞け。
0556デフォルトの名無しさん
NGNG> Subject: [Delphi:69385] 一太郎ファイルのデータ取得
> Date: Thu, 25 Jul 2002 15:46:21 +0900
> From: デフォルトの名無しさん <[email protected]>
>Reply-To: [email protected]
> To: DelphiML <[email protected]>
>X-Mailer: Becky! ver. 2.00.11
0557550
NGNG一太郎でマクロ。。。調べてみます
記述していただいたコードが既に理解できていない罠。。。
調べます。。。
ありがとうございます
>>555
技術情報。。。そんなに難しいことでしか。。。
どぼぢまじょお。。。
>>556
おおお
それは どっかのTipsでしか?
内容が。。。知りたい。。。
0558デフォルトの名無しさん
NGNGせんか?
Webサービスでサービスとして使うクラスはすべてこのメソッドで起動されるみた
いなんですが、implements宣言でInterfaceを他のオブジェクトに委任してると
不正なメモリアクセスが発生してしまいます。
おそらくInterfaceの取り出しなんかせずにメモリマップを決め打ちして実行して
るんだろうと思いますが、それを回避する方法が解りません。
何か良い知恵は無いでしょうか?
0559デフォルトの名無しさん
NGNG0560558
NGNGたとえば、
Thogehoge = class(TInvokableClass, Ihogehoge)
FhogeImpl: Ihogehoge;
public
constructor Create; override;
destructor Destroy; override;
property hogehoge : Ihogehoge read FhogeImpl implements Ihogehoge;
end;
と言うふうにIhogehogeインターフェイスを持つThogehogeというクラスが有った
とします。
インターフェイスの実装はFhogeImplに委任されていて、コンストラクタの実行時
にFhogeImplへインスタンスがセットされ、デストラクタで解放されます。
このクラスをWebサービスとして登録すると、TInterfaceInvokerによって実行さ
れる際にEAccessViolationが発生してしまうのです。
(発生個所:SOAPPasInvユニット114行目)
で、このクラスの実装方法を変えて、
Thogehoge = class(TInvokableClass, Ihogehoge)
FhogeImpl: Ihogehoge;
public
constructor Create; override;
destructor Destroy; override;
function Hogefunc(const Value: Integer): Integer;
end;
function Hogefunc(const Value: Integer): Integer;
begin
Result := FhogeImpl.Hogefunc(Value);
end;
という風にメソッド内で委任を行った場合は問題なく実行できます。
で、TInterfaceInvokerがどんな風にHogefuncの呼び出しを行っているのかを調
べようと思ったのですが、TInterfaceInvokerのソースはインターフェイス部しか
無くて私の手におえない状態です。
0561558
NGNGそもそもなんでインターフェイス委任がやりたかったかと言うと、Webサービスを
普通に実装してしまうとリクエストのたびにCreateが実行されてしまって永続的
なサービスにならなかったので、Singletonなオブジェクトへ委任してしまおうと
思ったんです。
そこで迂回路を探してたら、ズバリそのものがヘルプにありました。
Delphiヘルプ-「インターネットアプリケーションの開発」-「実装の作成と登録」
を見てみたらオブジェクト提供プロシージャを登録できる事がわかったので、
procedure Createhogehoge(out obj: TObject);
begin
if Singleton = nil then
begin
Singleton := THogehoge.Create;
{ インターフェースへの参照を保存し,解放を防止する }
SingletonIntf := Singleton as Ihogehoge;
end;
obj := Singleton; { グローバルインスタンスを返す }
end;
initialization
{ 起動可能インターフェースの登録 }
InvRegistry.RegisterInvokableClass(Thogehoge, Createhogehoge);
という風にしてやってWebサービスを単一インスタンスで実行する事が可能になり
ました。
これでDCOMとかCORBAとかの高コストフレームワークに頼らずに、しかも厳密な型
チェックが可能なC/Sシステムが作れそうです。
0562デフォルトの名無しさん
NGNG> それは どっかのTipsでしか?
> 内容が。。。知りたい。。。
あれ見てMLだとわかんないオマエは・・・ひょっとして、ひょっとすると、
そーか、わかった、やはりな、ふふふ、ははは、はぁーーっはっはっ!!
0563デフォルトの名無しさん
NGNGTProcess = class
public
procedure Execute;
procedure Terminate;
property Executing: Boolean;
published
property ExeName: String read FExeName write FExeName;
property Directory: String read FDirectory write FDirectory;
property Args: TStrings read FArgs write FArgs;
property Priority: TProcessPriority;
property UsePipe: Boolean;
property OnExecute;
property OnExit;
property OnStdOutput;
property OnErrOutput;
property OnInput;
end;
0564デフォルトの名無しさん
NGNGお前、writeln()が溢れかえる結果が見えないか?
0565デフォルトの名無しさん
NGNGいみふめ
0566デフォルトの名無しさん
NGNGこの場合なら "/" に変換したい。(結局、chr($2F) の結果の文字列)
何か、いい方法はありませんか?
よろしくお願いします。
0567デフォルトの名無しさん
NGNGif(a = 47) then
b := b + '/';
0568デフォルトの名無しさん
NGNGC++とDelphiどっちを勉強したら良いでしょうか。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGどこから、そんなロジックが出てくるんだ?
冗談で書いてるのか?
0572デフォルトの名無しさん
NGNG簡単さならIDEが洗練されている(RAD的にね)Delphiの方が簡単。
Delphiは機能的にはC++のサブセットと言えると思う。
だからC++への移行は割と簡単かと。
逆も然りだけどC++書けたらもうDelphiいらんでしょう。
簡単に何かを作りたいときは使うけど。
0573デフォルトの名無しさん
NGNGHexToBin
0574568
NGNGなるほど。Delphi→C++への移行は楽なんですね。
実の所、現在C++を勉強中なんですが、イマイチ掴めないので、停滞していた所でした。
とりあえず、しばらくDelphiを使ってみて、
機能に不満を感じるようになったらもう一度C++に戻ってみます。
で、教えて君みたいで非常にカンジが悪いと思うのですが、
Delphiの解説サイトでオススメのところとかありますでしょうか?
できれば、現在も更新されている(管理人のやる気が持続している)サイトがいいです。
もし宜しかったら、お願いします。
0575デフォルトの名無しさん
NGNG知らん。俺はDel3のヘルプとマニュアルだけで覚えた。w
0576デフォルトの名無しさん
NGNGデルファイとC++ってそんなに似てるか?
俺はデルファイ専門だからよくわからんのだが……。
0577デフォルトの名無しさん
NGNGクラスもあればオーバーロードもある。
C++に言って取りあえず覚えなきゃいけない新しい概念。
多重継承
テンプレート
参照
位じゃないの?
0578デフォルトの名無しさん
NGNGラクな乗りかえってのはありえないわな。
0579デフォルトの名無しさん
NGNG参照ってDelphiのvarじゃないの?
0580デフォルトの名無しさん
NGNGまぁね、でも共通の概念が多いから理解は早い。
VBユーザとか大変そうだよ?見てると。
0581デフォルトの名無しさん
NGNG多重継承もinterface+implementsで事実上実現できますし。
テンプレートの他には、C++ではコンストラクタとデストラクタが自動で呼ばれること、とかかな?
でも、それもstringやVariantの解放処理が自動で行われることの延長のようなものですし。
何よりC++Builderの存在が、ふたつの言語が直接リンクできる程度に近いことを証明してくれてるし。
0582デフォルトの名無しさん
NGNG一番苦労したこと。
それは、C++のソースが読みにくい!
私の体験なんだが、同じ思いをした人はいません?
0583デフォルトの名無しさん
NGNGC++BuilderとVisualC++ではかなり開発手法が違う罠(本当に罠。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGあれ、考えようによっちゃ難儀よ?
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNG俺はDelphiiつかってるけど。
っつーか、別に生産性の悪いC++なんぞつかわんでも、
Delphi使えればもう9割がたやりたいことは出来ると思うんだが。
どうかな?
0588デフォルトの名無しさん
NGNGコンポーネントはObject Pascalで書けばいいじゃん。
どうせBCBは両方コンパイルできるんだから。
0589デフォルトの名無しさん
NGNG機能はC++が上
性能はObject Pascalが上
でないかい
0590デフォルトの名無しさん
NGNGC++Builderに限って言えばDelphiと生産性は同じ様なもんじゃないのか?
STLや既存の大量のライブラリが使える分Builderの方が上かも。
0591デフォルトの名無しさん
NGNG煽りじゃないよ、念のため。
0592デフォルトの名無しさん
NGNGおたく、通ですな
0593デフォルトの名無しさん
NGNGまたその反対の例を具体的にあげて貰えないでしょうか。
あんまりないなら暫くはDELPHI parsonalでいこうかと思ってます。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG俺はあんまり感じないけど。
ま、俺c++使ったこと無いんだけどね(笑
0597デフォルトの名無しさん
NGNGそりゃ、どーだろ。
単に実装方法の違いだけだろ、ライブラリを使う場合にC++だと簡単に扱えるけど
Delだとちょい手がかかる、もっともDirectX関連のようにC/C++で書いた方が楽な
ものもあるしね。
性能や機能とはちょっと違うと思うけど。
それと、Delphiの欠点はDelphiであるって事かな、C++の場合gccやvcやBCBと色々
とあるけど、DelphiはDelphiでしかないからね、FreePascalもまだ成長しきれてない
しなんとなくもう駄目だろ。
まぁ、折れの場合は、Pascalが好きだからDelphi使ってるってだけで他に理由はないんだが。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGそんな深い意味じゃない�C
C++ はテンプレートが使える分、高機能
Object Pascal はコンパイルが桁違いに速い分、高性能
という程度の意味だ�C
0601デフォルトの名無しさん
NGNG初心者の方ですか?
「手っ取り早くゲームを作るぜっ」という軟派な方ならDelphiをお勧めします。
無料で手に入る高機能RADツールですから。
「プログラムの基礎やアルゴリズムをじっくり勉強していきたい」という硬派な
方なら、やはりDelphiですな。教育用言語、というくらいだから。文法も美しいし。
それ以外の普通の人は、C++をやってください。以上。
0602デフォルトの名無しさん
NGNGコンパイルはDelphiの方が速いね。
全体的な生産速度で言えば、
C++Builder > Delphi >> VC++じゃない?
(ライブラリの充実度から言って)
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGほかのDelphiユーザの意見が聞けて面白い。
もっとやってくれ。
0605デフォルトの名無しさん
NGNGDelphi自体はc++にも決して劣らない能力を持ち、
かつc++に移行したくなったらわりと容易に移行できる。
っつーか、c++とdelphiが似てるってコトなんだろうな(笑
0606デフォルトの名無しさん
NGNGObjectPascalは固い言語。
0607デフォルトの名無しさん
NGNG経緯は一緒よ?
ALGOL(だっけ?)から派生して無理やりOOPに仕立て上げたって言う。
0608デフォルトの名無しさん
NGNGPascalやObjectPascalって凄く練られてるって感じがして好き。
お前ら、そう思いませんか?
0609デフォルトの名無しさん
NGNGたしかに。
0610デフォルトの名無しさん
NGNGハゲドー
0611デフォルトの名無しさん
NGNGマゾですね。
0612デフォルトの名無しさん
NGNGBeOS は消えたけど・・・
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG死ぬ前にオープンソースとかに・・・無いか?
0617デフォルトの名無しさん
NGNGBorlandはM$に潰されそうだしね。
0618デフォルトの名無しさん
NGNGM$は嫌いだが。
0619デフォルトの名無しさん
NGNG根っこの部分から違ってるの?
0620デフォルトの名無しさん
NGNGベースにしようとするのかわからん。
だれかPascalベースの新世代言語を作ってくれ。Pascalと互換性なくても
いいから。
0621デフォルトの名無しさん
NGNG…
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG信者が少ないのがネックだが。
0624デフォルトの名無しさん
NGNGMSはBorland、Apple、Corelを潰せません。
0625デフォルトの名無しさん
NGNG>死ぬ前にオープンソースとかに・・・無いか?
InterBaseの先例があるよね
(後で商用に戻ってしまったけど FireBird が残った)
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGDelphiで限界感じたら他の言語使えばいいだろ。
0628デフォルトの名無しさん
NGNGOracleのストアドも begin〜end なんだけどね〜
DBやる人、少ないのかな?
0629デフォルトの名無しさん
NGNGC++を打ち破る。
と、妄想してみる
0630デフォルトの名無しさん
NGNGこれから増えるというか今増えてる途中じゃないの?
0631デフォルトの名無しさん
NGNG確かにねー。別に慣れれば何てこと無いんだが。
あと function や procedure を敬遠する人も多いね。 Integer, Booleanも。
if の後の then や、for の後の do や、でもcaseはPascalの方が上か(つーかCのcaseはまんまgotoだろ)。
ても経験上Pascalの方があまりホームポジション崩さずにコーディングできるから、
あまりC++と比べて打つのに時間がかかる、ということは無いと思う。
>>626
多分十分だろう。
0632デフォルトの名無しさん
NGNGむしろPASCALのほうが速くコーティングできる。俺は。慣れかもしれんが。
0633デフォルトの名無しさん
NGNGOracleは減少傾向かも(哀
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNGhoge->hage って打つのも、 hoge^.hage のほうが早い。
% より mod が早いし、でも += や *= はあると便利だなぁ…。
0636デフォルトの名無しさん
NGNG<< より shl が早い!
0637デフォルトの名無しさん
NGNG全くの初めてだったらここなんかどうかな
http://www.h5.dion.ne.jp/~tuyano/DlphTutor/index.html
DELPHIを簡単に使えそうな気にしてくれます
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGそのC++の間違えやすい継承を分かりやすくしたのが、
JavaやC#じゃないの?
0641デフォルトの名無しさん
NGNGJavaやOPやC#じゃ
になるんじゃないの?言語の出現時期から見て。
TurboPascalのOOPL化の方が早かった?
0642デフォルトの名無しさん
NGNGつーかあらゆる事に関して、ObjectPascalはC++よりバグを出しにくいと思う。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG仕切り厨の出現は荒れる兆候なんで、漏れは寝ます。
おやすみなさい。
0646デフォルトの名無しさん
NGNG大体のことはDelphiで事足りると思うんだがどうよ?
0647デフォルトの名無しさん
NGNG同意。
VBよりは遙かに自由度が広いと思われ。
0648デフォルトの名無しさん
NGNGDelphiが一番効率がいいかどうかは人次第。
0649デフォルトの名無しさん
NGNGUNIXがPASCALで作られてたらC(++)と(Object)Pascalの立場は逆転してたと思うけど。
0650デフォルトの名無しさん
NGNGVCLにそれらしきもの無いですか?
0651デフォルトの名無しさん
NGNGたしかに、それはあるなぁ。
やっぱユーザが少ないのが原因なんだろうけど。
こればっかりはどうしようもないもんなぁ。
0652デフォルトの名無しさん
NGNGそこ、結構オモシロイ。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGアンタ、3時間もレスを待ってたのか。
やるな。(笑
0656デフォルトの名無しさん
NGNG会社で使うアプリを作りたいとか、ゲームを作りたいとか。
そこで質問なんだけど,Delphiを勉強し始めて、
その「動機」になったプログラムを完成させられるようになるまで、
どれくらいかかった?
大体で良いから教えてけれ。
0657デフォルトの名無しさん
NGNG2日。
0658デフォルトの名無しさん
NGNG3時間
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG本当だとしたらお前は神
0661デフォルトの名無しさん
NGNGHello Worldかもよ
0662デフォルトの名無しさん
NGNGStrToFloat関数でもTextToFloat関数でもエラーになるんですけど
0663
NGNG|暇な奴作ってくらさい。
|
|操作性等がかちゅ〜に酷似or同じ。
|スレ立て機能。
|ソース公開しても、亜種禁止。
|カチュクロンのログは新形式。今までのかちゅ〜ろぐはコンバーターで変換。
/ ./\ \_______________________________
/ ./( ・ ).\ o〇 ヾ!;;;::iii|//"
/_____/ .(´ー`) ,\ ∧∧ |;;;;::iii|/゙
 ̄|| || || ||. |っ¢..|| ̄ (,, ) ナムナム |;;;;::iii|
|| || || ||./,,, |ゝ iii~ ⊂ ヾwwwjjrjww!;;;;::iii|jwjjrjww〃
| ̄ ̄ ̄|~~凸( ̄)凸 .( ,,)〜 wjwjjrj从jwwjwjjrj从jr
0665デフォルトの名無しさん
NGNGtry
フールド.asString:= Edit1.Text;
except
例外処理
end;
0666デフォルトの名無しさん
NGNG1時〜15時=3時間
やるな。(笑
0668デフォルトの名無しさん
NGNG ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,__
/ ./\
/ ./( ・ ).\
/_____/ .(#゚Д゚) .\ ∧∧
 ̄|| || || ||. |っ¢..|| Σ( ;)>>663
|| || || ||./,,, |ゝ||ii~ ⊂ ヾ
| ̄ ̄ ̄|~~凸( ̄)凸 .( )〜
0669デフォルトの名無しさん
NGNG(´-`).。oO(それ、漏れも作った)
0670ななし
NGNG(オンラインヘルプ)がVBにくらべると、貧弱な気がする。
関数やサブルーチンのうち、コード例の記載があるのが1〜2割。
ヘルプをあてにしないで、書籍やWEBで調べた方がよいのではないかと感じてしまう。
また、API関数の解説は皆無。(仕方ないので、APIビューアーで調べるハメに・・・W)
MSには悪い点が多々あるが、技術情報(MSDN)の量の豊富さだけは某乱土より評価して
よいのではないか?
0671デフォルトの名無しさん
NGNG誰もMSDNけなしてる奴はいないよ。カコスレ全部読んでもらってもかまわない。
わざわざDelphiスレでMSDNの評価する必要もないし。
コード例が無いと何もできなういと言うのも問題だと思うが。
>(つい最近、お遊びで始めたばかりだが)
語るならもうちょっと勉強した方がいいと思われ。
APIヘルプはちゃんと英語版がついてきてる。CD-ROMには日本語版も。
0672ななし
NGNG> APIヘルプはちゃんと英語版がついてきてる。CD-ROMには日本語版も。
てゆーことは、製品版を購入せずに、雑誌の付録のPersonal版を使ってるのが、
論外ということか・・・。
0673デフォルトの名無しさん
NGNG>APIヘルプはちゃんと英語版がついてきてる
後、プラットホームSDKに思いっきりついてくる。
0674デフォルトの名無しさん
NGNG0675ななし
NGNGげげ、確認不足かよ! 煤i ̄□ ̄;
仕事(Access, VBのみ)で使わんから、ちゃんと調べなかった、ってのは
言い訳にならねえよなあ・・・。(逝
0676デフォルトの名無しさん
NGNG>(つい最近、お遊びで始めたばかりだが)
語るならもうちょっと勉強した方がいいと思われ。
これだからVB厨は・・・とまた評判を下げることになりかねないよ。
0677デフォルトの名無しさん
NGNG付いてるよ。
PlatformSDKのドキュメントのほうが読みやすいけど。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
0678ななし
NGNG質問です。
(1) Application.Title プロパティは、IDEのメニューから設定する、固定リテラルで記述する、
のどちらか。(メニューで設定した時点で、コードが自動生成されるので、実質的におなじ)
(2) 上記のプロパティを変数で(動的に)記述することはできない。
自分なりにいろいろ試した末の結論なんですが、間違ってますか?
[ 環境 ]
Windows 2000 Pro SP2
Delphi 6 Personal
MS Office、Visual Studio 6.0 Enterprise SP5 その他
雑多なソフトいっぱい・・・。(^^;
0679デフォルトの名無しさん
NGNG2できない?
最悪でもSetWindowText()で。
0680ななし
NGNGAPI使うのは試してません。(思いつかなかった)
追加質問、失礼。m(_ _)m
(1) FindWindowって、クラス名(第1 Arg)、Window Title(第2 Arg)のどちらか片方を
指定すればよい(もちろん、両方指定してもよい?)と思うんですが、Delphiアプリ
の場合、クラス名には何を指定すればよいのでしょう?
(2) 文字列ポインタを渡すAPI引数を省略(VBの場合のvbNullString)する場合、nilで
よいのでしょうか。
FindWindowはそれで問題なく動いたのですが、ほんとにそれで正しいのか(コード
は正しくないのに、たまたま運よく動いただけ、とか?)確信が持てなくて・・・。
0681デフォルトの名無しさん
NGNGまぁ、Delphiはvarがあるからnil渡せるならそれでいい。
0682ななし
NGNG更に追加質問。(しつこい)
use節に不要なユニットが記述されている場合、
(1) 実行ファイルのサイズやパフォーマンスに影響する。
確認して、削除(またはコメントアウト)すべし。
(2) コンパイラが最適化してくれるので、問題なし。
どっちが正解ですか?
あ、書いてる途中で気が付いたけど、実行ファイルをCompareすれば、
確認できるのかな?(でも、今、手元に環境がないや・・・)
0683デフォルトの名無しさん
NGNG精々ドイツ語と英語の違い程度。
だけど、だけど、COBOLだけは・・・中国語くらい違う(泣
0684デフォルトの名無しさん
NGNG的を射た表現
Lispはまた別だろうね(案外、日本語だったりして)
0685デフォルトの名無しさん
NGNG会社の基本的な方針は VB なんですが…
マルチスレッドが必要なときなどは Java を使っています。
けれど、Javaは開発環境が貧弱なこともありGUIフロントエンドを作るのに
向いているとは思えません。VBと同じような RAD である Delphi で
マルチスレッドができれば、採用したいと思っています。
0686デフォルトの名無しさん
NGNG自分で必要になったことはないけど
確か「拍子抜けするくらい簡単」だったはず
0687ななし
NGNG他の言語には、それぞれに熱烈なファンがいますが、COBOLが好きな人間だけは
聞いたためしがありません。(いるのだろうか?)
0689デフォルトの名無しさん
NGNG最悪でもAPI呼べるでしょう。
VCLがスレッドセーフかどうかは別として。
0690デフォルトの名無しさん
NGNGちょっと古いですけど
http://www.borland.co.jp/tips/delphi/dh004/index.html
0691デフォルトの名無しさん
NGNGhttp://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=24672&lngWId=1
VBだけでもマルチスレッドは出来たりする。
つか、マルチスレッドごときで開発方針丸ごと変えるのは愚かでは?
0692ななし
NGNGgoogleで検索したら、
ttp://www.wwlnk.com/boheme/delphi/techdoc/dad0010.html
が見つかりました。(参考になるかどうか・・・)
0693デフォルトの名無しさん
NGNGだったらprologは異世界の言葉ですか?
0694デフォルトの名無しさん
NGNG多分ダンバインはPrologで動いてます。
0695デフォルトの名無しさん
NGNG>(2) 上記のプロパティを変数で(動的に)記述することはできない。
できます。
Application.Title := 'タイトル';
>682
>(1) 実行ファイルのサイズやパフォーマンスに影響する。
> 確認して、削除(またはコメントアウト)すべし。
ユニットによっては、usesしただけで処理が走るものもあり(initializationで)。
不要なユニットは削除するのか吉。
0696デフォルトの名無しさん
NGNGできます。
ただし、VCLはスレッドセーフじゃないので、スレッドからフォームやコンポーネントにアクセスする場合はロックする必要がある。
ヘルプを参照のこと。
0697デフォルトの名無しさん
NGNGそれでIndyコンポーネントのIdHTTPを使ってるのですが、ダウンロード状況やリジューム機能がなくて不便です。
こういう時に使う、いいコンポーネントありますか??
もしくは実装についていいTIPSオナガイしますm(_ _)m
0698デフォルトの名無しさん
NGNG君がダウンローダ作るのは無理。
0699デフォルトの名無しさん
NGNGうーん。対象をある特定のエンティティとするか。あるいは任意のエンティティにするか、
によっても 相当変わってくるですよね。
あとは プロトコルを意識せずに既存媒体からダウンロード方向にするか、
トップダウンに あるデータファイルを適用する形にするか。
もしくは 何でも屋を目指さず、システムに解釈しやすい
通信規約を想定して作る、ってのも ありですよね。
#リジュームはここかな。
要は、ダウンロードという動作ひとつとっても、プロトコル体系としてスカスカで、
つまりその概念が出てくる頻度が とっても少ないけど、
基本的な概念、っていうのがあるわけです。
つまりそのプロトコルの意味が分からんとプログラムの意味がさっぱり、
っていう。
そういうのを ぜーんぶ網羅しなければいけない時点で
ダウンローダをDelphiで作るという気力はかなり萎えてしまうものです。
0700デフォルトの名無しさん
NGNG???????
0701デフォルトの名無しさん
NGNGようするにWolfy氏はすごいってことだよ・・・、たぶん。
0702デフォルトの名無しさん
NGNGリジュームの概念は昔どこかのHPで見たことあります
HTTP/1.1 とか鯖で対応してないと無理とかRange やヘッダうんぬん。。。
いちおうHPを巡回してDLまでできたのですが、Indyコンポ事体バグだらけで使えません(><;
多くは望みませんが404や503が検出でき、DLする容量が随時分かるようにしたいです(全部望んでるかも、、
0703デフォルトの名無しさん
NGNG/ ̄ ̄ ̄ ̄\
( 人_ヽ__ノ)
|ミ/ ー◎-◎-) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(6 (_ _) ) < おい、出鱈目を言うんじゃない!
_| ∴ ノ 3 ノ \_____________
(__/\_____ノ_____∩___
/ (__)) ))_|__|_E) ̄´
[]_ | | どれみ命ヽ
|[] | |______)
\_(___)三三三[□]三)
/(_)\:::::::::::::::::::::::/
|Sofmap|::::::::/:::::::/
(_____);;;;;/;;;;;;;/
(___|)_|)
0704デフォルトの名無しさん
NGNGRFC読んで自分で実装
0705デフォルトの名無しさん
NGNGなんとかこの壁を乗り越えたい〜〜
ttp://server2047.virtualave.net/mettya/updetannV1_9b5.zip
デタラメといわれたのでソース&EXEうpしますた。
使ってるコンポは、
・Indy、TRegExp、TTaskIcon、TCRCList(Wofly氏)
どれもDelphianやネトからげとしますた。
0706デフォルトの名無しさん
NGNG書いてある内容が文章として意味を成していません。
0707デフォルトの名無しさん
NGNGよく見たら 誤爆ですた、、
0708デフォルトの名無しさん
NGNGHTTP 1.1日本語版RFC今見たけど(鬱
脳内エラーが発生しました
0709デフォルトの名無しさん
NGNG脳.loadFromFile('HTTP 1.1日本語版RFC');
except
脳.Text := 'もーだめぽ';
end;
0710708
NGNGtry
脳.loadFromFile('HTTP 1.1日本語版RFC');
showMessage(脳.text); // 出力:(not) Accept-Agent: ja ...逝ってよし
except
脳.Text := 'もーだめぽ';
end;
0711ななし
NGNG> できます。
> Application.Title := 'タイトル';
それ、固定リテラルですよね。
その方法は当然試してますが、それだと、(一例ですが)INIファイルやDBから読み込んだ
リテラルを設定することはできないと思いますが・・・。
それと、IDEのメニューでタイトルを設定した場合でもそのコードが自動生成されるよう
なので、「事実上、おなじ」(?)と書いたのですが・・・。
> ユニットによっては、usesしただけで処理が走るものもあり(initializationで)。
> 不要なユニットは削除するのか吉。
感謝。m(_ _)m
(時間があるときに、よく調べてみます)
0712デフォルトの名無しさん
NGNG試してみたらいいじゃない。
それから、pro以上ならソース読め
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.Title := (Sender as TComponent).Name+FormatDateTime('hh:mm:ss',now);
end;
0713デフォルトの名無しさん
NGNGようるするに Application.Title = xx は SetWindowText( Application.窓ハンドル, PChar(xx)); と同等って事
>(1) FindWindowって、クラス名(第1 Arg)、Window Title(第2 Arg)のどちらか片方を
指定すればよい(もちろん、両方指定してもよい?)と思うんですが、Delphiアプリ
の場合、クラス名には何を指定すればよいのでしょう?
これは疑問の内容がよく判らない。 Delphiで作ったアプリのクラス名が知りたいの?
0714デフォルトの名無しさん
NGNG明らかにWindow Classのことだと思われ。
0715デフォルトの名無しさん
NGNG>raise ******.Create(++++); 現在こんな感じ
0716デフォルトの名無しさん
NGNGApplication.Titleに設定するのと同じことをやるなら、クラスはTApplicationでいいんじゃない?
0717デフォルトの名無しさん
NGNGIDE の中でのデバッガのポップアップの抑制?
デバッガ - 言語例外 - 追加 - 抑制したい例外のクラス名
0718デフォルトの名無しさん
NGNGDelphiってWindow ClassもTApplicationになってるの?
勉強になった。
0719713
NGNGBUTTONとかもGetClassInfoしてサブクラス化してる様子
だからフォームなんかは TForm1 とか作成した時の名前がそのままWindowClassの名前になるみたい
ただ、自分のアプリの場合 FindWindowする必要はないので
他人の作ったアプリだと思うんだけど・・・
0720デフォルトの名無しさん
NGNGなるほど。
0721デフォルトの名無しさん
NGNGTrueだと勝手にデザインが崩される気がするし、
Falseだと解像度やフォントサイズが違うパソコンだと
異常に大きさが変わってしまう。
皆さんの意見を聞かせてください。
0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNGraiseしたいけど、誰もキャッチしてくれないと
エラーがポップアップするから嫌って事なら
EAbort 継承を利用するといい
メッセージも不要ならAbortを使えばいい
例:
raise EAbort.Create('メッセージ');
自作の構文処理とかでエラーとかの為に深いスタックから一挙に帰りたい
とかにはこれが重宝するよ。
0724デフォルトの名無しさん
NGNG?????????
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG>Indyコンポ事体バグだらけで使えません(><;
バグってなんですか?
0727デフォルトの名無しさん
NGNGしかし>>702はIndyを使いこなせてないだけに100カノッサ
0728教えてください
NGNG任意のセクションを削除したいのですが、
どのように記述したら良いのでしょうか?
0729デフォルトの名無しさん
NGNGiniファイルに削除って概念はないよ。値を空にすることしかできない。
どうしてもファイルから消したかったら、自前でファイル操作して削除しる。
0730デフォルトの名無しさん
NGNGTIniFileを使ったことがありますか?
あるならヘルプ隅から隅まで読んだ?
0731デフォルトの名無しさん
NGNGprocedure EraseSection(const Section: String); override;
説明
EraseSection メソッドを呼び出すと,セクションとそのすべてのキー,
およびデータ値を INI ファイルから削除できます。Section は削除す
る INI ファイルのセクションを指定します。セクションが削除できない
場合には例外が発生します。
0732デフォルトの名無しさん
NGNG俺の場合、スプラッシュとか以外はScaled=Trueにしてる。
おおきいフォントにした場合とか、Anchorsを使っている場合は変になる場合が
あるけど、Alignで画面を調整すればいい感じだよ。
0733728
NGNGTIniFileを使用してread,writeなどは普通に動作するのですが、
>>731のEraseSectionを使ってみてもセクションが削除されません。
例外も発生しません。自前でファイル操作めんどい。と思って質問しました。
ちなみに、DeleteKeyを使用してもエントリが削除されません。
環境はWinXP,Del6(Pro)です。こんな風になってるの俺だけなのかな??
0734デフォルトの名無しさん
NGNG処理の最後にUpdateFileメソッドやってる?
それより、TMemIniFileのほうが、なにかといいよ。
0735ななし
NGNG> ただ、自分のアプリの場合 FindWindowする必要はないので
> 他人の作ったアプリだと思うんだけど・・・
ふつうはそうなんですが、VBのTipsでよく出てくる、「二重起動の防止」を
やってる関係で、自アプリをFindWindowしてます。
(返値 <> 0 なら、そのWindowを最前面に表示し、後から起動した方を終了)
取りあえず、動くようになってはいるが・・・。
0736デフォルトの名無しさん
NGNGunit SngPrcs;
interface
uses Windows;
function IsSecondProcess(const UniqueString:String):Boolean;//二重起動チェック
procedure ActivatePrevInst(MainFormClass:TClass);//先行プロセスのメインフォームをアクティブにする
implementation
function IsSecondProcess(const UniqueString:String):Boolean;
begin
CreateMutex(NIL,False,pChar(UniqueString) );//みゅーテックスオブジェクトを作成してみる
Result :=(GetLastError=ERROR_ALREADY_EXISTS);//ミューテックス作成エラーが起きた場合は二重起動とみなす
end;
procedure ActivatePrevInst(MainFormClass:TClass);
var
Hwnd,HAppWnd:THandle;
begin
Hwnd := FindWindow(pChar(String(MainFormClass.ClassName)), nil);
if Bool(Hwnd) then
begin
SetForegroundWindow(Hwnd);//メインフォームをアクティブ化
HAppWnd := GetWindowLong(Hwnd, GWL_HWNDPARENT);//アプリケーションハンドルを取得
if HAppWnd <> 0 then Hwnd := HAppWnd;
if IsIconic(Hwnd) then ShowWindow(Hwnd,SW_RESTORE);//アイコン状態なら元に戻す
end;
end;
{==SAMPLE=======================================================
program Project1;
uses
Forms,
SngPrcs in 'SngPrcs.pas',
wMain in 'wMain.pas' {Main};
const
UNIQUEID='TEST APPLICATIONS ID';
begin
if IsSecondProcess(UNIQUEID) then
begin
ActivatePrevInst(TMain);//←ここに指定するのはクラス型そのもを指定すること。
Exit;
end;
Application.Initialize;
Application.CreateForm(TMain, Main);
Application.Run;
end.
==SAMPLE=======================================================}
0737デフォルトの名無しさん
NGNGhttp://www.nifty.ne.jp/forum/fdelphi/faq/00022.htm
0738ななし
NGNG私が試行錯誤して書いたのも、ほぼおなじような内容です。
(VBからのパクリですが・・・(^_^;)
0739デフォルトの名無しさん
NGNG二重起動を見つけたら DDE でメッセージを送るようにしてる
DDEでメッセージの送り方
http://pc3.2ch.net/test/read.cgi/tech/1009080085/38
DDEでメッセージの受信は
http://www.text2music.com/mine/delphi/tips/dde.htm
つまり TDdeServerConvをポトペタするだけ
0740736
NGNGこの例で作ったアプリと同時にDelを使用すると、FindWindowはDelのメインウインドウを拾ってくるのです(w
まあ、漏れの場合、これを一つの会社に納めただけなので、特に気にせずこれで行った。
0741ななし
NGNG> この例で作ったアプリと同時にDelを使用すると、FindWindowはDelのメインウインドウを拾ってくるのです
FindWindow の第1引数をnilで、第2引数をApplication.Titleにすればよいと思いますが?(^_^;
(「語るならもっと勉強しなさい」とお叱りを受けそうですが・・・)
0742デフォルトの名無しさん
NGNG横長の大きさの文字を描画するにはどうしたらよいでしょうか?
Win32API等でないでしょうか・・・
StretchBltで大きさを変えるのではなく、
文字を描画した時点で横長の文字を描画したいのですが・・・
できないでしょうか・・・
0743デフォルトの名無しさん
NGNGブラウザで数値を入力し、それをDelphiに渡して、
Delphi内で計算した結果を、再びブラウザに返す、
というようなことをやりたいのです。
参考になりそうなURL、文献等、
どなたかご存知でしたらお力を貸してください。
よろしくお願いします。
0744デフォルトの名無しさん
NGNGキャラクター(笑)とかがタダで持てたり、着替えさしたり・・・・
でも今だけらしいですよ入会無料なのって
詳しくは下記UELをクリックして、確かめて!!
http://www.e-mansion.co.jp/co/ac.html
0745デルファイの名無しさん
NGNGOpenToolsAPIに挑戦しているのですが、
IOTAProjectCreator.NewProjectSourceでnil以外(吐きたいソースを保持したIOTAFile実装)を返すと
ルールが指定されていない旨のエラーが出ます。
これは何ですか?それと、回避方法があれば、教えていただけないでしょうか。
0746デルファイの名無しさん
NGNGAPIだけでフォントハンドルを作る時のLOGFONT構造体には、
VCLが対応して無いメンバーが幾つかあって、lfWidthというのもあります。
フォントハンドルを作成し、SelectObjectなりしてやれば、可能な筈。
0747デフォルトの名無しさん
NGNG文字を回転して表示する例ですが
http://www.borland.co.jp/qanda/delphi/d0009380.html
幅を変えたいならこの例で >>746 さんの言う通り lfWidth
>>743
それはActiveXというより、CGI化したいのではないでしょうか?
0748742
NGNGありがとうございます。無事できました。
わがままですが、文字の横幅を大きくしたり、回転したりすると、アンチエイリアスがかからなくなりますね。
かかるようにできないでしょうか?不可能ですか?
0749デフォルトの名無しさん
NGNGi: Int64;
〜
i := 1*1024*1024*1024;
みたいに書くとオーバーフローって怒られるんですが、何故なんでしょう?
0750デフォルトの名無しさん
NGNGJavaScript でいいじゃん。
0751743
NGNG出来ることならそうしてしまいたいんですが、
仕事の都合上どうしてもActiveXにしたいんです。
とはいっても、Delphi自体、触るのは今日で2日目。
前途多難です。
どなたかお力を貸してください。お願いします。
0752デフォルトの名無しさん
NGNGいたるところで同じ質問をしてますね。Delphi-gig の掲示板にまで
書き込みがあるのは笑えました。
Delphi-ML で回答がついています。そちらをお読みください。
0753デフォルトの名無しさん
NGNGたぶんもう一つ掛算を書き忘れたのだとして、 1000000*1000000 で説明します。
どうしてオーバフローになるかというと、即値は32bitの整数の範囲なら32bitとして解釈されます。
それで、1000000*1000000 は32bit同士の掛算としてコンパイル時に掛算してしまおうとして
32bitの範囲に入らないよ=オーバーフローになるよとエラーが出るわけです。
Delphiのコンパイラは、結果をint64に入れるのだから型はint64だろうなんて推測はしません
回避するには64bitの定数である事をどこかで教えてやればいいのです
たとえば、
Int64(1000000)*1000000 とか 片方だけでもint64だと教えてやります
なお、 Int64(1)*1000000*1000000 はOKだけど
1000000*1000000*Int64(1) は駄目です
0754デフォルトの名無しさん
NGNGbegin
i := 1 * 1024 * 1024 * 1024;
Memo1.Lines.Add(IntToStr(i));
end;
で起きませんでしたが。別のところが悪さしてるんでない?
0756743
NGNGありがとうございます。
現在そのMLで教えていただいた個所をプリントアウト中です。
(ヘルプの[COM アプリケーションの開発]-[ActiveX コントロールの作成])
VC++で用意していたのに、客先からいきなりDelphiでやってと言われ、
そんなん知らねー、今更言うなー、やったことねーと、
ほとほと困り、だめもとで色んなところに書き込んでいました。
とりあえずこのヘルプを読んで、また出直してきます。
0757デフォルトの名無しさん
NGNG客をだませるのなら、ActiveX コントロールではなく ActiveX フォームで
アプリ丸ごと ActiveX にしてしまう。という手もあるぞ。
0758デフォルトの名無しさん
NGNGへー、客先からDelphiを指定されたという話はあまり聞かないね
その客が奇特なのかこれからそういうケースが増えるのか
0759デフォルトの名無しさん
NGNG上下分割又は左右分割させたいの
ですが、ひょっとして出来ないのでしょうか?
別の編集ウインドウを開くでなんとなく似たような事を
していますが便利悪いです。なんとかなりませんか?
キーマクロもあるし、行マークもあるしそこそこ使える
エディタなのに残念。
0760デフォルトの名無しさん
NGNGできません。
しかし同一のファイルに対して複数のエディタウィンドウを開くことができます。
もちろん片方を編集すると別のウィンドウの内容も更新されます。
エディタ自体タブ付ですから、プロジェクト全体を見るエディタウィンドウと
ここのファイルを眺めるウィンドウを広げておけば十分でしょう。
0761デフォルトの名無しさん
NGNG分割なんてできなくていいだろ。
そんなことより、
(sss(ssss) と入力して次の ")"を入力した時に
対応する 最初の"("を協調表示してくれた方が
随分便利
0762デフォルトの名無しさん
NGNG外部エディタ使え
0763デフォルトの名無しさん
NGNGemacs使い?
0764デフォルトの名無しさん
NGNGJBuilderあたり(C++Builderかな)で導入されてるみたい
将来的にDelphiにもつくんじゃないの。
俺はいらんが。
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767ななし
NGNG0768デフォルトの名無しさん
NGNGエディタオプションの[右マージンの位置]
0769745
NGNG0770デフォルトの名無しさん
NGNG弊社のサポート窓口までご連絡下さい。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ニヤニヤ
( ・∀・)
( ) 1インシデント\30,000ダカラナ
| 某|
(__)_)
0771デフォルトの名無しさん
NGNG0772ななし
NGNG感謝。m(_ _)m
0774デフォルトの名無しさん
NGNGちゃんとしたドキュメントつけて欲しい。いやマジで。
0775デフォルトの名無しさん
NGNG更新後か入力後に、いちいち検査するしかないのかな。
0776デフォルトの名無しさん
NGNG> 更新後か入力後に、いちいち検査するしかないのかな。
最もスマートな方法だと思いますが。
0777デフォルトの名無しさん
NGNGそもそもその入力文字をキープレスイベントで受け付けなく
すればいいんだよ。
ただ問題は実数や符号付の場合。-123はいいけど123-,12-3,-123-
とか12.3, .23.とかは入力後に検査するしかねーわな。
桁とか決まってればマスクエディットが簡単でいい。
0778デフォルトの名無しさん
NGNG0779774 ◆MOg20d0E
NGNGこれが全て。
(registerComponentなど僅かながらヘルプに解説されている
ものもあるが・・・)
0780デフォルトの名無しさん
NGNG>エディトボックスから値を取得する場合、例えば、数字以外はエラーにするとか、半角カナはエラーにするとかの方法はないの?
数が多いようなら、そういうコンポーネントを作ってしまうと楽。
DelphianWorldから探してきてもいいな。ソースつきの奴
0781デフォルトの名無しさん
NGNG0782デルファイの名無しさん
NGNG…結局誰も使ったことが無いようですね。
新規プロジェクトで毎回やっている作業を手抜きしたいってだけで\30,000は絶対嫌だ(w
( リポジトリだと、単なるフォルダコピーで、ファイル名を変えることすらできませんし )
0783774 ◆MOg20d0E
NGNGダウンロードして見てみるのが一番手っ取り早いかなあ。
0784デフォルトの名無しさん
NGNGけど、ToolsAPI 使えるようになると生産性がはるかにあがるよ。
他人が使えない IDE にしてしまって、とっても困ったけど。
0785デフォルトの名無しさん
NGNGExperts使ってるんで間接的に恩恵受けていることはわかりますが・・・
0786デフォルトの名無しさん
NGNG>GExperts
0787デフォルトの名無しさん
NGNG定型コメント、ソースの入力とか
0788C++使い
NGNGあるならやってみようかな。
0789デフォルトの名無しさん
NGNGコンポーネントもクラスなので、C+;が使えるなら
自分でコンポーネントを作れるようにすぐになるでしょう
コンポーネントが作れると、結構楽しいです。
多重継承出来ない代わりに、interface型があります。
interface型はCOMと非常に相性が良いので、COMサーバ・クライアントは
C++より簡単に書けます(理屈が判っていればより高度に、判ってなくても
それなりに)
名前空間は C++と違って unitが名前空間を提供します
C++と同じように unit名.関数名 というように識別出来ます
ただし、unit名はプロジェクトで唯一でなければいけません
またコンポーネント名もIDEに登録する場合名前空間の仕掛けを利用出来ません
コンパイル速度の維持の為には仕方ないのでしょう
まあ中途半端という言い方も出来ますが、バランスが良いという言い方も
出来ます。
0790デフォルトの名無しさん
NGNGclassも名前空間(ユニット)も両方あるよ。
ただし名前空間は今となってはかなり変。
・ファイル名=名前空間になってしまう(1階層のみ)
・usesは#includeとusingを兼ねたような機能をもつ(名前空間の修飾の省略の禁止が不可能)
0791デフォルトの名無しさん
NGNGこんなソース読んで判る?
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/ugikoscr.txt
判らないならあきらめな、俺もあきらめた
0792デフォルトの名無しさん
NGNGCとDelphiの対比データ
http://hp.vector.co.jp/authors/VA014436/prg_memo/delphi/c_d.html
0793デフォルトの名無しさん
NGNG最小化されてしまいます。
また、子フォームをアクティブにすると、メインフォームも前面に出てきてしまいます。
僕の理想は、IEみたいな、ひとつのプロセスだけど、各ウィンドウが独立しているものです。
こういったことは、どのようにすればできるのでしょうか。
0794無責任だが
NGNGprocedure TCustomForm.WMSysCommand(var Message: TWMSysCommand);
を参照
つまり最小化=SC_MINIMIZEが送られた来た時に
Application.MainForm が自分なら、 Application の最小化を行っています
この動作を迂回すればよいでしょう。迂回方法はお好きな方法で
0795でもどり初心者 ◆KcG2I.hg
NGNGDelphiになれててVBAになれて無い人が
Delphi6Pesonalでデータベースアプリ作るのと
AccessVBAでデータベースアプリ作るのどっちが近道と思いますか?
簡単な会社の給与計算や顧客管理をしたいなぁと思ってるんですが…。
ちなみにリレーショナルはあんまり使わなくてもいい程度のDB設計です。
(顧客マスター←売上データ程度です)
AccessのVBAを勉強しようと思うんですが、メインに使ってるのがDelphiで、
言語を二つ使いこなすには頭に余裕無くて…。
クエリーとか簡単なSQLなら、むしりとった衣笠で書けるのですが。
以前はN88、DOS-N88、Quick、VB5とベーシックばかり使ってたんですが、
Delphi4を使ってからはDelphiマンセーになってしまって脳に拒否反応が…。
Delphi6Pro買うのが一番速そうだけど、零細だから予算おりなさそう(涙)
#ちなみに印刷系の会社なので、開発はあくまでおまけ
0797デフォルトの名無しさん
NGNG一番早いのは市販パッケージを買うこと
給与計算は年末調整とかいろいろややこしいから買った方が安上がり
顧客管理は件数が少ないのならCsvとかテキストでも十分間に合う
零細なら取引先も多くないカナ?
AccessならVBA使うこともない
おもしろいのはDelphiで自分で作る方
0798デフォルトの名無しさん
NGNGもちろん D6Personalでも可な方法はあるし、そっちが速い人もいるだろうけど
そういう人はそういう質問はしないでしょう
D6Proを素直に買った方がいいと思うけどね
それと、personalを会社の仕事に使うのはどうかなあ
0799ななし
NGNGPersonalでは、DBの機能(ADO等)は使用できないはず。
0800デフォルトの名無しさん
NGNG逝ってよし
Personalで作成したアプリは業務で使用出来ません。
弊社のサイトにある改訂されたライセンス文書を
読みましょう。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧
( ・∀・)
( ) ホウムカンケイノ ケイヒウワノセシタ
| 某| トクベツカカクノProfessionalカワセルゾ
(__)_)
0801でもどり初心者 ◆KcG2I.hg
NGNGヤパーリAccessで作るのが順当ですか…。
もうちょい修行してみます。
D6per+CSVで強引に作ってしまうってのも
魅力的なんですが(w
あと、Personalのライセンス問題ですが、
去年の8月にサポートに直接メールして聞きました。
転載しちゃいます。
--------自分がボーランドに送ったメール
貴社のサイトに「Delphi 6 Personalは商用・業務目的のアプリケーショ
ン開発にはご利用いただけません」とかかれていますが、Delphi 6
Personalで作成したプログラムをインターネット上で無償で公開するの
はOKなんでしょうか?
また、インターネットでの公開がOKの場合そのプログラムを業務に利
用するのはOKなんでしょうか?
--------ボーランドからの返事
Delphi 6 Personal で開発したアプリケーションによって報酬を得るよう
な場合には使用できません。フリーソフトの開発は可能ですが、シェア
ウェアの開発はできません。開発したアプリケーションで、その開発自体
で報酬を得ることが無い場合には、開発したアプリケーションを社内業務
でご使用いただけます。
0802デフォルトの名無しさん
NGNG実はライセンスが改訂されているんだな。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ニヤニヤ
( ・∀・)
( )
| 某| イチバンシタノ文ナ
(__)_)
本使用許諾契約の条項に従うことを条件として、お客様は本使用許諾契約に基づき本製品を使用し、個人
使用のみを目的とした著作物を作成する権利を行使することができます。お客様は、本製品または著作物
を、商用、業務用、政府や企業での使用を目的として(以下「商用目的」)、使用することはできません。
本契約の他の条項に従うことを条件として、お客様はご自身の作成した著作物を他人に配布することがで
きますが、直接、間接を問わず、配布や著作物の使用に対する報酬を受け取ることはできません。また、
お客様が他人に配布した著作物は、商用目的で使用してはなりません。
0803デフォルトの名無しさん
NGNGもし、それをフリーソフトとして出すような事を考えてるならPQCompoを使うといい
ttp://www.est.hi-ho.ne.jp/takeshi_kanno/
ただし、DBGridとか便利機能は一切なしだから
0804でもどり初心者 ◆KcG2I.hg
NGNGそのページまだぱっと見ただけですが、
すごく役立ちそうです。サンクス。
>>802
社内で完結するテキストの処理とか
さっき自分が話題に出した顧客管理とかは
ボーランドが言う所の商用目的になるのか
ならないのかが論点と思います。
で、6のPersonalが出たての時、自分も
「お客様は、本製品または著作物 を、商用、
業務用、政府や企業での使用を目的として
(以下「商用目的」)、使用することはできま
せん。 」
の文章の解釈が気になって、ボーランドに
確認を取りました。(>>801のメール)
おそらく、その部分の規約は大幅改定は
無いと思いますが。
つーわけで、自分はボーランドからのメー
ル(>>801)を根拠に、売り物にしないプロ
グラムならOKと解釈しています。
#えーと、Personalのライセンスの範囲の問
#題ってよく話題にあがる?
#もいっかいボーランドにメールしてみよかな
0805743
NGNGヘルプ見てもよくわからずに泣きながら戻ってきました。
>>757
> ActiveX フォームでアプリ丸ごと ActiveX にしてしまう。
ヒントありがとうございます。それってどうやるんですか?
まだDelphi3日目で、何が何やらさっぱりです。
>>758
> その客が奇特なのかこれからそういうケースが増えるのか
多分、前者です。
ただ、今後こういうケースが増えても大丈夫なように
これをいい機会にDelphi習得したいです。自信ないけど。
ていうか、そもそも既存のユニットから
ActiveXコントロールって作れるものなんですか。
何も知らず、何もわからないまま手探りでやっていて、
急に不安になってきました…。
0806デフォルトの名無しさん
NGNG0807743
NGNGええと、その「既存のユニット」の内容ですが、
通信系の処理をやるためにTFormでクラスを作ってます。
これをActiveX化って出来るんですか?
0808デフォルトの名無しさん
NGNGTForm継承なら、
IDEにコンポーネントとして登録(つまり Register 手続きを追加)
してから ActiveXコントロールにすれば
0809デフォルトの名無しさん
NGNG0810Delphi3日目(743)
NGNGタメになりそうなレス、ありがとうございます!!
でも、実はどうやったらいいのかわかりません。
もしよろしければ、もうすこし手順を詳しく教えていただけないでしょうか。
よろしくお願いします。
0811Delphi3日目(743)
NGNGうわ、ほんとですか。どうしよー。
そこんとこ詳しく知ってる人、どなたかいませんか。
0812808
NGNG1、既存のフォームの名前を適当につける Form1とかのままだと名前が喧嘩するみたい
例としてフォーム名をTestForm クラス名をTTestFormになったとする
2、var TestForm:TTestFormのような部分を消去する
3、 procedure Register ; を設計部に追加
4、実装部に
procedure Register;
begin
RegisterComponents('Samples', [TTestForm]);
end;
5、コンポーネントのインストールで上記フォームをインストールする
6、ActiveXウイザードでVCLクラス名を TTestFormにする
後は適当に
7、試験する。
実行->ActiveXサーバの登録して試験するとか サーバー用意済なら
プロジェクト->Web配布で試験するとか
結果: マズイ
動くけど、やっぱりフォームとして動く。 意味は試してみれば判る。
>>525 のように 無理やり WS_CHILDすればいけるかも。 自分で試してみて
0813Delphi3日目(743)
NGNG808さん、ありがとう。めっちゃいい人やー。助かります。
まだ試していないので、また試してから戻ってきます。
本当にありがとう。
0814デフォルトの名無しさん
NGNGPro以上使っているヤシで、全部のコンポーネント登録したまま使っているヤシいる?
0815Delphi3日目(743)
NGNG試してきました。ばっちりです。ありがとうございました。
おっしゃるようにWS_CHILDすると、フォームとして動かなくなりました。
本当にありがとう。さあ、今からこれを仕事に活かさなくっちゃ。
0817Delphi3日目(743)
NGNG今やってる仕事で、Delphiで作ったActiveXと、
Delphiで作った別のプログラムとでやりとりをさせたいんですが、
ActiveXから、別のプログラム中の
TFormで出来た関数を呼び出したい時はどうすればいいんでしょう。
どなたかご存知でしたらお力を貸してください。お願いします。
0818808
NGNG別のプログラムっていうのは、別のプロセスでって事?
TFormで出来た関数ってメソッドの事?
0819デフォルトの名無しさん
NGNGもっと具体的にやりたい事を書いてみたら?
既に 単体のアプリとして通信(ってTCP/IP)出来てるアプリがあって、それを
ActiveXにしたいんだよね?
0820デフォルトの名無しさん
NGNGよく使うやつと、自作のコンポ集以外は「その他」ってページを作って集めてる。
使いそうにないコンポを消してしまうとひょっと使う事があった時に便利悪いから。
0821デフォルトの名無しさん
NGNGありがとうございます。
がmmmばってみます。
0822デフォルトの名無しさん
NGNGメソッドポインタを渡してコールバックさせるか、
アプリケーションにオートメーションオブジェクトを仕込む。
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825Delphi4日目(743)
NGNG808さんがわかりやすく説明してくださったおかげです。
ありがとうございました。
>>818, >>819
すいません、正直私自身よくわからないままやっているので
あいまいな言い方になってしまいました。
今やっている仕事は、とある機械を操作するためのプログラムです。
操作はブラウザ上で行うため、作ったものはActiveX化します。
機械はDelphiで制御されているので
(その機械を作った人の得意な言語がDelphiだったから)
操作側のプログラム(ActiveX)とその機械とのやりとりは
全部Delphiでやってくれ、みたいな感じの仕事です。
そして、新人の私は調べ物+サンプル作りが主な仕事です。
プロジェクトの全体像を知ることのないまま。
ActiveXとその機械とで情報や命令のやりとりをしたいみたい。
動けーとか、止まれーとか。
これをやってくれーとかいう命令や、その結果を受け取ったりとか。
そして、そうするにはActiveXで、
機械の方の関数(メソッド?)を呼び出す必要があるらしく、
でもそれってどうやるのか誰もわからないので困ってます。
こんな説明じゃわかんないですよね。うーん。
これ調べてって言った先輩が午前中は休みなので、
午後に詳しく聞いてから、また戻ってきます…。
0826デフォルトの名無しさん
NGNG操作をブラウザからする為に ActiveX化したってのが一番よく判らん
ブラウザ上のActiveXなら、自動的に他のパソコンと通信作出来るとでも勘違いしてるんじゃないか?
0827デフォルトの名無しさん
NGNG会社で使うなら、Personal は使ってはいけません。
Enterprise Trial は使用期限があります。
ttp://www.delphigig.com/board/aspBoardDetail.asp?Id=229
いたるところで聞きまくっているけど、いいかげんにしろ。
0828デフォルトの名無しさん
NGNG機械の遠隔操作ならソケット直接で処理した方が簡単だろう
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG参考:
ttp://www.wwlnk.com/boheme/delphi/techdoc/
ttp://homepage1.nifty.com/project21/delphi/tips_soap.htm
0832ななし
NGNGSimple Object Access Protocol
でしたっけ?
「特殊なお風呂屋さん」を連想してしまいました・・・。(鬱
0833デフォルトの名無しさん
NGNGこれって、単にドキュメント作成って言うか、コメントを図形式で書けるってなだけなんでしょ?
こんなの付けるより、雛型を設定可能な仕様書の方が使えそうだと思うけど、
ついでに、簡単にhtml吐けるようにするとかしてくれたらいいのになぁ、
それとも、OpenToolsAPIを詳しく知ってるとアドオン的なプログラムができるのだろうか・・・。
0834デフォルトの名無しさん
NGNGいみふめーん
0835デフォルトの名無しさん
NGNGドキュメントの形式を統一するって意味です。
0836デフォルトの名無しさん
NGNGなぜ統一する必要があるのかふめーん
0837デフォルトの名無しさん
NGNG南北統一マンセーってなもんだ
0838デフォルトの名無しさん
NGNG統一教会もお忘れなくってなもんだ
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGって我ながら意味ふめ〜ん。
で、仕様書だけど!Doc, D/Scribe, DocManなんかがありまふ。
どれもリバースエンジニアリングだけどね。
ttp://www.vector.co.jp/vpack/filearea/win/prog/delphi/index.html
0842デフォルトの名無しさん
NGNG質問でし!
非表示のフォームBを表示中のフォームAからメソッドshowで表示させます
フォームBではイベントshow発生時に
FormB.Position := poScreenCenter;
と記述してフォームBを画面の中央に表示させようとしています
フォームB設計時のPositionプロパティの値もpoScreenCenterです
一度目の表示は問題ないのですが、フォームBを中央から別の場所に
マウスで移動させて、Hideにして、再度フォームAからshowさせると、
上記記述の部分でエラーが発生してしまいます
単純に表示するときは絶対画面の真中なの!
ということがしたいのですが。。。
0843デフォルトの名無しさん
NGNGかなり意味ふめーんだよ >833
0844デフォルトの名無しさん
NGNGFormA の FormB.Show の次の行に
中央寄せするコードかけば?
0845842
NGNGうわぁぁぁい
ありがとおございます
できました
多謝でし!感謝しるでし!
でも どうしてOnShow内ぢゃできないんだろ。。。
0846Delphi4日目(743)
NGNGありがとうございます。多分、それです。
会社の先輩にここ見てもらったら、そのコールバックが
一番やりたいことに近いみたいだって言ってました。
ただ、Delphiで作成したもの同士でのコールバック関数を使った例が、
探してもなかなか見つからない上に、
見つかってもAPPとDLL間のやりとりの例だったりしました。
(ttp://www2.biglobe.ne.jp/~sakai/callback.htm)
DLLは作成したくないので、
コールバックを頼むのはDLLではなく、EXEにしたいんですが、
どうすればいいのかわかりません。
参考になりそうな情報(文献、URL等)を
もしご存知の方がいらっしゃるなら、
どうか助けていただけないでしょうか。
0847デフォルトの名無しさん
NGNGC++やJavaのDoxygenみたいに参照関係やクラス関係を出力できるフリーのソフト無いのかね。
0848デフォルトの名無しさん
NGNGWin32の下では そのExportされた関数を外部から呼び出しても
別のスレッド・メモリ空間で実行されるだけです。
ブラウザ上で実行されるActiveXはブラウザ上のプロセスとなっています。
ですからプロセス間通信を使わなければいけません。
プロセス間通信には、
1、ファイル マッピング(共有メモリ方式)
2、名前なし (匿名) パイプ
3、名前付きパイプ (Win9xでは使えない)
4、メールスロット
5、DDE
6、OLE
7、RPC
などがあります
この中で そのコールバックのように別のプロセスの関数を呼び出すのに一番近いのはRPCです
RPCであれば別のパソコン上で動くプロセスとも通信出来ます(というかそれが目的ですが)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/pr-func1_6v03.asp
0849デフォルトの名無しさん
NGNG調べてみれば?
$(Delphi)\Demos\Activex\Oleauto\Autoserv
0850デフォルトの名無しさん
NGNGEnt版つかってるけどコンポーネントはそのままだよ.
もちろん良く使う奴を左に寄せてはいるけど.
0851デフォルトの名無しさん
NGNGもしできるなら、そのときのWAVE参照方法を教えてください(sndPlaySoundとか)
0852デフォルトの名無しさん
NGNGリソース。
後は検索。
0853デフォルトの名無しさん
NGNGこんな感じにしたいのだが・・・
void hoge(String str = Null); ← C
procedure hoge(str:String); ← Delphi
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGできたー ありがと。
0856しん
NGNG0857デフォルトの名無しさん
NGNG0858IDEの小枝
NGNGこっちでは「IDEの小枝」をやろうぜ!
MLに負けない奴をどーぞ
0859デフォルトの名無しさん
NGNGはいはい。次の質問どうぞ。
0860IDEの小技
NGNG[Ctl]+[SPACE] で自動補完が任意にだせる
0861デフォルトの名無しさん
NGNG0862桂小枝
NGNG小枝だろ。
interface部とimplementation部間の移動は、
[Ctrl]+[SHIFT]+[↓]
[Ctrl]+[SHIFT]+[↑]で移動で可能
0864デフォルトの名無しさん
NGNGちょっと賢くなった。
0865デフォルトの名無しさん
NGNG普通のソースコードの部分じゃなくて、クラス定義の内側( = class() から end までの部分)
で Ctrl-Space を押すと親クラスから継承したメソッドが表示される。
で、Delphi6 からはマウスで複数選択できる。ちゃんと Public/Protect を認識して
分けてくれるし。
0866デフォルトの名無しさん
NGNGをぉすばらしい!
0867デフォルトの名無しさん
NGNGよろしく。
連中(の一部)は 2ch をよく思っていないので、こんなネタが存在すると
気づくと、また荒らしにきます。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG>Delphi 6 の動作が Windows XP 上で不安定になる場合、
Delphi 6 を「互換モード」で実行してください。
互換モードを設定するためには、まず、エクスプローラーで
Delphi 6 をインストールしたディレクトリの bin\delphi32.exe
(例: C:\Program Files\Borland\Delphi6\Bin\delphi32.exe)をマウスで右クリックし、
ポップアップメニューから[プロパティ(R)]を選んで、プロパティ設定ダイアログを呼び出します。
次に、[互換性]のタブをクリックして[互換モードでこのプログラムを実行する]をチェックして、適当なOSを選択してください。
※Delphi 6 は、Windows XP 上での包括的な動作検証は行なわれておりません。ご了承ください。
0870Delphi好きッ ◆0YAPhEjk
NGNGいます。
で、バックアップ機能を付加しようと思い、単にParadoxのファイル(dbファイルそ
の他)と、ホストプログラムが利用するデータをコピーしました。(copyfileを使用)
そのコピーデータはきちんと取れたのです。ところが、復元機能を付加して、バック
アップフォルダからファイルをコピーしたのですけど、ファイルのコピーはされてい
るのに、データベースのレコードが更新されていません。(旧データが残っている)
何故でしょうか。
一応、復元部分は以下のような処理を行っております。
// データベースを一旦閉じます。
DBModule.MainDataBase.Close;
try
// ホストプログラムデータをコピーします。
i:=findfirst(BackupFolder+'Dat\*.dat',faAnyFile,sr);
while i=0 do begin
copyfile(pchar(BackupFolder+'Dat\'+sr.Name),pchar(DataSystem.DatFolder+sr.Name),false);
i:=findnext(sr);
end;
findclose(sr);
// データベースファイルをコピーします。
i:=findfirst(BackupFolder+'DataBase\*.*',faAnyFile,sr);
while i=0 do begin
copyfile(pchar(BackupFolder+'DataBase\'+sr.Name),
pchar(DataSystem.DBFolder+sr.Name), false);
i:=findnext(sr);
end;
findclose(sr);
この後、ホストプログラムはシャットダウンされます。(そうでないと、ホストデー
タの更新が効かないので)
もしかして、キャッシュが残ったりしているのかなぁとか思っているのですが。何か
原因等考えられましたらお願いします。
0871デフォルトの名無しさん
NGNGSetLength(a, size);
b := a;
SetLength(a, newSize);
var c, d: PByteArray;
GetMem(c, size);
d := c;
ReallocMem(c, newSize);
ここで、「a = b」と「c = d」はそれぞれ必ず true を返しますか?
0873デフォルトの名無しさん
NGNGmyODBCをインストールしてコンソールからmySQLに接続することはできました。
SQLConnectionを使用して接続するのだろう、とは思うのですがうまくいかないのです。
dllの起動に失敗しましたと警告されます。
何かヒントをいただけると幸いです。よろしくお願いします。
0874デフォルトの名無しさん
NGNGもし、使えるならどうやって使うの?
0875873
NGNG0876デフォルトの名無しさん
NGNGStringsのサブクラス
ヘルプを読むの
0877874
NGNGTStringHashやTBuckutList,TObjectBucketListは無いです・・・
0878デフォルトの名無しさん
NGNGいやなら自分で実装するとか。
0879デフォルトの名無しさん
NGNG例えば、→が押されたら■(label)のleftプロパティをプラスしていくということがしたいのですが、
ウィンドウがかなりちらついてしまいます。どうすればいいんですか?
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG奴らいったい今までどうやって開発やってたのか
小一時間問い詰めたい気分で一杯です。
0882デフォルトの名無しさん
NGNG文章を見ることは出来るのですが画像が見ることが出来ません。
どなたかわかる人いますか?今、大変困っています。
http://game.2ch.net/test/read.cgi/gameover/1028142800/
↑の人たちもよくわからないみたいで。・。。
0884デフォルトの名無しさん
NGNGBDEつかってODBC経由せつぞくですな。
0885884
NGNGMySQLより PostgreSQL+PQCompoの方がいいと書きたかった。
0886デフォルトの名無しさん
NGNG作ったWebサービスが動かなくなってしまったよ。
ブラウザ上でWSDLを見ようとしたら、
「エラー : この名前に文字 ':' を含むことはできません: -->:<--n1/EOleException」
と表示されますた。
どうもMSXMLかMSSOAPのバージョンが上がってしまうのが原因らしいが、ネームス
ペース修飾の":"が使えないってのはXMLのパーサとして完全に失格。
MS逝ってよし。
0887デフォルトの名無しさん
NGNGどうすればできるんでしょうか?
0888887
NGNG0889889
NGNGbegin
Image1.Picture.LoadFromFile('c:\a.bmp');
Sleep(1000);
Image1.Picture.SaveToFile('c:\a.bmp');
end;
0890889
NGNGImage1.Picture.SaveToFile('c:\b.bmp');
0891デフォルトの名無しさん
NGNGそれだと 'c:\a.bmp' が残るんじゃないの。
0892889
NGNG残っちゃいけないなんて書いてないだろ!
0893デフォルトの名無しさん
NGNG0894889
NGNGうっぜええええええええええええええええええええええええ
アニメーションのアの字も書いてないだろ!!!!!!!
分かった!分かったよ!!!!
887=891=893なんだろ?
0895デフォルトの名無しさん
NGNGはいはい、ageるな。
0896デフォルトの名無しさん
NGNGプッ
0897デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile('c:\a.bmp');
Sleep(1000);
Image1.Picture.LoadFromFile('c:\b.bmp');
end;
ってことじゃないの?
0898デフォルトの名無しさん
NGNG低脳厨房はぐっと我慢して放置してくれ。逆恨みして荒らされたらたまらん。
0899Del初心者厨
NGNG文字を表示して、一定時間(5秒とか)ウェイトを持たせて
一定時間たったら次の文字を表示とかはできるのでしょうか?
ちなみに、ウェイト中は操作が一切できないようにしたいです。
0900デフォルトの名無しさん
NGNG(´-`)。o ○ (「出来る」「出来ない」ってレスもらってウレシイか?)
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGできる。
で、どこに表示したいんだ?
0903Del初心者厨
NGNGいや...言葉不足でした。どうすればできるのか教えてください。
0904Del初心者厨
NGNGラベルに表示したいです。
0905デフォルトの名無しさん
NGNGLabel1.Caption := 'A';
Sleep(5000);
Label1.Caption := Label1.Caption + 'B';
0906デフォルトの名無しさん
NGNGそーゆーことかよッ!?(by三村)
0907905
NGNGえ。違うの?
オレハナニヲマチガエタンダラウ...
0908Del初心者厨
NGNGホント厨で申し訳ないんですけど、その命令はどこに入れればいいんですか?
FormCreateに入れてデバックすると5秒後に起動されるんです・・
0909sage
NGNG0910905
NGNGそれはいつ実行したいのかな?
0911Del初心者厨
NGNGご迷惑をおかけしました。
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGでも、これって確か実行している間は終了もできないんだろ?
いいのか、それ教えて(ワラ
0914歌丸
NGNG歌丸です。
0915905
NGNGだって、Application.ProcessMessages出して、自前でフォームをDisableにして、フラグ立てて、キャンセルボタン押したらフラグセットして...とか説明するの面倒くさい。
ほっといても5秒たてば終わるんだし...
Wait時間を可変でっていう話なら考えるけど。
0916助けてDel兄さん
NGNG選択してないときはImageが表示されるんですが、
選択するとImageが消えてしまいます。
消えないようにするにはどうすればいいですか?
0917デフォルトの名無しさん
NGNGSelectedIndex
0918デフォルトの名無しさん
NGNGたとえば、最初に白いフォームにボタンが10個。
3秒したら初期化(クリア)して青いフォームにラベル5個。
また3秒したら白いフォームにボタンが10個。
という感じにしたいんです
0919助けてDel兄さん
NGNG一発で出来ました
ありがとうDel兄さん
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG918.Terminate;
0922デフォルトの名無しさん
NGNG別のフォームにして、表示/非表示を切り替えるのが吉。
0923918
NGNG0924889
NGNGForm1.Color := clWhite;
Label1.Visible := True;・・・Label10.Visible := True;
Sleep(3000);
Form1.Color := clBlue;
Label1.Visible := False;・・・Label5.Visible := False;
0925デフォルトの名無しさん
NGNGいちいち突っ込むなよ・・
0926922
NGNG汎用機から流れた人(漏れもそうだが)は特に。
0927デフォルトの名無しさん
NGNGお前がなー。
0928デフォルトの名無しさん
NGNG0929918
NGNG0930889
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGCICSはSDIでモーダルしかありませんが何か?
0933デフォルトの名無しさん
NGNG>924のコードって、デザインが非常に鬱陶しいような気がするんだが...
0934デフォルトの名無しさん
NGNG俺も思った...
0935デフォルトの名無しさん
NGNGなくするやり方を教えてください!
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG(´-`)。o ○ (根性..)
0938デフォルトの名無しさん
NGNG0939922
NGNGDelphiのメニューで、[プロジェクト]→[オプション]で[プロジェクト オプション]を表示し、[アプリケーション]タブの[アプリケーションの設定][タイトル]に表示したい文字列を入れれ。
何か今日はこの手の質問多くないか?
「モナーの *やさしい* Delphi質問スレ Ver.8 」
http://pc3.2ch.net/test/read.cgi/tech/1027873869/l50
へご案内してもいい?
0940デフォルトの名無しさん
NGNG安上がりって事さ。
0941922
NGNG暇とは何だよ(暇だけど)
もう寝る!!
0942デフォルトの名無しさん
NGNG(゚ω゚) <そろそろ期待してる?
/( )\
/'\
0943デフォルトの名無しさん
NGNGファイルの属性を一気に変更したいんですがどうしたら良いのか教えて下さい。
具体的には
hoge\ディレクトリ以下のファイル全てを「読みとり専用」を外したいんです。(サブディレクトリ含む)
FileGetAttrと言うのがあるらしいですがこれはファイル一個一個指定しなくてはいけないらしいです。
一括で変更できる方法がありましたら教えて下さい。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGHashぐらい自力で実装汁!!
>>943
ループでも回して一括で処理汁!!
0946デフォルトの名無しさん
NGNG(´-`).。oO(ノイマン型CPUで複数一括処理は無理だろ)
0947デフォルトの名無しさん
NGNGTStrings.Valuesってことじゃなくて?
0948デフォルトの名無しさん
NGNG隠照のMPUは複数命令を同時実行します。と言ってみるテスト。
0949デフォルトの名無しさん
NGNGHDコントロール用CPUは未対応とか言い返してみたりする。
というか、パイプラインなんてすっかり忘れてたよ(恥)
0950デフォルトの名無しさん
NGNG0951948
NGNGたとえHDDコントローラが対応しても、アームは1本という罠。
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG抽象クラスの実行速度なんぞ良くはかれたな。感動。
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG>>953
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGな〜に言ってんだか♪
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGで、NewProcをFormのメンバーに置くと、
「変数が必要です」
と言われてコンパイルできません。どうすればイイでしょうか?
0960デフォルトの名無しさん
NGNGunit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure NewButtonProc(var Msg: TMessage);
public
OldButtonProc:TWndMethod;
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.NewButtonProc( var Msg: TMessage);
begin
with Msg do
case Msg of
WM_RBUTTONDOWN: Msg := WM_LBUTTONDOWN;
WM_RBUTTONUP: Msg := WM_LBUTTONUP;
end;
OldButtonProc(Msg);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage( 'こんにちは' );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldButtonProc:= Button1.WindowProc;
Button1.WindowProc:= NewButtonProc;
end;
end.
0961デフォルトの名無しさん
NGNGなるほど。
しかし、FormのメンバーにNewProcを置くと、SetWindowLongは使えないと言う事ですか・・・。
これは何故ですか?
0962デフォルトの名無しさん
NGNGなんのこと?
0963デフォルトの名無しさん
NGNGポインタが1つしか渡せないから、メソッドポインタを渡しても
どのオブジェクトかを識別出来ません。
MakeObjectInstance を使うとメソッドを手続きに仲介するコードを作らせる事が出来ますが・・・
詳しい仕掛けはここ参考にするといいでしょう
ttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-1.htm
が、VCLを使うなら WindowProcプロパティを操作する方が簡単ですからそうした方がいいです
0964デフォルトの名無しさん
NGNGオブジェクトが別の場合は別のアドレス空間になるのですか?
てっきり一つのプロセス内なら、アドレスは全て一つで表せるのかと・・・。
うーん言いたい事がうまく伝わって無いかもしれない罠。
0965デフォルトの名無しさん
NGNGとりあえずこの文章はおかしい
0966デフォルトの名無しさん
NGNGメソッドポインタは普通のポインタと違うんだよ。
0967デフォルトの名無しさん
NGNG指してるものは違えどポインタはポインタだろう。
0968デフォルトの名無しさん
NGNG参考:
http://www.uic.edu/depts/psch/aps/
http://www.pcaphl.org/oaps.html
0969デフォルトの名無しさん
NGNG感触を知りたいのですが。
0970デフォルトの名無しさん
NGNGオブジェクトは同じアドレス空間にあります。
しかし、メソッドポインタは、命令コードと データ領域の2つを示さなければいけません。
FormのメンバーにNewProcをおくと、NewProgは手続きではなくメソッドになります。
メソッドには隠れた引数があり、それはどのオブジェクトインスタンスであるかを示すものです
具体的にForm1である事を教える必要があります。
それから >>959の例だと、 実際に buttonをホントのサブクラス=継承して動作を書き換える方が
簡単だと思います。
0971デフォルトの名無しさん
NGNGへぇ、C++みたいに隠されたthisポインタみたいなのがあるんだ。
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG直接SQLで記述するとうまくプレビュできるのですが、パラメータクエリにすると、真っ黒(っていうか灰色)のままなんですけど。
0974デフォルトの名無しさん
NGNGパラメータ値をセットしてないから。
0975デフォルトの名無しさん
NGNGどもです。
いえいえ、セットしてます。構文も間違っていません。(他のクエリでも使っているがそちらは正常。)
0976へい
NGNGhttp://ja2kai.hoops.livedoor.com
にあった。
0977デフォルトの名無しさん
NGNGうさんくさすぎ。練習し直し。
0978へい
NGNG0979Delphi1から使ってます
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG(゚ω゚) <正直言って、出てくるとおもってないか?
/( )\
/'\
0982涙でディスプレイが見えない…
NGNGああ、待っているよ!>>981
0983デフォルトの名無しさん
NGNGさあ、どう出る!>>981
0984デフォルトの名無しさん
NGNG出てきたのは別のスレ?
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGその5よりその6の方が先に埋まったら、
それはそれでいいけどな(w
0987デフォルトの名無しさん
NGNGそういう見方もアリですな!w
0988デフォルトの名無しさん
NGNGもう少し見守ってみたい気もするが・・・
>>981の動向も気になるし(w
0989デフォルトの名無しさん
NGNG新スレはココ
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0990デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0991デフォルトの名無しさん
NGNG新スレはココ
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0992デフォルトの名無しさん
NGNG新スレはココ
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0993デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0994デフォルトの名無しさん
NGNG新スレはココだす
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0995デフォルトの名無しさん
NGNG新スレはココだす
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。