トップページ⇒tech
988コメント302KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001Delモナー ◆fPymXWHY NGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/test/read.cgi/tech/1019134412/

前スレが埋まるまでは書き込まないで
(あるいはsage進行にして)ください。

>>2-10あたりに関連情報あり
○過去スレ >>2
○関連スレ >>3-5
○Delphi製品情報 >>6
○関連リンク >>7
○質問者へ・回答者へ >>7
○ソース置き場案内 >>8
0002デフォルトの名無しさんNGNG
■過去スレ

モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412

モナーの *やさしい* Delphi質問スレ Ver4(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1016467137/

モナーの *やさしい* Delphi質問スレ Ver3(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1014474727/

モナーの *やさしい* Delphi質問スレ Ver2(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1011649179/

モナーの *やさしい* Delphi質問スレ(HTML化済)
http://pc.2ch.net/tech/kako/1003/10031/1003113413.html
0003デフォルトの名無しさんNGNG
■関連スレ
一番上が新しいスレです。書き込みは新しいスレに。

○ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
Delphi や Borland に関する話題、雑談や質問をしながらマターリくつろごうや
�A http://pc.2ch.net/test/read.cgi/tech/1013298748/
�@ http://pc.2ch.net/test/read.cgi/tech/1003664165/ (HTML化待ち)
( ゚Д゚)ノ Delギコ猫のプログラミング相談室
DelphiやBorlandに関する雑談や質問しながらみなーで、くつろごうや
part4 http://pc.2ch.net/tech/kako/1002/10024/1002469894.html
part3 http://piza2.2ch.net/tech/kako/1001/10010/1001039863.html
part2 http://pc.2ch.net/tech/kako/999/999482946.html
part1 http://piza2.2ch.net/tech/kako/997/997348797.html

○Delphi相談室 現在その3
Delphi関連のTips Q&A はこちらです。
その4 http://pc.2ch.net/test/read.cgi/tech/1018211735/
その3 http://pc.2ch.net/test/read.cgi/tech/1010153466/ (HTML化待ち)
その2 http://pc.2ch.net/tech/kako/995/995950803.html
その1 (逝ってしまったようです)
(続く)
0004デフォルトの名無しさんNGNG
■関連スレ(続き)

○***すれ立てるまでもない質問はここで***
どのスレッドに質問したらいいか、わからないときはここで質問してみよう。(略)
第14刷 http://pc.2ch.net/test/read.cgi/tech/1021034822/
第13刷 http://pc.2ch.net/test/read.cgi/tech/1018752281/
第12刷 http://pc.2ch.net/test/read.cgi/tech/1016631412/ (HTML化待ち)
第11刷 http://pc.2ch.net/test/read.cgi/tech/1014478527/ (HTML化待ち)
第A刷 http://pc.2ch.net/test/read.cgi/tech/1012536901/ (HTML化待ち)
第9刷 http://pc.2ch.net/test/read.cgi/tech/1010673275/ (HTML化待ち)
第8刷 http://pc.2ch.net/test/read.cgi/tech/1008908052/ (HTML化待ち)
第6刷 http://pc.2ch.net/tech/kako/1004/10041/1004183881.html
第5刷 http://pc.2ch.net/tech/kako/1001/10019/1001998049.html
第4刷 http://pc.2ch.net/tech/kako/998/998403891.html
第3刷 http://piza2.2ch.net/tech/kako/993/993933402.html
第2刷 http://piza.2ch.net/tech/kako/990/990082077.html
第1刷 http://piza.2ch.net/tech/kako/975/975576060.html

○Pascal の初心者用の質問・相談所
コンソールのみ。GUI は扱いません。
http://pc.2ch.net/test/read.cgi/tech/1009903617/

○kylix相談室(閑散)
2 http://pc.2ch.net/test/read.cgi/tech/988815580/ (HTML化待ち)
1 (行方不明)
(続く)
0005デフォルトの名無しさんNGNG
■関連スレ(続き)

○Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

○delphiで作られた有名ソフトって何がある?
delphi自身もdelphi?てか、今delphiやってる人へ希望を与えてやって下さい。
http://pc.2ch.net/test/read.cgi/tech/990056026/

○Delphiでアクションゲームが作りたい!!
初心者でもわかるように1から説明してください。
http://pc.2ch.net/test/read.cgi/tech/1019654975/

○おまけ Delギコさん、復活祈願スレ
http://pc.2ch.net/test/read.cgi/tech/1002578288/
0006デフォルトの名無しさんNGNG
■Delphi製品情報

○公式サイト
http://www.borland.co.jp/delphi/

○Delphi 6 Personal
無料でダウンロードできる。持っていない人はこれを機にやってみよう。
ダウンロードするファイルはは59MBあり、またサーバーが重いので注意。
使用者登録が必要。
http://www.borland.co.jp/delphi/personal/

○Delphi 6 アップデート・ダウンロードサービス
最新のアップデートは次の通り。
Personal: Update Pack 2 (2002/3/19)
Professional, Enterprise: Update Pack 2 + 追加アップデート (2002/3/29)
http://www.borland.co.jp/delphi/del6up.html
0007デフォルトの名無しさんNGNG
■関連リンク

ここに貼っておきました。
どんどん追加して構いません。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

■質問者へ

○ここはDelphi(Kylix)のプログラミングに関する質問スレです。
スレ違いの質問は罵倒されるので、ほかのスレを探してください。

○初歩的な質問でもOKです。でもネタだと思われないように、
自分で努力した跡を示すのが吉。

○まずは自分で調べてみよう。回答にGoogleの検索結果を貼られないように。
Google http://www.google.com/intl/ja/
2ちゃんねる検索 http://2ken.net/
Delphi-ML検索 http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi

■回答者へ 「ヘルプ嫁」だけではこのスレの存在意義がないような気が・・・。
0008デフォルトの名無しさんNGNG
■ソース置き場

このスレのソース置き場を作ってみました。
このスレに載せきれないソースはここへどうぞ。
○3000行までOKです。
○ソース書き込み時は等幅に設定してください。インデントが使えます。
○激しく長いソースは、同時にソースファイルを添付しておくと(゚Д゚)ウマーです。
○置くのはソースでなくても構いません。
ファイルのアップローダーとしてもどうぞ。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1017673221


以上。
0009Delモナー ◆fPymXWHY NGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. 前スレが埋まるまでは書き込まないで
 (    ) .| (あるいはsage進行にして)ください。
 | | |  \_________________________
 (__)_)
0010デフォルトの名無しさんNGNG
http用のコード書いたのですが動きません。どこが変でしょう?

URL := 'www.yahoo.co.jp';
Port := 80;

var
sock :TSocket;
wsa :TWSAData;
addr :TSockAddrIn;
hostent :PHostEnt;
data :array[0..2048] of char;
begin
WSAStartup(MAKEWORD(1, 1),wsa);

StrCopy(data,'GET index.html HTTP/1.0'#13#10#13#10);

sock := socket(AF_INET,SOCK_STREAM,0);
addr.sin_family := AF_INET;
addr.sin_port := htons(Port);
hostent := gethostbyname(PChar(URL));
addr.sin_addr.S_addr := htons(Port);
connect(sock,addr,Sizeof(addr));
send(sock,data,2048,0);
recv(sock,data,2048,0);

Result := data;
end;

0011仕様書無しさんNGNG
こちらのサイトよりBORLAND製品のキージェネレーターが落とせますので
C++Builder6 Enterprise
JBuilder6 Enterprise
Delphi 6 Enterprise
の各体験版をBORLANDに申し込みまして
シリアルぶっこんでkeygenでオーソライズしちゃいましょう
すべて動作確認済みです
Enterprise以外はkeygenが使えませんので注意してください
※下記サイトに逝く時はなるべくjavaは切った方がいいでしょう

http://www.cracks.am/cracks/b4.html
0012デフォルトの名無しさんNGNG
>>11
規制依頼出して良いんだよね?このバカの。
0013NETマンセーNGNG
>>13
BORLAND糞社員必死だな(W
0014NETマンセーNGNG
BORLANDソフトがへぼいから今回のNET路線についていけず
逝くしかない
0015NETマンセーNGNG
シリアル関係の掲示板はこちらに一覧をまとめてありますのでどうぞ
http://pc.2ch.net/test/read.cgi/prog/1016107892/22
0016デフォルトの名無しさんNGNG
キージェネレーター使ったり、シリアル掲示板いっても、
別に正規ライセンスがもらえるわけじゃないからなあ・・・。
0017デフォルトの名無しさんNGNG
正規ライセンスを合法で無料で手に入れる方法キボンヌ。
0018Delフサギコ ◆zE1iiRdQ NGNG
 ∧,,∧
ミσ゚Д゚ミσ Borlandに入社シル.>>17

確か、エンプラ体験版にはVCLソースついてなかったので
バイナリが別もんだと思うけど
キージェンして使えるようになんのかなー。(動作確認しなくていいよ(藁))

無料で使いたいなら、Personalで十二分だと思われなんだけどな。
0019デフォルトの名無しさんNGNG
トランポリン大好き。
家の中はトランポリンだらけ。
家に帰ると、玄関でホップ。
「ただ〜〜い、まぁ〜〜〜!」
“ま”のところで前方宙返り。
妻が奥からホップしながらやってきて、
「あな〜、た〜、おかえりっっ!!」
“あな”で前宙、“た”で後宙、“えり”で月面宙返り。
(注・妻は国体3位の腕前)
で、その調子でメシを食う。
みそ汁はいつも天井にまき散らす。
食べ終わると、後方伸身二回宙返りでそのまま風呂へ着水。
上がるとそのままベッドへ、文字通りひとっ飛び。
妻とは空中でないと燃えない。
抜けないようにうまくシンクロして飛ぶのが難しい。
寝相は二人とも大人しいほうで、時々天井に頭をぶつける程度。
問題は朝で、「行っ、て〜き、まぁ〜す!」の前方伸身宙返りで
外に出た途端、アスファルトに激突。
入院歴15回。
固いアスファルトなんて大嫌いだ。
0020デフォルトの名無しさんNGNG
>>19
失恋
http://life.2ch.net/break/
0021デフォルトの名無しさんNGNG
俺は過激な恋愛を薦めるが。。
http://love.2ch.net/kageki/
0022デフォルトの名無しさんNGNG
(´-`)。o ○ (このスレ違いなヤツらの存在理由は何?)
0023デフォルトの名無しさんNGNG
MSDNで検索できん。(鬱
0024デフォルトの名無しさんNGNG
>>10
まずい点は幾つもありそうだけど・・・

まず、
GET /index.html HTTP/1.0
または
GET / HTTP/1.0

次に
send()で2048バイト全部送るな。後ろについてるゴミもsendしてる。

それから
recv()も1回にするな。recv()が0を返すまでデータは続くので、繰り返すこと。

根本的に
エラーチェックちゃんとやれ。
0025デフォルトの名無しさんNGNG
addr.sin_addr.S_addr := htons(Port);
なにやってんの。
0026デフォルトの名無しさんNGNG
重複スレが立ったので上げるよ〜
0027デフォルトの名無しさんNGNG
厨房質問ですまんけど、Del6Personalを使ってCGIは作れるの?
VBみたいに標準入出力の扱いに苦労はしない?
0028デフォルトの名無しさんNGNG
>>27
Readln Writelnって言う標準入出力の関数がある。
VBってSTDOUT/IN使うの大変なの?
0029embedder ◆GqCvG9cU NGNG
embeddedwbを前スレでDLした者です。
ちょっとつっかかりましたが、無事インストロ…インストール出来ました。
いいですね!いろいろオフにしてブラウズさせるのが欲しかったので、
とてもイイ!すごく細かく設定出来るみたいだし。
しかし、これって2ちゃんで知ったんだけど、フリーなの?
Readme入ってないし、サイトにはライセンスが見つからない…。
GPLとか、なんか面倒なのはちょっと遠慮したいんだが、御存知の方、いらっしゃいませんか?
0030デフォルトの名無しさんNGNG
>>27
この本がよい。
http://www.ai-pub.co.jp/contents/book/inet/delphi_cgi.html
0031あーあNGNG
クソスレ立てちゃって・・・
0032デフォルトの名無しさんNGNG
batファイルがあるのですが、それを実行することは出来ますか?
0033embedder ◆GqCvG9cU NGNG
あれれ?反応無いな…。embeddedwbって使ってる人少ないのかな?
0034デフォルトの名無しさんNGNG
>>32
command.comの引数として渡してみ?
0035デフォルトの名無しさんNGNG
>>34
どうすれば、command.comを実行することが出来ますか?
CreateProcessとかウワサ聞いたんですけど。
0036デフォルトの名無しさんNGNG
>>33
ソースの最初にFreewareって書いてあるからGPLとかじゃないじゃない?
0037embedder ◆GqCvG9cU NGNG
>>36
あ…本当だ…。今見てみたら書いてあるね。とりあえず、安心…かな?
サンクス!
0038デフォルトの名無しさんNGNG
>>35
ShellExecuteの方が簡単
0039デフォルトの名無しさんNGNG
>33
EmbeddedWBってかちゅも使ってたね、
0040デフォルトの名無しさんNGNG
IndyってFtpServerなコンポーネントはないのかな?
0041デフォルトの名無しさんNGNG
>>40
FTPサーバーコンポーネントって成立するの?
既にアプリケーションな気が・・・。
0042デフォルトの名無しさんNGNG
そういえばそんな気がしますね。Httpがあったからつい。
馬鹿なこと言って申し訳ない。
0043デフォルトの名無しさんNGNG
>>42
いや、書いてから考えたんだけどリクエストに応じて何らかの作業が出来れば便利だね。
このファイルを取得すると現在の時刻の情報を返すとか。
UNIXの/procファイルシステムのようなことができるなと。
0044デフォルトの名無しさんNGNG
>>40
9.0.3BだけどIdFTPServerってのがあったよ。
0045デフォルトの名無しさんNGNG
マウスを動かさない限り、(一定時間が経過しても)消えないヒントを、グリッドのセルごとに表示したいのですが、
OnMouseMoveイベントの中に以下のコードを記述するとヒントが点滅してしまいます。

StringGrid2.Hint:=IntToStr(m)+'月'+IntToStr(d)+'日'
+'('+StringGrid2.Cells[ACol,7]+')'+' '+StringGrid2.Cells[0,ARow];
Application.ActivateHint(ClientToScreen(MousePos));

どのような方法が良いのでしょうか?
0046デフォルトの名無しさんNGNG
>>45
AColとARowが変化しない間はActivateHintを呼ばないとか。
004745NGNG
>>46
それを実行すると、点滅ではなく一定時間で消えます(つまり通常のヒントと同じ)。
ちなみに点滅するのはマウス移動中ではなく、マウス停止中のことです。
OnMouseMoveイベントはマウス移動中のみ発生すると思っていたのですが、
どうやら、移動していなくても、マウスポインターを置いているだけで連続的に発生しているようです。
0048デフォルトの名無しさんNGNG
>>47
自分でTHintWindow使って表示してやれば?
0049デフォルトの名無しさんNGNG
レコードの配列を一括でファイルに保存、読み込みできないでしょうか?
tFileStreamとかをつかってやろうとしているのですがわかりません。
どうか教えてください。
0050デフォルトの名無しさんNGNG
>>49
memcopyでバイトストリームとして書き出す。
0051デフォルトの名無しさんNGNG
>>49
つぅかcomponentStreamとか無かったっけか?
0052デフォルトの名無しさんNGNG
>>49
 デッキマッセ〜
Stream. Write( 配列名 , sizeof(配列名[0])*( High(配列名)+1) )


005349NGNG
早速ありがとうございます。
procedure TForm1.FileSaveAs1Accept(Sender: TObject);
var
ms:TFileStream;
begin
ms:=TFileStream.Create(FileSaveAs1.Dialog.FileName,fmOpenWrite);
ms.Write(ffloor,sizeof(ffloor[0])*high(ffloor)+1);

ms.Free;
end;

procedure TForm1.FileOpen1Accept(Sender: TObject);
var
ms:TFileStream;
begin
ms:=TFileStream.Create(FileOpen1.Dialog.FileName,fmOpenRead);
ms.Read(ffloor,sizeof(ffloor[0])*high(ffloor)+1);
ms.Free;
end;
と、やってみたのですが、何も読み込まれていないようです。
ので、保存がされているかどうかも不明です。
Readの書き方が違うのでしょうか?
0054デフォルトの名無しさんNGNG
まず、 High(xx)+1 は Length(xx) の方が簡単

ms.Write(ffloor,sizeof(ffloor[0])*length(ffloor));

ms.Read(ffloor,sizeof(ffloor[0])*length(ffloor));

次に、ffloor って何? まさかオブジェクトの配列じゃないよね?
005549NGNG
type
TFloor = record
...
end;
type
TForm1
...
private
fFloor:array[0..99,0..99]of TFloor;

です。まさかオブジェクトですか?
0056デフォルトの名無しさんNGNG
ああ 固定長でしかも2次元ですか なら


.Write(ffloor,sizeof(ffloor));

だけでOK
0057デフォルトの名無しさんNGNG
そして 49さんは ゲ開板で RPG作ってる人でしょう? きっと
0058デフォルトの名無しさんNGNG
>>53 ファイルが出来てないんじゃないの? 確認した?

fmCreate で作成した方がいいんじゃないの?
005949NGNG
ハ、ハズカシー!
ファイルを読み込んで「再描画」忘れてました。
すみませんすみません。
fmCleateの方も修正しました。

ちなみにゲーム作ってますが別の人だと思います。
二次配列でフロアつったらバレバレですが。
0060デフォルトの名無しさんNGNG
今まで主にスクリプト系の言語を使ってきて、デバッグは print をところどころに
挟むみたいなことをやっていました。
delphiで効率よくデバッグするにはどうするのが手っ取り早いでしょうか?
0061デフォルトの名無しさんNGNG
>>60 win2Kなら write/writelnで GUIアプリでも コンソールが自動的に出て表示されます
0062デフォルトの名無しさんNGNG
>>60
ShowMessage
0063Delフサギコ ◆zE1iiRdQ NGNG
Professional版以上のDelphiなら
OutputDebugStringというAPI関数を書けば
IDEのイベントログWindowに出力結果が表示されます。

procedure TForm1.Button3Click(Sender: TObject);
begin
 OutputDebugString('OutputDebugStringで文字を出力');
end;

(ス)または

var
 hwndNotepadEdit: HWND;

procedure DebugPrintNotepad( S:string );
var
 hwndNotepad: HWND;
begin
 if not isWindow( hwndNotepadEdit )
 then begin
  hwndNotepad := FindWindow( 'Notepad','無題 - メモ帳' );
  hwndNotepadEdit := FindWindowEx( hwndNotepad,0,'Edit',nil );
 end;
 if not isWindow( hwndNotepadEdit ) then exit;
 SendMessage( hwndNotepadEdit,EM_REPLACESEL,0,LPARAM( PChar( S+#13#10 )));
end;

 ̄ ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \ ∧,,∧
        ミ゚Д゚,,∩
       ⊂;゙   ,ミ ←
 ̄  ̄   ミ゙゙_  ミ〜 ト  ̄  ̄  ̄
       ∪゙ヽ ミ   オ
       /  ∪  \
  /       :    オ
     /    || .   ォ  \
     /     | :   ォ  \
    /       .
           | .   ォ
0064デフォルトの名無しさんNGNG
>>60-03
まぁTMemoでもはっつけて
TMemo.Lines.Add('げぼばべぶぅ〜〜');
みたいにすりゃいいかと。
どんな環境でも使えるし。
0065デフォルトの名無しさんNGNG
なんだかんだで一番簡単なデバッグがprint系関数だという罠。
って言うかDelphiってAlertなかったっけ?
0066デフォルトの名無しさんNGNG
>>65
assertだ。。。
0067Delフサギコ ◆zE1iiRdQ NGNG
  ∧,,∧    /TMemoは(うそはうそであると見抜けない人でないと)
  ミ ゚Д゚ミっ < 描画関係や起動終了時のデバッグには
  |''U ̄|   \使うのは難しい
  | ̄ ̄|
 /    ゙ヽ
(   ゚Д゚  )
人____ノ
0068デフォルトの名無しさんNGNG
>>67
いや、そらそうや。。。。
0069デフォルトの名無しさんNGNG
>>67
テンプレを理解していない人には
(テンプレを使うのは)難しい
0070Delフサギコ ◆zE1iiRdQ NGNG
      ∧,,∧ ワナワナ
     ミ#,゚Д゚彡   
      ミ つ ミつ
    @ミ   ミ
     ∪ ∪  セッセッセ...セイカイ!>>69

  教えてたも。
007160NGNG
printデバッグの質問をしたものです。みなさんいろいろとありがとうございます。
デバッガはやっぱり面倒なんですよ。
ところで assert ってあるんですか?
0072デフォルトの名無しさんNGNG
>>71
あるYO!調べろよ!!
0073デフォルトの名無しさんNGNG
GUIアプリでも コンソール出して writeするのがデバックは一番簡単だと思うけど?
手間いらないし、write(変数) だけで文字でも数字でも適当にダンプするし
0074デフォルトの名無しさんNGNG
もしかして、やり方知らないのかな?

最初からコンソール出しておきたいなら
 GUIアプリでも {$APPTYPE CONSOLE} を どこでも書けばいいだけ
 (.DPRでもいいし テストしたいユニットでもいい)

コンソールをその時だけ出したいなら AllocConsole; を writeの直前で呼ぶ
0075デフォルトの名無しさんNGNG
なあ、Del6のTControlにはマウスホイール関係のイベント(OnMouseWheel)があるけど、

なんでパレットから使えるコントロールにはこれらのイベントがPublishedになっていないの?
0076デフォルトの名無しさんNGNG
TMainMenuでメニューを追加して、NAMEの中身が長い文字になるとプログラム終了時に落ちるみたいだが?
再現しますか?

俺の環境
WindowsXP (HOME)
Delphi6 pro
0077デフォルトの名無しさんNGNG
>>76
ごめん、再現しませんでした。 WinXP D6pro(upd2)
0078デフォルトの名無しさんNGNG
(´-`).。oO(浮動小数でmodやdivりたいときはどうすればいいんだろう……)
0079デフォルトの名無しさんNGNG
>>78
/
0080デフォルトの名無しさんNGNG
>>78
SSE
0081デフォルトの名無しさんNGNG
割算をした後、切り捨て
0082デフォルトの名無しさんNGNG
roundとかで丸めてから・・・は、負け?
0083デフォルトの名無しさんNGNG
C#で作ったアプリをDelphiに移植しようとしてるのですが、Delphiの方ができないことだらけです。
どうすればよいでしょうか?
0084デフォルトの名無しさんNGNG
>>83
>Delphiの方ができないことだらけです。

具体的に。説明のしようがない。
0085デフォルトの名無しさんNGNG
Object Pascalの言語についての質問ですが、
Pascal にはインライン関数とかないのでしょうか?
もしございましたら簡単な例と一緒に張ってくれるとありがたいです…
0086デフォルトの名無しさんNGNG
>>85
軽く調べたけどやっぱりないみたい。
そんな速度的にシビアなプログラム書いてるの?
0087デフォルトの名無しさんNGNG
>>75
デフォルトで親にメッセージをまわして、最後にフォームで受けとれるから。
0088デフォルトの名無しさんNGNG
>>83
おまえが無能だから
0089デフォルトの名無しさんNGNG
>>88
煽りはスピードと正確さが命。
0090デフォルトの名無しさんNGNG
僕の周りのDelphi使いがみんなC#に移行してしまってるのですが、皆さんはいつ移行しますか?
0091デフォルトの名無しさんNGNG
>>90
明日にでも。
文法の勉強は終わった。後は買うのみ。
今作ってるクラスライブラリの移植から始めるか。
0092デフォルトの名無しさんNGNG
いいね・・・買えるんだ・・・
    ∧_∧
    /⌒ヽ )
   i三 ∪
    |三 |
   (/~∪
0093デフォルトの名無しさんNGNG
>>92
それが問題なのよ。
流行るかわからない技術に\13000出すの。
今回単品のアカデミックないでしょ?
じゃあ、WinXPが付いて\23000のアカデミックVSの方がお買い得。
でも、C++はともかくVBはいらないしなぁ・・・。

悩み死にしそうです。
0094デフォルトの名無しさんNGNG
Del厨って貧乏人が多いんだね。
VS.NETの最上位エディションに25万払ったって3日で元が取れるのに。
0095デフォルトの名無しさんNGNG
>>94
>VS.NETの最上位エディションに25万払ったって3日で元が取れるのに。

論拠無き発言はネタですよ。
0096デフォルトの名無しさんNGNG
さっきからDelスレにいる、ただの煽りでしょ。
0097デフォルトの名無しさんNGNG
>>95
VS.NETを使って得られる知識・感動が25万円に相当するという意味です。
0098デフォルトの名無しさんNGNG
>>96
了解。
ふぅ、どっちにしようかなぁ〜。
いっそSDK + 自前でIDEもどき書くか・・・。
0099デフォルトの名無しさんNGNG
ああ・・・貧乏人って煽られた・・・
    ∧_∧
    /⌒ヽ )
   i三 ∪
    |三 |
   (/~∪
0100真・貧乏人NGNG
>>99
気にすんな。オレなんかwin95だ(藁
環境すら手に入らん。
いいんだ。win95は偉大なOSだ(藁
0101デフォルトの名無しさんNGNG
漏れは雑誌の体験版で触ってみる予定。
ただ、C#の本軽く立ち読みしたくらいだから、結局インストロールして終わりそうな罠。
0102デフォルトの名無しさんNGNG
>>101
収録まで後7日。
それを見て判断したいけど待ちきれない+出費\1000プラス。

ああ・・・迷い死ぬ・・・。
0103デフォルトの名無しさんNGNG
今すぐWindowsUpdateに行けば.NETの環境(コンパイラつき)が手に入るじゃん。
0104デフォルトの名無しさんNGNG
体験版出るのか。漏れもさわってみよう。
0105デフォルトの名無しさんNGNG
また一人Delphi使いがC#に移行する( ̄ー ̄)ニヤリッ
0106デフォルトの名無しさんNGNG
では、ここはC#質問スレに模様替えしましょう。
0107デフォルトの名無しさんNGNG
Delphiの質問はこちらへ。
http://pc.2ch.net/test/read.cgi/tech/1021262086/l50
0108いっそ貧乏人NGNG
>>100
気にするな俺なんか、K6-200MHzマシンでしかもLinuxFTP版でFreePascal使ってるし。
0109デフォルトの名無しさんNGNG
なんか、Del厨がC#の乗り換えたとか、寝返ったとかホザイてるアホがいるみたいだが、
何?言語が全て?しょーもない物しか作れない奴に限って言語に執着があるのは経験
から知っているが、DelphiもC#も全て使えてナンボだろ、それとも、今までDelphiだけで
仕事をしてこれるほど今まで楽な仕事しかしてなかったか?
それに、Delphiでないと組めないようなプログラムは、.NETのC#だと組めないし、
お遊びプログラムでもDirectX関連のサポートがイマイチなC#よりもVC使う方が楽だろ、
C#がそんなに嬉しいか?、
最終的には開発環境は手段でしかないので、良いシステム・良いアプリケーションを組む
事に専念した方がいい。>最近騒いでるコーダ連中
0110デフォルトの名無しさんNGNG
俺は、道具は一つ使えりゃいいんだから、複数勉強する時間があるなら、使い方じゃなくて原理を勉強しろよ
・・・と言いたいな。 使い方知ってるだけなら、ワードの使い方知ってるのと変わらないぞ。

実際はプログラミングの理論よりもさらに業務知識の方がもっと大切。
それぞれの分野で資格取れるくらいに勉強しとけよ。
0111デフォルトの名無しさんNGNG
>>110
使い方覚えるだけで、プログラム作れるのが近代言語なんだよ!
0112デフォルトの名無しさんNGNG
正直に言えよ。 新しい事が頭に入らなくなったんだろ?

Delだって使い方覚えるだけで書けるのは同じじゃないか
0113デフォルトの名無しさんNGNG
とりあえずスレ違いだから
C# vs Delphi スレたててやってちょ。
0114デフォルトの名無しさんNGNG
みんな仕事で使ってるのか、凄いなぁ。
0115デフォルトの名無しさんNGNG
煽ってるのは元Del厨、煽りに乗るのが現役Del厨。
真性.NET厨を巻き込まないでくれ。
0116デフォルトの名無しさんNGNG
ガキは(・∀・)カエレ!
二度と(・∀・)クルナ!
0117デフォルトの名無しさんNGNG
プログラミング言語を習得するのって個人差はあるにせよそれなりに大変で、
すべての言語のスペシャリストにはなるのには無理がある。
だから自分が習得している or 習得しようとしている言語が優れていると「思い
たい」。
ところが自分が思ってるだけだといまいち確信が持てないから、こういう所で
話題に出して白黒つけたがる。自分の贔屓の言語の優位性をアピールして
自分の選択が間違っていないと安心したい。

プログラミング言語に限らず、OSやWebブラウザなんかでも同じ種類の現象
があちこちのスレで確認できる。それだけの話。
0118デフォルトの名無しさんNGNG
そもそもこういうくだらない言い合いの元を作ってるのは他スレを荒らしてる
自称Delphi使いであることをお忘れなく。
0119デフォルトの名無しさんNGNG
ガキは(・∀・)カエレ!
二度と(・∀・)クルナ!
(当然他スレを荒らしてる自称Delphi使いも含まれる)
012085NGNG
85です。遅レスごめんなさい。
>>86さん
いや、そんなことは全然ないです。
もしあったら(必要なときに)使いたいなぁ…と思っていただけです。

また質問ですが、現在kylix使ってテキストエディタを製作しているのですが、
ttp://www.w-frontier.com/delphi/3_edit.html
↑を参考にUndo、Redoを実装しようとしたところ、どうやらKylixではこのような
方法は使えない模様です。
Win32 APIを使わずに実装するにはどのようにすればよろしいでしょうか?
お願いいたします。

#Linux上で使用可能なコンポーネントを配布しているサイトってどこかないんですかね?
#Vectorにまで見に行ったけどKylix用のが一個もない模様で鬱…
#ttp://www.amazon.co.jp/exec/obidos/ASIN/4797316748/qid=1021537883/sr=1-1/ref=sr_1_2_1/250-6315126-4570612
#↑の本を立ち読みした所、Linux自体の機能を使えばいろいろできる模様。
#Linux最近はじめたばっかりで詳しくないんだよなぁ…(泣
0121embedder ◆GqCvG9cU NGNG
えー、embeddedwbコンポーネントを入手していろいろいじくってる者です。
感想キボンヌって人がいたと思ったので、感想です。
なかなかいい感じなんだけど、一つ疑問が浮上。
なぜか、テキストなのに「文字化け」するものがあります。もちろんエンコードを適切にすれば
直りますが、なんでテキストで…?HTMLでも化けるのと化けないのがある。
もともとIE5.5が化けがちだから「こんなもんかな?」と思ってるけど、
テキストは…ハテ?
0122デフォルトの名無しさんNGNG
>>121
EmbeddedWD使ったことないけど、エンコードの自動選択?
勘でモノを言っているのでsage
0123デフォルトの名無しさんNGNG
%2dのわからない君にこそ、倉薫をお薦めだ!
0124123NGNG
思いっきり誤爆です、ごめん。
0125デフォルトの名無しさんNGNG
>>121
HTMLでエンコードを指定して書けばいいじゃん。
0126embedder ◆GqCvG9cU NGNG
>>122
いや、自動選択は自動選択でいいんだけど、そんなの関係ない「素のテキスト
ファイル」が化けるのよ(^^;。
まぁ、テキストなんて表示させなきゃいいってことかな?
でも、全部じゃないんだよなぁ。割合はすごく少ないけど…。不思議だなぁ…?
0127デフォルトの名無しさんNGNG
とりあえず、VBAがポンコツなのは満場一致だろ?
0128 ◆erCLtHyE NGNG
IncludeTrailingBackslashと、
ExcludeTrailingPathDelimiterのソースを教えてください。
Delphi4では何故か存在しないのです…。
0129デフォルトの名無しさんNGNG
>>128
素直にアップデートしなよ
0130デフォルトの名無しさんNGNG
>>126
むむ。ずっと使ってるけどバケたことは無いなー。
そのテキストをどっかにウプするかはっつけてくれよん。
0131デフォルトの名無しさんNGNG

Delphi 6 動作環境
OS Windows 98/Me/2000/NT4(SP5)
CPU Intel Pentium/166(推奨Pentium II/400以上)
メモリ 64MB(推奨128MB)のメモリ
HDD 120 MB 以上の空き容量
その他 CD-ROM ドライブ
マウスなどのポインティングデバイス
とあるんですがWIN95やXPでは動かないのですか?
0132 NGNG
たとえばshowmessageとか命令文あるじゃないですか。
これって一覧表みたいなのはないんですか?
他にどんな命令ができるかが知りたいんです。
「初めてのプログラミング入門」って本買ったんだけど、
載ってないんです。
0133デフォルトの名無しさんNGNG
>>132
オンラインヘルプ
0134132NGNG
>>133
ヘルプもさがしてるんですが、見つからないんです。
一覧表みたいなのがのってるんでしょうか?
0135デフォルトの名無しさんNGNG
>>134 VCL リファレンスヘルプというのがあります
0136132NGNG
>>133 >>135
ありました!!
ありがとうございました。
さっそくどんなのがあるか研究してみます。
0137デフォルトの名無しさんNGNG
ツールチップヘルプをAPIかなんかで意図的に表示させる方法ある?
0138デフォルトの名無しさんNGNG
あるよ
0139デフォルトの名無しさんNGNG
ポインタ型とかポインタ関連の使いどきが
よくわからんのですが、どんなとき使うんですか?
0140デフォルトの名無しさんNGNG
気がむいたとき
0141デフォルトの名無しさんNGNG
ええと、色んなコードを見て勉強しましょう >>139

確かに、DelphiはCに比べるとポインタを使わなければならない場面は少ないです。
ただ WaveOut系のAPI で音を合成して鳴らすとか VCLにない細かな事をやりたくなると必要になってきます
0142デフォルトの名無しさんNGNG
>>138
具体的な方法を言ってみな、ほれ(プッ

>>139
1.ポインタを要求するAPIを使うとき
  文字列やレコード型(構造体)を扱うAPIに要求される

2.動的変数を扱うとき
  たとえば、TListItem(TListViewの各々の項目を表すオブジェクト)には、
  Data(Pointer型)というプロパティがあるが、これにListItemに関連があるデータのポインタを割り当てれば、
  データの管理がやりやすくなる。

3.ていうかポインタがないとどうしても実現できないアルゴリズムも結構あるよ(線形リストとか)
0143139NGNG
>>140
わからないから気がむかない・・・
>>141>>142
サンクスコです。
使う場面は少ないけど、使わなきゃならない場面は出てくるのですね。
何故、直接じゃなくてポインタを介して操作しなければならないのか
未だよくわかってないですが、いろんなコード見て勉強してみます。


0144デフォルトの名無しさんNGNG
>>142
 クラス型を使えば リストも見かけポインタ使わずに書けるよ
0145デフォルトの名無しさんNGNG
ポインタ使わなくては使えないアルゴリズムなんてないでしょう。
0146デフォルトの名無しさんNGNG
>>142
煽り方があまりに哀れだから教えてあげよう
THintWindow使うんだよ、わかった?
もっと詳しく書いたほうがいいのかな・・・
0147デフォルトの名無しさんNGNG
?WM_NOTIFY(TTN_SHOW) を送るという話ではないのか???

THintWindowでヒントみたいなのを開きたいだけかい?
0148Delモナーはどこへ消えたNGNG
なんかここ、回答者に向いてない人いないか?

質問者を舌先三寸でやり込めて得意げになってるの。
0149デフォルトの名無しさんNGNG
(;´A`)ヤサシインダヨネ…
0150デフォルトの名無しさんNGNG
いやだから >>137 のような質問だと具体的に何をどうしたいか判らないんだよ

自分のアプリの Application . Hintを強制的に表示したいのか?
 これは Windowsの提供するツールチップコントロールではない。
 それに似せた独自のもの

それとも、OpenDialogのようなDelphiの管理化にないヒントを無理やり表示させたいのか
0151デフォルトの名無しさんNGNG
ところで、話は変わるが…
なんか、コード書いてて、動作がおかしい気がしたんで調べてみた。

Del5(Pro)で作ったアプリはそのままじゃXPで使っても
ボタンとかがXPのスタイルにならない。
で、コレ↓なんかでXPスタイルにする「*.manifest」を書いたんだが、
ttp://www.forest.impress.co.jp/article/2001/11/09/xpstyleapply.html

そーすると、ListBoxの一行に使える文字数が、かなり減ったぞ。
長いから画面には入り切らんが、Length()で調べたら、
本来、半角4000文字くらいまで扱えるはずが、半角1000文字あたりまで。
ファイルに保存してみたら、変な文字で終わってるし。

これ、他の環境でも再現するんか?
だとしたら今作ってるソフトには注意書きをせねばならんが…。
0152デフォルトの名無しさんNGNG
>>151
ユニコードとかね。

そもそもListBOXに1000文字以上つっこむ(略
0153128NGNG
>>129
 アップデートファイルですか?
バージョンアップですか?
0154128NGNG
ageてしまった…。
スマソ
0155デフォルトの名無しさんNGNG
delphi6のsampleにあるエクスプローラのようなフォルダ選択
コンポーネントをdelphi5で使えるようにする方法を教えてください
0156デフォルトの名無しさんNGNG
>>155

Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

このスレの35の関数を呼び出してみて下さい
0157151NGNG
>>152 サンクス。
1000文字=1000バイトだったら、全角だと500文字になって、
ちょっと改行しないで書いたテキストを読み込んだら
越えちまうなあと思っていたんだ。
俺は大丈夫でも、ユーザーも開かないとは限らんし。

で、言われて改めて調べてみたら、確かにユニコードっぽいところはある。
半角だけで1000文字ちょいだが、半角全角入り乱れても1000文字ちょいだった。
ただ、ユニコードって確か2バイト文字だから、
本来4000書けるなら2000くらい書けていいと思うんだよなあ。
全角ばかりなら2000文字まで行くし…。

まあ、結局は気を付けて作るしかないってことか。
ユーザーにも一応注意して使うように書くよ。
0158デフォルトの名無しさんNGNG
TListBoxのItemIndexプロパティが変更されたときに
発生するイベントがほしいので、コンポーネントを作った
のですが、実際に動かしてみると、うまく動きません。
どこが間違っているのでしょうか?

ItemIndexが変更されたときというのは、プログラムで
ListBox1.ItemIndex := 1;
とした場合と、ユーザーがクリックするなり、ListBoxに
フォーカスがあるときに矢印キーを押すなりしたときの
両方の場合です。

Delphi6 Personalです


以下ソースコードの抜粋です

TListBoxEx = class(TListBox)
private
FOnChangeItemIndex: TNotifyEvent;
protected
procedure SetItemIndex(const Value: Integer); override;
published
property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


procedure TListBoxEx.SetItemIndex(const Value: Integer);
begin
inherited;
OnChangeItemIndex(Self);
end;

0159デフォルトの名無しさんNGNG
すみません。インデント忘れました。

TListBoxEx = class(TListBox)
 private
  FOnChangeItemIndex: TNotifyEvent;
 protected
  procedure SetItemIndex(const Value: Integer); override;
 published
  property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


procedure TListBoxEx.SetItemIndex(const Value: Integer);
begin
 inherited;
 OnChangeItemIndex(Self);
end;
0160デフォルトの名無しさんNGNG
>>158
チミのプログラムには欠陥が2つある。

一つは、リストボックスの選択項目の変更を補足し切れていないこと。
SetItemIndexをオーバーライドしても、プログラム内部からItemIndexをいじったときにしか拾えない。
最低でもWM_COMMANDとLB_SETCURSELというメッセージを拾わなければならないはず。

もう一つはOnChangeItemIndexイベントに手続きが割り当てられていない時を考慮していない
実行すると100%エラー

しかし、その目的のためだけなら、目的の処理を記述した関数を作って、
OnClickイベント内と、ItemIndexを変更するコードの直後に
その処理関数を呼び出た方が手間食わずに良いと思われるが。


まあ、とりえあえずヘルプ読んで出直しなさいってこった
0161デフォルトの名無しさんNGNG
こった
0162デフォルトの名無しさんNGNG
>>159

type
TListBoxEx = class(TListBox)
private
FOnChangeItemIndex: TNotifyEvent;
public
procedure CNCommand(var Msg:TWMCommand);message CN_COMMAND;
procedure LBSetCaretIndex(var Msg:TMessage);message LB_SETCARETINDEX;
procedure LBSetCurSel(var Msg:TMessage);message LB_SETCURSEL;
published
property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


{ TListBoxEx }

procedure TListBoxEx.CNCommand(var Msg: TWMCommand);
begin
inherited;
case Msg.NotifyCode of
LBN_SELCHANGE:
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;
end;

procedure TListBoxEx.LBSetCaretIndex(var Msg: TMessage);
begin
inherited;
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;

procedure TListBoxEx.LBSetCurSel(var Msg: TMessage);
begin
inherited;
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;
0163163NGNG
s := 'ABCDEFG';
SetLength(s, Length(s)-1);
とやった場合、自動的にsの末尾の文字はメモリ上から解放されるのでしょうか?
0164デフォルトの名無しさんNGNG
>>163 解放されるより#0で埋められると思います
0165163NGNG
>>164
 ということは、メモリ上の値は
ABCDEF#0#0になるということですか?
0166デフォルトの名無しさんNGNG
>>165
 場合によっては末尾の#0は解放されるかもしれません されないかもしれません
0167デフォルトの名無しさんNGNG
delphiXってdelphi6では使えないのね...ショック

0168delphi6personalNGNG
VCL使いまくりなんでFormの上がごちゃごちゃになってます。
新しいFormを作った方がいいんでしょうか?
ただ、一つ増やすだけで実行ファイルの大きさがほぼ2倍に…。
やはり動作が軽い方がうれしいんですが。
0169デフォルトの名無しさんNGNG
  |-□□-| フムフム
   \ - /
0170デフォルトの名無しさんNGNG
>>168
男ならコンソール。
0171デフォルトの名無しさんNGNG
UPXで、あっしく
0172デフォルトの名無しさんNGNG
あんまり沢山 WinContrl載せると Win98とかリソース不足で困った事になるよ
0173デフォルトの名無しさんNGNG
>>168
>一つ増やすだけで実行ファイルの大きさがほぼ2倍に…。

こういうことはありえません。

0174デフォルトの名無しさんNGNG
音量コントロールのダイアログをプログラムから開くにはどうしたらいいですか?
0175デフォルトの名無しさんNGNG
>>168
>VCL使いまくりなんでFormの上がごちゃごちゃになってます。

VCL は Delphi ひとつにひとつしかありません。
0176デフォルトの名無しさんNGNG
>171
>UPXで、あっしく

これをすると何が楽しいのでしょう?
0177デフォルトの名無しさんNGNG
>>163
>s := 'ABCDEFG';
>SetLength(s, Length(s)-1);
>とやった場合、自動的にsの末尾の文字はメモリ上から解放されるのでしょうか?

おもしろい質問だね。「そうじゃない」という答えがあったらどうするつもり
なんだろうね。
0178デフォルトの名無しさんNGNG
質問です。お願いします。

本についてるサンプルコードの「書込み禁止」を解除したいのですが、できません。
右クリックで出るヤツのチェックをはずしてもダメでした。
どのようにすればいいですか?
0179デフォルトの名無しさんNGNG
>>178
それ以上の方法はない。
CD-ROMのファイルとか言ったら殴る。
0180デフォルトの名無しさんNGNG
 AssignFile(f, 'C:\test.tmp');
Reset(f);
for i := 0 to c do
BlockWrite(f, Data[i]);
という感じにしたとき、Closeするまでファイルに書き込まれる全データは
メモリ上に確保されているのですか?
0181この話題は散々既出だがNGNG
>>176
圧縮率とかによって違うかも知れないが、1MB程に膨らんだアプリが
やはりモノ次第ではあるが約300K程度に縮んで、
アプリの起動が速くなることがある。

あとネットワークでプログラムを配布したいとき、
FD等の低速少容量メディアで常用したいときも、
結構(゚д゚)ウマーになれる。

要は目的次第で使うか使わないか決めればいいだけ。
馬鹿の一つ覚えのように全部のプログラムにやる必要はない。
0182デフォルトの名無しさんNGNG
>>179
、、、なんというか、、申し訳ありません、、。できました。

>右クリックで出るヤツのチェックをはずしても
エディタ上でこれをやってました。(コンパイルもセーブも不可)

Delの外からフォルダ内の全部のヤツの「読み取り専用」のチェックをはずしたらできました。

約1日のどツボでした、、。ありがとうございました。
0183デフォルトの名無しさんNGNG
>>174
直接APIを叩くか sndvol32.exe を実行。
/R オプションとか付けて実行すると録音ボリュームが出せるよん。
0184168NGNG
で、Formは1つがいいのですか?2つがいいのですか?
0185デフォルトの名無しさんNGNG
>184
ひとりより、ふたりがいい♪
 ふたりより、さんにんがいい〜♪
0186174NGNG
>183
サンクス!助かりました。

0187デフォルトの名無しさんNGNG
>>185
サンバルカンかよ!!
0188デフォルトの名無しさんNGNG
>>185
Hですか?
0189デフォルトの名無しさんNGNG
>>187 正解
>>188 ひとしくん人形没収
0190デフォルトの名無しさんNGNG
1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください
0191デフォルトの名無しさんNGNG
>>190
いい加減にしな。
0192168NGNG
いや、ネタではなく
>>184
0193デフォルトの名無しさんNGNG
>>192
一重積んでは母のため・・・
 二重積んでは父のため・・・
0194デフォルトの名無しさんNGNG
>>168
場合によりけり。これだけの情報ではなんともいえん。
ただ2つにするなら、2つ目は自動作成の対象から外しとけよ。
0195168NGNG
>194
thx!
0196デフォルトの名無しさんNGNG
存在するファイルのサイズを調べるにはどうしたらよいでしょうか?
FileSizeを使用すると、開かなければならないし、テキストファイルはできないみたいだし。
0197デフォルトの名無しさんNGNG
>>196
APIにないか?
0198196NGNG
>>197
自己レス
解決しました。
TSearchFile.Sizeで取得できました。
0199デフォルトの名無しさんNGNG
for文の繰り返しの中でtry ...except でエラー処理を行ってるのですが、
繰り返し中にエラーが出た場合、エラー処理後次の繰り返しの処理を
行ってほしいのですがどうすればいいでしょうか?
try
for i:=0 to count-1 do
listview.Items.Item[i].SubItems.Add(strName[i]);
except
on EOLeException do begin
lstFile.Items.Item[i].SubItems.Add('エラー');
statusbar.Panels[0].Text:='エラーです');
//ここで次の繰り返しに処理が戻ってほしいです
end
end;
0200デフォルトの名無しさんNGNG
tryの位置が間違ってない?
0201デフォルトの名無しさんNGNG
>>199
for i:=0 to count-1 do
 try
  listview.Items.Item[i].SubItems.Add(strName[i]);
 except
  on EOLeException do begin
   lstFile.Items.Item[i].SubItems.Add('エラー');
   statusbar.Panels[0].Text:='エラーです');
  end
 end
0202デフォルトの名無しさんNGNG
>>199
forの中にtry入れれば動きそうな・・・。
0203デフォルトの名無しさんNGNG
>>199
何故そのような複雑怪奇なブロック構造…はどうでもいいが、

単にforループの中にtry〜exceptを記述したらだめなの?
0204デフォルトの名無しさんNGNG
二分の間に4つもレスが付くとは…
0205デフォルトの名無しさんNGNG
逆四面楚歌です。
0206真人間NGNG
あの、でるふぁいは結構覚えやすくて
いいと聞いたんでこれからフリー版で
始めてみようかなとおもっとるんですが。

ちょっとした簡単なソフトを作成するぐらい
だとして、開発環境にはデルファイ本体含めてどれくらいの
容量を必要としますか?

HDDが残り6Gなので心配ですです。
あと、でるふぁいをインストールしたことで
なにかしら問題がおこったり、アンインストールが
大変だったりしませんか?
よろしくお願いします。


0207デフォルトの名無しさんNGNG
>>206
ネタですよね。
0208デフォルトの名無しさんNGNG
>>206
ダウンロードページにも行かないで真人間とか言われても困る。
それくらいの実験も出来ないで〃
0209デフォルトの名無しさんNGNG
VBと比べて起動がかなり重いとだけ言っておいてやろう
0210デフォルトの名無しさんNGNG
>>209
そう言えば女神様の顔結構長時間見てた記憶が・・・。
BCBよりは有機質的で好きだけど。

起動後はさくさくだけどね。
0211デフォルトの名無しさんNGNG
VBと比べてもコンパイルがかなり速いとだけ言っておいてやろう
0212デフォルトの名無しさんNGNG
>>211
そう言えばVB、コンパイル中のプログレス結構長時間見てた記憶が・・・。
VCよりは早くて好きだけど。

コンパイル後はバグバグだけどね。
0213デフォルトの名無しさんNGNG
Win2K RC2 にサービスパックあててる場合、
インストールできないという罠。
0214デフォルトの名無しさんNGNG
しかし、そんな奴はめったにいない罠
0215デフォルトの名無しさんNGNG
>>213
つぅか未だにRC使ってるってタイーホ。
0216デフォルトの名無しさんNGNG
RCが分からなくってとりあえず笑ってる >>206
0217デフォルトの名無しさんNGNG
ListBoxのOnMeasureItemでHeightに256以上を入れると
表示がおかしくなるのですが(256を越えると0に戻るっぽい)
1つのセル(?)の高さを256ピクセル以上にする方法は
無いもんでしょうか?
0218真人間NGNG
みなさんどうも。
コンパイルが早いとかはもう調べてありますし、
ボーランドのサイトにもいって落としそうにもなりました。
聞きたいのは、でるふぁいの本体のサイズとかじゃなくて
なにかしら小規模なアプリを作成出来るような環境にするには
どれくらいのスペースが必要ですかということなんでし。

本体展開すればそれであとは必要ないんでしょか?

ねたじゃないでう。
0219デフォルトの名無しさんNGNG
Windowsの制限じゃないの?
DrawGridかなんか使うしかないんかな。
0220デフォルトの名無しさんNGNG
>>218
6GBありゃ十分、
開発するシステムの規模によるが、小規模アプリなら
ひとつで bin / src あわせても 10MB ぐらいじゃないの。
0221デフォルトの名無しさんNGNG
6G空いていて何が心配なんだろう…
CD3枚入れたとしても半分も埋まらないのに…
0222デフォルトの名無しさんNGNG
>>220
Delphiで10MBは中規模かと。
日曜プログラマとしては。
0223デフォルトの名無しさんNGNG
10MBは、なかなか行かんなー
0224デフォルトの名無しさんNGNG
営業にはふっかけるタイプなんで。
0225真人間NGNG
そうですか。つまり、デルファイ本体以外には特に必要ないということですね。
いやー、mpgは容量食うんで、いま6Gでもそのうちなくなっちまうんじゃ
ないかと。
そろそろCDRに焼きたいんですが、自分家にはないもんでなかなか・・・。
どうもでした。
まずはHSPから始めてみようと思います。
0226デフォルトの名無しさんNGNG
素晴らしいオチだ。
0227デフォルトの名無しさんNGNG
>>225
HNからしてネタ
0228デフォルトの名無しさんNGNG
>>225
どうでもいいけどあなたは誤った道を選択したと言っておく。
あくまで俺の価値観だから気にしなくても良いよ。
0229デフォルトの名無しさんNGNG
あの、真人間は結構覚えが早くて
いいヤツと聞いたんでこれからメルトモとして
付き合い始めてみようかなとおもっとるんですが。
0230真人間NGNG
ネタでオブラートしたマジな質問でした。
本当にアリガトウございました。独女板にかえります。
0231デフォルトの名無しさんNGNG
お花畑住人によろしくつたえといて。
0232デフォルトの名無しさんNGNG
いっぱい釣れた
0233デフォルトの名無しさんNGNG
キャッチ&リリースでお願いします
0234デフォルトの名無しさんNGNG
あの子のハートをキャッチ&リリース
0235デフォルトの名無しさんNGNG
あの子のハートをアロック&デリート
0236デフォルトNGNG
あの子のハートをトライ&キャッチ
0237デフォルトの名無しさんNGNG
つまんない人間だね。
0238199NGNG
200さん201さん202さん203さん 遅くなりましたがレス有難うございます
エラーが出たらtryから抜けるのでfor文の中に入れればいいのですね
ひとつ賢くなりました。

0239デフォルトの名無しさんNGNG
あの子のハートをK&R
0240デフォルトの名無しさんNGNG
オマエモナー
0241デフォルトの名無しさんNGNG
人間じゃなかったよ
0242デフォルトの名無しさんNGNG
あーあ
0243デフォルトの名無しさんNGNG
imagingのimgEditのscrollpositionについて教えてください
画像を表示させて画像をマウスで選択したら、選択したところを拡大
するようにしたいので、まずmousedownイベント時にX座標とY座標を
記憶させ、mouseupイベントでマウスボタンを離した場所のX,Y座標から
選択範囲を計算させintX:=abs(startX-X);intY:=abs(startY-Y);
perX:=imgEdit.Width / intX;perY:=imgEdit.Height / intY;
imgEdit.zoom:=(min(perX,perY))*100;
というふうに拡大率を出し、(startX,startY:選択開始位置)
imgEdit.ScrollPositionX:=startX;imgEdit.ScrollPositionY:=startY;
と画像を表示する場所を指定してあげても指定した位置に表示されません
どうかお願いします
0244デフォルトの名無しさんNGNG
=== [ ▼PR ] =========================================================
獲得ページにて毎日ポイント獲得!広告すると毎日のポイント増えるかも!?
http://www.fkfk.net/PrPointMail/PointMail.ASP?WCI=Home&WCE=125176
======================================================== [ ▲PR ] ====

銭欲しいか?
0245デフォルトの名無しさんNGNG
( ゚д゚)ホスィです
0246デフォルトの名無しさんNGNG
>>167
過去ログぐらいみやがれよ、散々がいしゅつだが使えます。
ちっとはweb検索しやがっていただきたく思う所存にございます。
0247246NGNG
これだけだとアレなんで
http://turbo.gamedev.net/delphixd6.asp
ホレ。
0248217NGNG
>>219
レスありがとうございます。
Gridとは盲点でした。
ちょっとやってみたらGridなら高さ1000にしても問題無いみたいです。
0249デフォルトの名無しさんNGNG
「俺が作ったコンポーネントを2ちゃん住人が試し斬りするスレ」
を作っていい?

いや、別スレ立ててまでやる必要はないとは思うが、
こういう事やっていいスレはどこかにないか?と。
0250デフォルトの名無しさんNGNG
Delスレ立てすぎると風当たりが強くなるぜ。
とりあえず、相談室あたりでネタが続くかどうかやってみてからでも遅くないのでは?
0251デフォルトの名無しさんNGNG
D6にて、動的にフレームを生成してフォームに貼り付けたいのですが、
フォームが閉じられた時にparentで指定したオブジェクトが開放されると
動的に生成したオブジェクトも開放されるのでしょうか?

それとも FormのDestroyあたりで、明示的に開放しないと駄目でしょうか?

こんな感じでやってます、

procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
  for i:=1 to 99 do
  begin
    Frame[i]:=TFrameDenBody.Create(Self);
    Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成
    Frame[i].Visible:=True;
    Frame[i].Name:='iFrame'+IntToStr(i);
    Frame[i].AutoSize:=True;
    Frame[i].Top:=(Frame[i].Height*(i-1));
 end;

あと、実際開放されているか否かを確認する方法ってパフォーマンス
モニタで確認するのでしょうか?それとも何か良いツールがありますか?
あれば教えて下さい。
0252デフォルトの名無しさんNGNG
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
  for i:=1 to 99 do
  begin
    Frame[i]:=TFrameDenBody.Create(Self);
なんでこんなのをうつと
プログラムになって
pcがうごくのかよくわからん
0253251NGNG
>>252
すみません、よく理解できないのですが、
Create(Application)じゃないとって意味でしょうか?
0254デフォルトの名無しさんNGNG
1、Parentを指定すれば、もちろんその親が解放される時に一緒に解放される

2、解放されたかどうかを見たいなら、

type TFrameDenBodyExt=class(TFrameDenBody)
public
destructor Destroy; override;
end;

として destructor TFrameDenBodyExt.Destroy; でログに吐いてみたら?

例えば
destructor TFrameDenBodyExt.Destroy;
begin
AllocConsole; writeln(Name);
inherited;
endl;
とか

もちろん 作成は
 Frame[i]:=TFrameDenBodyEx.Create(Self);
0255Delフサギコ ◆zE1iiRdQ NGNG
>    Frame[i]:=TFrameDenBody.Create(Self);
>    Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成

FrameのOwnerはSelf=Form1
FrameのParentはScrollBox1

Ownerが破棄されるときには一緒に破棄されるけど
Parentが破棄されても一緒には破棄されんかったと思う。
Parentが破棄されると消えちゃうけど。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    
  ミ,, ゚Д゚彡 
   〃つ旦O
 〜ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄
0256251NGNG
>>254
解放の確認方法まで教えていただき、ありがとうございました。
0257251NGNG
>>255
つまり、Create(Self.ScrollBox1)の方がいいって事でしょうか?
0258デフォルトの名無しさんNGNG
>>257
折れは Frame[i]:=TFrameDenBody.Create(Self);でいいと思うよ。
但し、初期化をサボってOwnerを破棄して再作成する事で初期化するってなら、scrollbox1を指定した方が楽かな。
0259デフォルトの名無しさんNGNG
>>258
なるほど、Delフサギコ さんありがとう御座いました。
0260258 NGNG
>>259 折れはフサギ子じゃありません
0261Delフサギコ ◆zE1iiRdQ NGNG
うそを教えてしまった。Parentでも破棄されるのね。

   ∧,,∧ 
  ミ゚Д゚,,彡    .┳  そういう時は
  ミ "⊃ミ      ┃    
 〜ミ " ミ      ┃
   ミ_ミ`,ミ   (◎) ̄))
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

          ∧,,∧
         ミ,,゚Д゚彡   ジンジャーで・・・
         ミ "⊃┳⊃         
        〜ミ " ┃ミ         
          ミ  ミ┃ミ
          (◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  
            -=   ∧,,∧
          -=≡ ミ,,゚Д゚彡  逃亡や!
          -=  ミ "⊃┯つ
          -=≡〜ミ "//ミ 
           -=≡ミ_ミ'/,ミ          
            -=(◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0262デフォルトの名無しさんNGNG
function Tsfiform1.GetFolderIcon: HICON;
var
sfi: TSHFileInfo;
hi: THandle;
begin
hi := SHGetFileInfo('',
FILE_ATTRIBUTE_DIRECTORY,
sfi, SizeOf(sfi),
SHGFI_SMALLICON or SHGFI_SYSICONINDEX or
SHGFI_USEFILEATTRIBUTES);
Result := ImageList_GetIcon(hi, sfi.iIcon, 0);
end;

と、MLからソースを探し出して使おうとお持っているのですが
ImageList_GetIconメソッドがそのままだと未識別とでてしまいます
何かapiが必要なのでしょうか?
0263デフォルトの名無しさんNGNG
uses CommCtrl;
0264デフォルトの名無しさんNGNG
for文で、カウンタが奇数の時だけ実行できるように出来ない?

for Int := 1 to 50 do begin
if Odd(Int) = False then continue;
  〜
end;

または

for Int := 1 to 50 do
if Odd(Int) = True then begin
  〜
end;


ってやるしかない?できるだけ高速な処理を望みたいのだが。
0265デフォルトの名無しさんNGNG
>>264
Int(こんな変数使うなよぅ) * 2 + 1。
0266デフォルトの名無しさんNGNG
>>263
サンキューです
0267デフォルトの名無しさんNGNG
>>265
よく分かんないんですけど、
for Int := 1 to Int * 2 + 1 ですか?
0268デフォルトの名無しさんNGNG
Odd()は関数呼び出しじゃないのでそれほど時間はかからない筈、が
カウンタを自分でインクリメントしてwhileでまわすのが多分速い。
0269デフォルトの名無しさんNGNG
>>267
Int を変数名にするのは C系言語の経験のあるプログラマから見ると
「凄く気持ち悪い」ということでしょ

* 2 + 1 の意味までは考えてないけど
0270デフォルトの名無しさんNGNG
>>268

Int := 1;
while Int = 50 do begin
Int := Int + 2;

  〜

end;

っていうことですね。
0271デフォルトの名無しさんNGNG
>>269
気持ち悪いんですか。なるほど。
0272デフォルトの名無しさんNGNG
>>270
whileの条件が変だけどそんな感じです。ただInc(Int, 2)の方が速いかも。
0273デフォルトの名無しさんNGNG
>>270
そのままだと
while文の中は1度も実行されないね

多分 while Int<50 の方がご希望通り
0274デフォルトの名無しさんNGNG
for i := 0 to count div 2 do
begin
a[i * 2 + 1] = i;
end;

x * 2 + 1は絶対奇数。授業でやらんかったか?
0275デフォルトの名無しさんNGNG
>264
自問自答?
0276275NGNG
すまん、途中までしか見えてなかったんで変なレスつけてもうた。
0277(間違っていたら言え)NGNG
for i  := 1 to 50 do
begin
    if Not Odd(I) then continue;
    TestProc;
end;


i:=1;
while i <= 50 do
begin
    Inc(i,2);
    TestProc;
end;

これで比較してみたが。動作速度はほとんど変わらず。(0.3%位後者の方が早いが…)
0278デフォルトの名無しさんNGNG
>>277
inc(i,2)
コンパイルしてCPUウィンドウのアセンブラ見ると実は
i := i + 2;
になってる。

試しに
inc(i);
inc(i);
にしてみたらこっちの方が極々僅かだが速かった。

漏れの試したCPUはClassic Athlon 800MHz。
試しに後者のInc(i,2);を書き換えて再テストしてみて。


って、ここまでして最適化しないと逝けない事ってそうそうないと思うが…
0279277NGNG
>>278
試したみたけど確かに少し早い。
ついでにasmでも試したが違いはほとんどわからん。
0280デフォルトの名無しさんNGNG
>>277 :(間違っていたら言え)

i が3から始まってるよー(whileの方)

> (0.3%位後者の方が早いが…)

1回抜けてる分を考慮すると、後者のほうが遅いのでは?


0281デフォルトの名無しさんNGNG
頼むから1000分の数倍早いプログラムより見やすいソースを
優先してくれ・・・(;´д`)
0282デフォルトの名無しさんNGNG
近代的CPUでは実行速度はメモリアクセスの回数が主要因という事をお忘れなく
0283デフォルトの名無しさんNGNG
>>281
まぁそーだね、最速だがアクロバなソースより、10秒遅くても読みやすいソースの方が
数十倍優れていると思われる。(バグを防ぐって意味でも)
0284デフォルトの名無しさんNGNG
>>281>>283
実験中にステレオタイプな常識持ち出すあなた方はなんなんだ?
0285ステレオ3NGNG
けっ プログラムなんて仕様通り動けばいいんだよ!
0286デフォルトの名無しさんNGNG
フォームのないユニットでデータベースの更新処理をするにはどうしたらいいのでしょう。
BDEとかフォームがないから貼れないのですが、コードのみで記述することになる
のでしょうか?やり方を教えていただけないでしょうか。
0287デフォルトの名無しさんNGNG
>>286
コンポーネントも所詮はクラス。OwnerをnilにしてCreateして下さい。
0288デフォルトの名無しさんNGNG
データモジュールに貼り付けてください。
0289デフォルトの名無しさんNGNG
>>287
>>288
の方ありがとうございました。
データモジュールってこのような時に使うんですね。
0290デフォルトの名無しさんNGNG
Screen.ActiveForm.Componentsをループさせて画面上の項目を自動的にクリアする関数を作成して
使っていますが、Frameを使っているフォームは上手く機能しません、ループの中を追って見てもFream自体は
取得できるのですが、その中身までは出てきません。

 ソースから部分的に抜き出すとこんな感じです
   ↓
 var
   i:integer;
   wCompo:TComponent;
 begin
   for i:=0 to Screen.ActiveForm.ComponentCount -1 do
   begin
     wCompo:=Screen.ActiveForm.Components[i];
     if (wCompo is TEdit) then
       (wCompo as TEdit).Text:='';
   end;
 end;

この方法だとFream上のコンポーネントを取得する事はできないのでしょうか?
それとも、他に方法があるのでしょうか?教えて下さい。
0291デフォルトの名無しさんNGNG
>>290
Fream1.Edit1.TEXT:='';
Fream1.Edit2.TEXT:='';
Fream1.Edit3.TEXT:='';
Fream1.Edit4.TEXT:='';
Fream2.Edit1.TEXT:='';
Fream2.Edit2.TEXT:='';
Fream2.Edit3.TEXT:='';
Fream2.Edit4.TEXT:='';
とクリアしてはいかがでしょうか?
私はそのようにしておりますが、
今まで問題は発生しておりません。
時としてプログラムとは柔軟に
コーディングを行うことも必要ですよ。
0292290NGNG
290にて FrameをFreamと間違っている箇所がありました。訂正しておきます。

>>291
私のからコピペされたのだと思いますが、Fream->Frameですね。

> 時としてプログラムとは柔軟・・・
参考になりました・・・・。はい。
0293デフォルトの名無しさんNGNG
「Delphiオブジェクト指向プログラミング 」を今でも通販で買えるサイトは無いでしょうか?
amazonもcbook24も在庫がありませんでした
0294デフォルトの名無しさんNGNG
>>291
( ´,_ゝ`)プッ
保守性最悪なコーディングだな
0295デフォルトの名無しさんNGNG
>>291
問題が発生してないって、それで問題が発生したら怖いだろ
オマエそんなコーディング書いてよく偉そうにできるな、その方が謎だよ
0296295NGNG
だんだんムカついてきた(藁
時には柔軟?オマエのそれの何処が柔軟なんだよボケ!ガチガチじゃねーか
0297デフォルトの名無しさんNGNG
>>290
今試してみたけど、確かに貴方の書いた通りですねフレーム上のコンポが取得できないですね
フレーム自体がフォームと同じ扱いだからでは?つまりActiceFormじゃないって意味です
0298デフォルトの名無しさんNGNG
ああ、やっぱり他の人も思ってたんだ。
>>291のは参考にするべきじゃない・・・。

>>292 ComponentCountやComponentsはFormだけが持ってるプロパティじゃないから、
    再帰関数作ればコンポーネントの追加・削除に左右されないコード書けるよ。
0299デフォルトの名無しさんNGNG
配列作って代入しとくんだろうな〜
0300デフォルトの名無しさんNGNG
>>295-296
量にもよるね
2つ3つで一般化してたら、そっちの方がビョーキ気味だと思うし
0301デフォルトの名無しさんNGNG
if Components[i] is TFrame then
MyClearFrame(Components[i] as TFrame);
じゃ駄目?
0302デフォルトの名無しさんNGNG
TlistItemのチェックボックスについて質問です
ListViewで選択されてる項目にチェックを入れたい場合、
if ListView.Items[intImgIndex].Checked=false then
 ListView.Items[lstFile.Selected.Index].Checked:=true
else
 ListView.Items[lstFile.Selected.Index].Checked:=false;
上文のようにしたらいいと思ったのですが、さっぱり上手く動きません
どこが悪いか指摘ください
0303302NGNG
上文↓の間違いです
if ListView.Items[ListView.Selected.Index].Checked=false then
 ListView.Items[ListView.Selected.Index].Checked:=true
else
 ListView.Items[ListView.Selected.Index].Checked:=false;
0304デフォルトの名無しさんNGNG
>どこが悪いか指摘ください
ハンガリアン
0305295NGNG
>>300
そりゃ、当然量にもよるけど、今回の場合は、最初の質問からして画面上のEditなりを
全てクリアしたいってことでしょ、その答えがあれじゃ話にならんとおもたのですよ

しかも、内容的に質問した側より答えた側のレベルの方が低そうな上に、なにやら、
偉そうに「時として」なんて書いてるし、妙に不快なツボに入った、俺だけかな?(藁)
0306デフォルトの名無しさんNGNG
まあまあ、答えは再帰で一発OK。ダラダラ代入文を書くなゴルァ!!ということで・・・

>>302 ハンガリアン
0307デフォルトの名無しさんNGNG
>>303
 ListView.Items[ListView.Selected.Index].Checked:= not ListView.Items[ListView.Selected.Index].Checked;

とかはダメ?
0308デフォルトの名無しさんNGNG
>>302 ハンガリアソ
0309290NGNG
お世話になりました、出来ました!

 こんな感じで再帰的に処理することにしました。
  ↓
 procedure MyClear(pControl:TWinControl);
 var
   i:integer;
   wCompo:TComponent;
 begin
   for i:=0 to pControl.ComponentCount - 1 do
   begin
     wCompo:=pControl.Components[i];

     if (wCompo is TFrame) then
       MyClear(wCompo as TFrame);

     if (wCompo is TEdit) then
       (wCompo as TEdit).Text:='';
   end;
 
 end;

今までのScreen.ActiveFormで作っていた物にoverloadして差し替える事にします。
本当にありがとう御座いました。
0310302NGNG
>>307
駄目でした、どうもリストにある項目をマウスや矢印で選択すると
checkboxにcheckがあるかどうか関係なしにcheckedプロパティが
trueのまま固定されてるみたいです
ふと思ったのですがListView.Items[ListView.Selected.Index].Checkedは
ListView.Selected.Checkedと同じみたいですね
0311デフォルトの名無しさんNGNG
>>309
>if (wCompo is TFrame) then
>  MyClear(wCompo as TFrame);

それだとTPanelとか使ってるときだめだろ。
折角だから、TFrameじゃなくTWinControlにしとけ。
0312デフォルトの名無しさんNGNG
ControlCountとControlsのペアじゃないからTPanelがあっても大丈夫だと思う。でも、

引数をTComponentで取って、ComponentCountとComponentsのペアを使う
引数をTWinControlで取って、ControlCountとControlsのペアを使う

のどちらかにしたほうがいいと思う。
0313デフォルトの名無しさんNGNG
Components→同じOwnerを持つコンポーネントでループ
Controls→同じParentを持つコンポーネントでループ
かな?
0314302NGNG
申し訳ない解決しました
スペースキーでチェックのon/offをしようとしてたのですが、どうも
ListViewはもともとスペースでon/offが出来るみたいでした..
0315デフォルトの名無しさんNGNG
質問です。
TStringsのGetやSetとは、一体何に使うのでしょうか?
TStringsをpublishedプロパティに持つコンポーネントを作成しているのですが、
参考にTComboBoxStringsなどのソースを当たってみたところ、
GetやSetが出てきて、これが何なのかがよく分かりませんでした。
Delphi5のヘルプにも無いみたいです。
宜しくお願いします。
0316デフォルトの名無しさんNGNG
>>315
ソース嫁や。
0317デフォルトの名無しさんNGNG
>>315
プロパティへのアクセスメソッド。
C#にもある概念なのでマスターしておくこと。

str :TStrings;
a :string;

str := TStrings.Create();//(抽象クラスなので本来は不可能)

str[0] := "monor"; //= str.Set("monor",0);
a = str[1];//= a := str.Get(1);
0318デフォルトの名無しさんNGNG
>C#にもある概念なので
ハァ?
0319デフォルトの名無しさんNGNG
>>318
public new Kakiko this[int Index]
{
get
{
return (Kakiko)base[Index];
}
}
0320デフォルトの名無しさんNGNG
>>318
ソース読めよ。よりはましと言うことで。
はい、次の方。
0321デフォルトの名無しさんNGNG
>>315
ソースよりもヘルプ読むべきだと提案してみる。
[クラスとオブジェクト]の項目を角まで嫁

>>317
C#の事をDelスレで話すと荒れるからやめようや。
0322デフォルトの名無しさんNGNG
>>319
場違いなんだよアフォ?
0323デフォルトの名無しさんNGNG
>>322
まぁ、お前は一生ソースでも読んでろってこった。
0324デフォルトの名無しさんNGNG
早速アフォが2匹ほど…鬱出汁脳
0325315NGNG
>>317
済みません、単純に見逃してました。
GetStringsやSetStringsという名前ではなかったもので。
皆さん有難うございます。
0326デフォルトの名無しさんNGNG
コンボボックス(Style=csDropDown)は、
ドロップダウン項目を選択すると、その内容がエディタ部に入る仕組みですけど、

ドロップダウン項目を選択した後、その内容をプログラムで変更して、
エディタ部に入れる方法はありますかいのう?
0327デフォルトの名無しさんNGNG
ありますのう
C#はどうよ?
0328デフォルトの名無しさんNGNG
>>327
まだWindows.System.Form使い始めでいまいち。
かなりVCLに似た仕様で違和感はないっす。
0329デフォルトの名無しさんNGNG
onchangeでtext書き直す
0330デフォルトの名無しさんNGNG
UZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!
あっち逝けやヴォケ

C# vs Delphi Round 1
http://pc.2ch.net/test/read.cgi/tech/1021550705/l50
0331デフォルトの名無しさんNGNG
>>330
318 名前:デフォルトの名無しさん 投稿日:2002/05/21(火) 00:07
>C#にもある概念なので
ハァ?


ふっかけてきたくせにキレるバカw
0332330NGNG
>>331
俺?318じゃないよ。つーか質問スレにC#との比較話題持ち出すなやって事で。
俺に言わせりゃ>>318もうぜぇんだよ、って感じ。
0333デフォルトの名無しさんNGNG
>>332
別人と同意した上で。

>C#との比較話題持ち出すなやって

C#にも同様の概念がある。
って書いただけなんだけどね。

100歩譲ってこれが比較だとしても迷惑のかからないポジティブな比較だと思うが。
0334デフォルトの名無しさんNGNG
やはり新スレは作るべきではなかったな・・・
0335デフォルトの名無しさんNGNG
アフォばっか(藁
0336デフォルトの名無しさんNGNG
>>335←MVP
0337デフォルトの名無しさんNGNG
>>333
うざ
0338デフォルトの名無しさんNGNG
  ?  ?
? (゚д゚) ? >>333 の言ってることがサパーリな漏れ
0339デフォルトの名無しさんNGNG
>333は放置しとけ

↓次から何事もなかったかのようにどうぞ
0340デフォルトの名無しさんNGNG
↑C#さいこー!!!!
0341338NGNG
やっとわかった。>>333 ゴミン
0342デフォルトの名無しさんNGNG
>>293
ここで祈る。
http://www.fukkan.com/vote.php3?no=4407
0343デフォルトの名無しさんNGNG
質問させてください。
これからDelphi 6 Personalを使おうと思っているのですが、
「Personalではデータベースのサポートが無い」
という話を耳にしました。
そのサポートというのは、具体的にどんな事を実現するサポートなのでしょうか?
また、そのサポートが無い場合でも、ある程度容易にデータベースを作れるのでしょうか?
0344デフォルトの名無しさんNGNG
データベースと簡単に接続してやり取りする物が付いてこないだけなので
一から全部作れば作れないことも有りませんが、とても大変らしいです。
0345デフォルトの名無しさんNGNG
>>344
「Delphiはデータベースに都合が良い」と聞いていたのですが、
それはProfessionalの方だけだった様ですね。
データベースのサポートが無いのは残念ですが、
Delphiは優秀なツールとの事なので、使ってみることにします。
レスありがとうございました。
0346デフォルトの名無しさんNGNG
ADO使えば?
0347デフォルトの名無しさんNGNG
>>345
PQCompo + PostgreSQLならパソナルでもじゅうぶんに使えますよ
0348デフォルトの名無しさんNGNG
>>343 データベースは作れる。
しかしビジュアルなDBコントロールがないので プログラム量は当然増える。
CGI的な動作をさせるとかならそれでもかまわないかもしれない

Pro以上なら、貼り付けて設定するだけでフロントエンドとしてそれなりに使える

0349デフォルトの名無しさんNGNG
>>348
仕組み的に知ろうとすると、逆にProのDBコンポを使わない方が勉強になる場合が多いのは皮肉だね
Grid一つ取ってもパーソナルだとStringGridなりを使って独自にプログラムする必要があるし、そこから
独自Gridコンポを作ったりすると、DBコンポの有り難味は薄れてくるし、自前で作ったコンポの方が
自由度が高いので使い勝手も良くなるし。
結局、深く知れば知るほどPro以上の価値はVCLのソースが見えるって部分だけになっていく。(藁
(VCLのソースは独自にコンポを作る場合にも絶対に必要なので結局Pro以上は買う事になるけど)
0350Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < TQuery使わなくてもDBにSQL流せるの?
  UU"""" U U    \_______________
 Pro附属のDBEditとかDBGridとかは
 使った事ないんだけど。
0351デフォルトの名無しさんNGNG
DBGridを自作すんのはいいけど、
TQuery、TStoredProcなどを自作すんのは大変だろな。
キャッシュアップデート関連が特に。
レポートはついてんだっけ?>Personal
0352デフォルトの名無しさんNGNG
>>347 のPQCompoは日本製だしマニュアルアも日本語だから読んだらいいんじゃないの?

SQLも流せるというより、それが主な目的のコンポ ただし TComponent継承だから独自のものね
0353デフォルトの名無しさんNGNG
>>350
ttp://www.allroundautomations.nl/bodydoa.html
こういう物があるね。
Oracleを(BDEを経由しないで)扱えるコンポーネント。
だからその気になれば出来るんでないの?
0354デフォルトの名無しさんNGNG
それなら oo4o使ったほうが簡単そうだけど。。。
データコントロールに慣れてると大変だけどね。
0355343NGNG
>>346-348
アドバイスありがとうございます。
まだそこまでレヴェルが全然達してないので、
また実際データベースを作る時にでもアドバイスよろしくお願いします。m(_ _)m
0356名無しへたぐらま ◆B18Bks.Y NGNG
>333
私は内容自体は全く問題ないと思いましたが,
一部の読み手が神経をとがらせている話題には
触れないほうがよいかも.

(何があろうと言わなければならないことなら話は別ですけど)
0357デフォルトの名無しさんNGNG
うるさいよ?
0358デフォルトの名無しさんNGNG
    \
  (゚д゚) エンジョイプレイ!
  <(  )
    < \
0359デフォルトの名無しさんNGNG
ib objects 使えば personal でもビジュアルBDコントロールを使える
ただし、interbaseもibobjectsも日本語ドキュメントが公開されてない罠
0360デフォルトの名無しさんNGNG
PDFファイルの中の、/title (もなもな)とか/subject (ギコギコ)という
部分の、「もなもな」「ギコギコ」
というutf-16の文字列を取り出して
シフトJISに変換してMemo1.lines.add
とかしたいのですが、
Memo2.Lines.LoadFromFile(
OpenDialog1.Filename);
などとして、Memoに読ませると
「ギコギコ」の途中で切れちゃいます。

テキスト以外を含むファイルから
特定の文字列を抽出する時は
皆さんはどのようにされるのですか?

また、普通はどうするのですか?

Delphi6parsonalをセットアップ
したばかりで、プログラムの基本
がまだつかめてません。
0361デフォルトの名無しさんNGNG
>>360
ここのみんなと、「普通」と分けて
るけど、ここの住人は「普通」じゃ
無いってか?
0362デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1018211735/617
0363デフォルトの名無しさんNGNG
久々に http://www.borland.com/ 開いて見た
一瞬、間違って Sunのページを開いたのかと思ってしまった。

近い将来、Sunと合併する為の企業イメージの統一か?(藁
0364デフォルトの名無しさんNGNG
http://www.sun.co.jp/ 因みに Sunはこっち
http://www.sun.com/ の方はちょっと派手

無駄話したので逝って来ます。
0365デフォルトの名無しさんNGNG
Borland本社はこっちね。
http://www.borland.co.kr/
0366デフォルトの名無しさんNGNG
bonland本社はこっちね。
http://www.bonlandhvac.com/default.htm
0367デフォルトの名無しさんNGNG
文字列の引き算?ってどうすれば
いいのでしょうか?

つまり、長さが一定でない文字列か
ら、最初の数個の文字や、末尾の
1文字を削除したいのですが。
0368デフォルトの名無しさんNGNG
>>367 copy と length をヘルプで見て よく考えてみて下さい
0369デフォルトの名無しさんNGNG
Copy(x, n, n)
0370デフォルトの名無しさんNGNG
formに貼ったmemoに読み込んだ
unicode文字を、
WideCharLenToString関数に
与えて普通に読める文字にする為
の、ソースサンプルを教えてほしい
のですじゃ。
0371デフォルトの名無しさんNGNG
WideCharLenToString関数って
うにこーどに未対応のWindows95
でも使える?
0372デフォルトの名無しさんNGNG
>>371
Win95は無視してください。
0373デフォルトの名無しさんNGNG
ヘルプに載ってる
RightStr関数を使おうとしたら

未定義の識別子っていわれた。

なんで、使えないやつがヘルプに
あるの?
0374デフォルトの名無しさんNGNG
ヘルプのユニットのところにStrUtilsとありますね。
uses StrUtilsとすれば使えますよ。
0375デフォルトの名無しさんNGNG
WideCharLenToString関数を
使ってみたら

StringとPWideCharには互換性が
無いと言ってきた。

StringからPWideCharへの変換は
どれをつかうの?

0376373NGNG
>>374
usesって、そうゆうものだったのか
ありがとう助かったよ。

ってか
織れが厨すぎるのか?
0377367(初心者)NGNG
>>368
>>369
あ、なんかわかってきました。
ありがとう。
0378デフォルトの名無しさんNGNG
文字化けしてstringになってる
unicodeをPWideCharとみなして
読める状態に変換するには、どうしたら良いのでしょう?

Windows95
Delphi6parsonal
0379デフォルトの名無しさんNGNG
>>372
見捨てられてるんですか(;ー;


私のマシンはまだWin95
0380デフォルトの名無しさんNGNG
ところで、
PWideCharって
なあに?
0381ノミNGNG
お願いがあります。
チャットで荒らしをしてる人が居ますです
こらしめたいのです
というかそこのみんなが迷惑しているのです
解決法などを教えてくださいです。
0382デフォルトの名無しさんNGNG
>>381
プロバイダに通報して下さい。
0383ノミNGNG
プロバイダってなんです?
0384ミノNGNG
お願いがあります。
スレッドで荒らしをしてる人が居ますです
こらしめたいのです
というかそこのみんなが迷惑しているのです
解決法などを教えてくださいです。
0385デフォルトの名無しさんNGNG
>>384
取りあえず寝ろ。
0386デフォルトの名無しさんNGNG
>>383
聞く場所がちがう。

荒し対策とプログラム技術とは
直接関係ない。

というより、あなたそのものが
この板にとって荒しそのもの

2度とくるな。
0387デフォルトの名無しさんNGNG
TFileStreamでファイルの
何行目の何文字目から、特定の記号
が出るまでを、抜き出すのは
どうすればいい?

で抜き出したやつをPWideCharタイプの変数に入れたいんだけど。
0388デフォルトの名無しさんNGNG
Delphi.net 日本語版 2003年11月発売予定
0389デフォルトの名無しさんNGNG
>>383
ブロパイダのことだとおもう
0390デフォルトの名無しさんNGNG
>>388
それってDelphi 6の次ってこと? 違うの?
0391デフォルトの名無しさんNGNG
>>388
マジっすか?あと5ヶ月かぁ、貯金はじめないと間に合わないな。
0392デフォルトの名無しさんNGNG
Delphi7は、2002年12月です
0393391 NGNG
げ、.NET 2003年?来年かよ!
0394デフォルトの名無しさんNGNG
>>392
おい、それネタ?それともちゃんとした情報?
0395デフォルトの名無しさんNGNG
ある程度ちゃんとした情報だが、正式発表ではない、まだ予定は未定だ。
0396デフォルトの名無しさんNGNG
>>395
CBは?
0397デフォルトの名無しさんNGNG
CBは来年ですが、Linux版ではKylixとCBが合体して Kylix3として今年の夏〜秋にリリースされる予定。
Win版も将来的にはその方向に・・・。あと、VSに対抗する製品も検討されていますが、辛いのが
経営戦略的にリリース時期がズレズレなので、これも将来的にリリースを統一する方向・・・。
これ以上は語れません。
0398デフォルトの名無しさんNGNG
ん?DelphiとBCBも統合するの?
0399デフォルトの名無しさんNGNG
統合されたらいいなあ BCBやってる時に パスカルソースも同じように編集出来れば最高
0400デフォルトの名無しさんNGNG
JBuilderも統合されないかなあ。
0401デフォルトの名無しさんNGNG
BCB# とか出る?
つーか、出るにしても #の位置が微妙になるなぁ、入れるとしたらBC#Bか?
0402デフォルトの名無しさんNGNG
>>400
JBは根本から違うから無理でしょ。
つーか、Delphi程度に軽くなって欲しいな JB
0403柏餅がすき ◆B18Bks.Y NGNG
>367
Delete手続きという手もあります.
0404デフォルトの名無しさんNGNG
別板のコテハンつかってしまいました(>_<).
はやく新しい専用ブラウザに慣れなければ….
0405ageNGNG
柏餅が好き、と。メモメモ。
0406デフォルトの名無しさんNGNG
>>387

TFileStream に行とか文字とか、という概念はありません。
0407デフォルトの名無しさんNGNG
なんつーか、ここで「どうしてなの?」なんてこと書く前に検索すれってばよ。



と。
0408デフォルトの名無しさんNGNG
ウニコードについて聞きまくってるのは同一人物かい?        
0409デフォルトの名無しさん NGNG
質問ですが、RichEditにて指定した位置の文字例が何かであるか
を調べるにはどのように記述したらよいでしょうか?
教えてください。お願いします。
ちなみにちゃんとヘルプで調べましたが、見つからなかったため
書き込みしました。
0410デフォルトの名無しさんNGNG
>>409
ちなみにMSDNライブラリも調べると幸せになります。
0411デフォルトの名無しさんNGNG
>>409
http://www.google.co.jp/search?hl=ja&ie=UTF8&oe=UTF8&q=%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8C%E3%81%A3%E3%81%A6%EF%BC%81%E3%83%8F%E3%82%B2%EF%BC%81&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0412デフォルトの名無しさんNGNG
>>409
>指定した位置の文字例が何かであるか

質問の意味が分かりません
0413343NGNG
>>409
x行目、y文字目からz文字を調べるとしたら、

var
ls, cs: String;
begin
ls := RichEdit1.Line[x];
cs := Copy(ls, y, z);
ShowMessage(cs);
end;

でいいんじゃね?
0414デフォルトの名無しさんNGNG
>>406
じゃあ行をみつけるには
1バイトづつ読みとってif文と"="で
改行コードと比較するループを回す
しかないのか。

なんか効率悪そうだなあ。

いいほうほうないのかな?
0415デフォルトの名無しさんNGNG
>>414
TStringList.LoadFromStreamで読み込めば?
0416柏餅が好きNGNG
>>414
TMemoryStreamならポインタ操作できるよ
0417デフォルトの名無しさんNGNG
>>414
ちゃんとしたコンパイラですから、そうやればいいのです。
ただ、1バイトづつ読むのではなく、ブロック単位に読んで1バイトづつ処理します
LoadFromStreamで読んでも、中身はそういうやり方をしています

0418デフォルトの名無しさんNGNG
FindDialogを使ってTMemo上で文字列検索したいのですが、
ttp://www.google.co.jp/search?q=cache:_Ch5tMA-sBgC:myhome.netsgo.com/parkhs98/delhelp/edittip.htm+finddialog1+memo&hl=ja
こちらの通りやると、テキスト全体から一番最初にマッチするものしか検索できず、次を検索することが出来ません。
RichEditだとヘルプにあるようにFindTextメソッドを使用すれば次を検索できるのですが、
Memoには無いので同じ手法が使えません。
どのような手法を使えばいいのか、ご教授お願いいたします。
0419デフォルトの名無しさんNGNG
>>397
つーかお前これを見ただけとちゃうん?
ttp://www.drbob42.com/BorCon.htm
0420Delフサギコ ◆zE1iiRdQ NGNG
>Borland previewed a programming language for Web Services creation
> & scripting (codename Charlotte)

  これなんだろ?ゴルァ
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ

>>419
> SelPos := Pos(FindText, Memo1.Lines.Text);
Memo1.Lines.Textの内容を
今のSelStart+1位置から最後まで切り取ってから
Posにわたしたらいいでしょう。
0421デフォルトの名無しさんNGNG
>>420
コードネーム人参
クラス名は全て人参に含まれる栄養素名。
0422Delフサギコ ◆zE1iiRdQ NGNG
carrot???
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=Charlotte&sw=0

 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧,,∧,,,,,, )
  ⊂ミ,,゚Д゚⊂ `つ;
       """""マジボケですか?
0423デフォルトの名無しさんNGNG
Charlotteはシャルロット
0424うに好きNGNG
改変、流用自由なソースを改造厨
ファイルを変換するやつから
変数を読ませるやつに改造しようと
してTFileStreamをTMemoryStreamに変更。
Ms.Writeのところで、TMemoryStreamとIntegerには
互換性がありません。というエラー
発生!どのように直せばいいのでしょう?

// Unicode(Big Endian)の文字列を読込みShift-Jisのテキストを返す
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
Ms: TMemoryStream;
Sz, n: integer;
Pc: PChar;
Tc: char;
begin
Result := '';
Ms.Clear;
Ms := Ms.Write(string(titleName),nagasa1);
try
Ms.Position := 0;
sz := Ms.Size;
try
Pc := AllocMem(sz + 10);
Ms.Seek(0, soFromBeginning);
try
if Ms.Read(Pc^, sz) = sz then
begin
n := 0;
// WordのLow, Highを入替える(何て原始的な方法)
while n < sz do
begin
Tc := (Pc+n)^;
(Pc+n)^ := (Pc+n+1)^;
(Pc+n+1)^ := Tc;
Inc(n, 2);
end;
Result := WideCharToString(PWideChar(Pc+2));//先頭2byteをカッ
ト
end;
finally
FreeMem(Pc);
end;
except
raise Exception.Create('メモリを確保出来ませんでした.');
end;
finally
Ms.Free;
end;
end;
0425デフォルトの名無しさんNGNG
シャルロットを返して!
0426デフォルトの名無しさんNGNG
>>415
>>416
>>417
ありがとう。
それらで検索してがんばって
理解しようとしてみるよ。
0427360NGNG
PDFファイルから/title (もなもな)を
鳥だそうとしているものです。
/titleが6行目に出てくるので
イカのソースをかいて鳥だそうと
したのですが、化けちゃっています
。
おかしな、部分をご指導願いたい
のですが。

procedure TForm1.PDF1Click(Sender: TObject);
var title1:string;
s1:string;
s2:string;
title2:string;
Li:string;
L1:integer;
PW:PWideChar;

begin
if OpenDialog1.Execute then
begin
//ReadTextByStream(OpenDialog1.FileName,Memo1.Lines);
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
begin
title1 := Memo1.Lines[6]; //6行目取出し;
s1 := copy(title1,9,length(title1)-9); //9文字目から全体の長さ-9を取
出;

PW := @s1; //ポインタ代入;
L1:=length(s1); //長さ代入;
WideCharLenToStrVar(PW,L1,title2); //プロシージャ呼出;
//title2 := WideCharLenToString(PW,L1);
Li := RightStr(OpenDialog1.FileName,10) + ',' + title2;//ファイル名+
抽出結果;
Memo2.Lines.Add(Li); //メモ書き出し;
end;
end;
0428360NGNG
あ”ぁ、インデントが消えてる?
なぜ?

すみません。
0429無責任だがNGNG
>>424 そのエラーを出さないだけなら
Ms.Write(PChar(string(titleName))^ , nagasa1);
とか 代入を止めたらいい 

それから MS:=TMemoryStream.Create; を忘れている

でも、そのコードを見る限りは、Streamを使うよりは文字列のまま使った方がいいと思う
たぶん以下のと同じコードだと思うのだけど?
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;
   while n < sz do
   begin
    wk[n+1+0] := titleName[n+1+1];
    wk[n+1+1] := titleName[n+1 ] ;
    Inc(n, 2);
   end;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('メモリを確保出来ませんでした.');
 end;
end;
0430無責任だがNGNG
>>427
変だと思うのは
 PW := @s1;
 これは具体的にどうしたいのでしょう?


あと良く知らないのだけどPDFファイルはバイナリも含むのではないかな?
だとするとLoadFromFileでは都合が悪い

Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/22

ファイルを読むのに
 function readFileStr(fname:string):string;

を使って 位置を調べるのに Pos関数を使ってはどうでしょうか?


それとも改行は正しく入っている
0431うに好きNGNG
>>429
うごきましたよ!
激しくありがとう。

冒頭のアドバイスで、コンパイル
できました。

ご提示いただいたコードもしっかり
うごきました。

感謝します。
0432360NGNG
>>430
アドバイスありがとうございます。

PW := @s1; は
WideCharLenToStrVarに文字列を
渡したいのです。
unicode>s-jis変換として。

PWがPwideCharというポインタらし
いので、stringsではまずいみたい
だったので。

私が読みたいPDFはバイナリも含んでます。
しかし、まだ、LoadFromFileしか分からなかったもので。
ただmemoに読んだ時に10行目の
'/Subject ('の先に#0があって
そこで読み込みが終わってしまうの
で、とりあえずイイカナ?
と妥協してしまってます。

ほんとは、/Subject (ギコギコ)の
部分も取り出したいのですが。

教えていただいたPos関数などを
使ってがんばってみます。

memoに張り付いている10行は
改行されてるみたいです。
0433418NGNG
フサさんありがとうございます。
ただ、問題はmemo.textから如何にして一部を取り出すかがわかんないです…
下検索の場合、
RichEditのヘルプにあるように始点と終点は特定できても、
その間にあるテキストを如何にして取り出すかがわかりません。
申し訳ございませんが誰かもう一度お願いします。
0434デフォルトの名無しさんNGNG
>>427
「イカのソース・・・」
やきそば?(w

しかも、レスの番号が死にな(427)だ。
0435デフォルトの名無しさんNGNG
某所で「ウニコード・UTF-16・Tfilestream」の質問してる
「ミカンの皮」っての、マルチポストだよネ?
ここで聞きまくってるのと。
0436デフォルトの名無しさんNGNG
Delphiで簡単に掲示板のようなcgiは作れますか?
0437デフォルトの名無しさんNGNG
>436
作れるが、当然Windowsのサーバ上でしか動かんぞ
0438デフォルトの名無しさんNGNG
>>433
簡単な方法。
Copy関数でMemo.Lines.Textの一部を取り出す。
これをループ。
0439デフォルトの名無しさんNGNG
Delphiで簡単に連番エロ画像ぶっこ抜きアプリは作れますか?
0440デフォルトの名無しさんNGNG
>>439
(事件の真相はこうです。警部殿。)
      V
    _________        
    |________| Z        
    ||∧∧|| z     (\_/)
    |(,-Д-)    Σ (・∀・ )
   ■∪∪■     (    )
   (-_||∪∪||      | | |
   (∩|| ̄ ̄||     (__)_)
0441343NGNG
質問させてください。
ファイルを扱うソフトを作りたくて、接続されている
ディスクドライブの一覧をComboBoxコンポーネント表示させたいのですが、
その方法を教えてください。
よろしくお願いします。m(_ _)m
0442デフォルトの名無しさんNGNG
>>441
http://www.google.co.jp/search?hl=ja&ie=UTF8&oe=UTF8&q=%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96+%E4%B8%80%E8%A6%A7%E3%80%80delphi&lr=
ちらほら出てくるから探しなさいよ。まずは。
0443442NGNG
delphi ML過去ログにありそうだから、そこも検索すれ。
0444デフォルトの名無しさんNGNG
つーかTDriveComboBoxでは駄目なのか?
0445343NGNG
>>442-443
Delphi MLという所にありました。
ここはかなり情報量が豊富ですね。
またわからない事があったらそこで調べてみます!(^^;
ありがとうございました!m(_ _)m

>>444
その様なコンポーネントがあったとは…。
さすがでるふぁい、かゆいところに手が届くようにできてるのですね!
今度からそれを使ってみます。
ありがとうございました!m(_ _)m
0446デフォルトの名無しさんNGNG
DelphiMLのアドレスくらいスレの最初に書いておいたほうがいいかも。
0447デフォルトの名無しさんNGNG
7に書いてあるじゃん!!
0448デフォルトの名無しさんNGNG
ファイル名が連番になっている
ファイル群を、順に読み込ませたい
のですが、ファイル名の番号が抜け
ていて、存在しないファイル名を
指定してしまった時に例外が出ます。

例外を出さずに、メッセージを
出して中断するにはどうしたら良い
のでしょう?
ご教示いただけないでしょうか?
以下がソースです。
begin
ShowMessage('連番ファイル名で値が最大のファイルを選択してください。');
if OpenDialog1.Execute then
begin
//ReadTextByStream(OpenDialog1.FileName,Memo1.Lines);
Fn1 := OpenDialog1.FileName;
Fn10 := LeftStr(Fn1,Length(Fn1)-19);
ShowMessage(Fn10);
Fn12 := 'log';
Fn0 := LeftStr(RightStr(Fn1,7),3);
ShowMessage(Fn0);
F := StrToInt(Fn0);
// ShowMessage(IntToStr(F));
while F >= 1 do
begin
Fn11 := IntToStr(F);
if F <= 99 then
Fn11 := '0'+ Fn11;
if F <= 9 then
Fn11 := '0' + Fn11
else
Fn2 := Fn10 + Fn11 + '.' + Fn12;
Memo1.Lines.LoadFromFile(Fn2);
begin
//ここでいろいろ処理。
end;
F := F-1;
end;
end;
end
0449デフォルトの名無しさんNGNG
if FileExitst(Fn2) then begin
  Memo1.Lines.LoadFromFile(Fn2);
   ・・・

else エラーの処理
0450418NGNG
433で書いたのは終点ではなく始点から終点までの長さだったので、
Copy関数を使って取り出すことが出来ました。
どうもありがとうございました。
0451デフォルトの名無しさんNGNG
キャレット、又の名をカレットとも呼ばれるものについて質問です、
Edit等で出てくる 「|」形状のキャレットを変形させて■形状にしたくて以下のようにしました。

procedure TForm1.Edit1Change(Sender: TObject);
begin
  CreateCaret(Edit1.Handle,0,Edit1.Font.Size-4,Abs(Edit1.Font.Height));
  ShowCaret(Edit1.Handle);
end;

取りあえず、これでEdit1のフォントがMSゴシックだと、なんとなく変形できるのですが、
問題は、Editが画面上に大量にあるのです、大量にあるEdit全てにこの方法で書くのは
非効率的だと思うのですが、何か良い方法はないでしょうか。(本来は、最初に1回だけ
変更したら、フォーム内全てのキャレットが変更されて欲しかったですが・・・)
0452デフォルトの名無しさんNGNG
>>451
とりあえずイベントハンドラを1つで済ますことは可能だけど
>本来は、最初に1回だけ変更したら、フォーム内全てのキャレットが変更されて欲しかったですが・・・
このためには更に工夫が必要でしょう
0453無責任だがNGNG
>>432
var s1:string;

@s1

これは pascal文字列s1のアドレスです

AsciiZ文字列そのものが欲しいのなら
pChar(s1)
のようにそのまま型変換しなけれいけません
0454デフォルトの名無しさんNGNG
>>451
だからDelにはコンポーネントを作成する機能があると思うのだが…
0455無責任だがNGNG
もっと良い方法あるかもしれないし、毎回 CreateCaret/ShowCaret
していいのかも判らないけど


procedure TForm1.IdleProc(Sender: TObject; var Done: Boolean);
begin
if ActiveControl is TEdit then
with ActiveControl do
  begin
  CreateCaret(Handle,0,Font.Size-4,Abs(Font.Height));
  ShowCaret(Handle);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnIdle:=IdleProc;
end;
0456お願いしますNGNG
RichEditを使ってカラフルな表示をしようと思っています。

TCustomRichEdit.SelAttributes に載っているの例文の方法では
1行ごとにしか色付けができません。

複数行ではなく、
「赤色青色緑色」
を同一行に収めたいのです。
つまり↓のHTMLと同じことを再現したいのですが
<font color="#FF0000">赤色</font><font color="#00FF00">青色</font><font color="#0000FF">緑色</font>

どうやればいいんでしょうか?
Googleで検索してもよほど基本的すぎるのかどこにも載ってません。
0457デフォルトの名無しさんNGNG
>TCustomRichEdit.SelAttributes に載っているの例文の方法では
>1行ごとにしか色付けができません。
当然。
SelAttributesの説明をよく読め。
0458デフォルトの名無しさんNGNG
>>457
>当然。
だからどうしたらよいのですか?と聞いてるんですが・・・(汗
0459デフォルトの名無しさんNGNG
>>458
>だからどうしたらよいのですか?と聞いてるんですが・・・(汗
2行目も読んだ方が良いぞ。
0460デフォルトの名無しさんNGNG
>2行目も読んだ方が良いぞ。
言っている意味がよく分からないですが・・・(汗
0461デフォルトの名無しさんNGNG
>>460  SelStart / SelLength で選択してから SelAttributes
0462デフォルトの名無しさんNGNG
どういうこと・・・?
0463デフォルトの名無しさんNGNG
神よ、なぜ456に「応用力」というものをお与えにならなかったのですか?
0464デフォルトの名無しさんNGNG
>>456 例文に載ってる方法を実行する時にボタン押すよね?

そのボタン押す前に マウスで文字をドラッグしておいてみて
0465アナザヘヴンNGNG
どうも逆ギレっぽい反応がイヤなのですが・・・(汗
0466デフォルトの名無しさんNGNG
s:TStringList;
s:=TStringList.Create;
s.Add('a');
とやるとコンパイルエラーになります(オーバーロード関数Addが定義されていません)
書籍にはこう書いてるのですが、何が悪いのでしょうか?
また、s.Appendとかs.AddObjectとやると、未定義の識別子Append(AddObject)と表示され
やはりコンパイルエラーになります。これもわかりません。
0467デフォルトの名無しさんNGNG
>>466
「S.」と打って、しばらく眺めてれ!
答えが見えて(略)
0468466NGNG
>>467
確かに一覧には出てきませんが、書籍にはこのようなコードが載ってるんですよ。
(Addは一覧にあるけど、パラメーターの型が違う)
0469デフォルトの名無しさんNGNG
>>466
中途半端なコードじゃなくその関数を丸ごと書いてみたら?
どうも他の部分に間違いがあるような気がする
0470466NGNG
>>467
>>469
お騒がせしました。
with Form1 do の中で実施していたのですが、
Form1の中にs(TMenuItem)というメンバーがあったのが原因でした。
レスありがとうございました。
0471デフォルトの名無しさん NGNG
TBrush.Assignって実はAssignToなんでしょうか?
----Delphi ヘルプより-----
Assign メソッドは,ブラシの内容を別のブラシにコピーします。
procedure Assign(Source: TPersistent); override;
説明
Assign メソッドは,ブラシのプロパティを別の TBrush インスタンスにコピーします。
-----
ソース見てもそんな感じなんですが、TResourceManagerってぇのがよく分からん。
お願いします。
0472デフォルトの名無しさんNGNG
>>471
Dist.Assign(Source) = Source.AssignTo(Dist)
0473デフォルトの名無しさんNGNG
>>472
Dist → Dest
0474デフォルトの名無しさんNGNG
>>472と考えてもいいと思いますが、使う時はAssignだけにするべきです。

Assignは内容をコピーするメソッドですが、自分が新しくクラスを作った時、
Assignだけだと、自分のクラスのAssignは定義できても、他のクラスのAssignを書き換えるわけに行かないので
「自作←他」方向のコピーしか実装できないことになります。
そのためにAssignToはあります。
他のクラスのAssignで、有効な組み合わせが見つからなかった時は、自作クラスのAssignToを呼んでくれるので、
「他←自作」方向のコピーが実装できます。
0475471NGNG
TResourceManager.AssignResourceをよく読めてませんでした。
普通にAssignでしたね。お騒がせして済みません。
それにしてもヘルプの文はややこしい・・・。
0476デフォルトの名無しさんNGNG
TStringList.Delete( Count );
とすると、行が削除されるのですか?

たとえば、


あ
い
う


が、あるとすると、
TStringList.Delete( 1 );
を実行したら


あ
う


となるんですか?
または、


あ

う


となるんですか?
0477デフォルトの名無しさんNGNG
自分で試せアフォ
0478デフォルトの名無しさんNGNG
>>476
Memo1.Assign(aStringList)とかして
自分で実験して見れば〜
0479デフォルトの名無しさんNGNG
>>476

質問する前に、どうして実験しないのか、のほうが不思議です。

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Add('あ');
Memo1.Lines.Add('い');
Memo1.Lines.Add('う');
Memo1.Lines.Delete(1);
end;
0480476NGNG
め  ん  ど  く  さ  い  か  ら  で  す
0481デフォルトの名無しさんNGNG
Σ(゚Д゚)
0482デフォルトの名無しさんNGNG
>476
とっととしねよ
0483デフォルトの名無しさんNGNG
>>476

476 の書き込みをするより、479 のコードを書くほうが簡単だと思うが?

あぁ、そうか、質問の内容からすると、コードを書けなかったのね。
0484476NGNG
こ  れ  ぐ  ら  い  で  死  に  ま  せ  ん
0485デフォルトの名無しさんNGNG
Σ(゚Д゚)
0486476NGNG
484は
476じゃ あ り ま せ ん
0487デフォルトの名無しさんNGNG
Σ(´Д`ズガーン
0488476NGNG
488は
476じゃ あ り ま せ ん
0489476NGNG
476は
476じゃ あ り ま せ ん
0490476NGNG
すいません。自分で実験すればよいことをわざわざ質問してしまいました。
申し訳ありません。
もう476を名乗る書き込みはやめてください。
0491デフォルトの名無しさんNGNG
神様、どうして>>488をコンパイルエラーとなさらなかったのですか?
彼は人間としての仕様を十分に満たしてはおりません。
停まるだけならまだかわいいものですが>>488は自身のバグにより
人々に多大な迷惑をかけております。
せめて、せめてリンクエラーにして下さっていれば・・・。
おお、神よ・・・。
0492476NGNG
ただし結局どっちなのかだけは答えてください。
0493デフォルトの名無しさんNGNG
----------------- 沈静 -----------------
0494デフォルトの名無しさんNGNG
もうわかったから。おやすみね
0495デフォルトの名無しさんNGNG
[エラー] >>476:未定義の識別子 : '手抜き野郎'
[致命的エラー] project.dpr(476): '>>476' ユニットは自助努力できませんでした。
0496デフォルトの名無しさんNGNG
おはようございます。
特定の他のアプリのエディットボックスに、
文字列を自動的に入力するようなアプリを作ろうとしています。
これが初めて作るプログラムというレベルです。

Googleしながら一晩試行錯誤した結果、
FindWindowExで、狙ったエディットボックスのウィンドウハンドルを取得する事はできた…はずなんですが、
それから先がどういう関数を使っていいのかさっぱりわかりません。
どうかご教授ください。
お願いします。
0497デフォルトの名無しさんNGNG
>>496
SendMessage
0498496NGNG
>>497
ありがとうございます。
早速こんな感じで書いてみたのですが、
コンパイルエラーがでます。
どこをどう直すべきでしょうか…?

procedure TForm1.Button2Click(Sender: TObject);
var
hForm,
hEdit: HWND;
begin
hForm:=FindWindow(nil,'Form1');
hEdit:=FindWindowEx(hFrom,0,'Edit',0);
SendMessage(hEdit,'あいうえお',0,0)
end;
0499Delフサギコ ◆zE1iiRdQ NGNG

           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < >>63みてよし
   U  つ∀ \____________
 〜ミ  ミ ┴
   ∪''∪
0500496NGNG
>>499
できた、できました!
ありがとうございましたm(_ _)m
0501デフォルトの名無しさんNGNG
 4GBクラスのファイルをオープンしてファイルサイズを取得したいんですが、
FileSize()関数では正しい値が得られません。
API関数のGetFileSize()を使わずに正しい値を得る方法はありますか?

 また、構造体のフィールドにpCharを使用した場合に、
何か不具合が起こることはありますか?
0502デフォルトの名無しさんNGNG
>501
ttp://www.nifty.ne.jp/forum/fdelphi/samples/01358.html

後半の質問は意味不明なので回答不可。
0503501NGNG
>>502
 ありがとうございます。
後半の方は、メモリにゴミがたまりやすくならないか、ということです。
でもキチンと破棄すれば大丈夫ですよね。
0504デフォルトの名無しさんNGNG
>>503
>ゴミがたまりやすくならないか

???

CPUが確率論的にどうさしてるならともかく、そんなの貴方次第。
0505デフォルトの名無しさんNGNG
溜まるんじゃなくて、溜めてるの
0506 NGNG
Delphi のプロジェクトを CVS でバージョン管理している人いる?
0507デフォルトの名無しさんNGNG
たくさんいる。
http://sourceforge.net/softwaremap/trove_list.php?form_cat=265
0508デフォルトの名無しさんNGNG
ttp://sourceforge.jp/
こっちは利用者少ないね。まだ開設して間もないからかな?
0509デフォルトの名無しさんNGNG
>>508
そもそもなんで.jpなんて作る必要があるの?
本家sourceforgeでいいじゃん
0510デフォルトの名無しさんNGNG
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=265
0511デフォルトの名無しさんNGNG
>>509
こういうのを本家から隔離するため。
http://sourceforge.jp/projects/nxt/
0512デフォルトの名無しさんNGNG
>>511
隔離所だったのか。納得(笑)
0513デフォルトの名無しさんNGNG
>>511
Σ( ゜Д゜)
0514デフォルトの名無しさんNGNG
StringGridで行数を動的に増やしていくのって
どうすればいいんでしょうか…

最後の行に入力されたら一行増やすってのをやりたいんですが
0515Delフサギコ ◆zE1iiRdQ NGNG
ミ ゚Д゚彡,,,RowのCountを増やす。
0516514NGNG
あ、やっぱり自分で書くしかないんですね
プロパティにあるかと探してました
失礼しますた
0517デフォルトの名無しさんNGNG
>>506
WinCVSつかってまふ。
0518デフォルトの名無しさんNGNG
CVS の使い方がいまいちわからん。
IDE で開くと、書き込み禁止になっていて更新できないじゃん。
0519デフォルトの名無しさんNGNG
CVSってな〜に...?^^);・・)?ロ_ロ)?
0520デフォルトの名無しさんNGNG
>>519
検索しようね。
後、PC-UNIXに興味を持ってもおもしろい。
0521デフォルトの名無しさんNGNG
>>519
ぐぐりなさい。
http://www.google.com
0522デフォルトの名無しさんNGNG
>>518
いま、ちょっとVSS使っているから、あたまがごっちゃになっているんだけど。。。
ちゃんとチェックアウトしてる?
チェックアウトすると書き込み可能な状態になるはずだよ。
なんかオプションもあったかも。
つか、WinCVSを日本語化して使うと楽チンかもよ。
0523デフォルトの名無しさんNGNG
そういやCVSのスレってないね。
ありそうなもんだけどね。
0524デフォルトの名無しさんNGNG
CVSを使ってファイル管理
http://pc.2ch.net/test/read.cgi/unix/997434642/
彼女をCVSで管理したい
http://pc.2ch.net/test/read.cgi/unix/999837578/
0525デフォルトの名無しさんNGNG
CVS を使う時に、まずマスターのフォルダからリポジトリにインポートしますよね?
で、作業フォルダにチェックアウトして更新していくと思うんだけど、
最初のマスターファルダのファイルはどうすればいいの?
削除してしまってOK?
0526デフォルトの名無しさんNGNG
>>525
削除してもいいし、その上からチェックアウトしてもよい。
0527デフォルトの名無しさんNGNG
>>518
書込み禁止にしないオプションがあるよ
0528518NGNG
>>522
>>527
見落としてました、どうもありがとう( ● ´ ー ` ● )
0529デフォルトの名無しさんNGNG
誰か WinCVS を使い倒すスレ立ててくれ。
0530デフォルトの名無しさんNGNG
アドベンチャーゲームのようなシステムを作ろうと思っているのですが、
DirectXを使わずにFormをフルスクリーンにする方法が分からず困っています。
EnumDisplaySettings, ChangeDisplaySettingsとSetWindowPosなどで
出来るかと思ったのですが、画面の解像度は切り替えることが出来ても
Formがフルスクリーンになりません。
どのようにしたらフルスクリーンにできますか?
0531デフォルトの名無しさんNGNG
>>530
BorderStyle := bsNone;
WindowState := wsMaximized;

にすればフルスクリーンになります。
0532デフォルトの名無しさんNGNG
>>531
ありがとうございます。さっそく試してほぼ思い通りの動作ができましたが、
フルスクリーンにしたときだけMainMenuを消すためには、
全てのMenuItemに対してVisibleをFalseにするしかないでしょうか。
0533デフォルトの名無しさんNGNG
>>532
メインメニューの名前が MainMenu1 とした場合、

消したい時、
Self.MainMenu := nil;

表示したい時、
Self.MainMenu := MainMenu1;
0534デフォルトの名無しさんNGNG
>>533
そうか、nil入れれば消えるんですね。ありがとうございました。
0535デフォルトの名無しさんNGNG
アドベンチャーゲームができるには先が長そうだな・・・
まぁ、がんがれ (´ー`)y-~~~
0536デフォルトの名無しさんNGNG
nil って何?
nullと同じ意味?
0537デフォルトの名無しさんNGNG
>>536 Cから入った人?
なら ttp://hp.vector.co.jp/authors/VA014436/prg_memo/delphi/c_d.html
0538デフォルトの名無しさんNGNG
Caption := IntToHex( Integer(Pointer(nil)) ,8);
0539デフォルトの名無しさんNGNG
先ほどフルスクリーンについて質問した者ですが、
解像度の変更で分からないことがあります。
元の解像度に戻すとき、
ChangeDisplaySettings( nil, 0);
とすると、「変数実パラメータと変数仮パラメータとは同一の型でなければなりません」
と言われます。
それで、
ChangeDisplaySettings( DEVMODE(nil), 0);
や
type PDEVMODE=^DEVMODE
ChangeDisplaySettings(PDEVMODE(nil),0);
などを試したのですが、どれもうまくいきません。
nilを渡すにはどうすればいいでしょうか。

また、EnumDisplaySettingsの2番目の引数に
ENUM_CURRENT_SETTINGSが渡せない(定義されていないと言われる)のですが、
この方法で現在の設定を取得することはできないのでしょうか。

>>535
がんがります
0540無責任だがNGNG
>>539
 第一パラメータは参照を渡しますから
ChangeDisplaySettings(PDEVMODE(nil)^ , 0);

でも、解像度の変更はそれでやらない方がいいよ。
だってディスクトップに整列されたアイコン崩れてしまうでしょ?
0541デフォルトの名無しさんNGNG
>>540
自分がデスクトップのアイコンを自動整列にしてるんで、その辺無頓着でした。
ただ、そういうのが気になる人ならアイコン整列用ソフト入れてるんじゃないかとも
思います。
…それ以前に解像度変更するための他の方法知らなかったりしますが。
過去ログで昔見かけたような気がするので検索してみようと思います。
0542無責任だがNGNG
解像度を変更しなくとも、アドベンチャーゲームなら 640x480のオフスクリーン画面を
画面改造度にあわせて拡大して描画した方が良いのでは?

というような意味です。 
0543デフォルトの名無しさんNGNG
>>541
・遅くなる
・画像が多少汚くなる
この2点が気にならない程度に収まるならそれでもいいんですけど…
実際にその方法でやってるゲームを見たことが無いので、
やはり何か問題があるのではないでしょうか。
ただ、その方法もアリだとは思うので、いちおう実験してみようと思います。
問題なければその方法でやるかも。
0544デフォルトの名無しさんNGNG
アクションゲームなら、それほど画面の更新頻度も高くないのだから
時間がかかるけど綺麗な拡大ルーチンを使って
例 ttp://hp.vector.co.jp/authors/VA015850/program.html

バックグランドで必要なビットマップを作ればいいのでは?
それに、解像度の高い方が文字はずっと読みやすいし
0545デフォルトの名無しさんNGNG
http://game.2ch.net/test/read.cgi/gamedev/1013170036/236-237
0546543NGNG
とりあえず次のレス書く前に>>545のスレを熟読しようと思いました。
0547デフォルトの名無しさんNGNG
スレ違いでごめん。
CVSの本を見てたら、開発側の人たちがゴタゴタしているようなんだけど、
今は大丈夫なの?
0548デフォルトの名無しさんNGNG
DirectXで申し訳ないのですが、
DXImageList1.Items.Items[0].Draw(DXDraw1.Surface,100,100,0);
と、本当は書きたいのに、なぜか何も描画されず、
DXDraw1.Surface.Canvas.Draw(100,100,DXImageList1.Items.Items[0].Picture.Graphic);
と、この一行のみ置き換えたら描画されるようになりました。
しかし、色抜きをしたいので是非もとの方法を使いたいと思っています。
どうしてしたの方法では描画でき、上の方法では描画できないのでしょうか?
わからない方教えてください。
0549デフォルトの名無しさんNGNG
それDirectX?
何かのラッパーライブラリ?
0550通報しますた。NGNG
Object Pascal 言語ガイドをHTML形式のヘルプにしてみました。
それほど使う機会はないと思われますが、とりあえずどうぞ。
リッチテキスト形式に比べ、特に使いやすいわけではありませんが、
スタイルシートを使うことで、お好みの表示に設定できます。
(注意:このヘルプは2ちゃんねら仕様になっています)
ttp://www36.tok2.com/home/morgue36/OPLG.LZH
0551デフォルトの名無しさんNGNG
ヽ(`Д´)ノ戻るよ!ウワァァン
0552デフォルトの名無しさんNGNG
>>550
使いやすい。サンクス。
0553デフォルトの名無しさんNGNG
windowsのエクスプローラの左側のようにフォルダを表示するコンポーネント
どっかにないですか?
0554デフォルトの名無しさんNGNG
Del6使え
0555デフォルトの名無しさんNGNG
Del5じゃ無理?
0556デフォルトの名無しさんNGNG
>>553
SHBrowseForFolder ではダメ? 使い方は小さな実行ファイルを作ろうスレに
0557デフォルトの名無しさんNGNG
>>556
それはモーダルダイアログじゃ?
0558デフォルトの名無しさんNGNG
>>548 わからない方教えてください。

ぜんぜんわかりませんが。
0559デフォルトの名無しさんNGNG
>556 ごめんなさい15レス目あたりでチンプンカンプン>小さな実行スレ
0560デフォルトの名無しさんNGNG
僕も全然わかりません
0561デフォルトの名無しさんNGNG
わたしも分かりません。
0562デフォルトの名無しさんNGNG
拙者も如何とも解せぬなり。
0563デフォルトの名無しさんNGNG
よかったね。
0564(@´ー`@)NGNG
(@´ー`@)なっちもわからんべさ。
0565ひろゆきNGNG
おいらもサッパリわかりませんです。。。
0566デフォルトの名無しさんNGNG
ファイルをゴミ箱に移すときSHFileOperationをつかいますが、
windowsの設定でゴミ箱に移すとき確認するようにしてる場合、
SHFileOperationが実行されると「ゴミ箱に移しますか?」と出るのですが
これをwindowsの設定関係なしで出ないようにする方法か、出ても
ユーザが「はい」「いいえ」のどちらを選択したか知る方法はないでしょうか?
0567デフォルトの名無しさんNGNG
FOF_NOCONFIRMATION指定しても駄目?
0568566NGNG
FOF_NOCONFIRMATIONをflagに追加すれば全て許可されると分かりました
申し訳ない..
0569デフォルトの名無しさんNGNG
>>553
Shell Component Library
0570デフォルトの名無しさんNGNG
>550
いただいたよ.サンクスコ.
てか、これ全部自分で打ったの?がんばったねえ.
0571デフォルトの名無しさんNGNG
>>553 有難うございます!! 恐らく探していたのはこれのような気がします!
...
......リンク切れてた...
0572550NGNG
ヘルプファイルですが、いくつかミスってるので、折を見て修正します。

本当はプログラマーズガイドをやろうと思ったのですが、
目次を眺めただけで圧倒されてあきらめてしまいました・・・
Borlandは一生WinHelpのままなのだろうか?
0573548NGNG
結局出来なかったのですが大変参考になりました。
ありがとうございました。
0574343NGNG
ヘルプミーです!
間違えてDelphiをゴミ箱に捨ててから、元に戻したら、
コンポーネントパレットがFramesとSamplesタグの物しかなくなってしまいました!
どうしたら元に戻りますか?
コンポーネントをインストールとかですかね、やり方わからないんですが。
詳しい方々、どうか助けてください。
0575デフォルトの名無しさんNGNG
>>574
そーゆーときゃ素直に再インストールしようよ
0576343NGNG
>>575
そうですか…DLすると4時間くらいかかるので、かなり鬱です。。。
ま、仕方ないか…。
ありがとうございました。
0577デフォルトの名無しさんNGNG
>>576 次にダウンロードしたら、ダウンロードした時のインストーラは残しておけよ

ついでに忠告しとくと、レジストリもD6の部分のバックアップを取っとけ
ただし、どうやったらいい? とか聞くようなレベルならそれは辞めとけ!
0578デフォルトの名無しさんNGNG
捨ててみたけど再現しないぞ(゚Д゚) ゴルァ
パッケージ一覧のチェックが外れてるか、パッケージ一覧から消えてるか、
パレットの設定で非表示になってるとか、そもそもbplファイルを捨てて戻してないとか、
とかとか・・・
0579343NGNG
>>578
もう消しちゃいましたけど、いつもゴミ箱は清潔に保っているので、bplがゴミ箱に残っていた事は無いです。
これから寝るんで、その間にDLが終わっている事でしょう。
0580デフォルトの名無しさんNGNG
昼寝か…
0581通りすがりNGNG
>>424
>>429
参考にさせていただきました。

この、ソースに、'\'記号対策を
盛り込むとしたら、どんな感じ
にすればいいでしょうか?

試してみたところ、名や山、小など
の文字がある部分で、化けるので
バイナリエディタで確認すると
\が入っていたので。
0582デフォルトの名無しさんNGNG
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n,m: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;    m := 0;
   while n < sz do
   begin
   if (titleName[n+1]='\')and(titleName[n+2])='\') then begin Inc(n);continue;end;
    wk[m+1+0] := titleName[n+1+1];
    wk[m+1+1] := titleName[n+1 ] ;
    Inc(n, 2); Inc(m, 2);
   end;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('メモリを確保出来ませんでした.');
 end;
end;
0583デフォルトの名無しさんNGNG
Delphiにて正規表現コンポーネントを作成中ですが需要ありますか?
0584デフォルトの名無しさんNGNG
既にそこそこ良いのがあるのでどうだろ?
ttp://homepage1.nifty.com/bmonkey/delphi/delphi.html
0585デフォルトの名無しさんNGNG
>>583
Perl互換で外部DLL必要無しなら需要あります。
awk互換なら>>584のがいい出来なので需要ありません。
0586デフォルトの名無しさんNGNG
>>582 ありがとうございます。 試させていただきました。 山や小などは良いのですが 輸や名、館などはまだ化けました 作は屏に、木は杜に、酒は岑に化け ました。 一筋縄では逝かないってことでしょうか。
0587デフォルトの名無しさんNGNG
>>586 じゃ、文字化するコードの16進ダンプを取ってみて
0588デフォルトの名無しさんNGNG
>>583
名前が2ちゃんねる風ならぜひホスイ
0589586NGNG
>>587

文字化けは、たとえば
元の文字列を
横浜作業所(現場名)とすると
16進は
FE FF 6A 2A 6D 5C 5C 4F 5C 5C 69 6D 62 40 FF 08 73 FE 58 34 54 5C 72 FF 09

で、化け方は
横浜屏???????)
16進は
89 A1 95 6C 9B A0 3F 3F 3F 3F 3F 3F 3F 81

こんな感じです。
0590586NGNG
他の文字の16進は
木は67 5C
輸は 5C 8F
酒は5C 91

こんな感じでした。
0591デフォルトの名無しさんNGNG
>>583
TComponentを継承しておらずVCL非依存ならほすぃ
0592デフォルトの名無しさんNGNG
>>591
同意。
0593デフォルトの名無しさんNGNG
どうやら文字2バイト目の5Cを忘れてたみたい こんな感じでどう?

function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n,m: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;    m := 0;
   while n < sz do
   begin
   if (titleName[n+1]='\')and(titleName[n+2])='\') then begin Inc(n);continue;end;
    wk[m+1+0] := titleName[n+1+1];
    wk[m+1+1] := titleName[n+1 ] ;
   if (titleName[n+2]='\')and(titleName[n+3])='\') then Inc(n);
    Inc(n, 2); Inc(m, 2);
   end;
    wk[m+1+0] := 0;
    wk[m+1+1] := 0;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('何かエラー');
 end;
end;
0594Del子NGNG
書式付きテキストと画像を表示したいのですが、とりあえず下のような方法を思いつきました。

 ・RichEdit2.0 のラッパーコンポーネント(TRichEdit98 など)を利用する
 ・IE コンポーネントを利用する
 ・独自コンポーネントを作成する

Delphi 6 Personal の環境で一番簡単に実現できる方法はどれでしょうか?
また、何か他によいコンポーネントなどをご存じでしたら、教えてください。
0595デフォルトの名無しさんNGNG
>>550
ちらっと見たけど凄くよさげ。今度じっくり読ませてもらうよー
  ありがとう
0596デフォルトの名無しさんNGNG
>>594
書式付きテキストってRichTextだよね?
だったらTRichEditだね。
IEはHTMLだから関係ないよ。
0597Del子NGNG
>>596
レスありがとうございます!

> 書式付きテキストってRichTextだよね?

言葉足らずで申し訳ありません・・・
フォントの書体や色などの装飾を指定して表示できればフォーマットはなんでもいいのです。
RichEdit が簡単そうなのですが、文章中に画像を表示する方法がネックになっていて、困っています。
何かよい方法はないでしょうか?
0598デフォルトの名無しさんNGNG
>>597
Labelでもいいわけだ。
0599デフォルトの名無しさんNGNG
>>596
頭弱そう・・・
0600Del子NGNG
>>598
部分的に文字の色を変えたりしたいので、Labelはちょっと・・・
0601デフォルトの名無しさんNGNG
HTMLにしる
0602Del子NGNG
>>601
HTML を表示するには IE コンポーネントを利用することになりそうですが、
Delphi で IE コンポーネントを利用するとメモリリークすると聞いたのですが、本当ですか?

他の軽いコントロールでHTMLを表示できれば一番いいんですけど・・・
0603デフォルトの名無しさんNGNG
Σ(゚Д゚ )y-~~ ソウナノ!?
0604デフォルトの名無しさんNGNG
>他の軽いコントロール
自作しる!
0605Del子NGNG
(ノД`。)
0606デフォルトの名無しさんNGNG
>Delphi 6 Personal の環境で一番簡単に実現できる方法はどれでしょうか?
答え:諦める
0607デフォルトの名無しさんNGNG
>>599
なんで?書式付きテキストといったらリッチテキストが最初に思い浮かぶけど。
0608デフォルトの名無しさんNGNG
> IEはHTMLだから関係ないよ。
ここの事だと予想。
0609デフォルトの名無しさんNGNG
>>602
RichEditとブラウザなら、ブラウザの方が表示速度は断然速い。
メモリリークの話はしらないけど、Windowsに付いてるモニタツール
使ってメモリを解放してるかしれ調べればよい。
0610デフォルトの名無しさんNGNG
>>608
なんでそこがひっかかるのか全く分からん。
書式付きテキスト=リッチテキストを表示するならRichEditだから、
IEコンポーネントを使っても意味がない、IEはHTMLを表示するために使うべき
と言う意味なんだけど。
0611デフォルトの名無しさんNGNG
RichEditやIEコンポが嫌なら自前でTextOutするコンポ作れよ。
0612デフォルトの名無しさんNGNG
>>610
あのな、HTMLってのは書式付きテキストを包括してるっつー話なんだよ。
0613デフォルトの名無しさんNGNG
>>609

>RichEditとブラウザなら、ブラウザの方が表示速度は断然速い。

そうなの?WinHelp>>>HTMLHelpなので、RichEditのほうが速いと思てたヨ。
0614Delフサギコ ◆zE1iiRdQ NGNG
            _____________
    ∧,,∧    / RichEditの方が早いに
  _ ミ,,゚Д゚彡_<  きまっとる。。。と思われなんだけど。。。
.=| |==U==U=| |= \
 | |@ミ  ミ .| |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | |
 | |      | |
0615デフォルトの名無しさんNGNG
リッチエディットは埋込OLEを使えば絵でも埋め込めるそうですが
Delphiから使うにはそれなりの努力が必要なようです
0616デフォルトの名無しさんNGNG
>>613
RTFを独自形式にコンパイルしてるからでしょ。
0617586NGNG
>>593
ありがとうございます。
ただ
    wk[m+1+0] := 0;
    wk[m+1+1] := 0;
この部分で
Charとintegerには互換性が
ありません。
と出てしまうのですが。
0618読まずにカキコNGNG
wk[m+1+0]:=#0かな
0619デフォルトの名無しさんNGNG
とりあえず、ニフテイのTRichEditに OLE 機能を追加するから
http://www.nifty.ne.jp/forum/fdelphi/samples/00383.html
0620586NGNG
>>618
コンパイル通りました。

しかし、実行させると
ページ違反が出てしまうのですが。

0621デフォルトの名無しさんNGNG
>>582
>>593
それから
多かった')'は取りました。
(titleName[n+2])='\')を
(titleName[n+2]='\')
としてみました。

0622デフォルトの名無しさんNGNG
>>620
2つめの wk[m+1+1] := 0; を消すとか  SetLength(wk,sz+2);  とか 
もう少し自分で考えてみるとか
0623デフォルトの名無しさんNGNG
>>622
ふたつとも、試させていただきましたが、やはり、ページ違反が出て
しまいました。
0624デフォルトの名無しさんNGNG
>>622
ヘルプにWideCharToStrVar手続きがあったので、

Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
の部分を、
WideCharToStrVar(PWideChar(PChar(wk)+2),dest1);
Result := dest1;
としてみたのですが
ページ違反は変わりませんでした。

どのように直していけば良いのでしょうか?
0625デフォルトの名無しさんNGNG
>>624
エンコード方式が良く判らない
//   横  浜   作   業  所  (   現 場  名   )
//   6A2A 6D5C  4F5C  696D 6240 0028 73FE 5834 540D  0029
//FE FF 6A2A 6D5C5C 4F5C5C 696D 6240 FF08 73FE 5834 545C72 FF09

\ (#$5C)が2つ入ると \ 一つという約束の他にも \が絡んだ別の規則がありそう

それと#0が入った場合の対策もある様子
0626デフォルトの名無しさんNGNG
という事で、どういうエンコード名なのかそれだけ調べてみて
0627デフォルトの名無しさんNGNG
Delphiのフォームファイル .dfm を Delphiで作ったプログラムから読込むと

 object Label1: TLabel
  Left = 12
  Top = 12
  Width = 38
  Height = 12
  Caption = #12418#12376#12418#12376
 end

こんな感じで日本語の部分が #〜のように変換されています、これを
漢字として表示させるにはどのようにいたすればよろしいでしょうか?
0628デフォルトの名無しさんNGNG
>>627
フォントを変更してみたらどだろ
0629627NGNG
>>628
早々にお返事ありがとうございます。
それは、ちょっと違うと思うのですが・・・。困った・・・。説明が下手で申し訳ありません。

1.
Delphiで新規にフォームを作成して、ラベルでも貼り付けてから
Captionへ'日本語'とか設定して保存して下さい。

2.
保存した Form1.dfm を メモ帳等で開いても同様に日本語が #nnnnnに変換されて
いることが確認できると思います。

これを メモ帳でなくて、自分で作成したプログラムから開いて#nnnnnではなく、
日本語として見たいと言うことなのです。
0630デフォルトの名無しさんNGNG
>>626
ありがとうございます。

utf-16のbig endianの様です。
0631デフォルトの名無しさんNGNG
>>629
ついでに、オマエもエンコード名調べろや
0632Delフサギコ ◆zE1iiRdQ NGNG
ミ ゚Д゚彡

テキストで以下のようなものを
XXX.regと名前をつけて保存、実行というか[結合]をしてミレ


----
REGEDIT4

[HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\FileFormat]
"DFMFormat"=dword:00000000
----
0633Delフサギコ ◆zE1iiRdQ NGNG
ミ ゚Д゚彡

あと、純粋に変換したいなら
ここのソースみるといいんじゃない?>>629
http://homepage1.nifty.com/wizman/app/bt5/index.html
0634デフォルトの名無しさんNGNG
>>630
いや、だから UTF-16を8bit文字に収まるようにエンコードしてるようだけど
そのエンコード方式を調べてみてって意味です。
0635デフォルトの名無しさんNGNG
>>632-633
ありがとうございました、解決しそうです
0636デフォルトの名無しさんNGNG
>>634
ソースを良く見て、何をしてるのか読みとって下さいって事ですね。

うーん、難しそう。
0637デフォルトの名無しさんNGNG
>>634
 >>625 を見る限りは

UTF16に変換して、
上位バイトが 00 なら $0029->$FF09 $0028->$FF08

そして、C言語の \ エスケープを加えたようです


たとえば $002D はどうなる? というのが判らないのです。


0638無責任だがNGNG
とりあえず >>625 だけは変換出来る事を確認
(なお WideStringはAnsiStringに代入すれば自動的にUnicode->ShiftJisされます)

function WEcvt(const s:String): WideString;
var Sz, n,m: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
var w:string;
begin
 Result:=p^;
 if Result=#0 then exit;
 inc(p);
 if Result='\' then begin
  case p^ of
   'b': Result:=#$08;
   'a': Result:=#$07;
   'f': Result:=#$0C;
   'r': Result:=#$0D;
   't': Result:=#$09;
   'v': Result:=#$0B;
   'n': Result:=#13;
   end;
  inc(p);
  end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
Result:=#0;
 c1:=getb;if c1=#0 then exit;
 c2:=getb;if c2=#0 then exit;
 if Endian then Result:=WideChar((ord(c1) shl 8)+ord(c2))
      else Result:=WideChar((ord(c2) shl 8)+ord(c1));
 if Result=#$FFFE then begin Endian:=not Endian;
 Result:=#$FEFF;
 end;
end;
var i:Integer;
var w:WideChar;
begin
 i:=0;
 Endian:=false;
 p:=PChar(s);
 Setlength(Result,Length(s));
 repeat
 w:=getw;
 if w=#$FEFF then continue;
  inc(i);
  Result[i]:=w;
 until w=#0;
SetLength(Result,i);
end;
0639Del子NGNG
>>619
ありがとうございます!
HTML は便利なのですが、IE コンポーネントの評判があまりよくないようなので、
とりあえず TRichEdit に OLE 機能を追加したコンポーネントを作成してみたいです。

Delphi の RichEdit は 1.0(?) らしいので ついでに RichEdit2.0 に対応させたいのですが、
どこかに適当なサンプルなどはないでしょうか?
RichEdit98 のソースを見たのですが、膨大すぎてさっぱり分かりませんでした・・・
なにしろ Delphi 使うの初めてなので (ノД`。)
0640デフォルトの名無しさんNGNG
>>638
ありがとうございます。

しかし、まだ一部の文字で失敗しています。

東神田一丁目ビル(現場名)
FE FF 67 71 79 5E 75 30 4E 00 4E 01 76 EE 30 D3 30 EB FF 08 73 FE 58 34 54 5C 72 FF 09
が
東神田
93 8C 90 5F 93 63
と'一'のところで切れました。

それから、
鹿児島市立図書館(現場名)
FE FF 9E 7F 51 50 5C 5C F6 5E 02 7A CB 56 F3 66 F8 99 5C 28 FF 08 73 FE 58 34 54 5C 72 FF 09
が
鹿児島市立図書? (現場名)
8E AD 8E 99 93 87 8E 73 97 A7 90 7D 8F 91 3F 81 69 8C BB 8F EA 96 BC 81 6A
となり、館の文字が化けました。

また、半角英字が、含まれると
その文字含め、以降が切り捨てられました。

という状態でした。
0641ななしNGNG

はじめまして。

(1) Delphiでは、VBのようなシステム予約定数はないのでしょうか。
  (VBの例)
  vbCrLf → 改行復帰 (文字コード定数)
  vbKeyF1 → [F1]キー (キーコード定数)
  vbBlack → 黒    (色定数)

(2) Delphiでは、複数行まとめてのインデント変更はできないのでしょうか?
  (VBのIDEの[Tab]/[Shift] + [Tab] に相当する機能)

(3) VBでは、定数の配列は作れません(変数として生成することは当然可能)が、
  Delphiでは可能でしょうか?

(4) VBでは、オブジェクトの「型」名のプリフィクスを付ける命名(いわゆる、
  「ハンガリアンスタイル」)が推奨されますが、Delphiで推奨される命名
  規約は何かありますか?
  (この質問、袋叩きにされそうで、ちょっとコワイ・・・)

以上、よろしくお願い致します。m(_ _)m
0642デフォルトの名無しさんNGNG
>>641
(1) ある
(2) できる
(3) できる
(4) VCLに合わせる感じにはなってる
0643デフォルトの名無しさんNGNG
>>641
ヘルプを調べれば全て解決します。
0644無責任だがNGNG
>>640 その 東神田一丁目ビル(現場名) と鹿児島市立図書館(現場名) に対応しました
しかし、これはどういう変換なんでしょう? \エスケープかと思ったら #0を平気で含んでるし


function WEcvt(const s: AnsiString): WideString;
var Sz, n: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
begin
 Result:=p^;
 if n>=Sz then
  exit;
 inc(p); inc(n);
 if Result='\' then begin
   Result:=p^;
  case p^ of
   'b': Result:=#$08;
   'a': Result:=#$07;
   'f': Result:=#$0C;
   'r': Result:=#$0D;
   't': Result:=#$09;
   'v': Result:=#$0B;
   'n': Result:=#13;
   end;
  inc(p);inc(n);
  end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
 c1:=getb; c2:=getb;
 if Endian then Result:=WideChar((ord(c1) shl 8)+ord(c2))
      else Result:=WideChar((ord(c2) shl 8)+ord(c1));
 if Result=#$FFFE then begin Endian:=not Endian;
 Result:=#$FEFF;
 end;
end;
var i:Integer;
var w:WideChar;
begin
 Sz:=Length(s);
 i:=0;
 n:=0;
 Endian:=false;
 p:=PChar(s);
 Setlength(Result,Sz);
 repeat
 w:=getw;
 if w=#$FEFF then continue;
  inc(i);
  Result[i]:=w;
 until w=#0;
 SetLength(Result,i);
end;
0645デフォルトの名無しさんNGNG
プロシージャや関数から途中で抜けるにはどうしたらいいですか?
C言語のreturnやBASICのexit subみたいな動作です。
0646デフォルトの名無しさんNGNG
>>645
Exit;

ヘルプ読め!
0647デフォルトの名無しさんNGNG
645が関数でExitを使ったとき
Resultへの代入を忘れてまた質問してくるのに500ウォン
0648デフォルトの名無しさんNGNG
>>641
(1)
vbCrLf: Sockets.pasかIBUtils.pasにCRLFが定義されている
vbKeyF1: VK_F1
vbBlack: clBlack

(2)
デフォルトの配置だとCtrl+Shift+I, Ctrl+Shift+U

(3)
ヘルプの「配列型定数」参照

(4)
VCLのソースを参照。
0649デフォルトの名無しさんNGNG
>>648
sLineBreak じゃだめなの?
0650デフォルトの名無しさんNGNG
>>Del子
つーか、いきなり大風呂敷広げてricheditだの言ってるくらいなら、
メモ帳あたりから始めろって思うのはオレだけ?
「初心者だから分からないんです」って堂々と、ここでほざくことに
なんの意味があるの?
構って系の人ですか?
0651デフォルトの名無しさんNGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________
0652デフォルトの名無しさんNGNG
>>650はなんでそんな熱くなってるの?って思うの俺だけ?
0653650NGNG
>>652
熱くなってるように見える?ふーん。
0654デフォルトの名無しさんNGNG
ウワー ダサ・・・
0655デフォルトの名無しさんNGNG
とりあえず、どうでもいい書き込みはsageろよ禿
0656デフォルトの名無しさんNGNG
(4)
VCLを見た感じ

メンバ変数は全部F〜、ローカル変数はプレフィクスなしの分かりやすい名前、
列挙型にはプレフィクスつけるって感じ?

コンポーネントの名前ってどうしてる?
Del4プログラミング技法には、Label→lbl、Edit→edって感じで
プレフィクスつけるのが標準みたいに書いてあって、俺ずっとそうやってるけど。
lblHogeとか、pnlHogeとか。

だから、Button1とかのまま書いてる人のソースってすげえ読みづらい・・・。
0657デフォルトの名無しさんNGNG
>>649
sLineBreak の方が、プラットフォームに依存しないからなおよい。
標準で System に定義されてるしね。

でも確実に CR + LF にしたい場合には #13#10 が無難。
0658デフォルトの名無しさんNGNG
>>656
香ばしく同意。
0659デフォルトの名無しさんNGNG
GExpertsのソースだとFを大文字じゃなくて小文字で書いていて(fHandle←みたいな感じ)
わりと見やすいと思った。
0660デフォルトの名無しさんNGNG
コンポーネントにプレフィックスは付けたことないなぁ。
みんな付けてるのだろうか。
lblHogeならHogeLabelにするな。
0661デフォルトの名無しさんNGNG
>>644 \エスケープかと思ったら #0を平気で含んでるし

まえの話のながれからすると pdf ファイルの文字列だと思われ。
#0 はなくて、ファイルイメージは '0' という文字のアスキー
コード $30 が入っていると思われ

pdf ファイルの仕様書に、文字エンコ―ディングときの backslash の
エスケープ文字としての使用法にすべて書いてある。

function pdfStrToStr(s:string):string;
var
 ss:WideString;
 rs,s1,s2:string;
 i:integer;
begin
 i := 1;rs := '';ss := '';
 while i <= (Length(s) div 2) do begin
  s1 := UpperCase(s[i*2-1]+s[i*2]);
  if s1 = '5C' then begin
   s2 := UpperCase(s[i*2+1]+s[i*2+2]);
   if s2 = '5C' then begin
    rs := rs+'5C';
    inc(i);
   end else
   if StrToInt('$'+S2) > $65 then begin
    rs := rs+IntToHex(StrToInt('$'+S2)-$65,2);
    inc(i);
   end;
  end else
   rs := rs+s1;
  inc(i);
 end;
 for i := 1 to (Length(rs) div 4) do
  ss := ss + WideChar(StrToInt('$'+rs[i*4-3]+rs[i*4-2]+rs[i*4-1]+rs[i*4]));
 result := ss;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
begin
 //s := '9E7F51505C5CF65E027ACB56F366F8995C28FF0873FE5834545C72FF09';
 s := '6771795E75304E004E0176EE30D330EBFF0873FE5834545C72FF09';
 s := pdfStrToStr(s);
 Memo1.Lines.Add(s);
end;
0662デフォルトの名無しさんNGNG
私もコンポーネントにはプレフィックス付けますね。
Edit→edt だけど。
0663デフォルトの名無しさんNGNG
俺はつけないなぁ。
プレフィックスは列挙型につけるだけ。
0664デフォルトの名無しさんNGNG
変数名は間違えればコンパイラが怒ってくれるので付けない
列挙型には付ける。コンポは名前が重複しやすいので、付ける。
"住所"というキャプションのラベルと住所の入力欄なら
edt_Addressと lbl_Address とか。
0665デフォルトの名無しさんNGNG
命名法の議論は不毛なり ← これ定説
0666デフォルトの名無しさんNGNG
>>665
別に議論じゃないと思うけど。
各々が「自分はこうしてる」って言ってるだけ。
0667デフォルトの名無しさんNGNG
>>665-666
命名法の議論は不毛なり ← これ定説
   ↓
命名法の議論は不毛な争いに発展することが多い ← これ定説

0668いまさらNGNG
あれはサイババの勝手なんですよー。定説ですよー← これ定説
0669当たって砕けろNGNG
Delphi挑戦します。目標シミュレーションゲームです。
スキルは0。鬱。
とりあえず絵を表示させてキー入力で動かしてみたいと思います。
スレ違いでしたらすいません。
0670デフォルトの名無しさんNGNG
>>669
おうっ、頑張れや。途中でやめるなよ。
まぁ質問とかあったら、↓のスレを再利用すればいいと思う。

Delphiでアクションゲームが作りたい!!
http://pc.2ch.net/test/read.cgi/tech/1019654975/
0671当たって砕けろNGNG
>>670
ありがとうございます。
俺RPGツクールやってたんですが、いろいろ兆戦したいということで
Delphiいじってみようと。

それではそのスレにこっそり移ります。
0672VB→DelphiですNGNG
VBには、テキストファイル(中身はCSV)をデータベースとして接続できる
みたいですが、DelphiはCSVをデータベースとして、SQLを利用するみたいな
事は出来るんでしょうか???
もしかしたら、超恥ずかしい質問をしているのかもしれませんけど…
今、EXCELで作成したどでかいCSVファイルがあって、VBAだとめたくそに重く
VBでオンメモリで全部読み込んでしまって、検索は二分木法とか、1番目から
シーケンシャルに比較していくという、旧タイプのコードを書いてたんです
が…
時代遅れが!と笑わず、このCSVをDelphiでDB的に扱うにはどうしたらいい
ものか、お知恵を拝借させて下さい。
0673デフォルトの名無しさんNGNG
DELPHIで作ったアプリって最小化の動作がなんかおかしいよ。
あほなの?
0674デフォルトの名無しさんNGNG
おまえがね
0675無責任だがNGNG
>>672
1、CSVファイルをBDEに取り込む・・・・・・・・・SQLも使用可
2、CSVのまま扱うdbコンポーネントを探す・・SQLは無理
3、ExcelをADOで・・・・遅いしVBAがマシかも
0676デフォルトの名無しさんNGNG
>>673
俺のVCLなしで作ったアプリ見ても同じことが言えるかな(ゲラゲラ
0677デフォルトの名無しさんNGNG
>>676
Delphiでそんなもん作ってる時点でDQN。
素直にC使えや。
0678デフォルトの名無しさんNGNG
APIだけで書くならどの言語だって同じように手間かかる。
なら別に好きな言語で書いていいやん。
そのせいで誰かが迷惑するんでなきゃね。
0679デフォルトの名無しさんNGNG
>>677
今時、CでOOPできるかよ(ゲラゲラ
0680デフォルトの名無しさんNGNG
各スレで「〜してる時点でDQN」って書いてる人は同一人物とおもわれ
0681デフォルトの名無しさんNGNG
人物特定したがってる時点でDON
0682アタシは677だけ。NGNG
>>680
しかも間違ってる時点でDQN
0683デフォルトの名無しさんNGNG
>>679
過去から永劫未来まで無理だと思うのだが。

    だ が そ れ が い い 。
0684デフォルトの名無しさんNGNG
>>679
OOP=クラス

って言うのも早計だけどな。
0685ななし@641ですNGNG

>>642-643
>>648

コメントを頂いた方々、ありがとうございました。m(_ _)m

実は、(3)だけ(定数の配列)は「たぶんできるんだろうな」と思いながら
聞いてみました。
残念だったのは、(1), (2), (4)を結局、ヘルプで見付けられなかったこと
です。キーワードが悪いのでしょうか?

# まさか、PersonalとProfessional, Enterpriseでヘルプが違う、なんて
# ことはないですよね?(^^;
0686デフォルトの名無しさんNGNG
>>672
検索程度の機能があればいいならTStringListやTStringsの
CommaTextプロパティを活用すれば簡単に作れると思う。

>>673,676 最小化はDelphi 4以前の話でしょ。
0687デフォルトの名無しさんNGNG
>>686
Del5移行でも、微妙におかしいよ。
例えば、「デスクトップの表示」で最小化させた状態から復帰させるときなんか。
あと、Appウィンドウの関係、Win2000移行のモーダルダイアログのタイトルの
点滅機能が働かないね。VCL使いつつ回避してるソフトもあるけど。
0688デフォルトの名無しさんNGNG
CommaTextはスペース入っててクォートで囲まれてないと悲しい事になります。
0689デフォルトの名無しさんNGNG
あのですね、昨日Delphi6PersonalをDLしたんですよ
まあ、Delphi入門ページとか見てやっていたわけですよ
んで、今日も朝からやっていたんですよ
ちょっとサンプルばかりじゃなんだから簡単なものを作ろうと思ったわけです
まあいろいろと弄りながらね
で、ききたいことがあるんですよ
オブジェクトのサンプルにShellTreeViewがあるじゃないですか
あれで選択したフォルダのパスはどうやったらわかりますか?
誰かお願いします
0690デフォルトの名無しさんNGNG
つーかなんでDelphiで作ったプログラムはあんなに重いんだ?!
0691デフォルトの名無しさんNGNG
>>690
組み方が下手だから。
0692デフォルトの名無しさんNGNG
>>690
Borlandの最適化がヘボいから。
0693デフォルトの名無しさんNGNG
>>690
あんたのPCが遅いから。
0694デフォルトの名無しさん NGNG
二つ質問です。

1)
TWinControlのInvalidateはコントロール全体を再描画するそうですが、
RepaintはInvalidateのあとUpdateを呼び出すそうですね。
Invalidateがある以上Repaintは必要ないように感じるのですが、
一体Repaintにはどんな意味があるのでしょうか。

2)
また、TControlのRefreshは何に使うのでしょうか。
単にRepaintを呼び出しているようなので、
下位オブジェクトがRepaintに一定の動作を与えて、
なお且つRepaintと区別する必要がある場合に使うのかとも思ったのですが、
virtualでもdynamicでもないので、不思議です。

宜しくお願いします。
0695デフォルトの名無しさんNGNG
>>689
ShellTreeView1.Path
\Delphi6\Demos\ShellControls にソースがあると思うから、見てみるといいかも。
0696デフォルトの名無しさんNGNG
>>694
1) すぐに描画したいとき。
0697694NGNG
>>696
ああ、なるほど!
「すぐに」がポイントなんですね。
理解できました。
大変ありがとう御座います。

引き続き2)もどなたかお願いします。
0698689NGNG
>>695
出来たよ、ありがとう
サンプルソースも結構使えそうだった
0699ななしNGNG
>>689

一瞬、吉牛のコピペかと思った。(^^;
(ことば遣いが似てたから)
0700デフォルトの名無しさんNGNG
>>689
昨日初めて上達早いな。
がんがれ。
0701デフォルトの名無しさんNGNG
>>690
具体例も上げられなきゃネタにもならんわ(ゲラゲラ
0702デフォルトの名無しさんNGNG
>>690
exe単体で動くから、いらない部分も含んでるからとかじゃないの?
0703デフォルトの名無しさんNGNG
>>700
>昨日初めて上達早いな。
Delphiなんて、VBやってた奴ならすぐコンポーネントは使えるだろうし、
他のオブジェクト指向言語やってたなら、Delphiもすぐにできるようになるだろ。
あとはVCLさえマスターすればいいだけの話。
Delphiが初めてのプログラミングなら上達早いと思うが。
0704デフォルトの名無しさんNGNG
RichEditをOLE対応にしたのですが、実行時にビットマップなどを挿入するにはどうすればいいのですか?
0705デフォルトの名無しさんNGNG
>>704
まずゴム付けてください。ゴム。
0706デフォルトの名無しさんNGNG
プログラムって何グラム?
0707デフォルトの名無しさんNGNG
>>706
半袖。
0708デフォルトの名無しさんNGNG
DelphiなんかやめてSHARPポケコンPC-G850の内蔵BASICにしたほうがいいですよ。
0709デフォルトの名無しさんNGNG
>>708
いや、もっともな意見だね
ところで PC-G850 ではどんなDBが使えるの?
0710ここはひとつマニアックにNGNG
ソードのM5で手をうとうじゃないか。
0711デフォルトの名無しさんNGNG
>>709
PC-G850ではInterBase、DB2、Oracle、MySQL、PostgreSQLが使えます。
0712デフォルトの名無しさんNGNG
selectして返事が返ってくるまで無茶苦茶かかりそうだな。
0713デフォルトの名無しさんNGNG
パーソナル使ってるんだけどTHTTPはプロフェッショナル以上ですよね
HTTPでファイルをダウンロードしたいんですけどパーソナルじゃやはり無理ですかね?
なにか他の使ってできるとか、そういうの無いですか?
0714デフォルトの名無しさんNGNG
Socket使うとかいろいろあるだろ。
0715ななしNGNG
>>705

溜まってるなら、風俗逝きなさい。
0716デフォルトの名無しさんNGNG
>>713
WinInet 使えば楽勝だろ。
0717デフォルトの名無しさんNGNG
>>713
WinInet.Dllの APIを使うとか

http://www.nifty.ne.jp/forum/fdelphi/samples/01085.html


iriaをOLEオートメーションで使うとか
http://www.tees.ne.jp/~rdat32lp/compo/iriaapi.html


uses節に ActiveX, Comobj を追加

procedure TForm1.Button1Click(Sender: TObject);
var
Iria, Url: OleVariant;
begin
Url := 'http://www6.ocn.ne.jp/~boyakkie/tech.gif';
CoInitialize(nil);
try
Iria := CreateOleObject( 'Iria.IriaApi' );
Iria.Download( Url,0 );
finally
CoUninitialize;
end;
end;
0718デフォルトの名無しさんNGNG
Delphi で 複数言語に対応したアプリを開発するにはどうすればいいのでしょうか?
メニューやボタンのキャプションを、簡単に切り替えたいのですが・・・
0719デフォルトの名無しさんNGNG
>>718
ヘルプで国際化対応を検索
0720デフォルトの名無しさんNGNG
TMediaPlayer以外で、Waveファイルに音声を録音する
記述を教えて(´Д`;)
0721デフォルトの名無しさんNGNG
>>713
なぜ誰もIndyを挙げないのだ
http://www.nevrona.com/Indy/
0722デフォルトの名無しさんNGNG
>>720
waveIn〜 APIを調べれ
0723デフォルトの名無しさんNGNG
OnClickでSenderのメソッドを使いたいのですが、
C++Builderではdynamic_cast<T>->methodですが、
Delphiではどうするの?
お願い教えて!
0724デフォルトの名無しさんNGNG
(Sender as T).methodがダイナミックキャスト
0725デフォルトの名無しさんNGNG
>>722
英語ばかりでサパーリです。
0726デフォルトの名無しさんNGNG
>>723
THogeHoge(Sender).HogeMethod(uma,mazu);
キャストしる。
0727デフォルトの名無しさんNGNG
>>720>>725
DelphianWorldあたりにwaveIn叩くコンポがあったと思ふ。
0728デフォルトの名無しさんNGNG
>>726
それはdynamic_castではなく、C style castに相当するね。
>>724がdynamic_cast相当
0729デフォルトの名無しさんNGNG
>>724,>>726
た、たすかったー、どうもです!
0730デフォルトの名無しさんNGNG
>>729
as で変換すればキチンと(?)例外吐いてくれるけどさ。
cast する前に is 演算子で型チェックするのを忘れずに。
0731デフォルトの名無しさんNGNG
できれば、WaveInの解説文キボーン。
0732デフォルトの名無しさんNGNG
>>731
英語くらい気合で嫁。
http://jupiter.nttrd.com/
0733デフォルトの名無しさんNGNG
TMediaPlayerを使って、録音ソフトを作ろうとしたのですが〜
「MCIデバイスがありません」と〜
叩かれて、TMediaPlayerを使えませんでした〜
どのように修正したらよいですか〜
0734デフォルトの名無しさんNGNG
思ったんだけどDelphiとVBってIDEの仕様が似てない?
どっちの方がいいのかな?
0735デフォルトの名無しさんNGNG
>734
スレ違い
0736デフォルトの名無しさんNGNG
>>733
たぶん他のソフトでMCIデバイス使用中だと思われ
0737デフォルトの名無しさんNGNG
>>736
どこも使っていないように思われ・・・。
0738蝶初心者NGNG
>>733
MediaPlayerで同じファイルを開いていませんか?
0739デフォルトの名無しさんNGNG
>>731

http://www.sm.rim.or.jp/~shishido/waver.html
0740デフォルトの名無しさんNGNG
フォーム上に既存のコントロールを、あとから作ったパネルなどの上に乗っけることって出来ますか?

一度一枚のフォームとして作ったものを、やっぱページコントロールをつけてそこに乗っけたいんです
0741デフォルトの名無しさんNGNG
>>740
Frameを使うかPanelFormというコンポがあったと思う。
(フォームをパネルみたいに張り付けれるやつ)
0742デフォルトの名無しさんNGNG
>>740
コピペすれ
0743デフォルトの名無しさんNGNG
OutOpenをTrueにしたら解決しますた!!
ありがとう。これでネレル。
0744740NGNG
>>741-742
早速レスありがとうございました
すこし言いにくいのですがコピペで解決してしまいました。
一度試してはいたのですが、カットした後に乗っけたい(パネル)コントロールを選択してから
ペーストしなきゃいけなかったんですね・・・失礼しました〜
0745713NGNG
>>714,>>716,>>717,>>721
みなさんありがとうございます
いろいろ試してみましたがWinInetを使うことにしました
0746デフォルトの名無しさんNGNG
Edit1 Edit2 Edit3 があったとします。

Edit1から Edit2へ [TAB]で移動した場合と
Edit3から Edit2へ [TAB]で移動して来た場合の違いを
Edit2のイベント内(例えば OnEnter等)で知ることは出来ないのでしょうか?
良い方法があれば教えて下さい。よろしくお願い致します。
0747746NGNG
書き間違ってました、ごめんなさい。

誤) Edit3から Edit2へ [TAB]で移動して来た場合の違いを
   ↓
正) Edit3から Edit2へ [Shift]+[TAB]で移動して来た場合の違い
0748デフォルトの名無しさんNGNG
>>746

グローバルのフラグを作って
Edit3 とEdit1 の OnExitで値をセットするぐらいかなぁ?
0749デフォルトの名無しさんNGNG
>>746
自前でキーイベントを拾って処理。
0750デフォルトの名無しさんNGNG
>>748-749
そーですか。
APIか何かで取得出来るか?と色々とやっていたのですが、やはり
その辺りで処理するしかなさそうですね。
有難う御座いました。
0751751NGNG
MediaPlayerの表示の大きさを変えるのはどうしたらいいですか?

begin
MediaPlayer1.FileName := GikoMovie;
MediaPlayer1.Open();
 MediaPlayer1.Display:= Panel1;
end;
0752デフォルトの名無しさんNGNG
コンポーネントのTListBoxとかの'T'って何の略ですか?
0753デフォルトの名無しさんNGNG
>>752
テーブル。タイプ。など諸説あったり。
0754デフォルトの名無しさんNGNG
コンポーネントのソースを開いてみるとメッセージハンドラってのでしょうか?

CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;

こんなのですが、これって、イベントとかが発生した時にWindows上でメッセージが流れる
それを捕まえる為のものだって認識しているのですが僕の認識は正しいでしょうか?
厨房である僕にご指導くださいませ
0755デフォルトの名無しさんNGNG
>>754 あってるよ
メッセージディスパッチという仕掛け。
具体的には Dispatch(var Message); メソッドで
メッセージIDで自動的に必要なメソッドが自動的に呼ばれる。
0756754NGNG
>>755
なるほど、そうですか、ご指導有難うございます。

CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
この場合だと、後半の部分のCM_TEXTCHANGEDがメッセージIDの種類を
判断する部分だと考えて宜しいのですね。

メッセージIDは、unit Controls;の上の方で定義してあるのは判ったのですが
ここに定義していない物があれば、独自に定義した物を利用しても良いので
しょうか、それとも、それは互換性とかで問題になる可能性があるのでしょうか?

(そもそも、未定義のメッセージIDがあるのかも知らないのですが・・・^^;)
0757デフォルトの名無しさんNGNG
mybaseってソースないのでしょうか?
0758デフォルトの名無しさんNGNG
>>754-756
長いことDelphi使ってきたけど、オマエ達の言ってる意味がサーーパリ判らん俺はなんなんだ?逝った方がいいってこと?

0759デフォルトの名無しさんNGNG
>>757
具体的になんのこと?
0760デフォルトの名無しさんNGNG
>>756
 理論的には自由に使ってよい。 
 未定義というかユーザー用の領域WM_USERがある。
 これはアプリ内で閉じたメッセージに使える。
TControl継承でなければ、もちろん好きに使っていい。


残念なのは動的に メッセージIDを指定出来ない事。
これが出来ればRegisterWindowMessage で割り当てたIDもディスパッチ出来るのだけど
0761デフォルトの名無しさんNGNG
>>756
Q&Aにもでてるね。

http://www.borland.co.jp/qanda/delphi/d0002327.html
0762761NGNG
Delphi 6 付属の Win32 HELPより

Range Meaning
0 through WM_USER - 1 Messages reserved for use by Windows.
WM_USER through 0x7FFF Integer messages for use by private window classes.
0x8000 through 0xBFFF Messages reserved for future use by Windows.
0xC000 through 0xFFFF String messages for use by applications.
Greater than 0xFFFF Reserved by Windows for future use.
0763761NGNG
762はちょっと古すぎた

下のリンクを参照
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/winui/messques_5180.asp
0764デフォルトの名無しさんNGNG
結局 0x8000〜0xBFFF は以前は Windows予約だったけど,今はここがユーザ用になった

逆に WM_USER領域はユーザ領域だったが、ここをWindowsがアチコチ使ってしまっている
使ってはダメという事

昔も今も、一番安全なのは RegisterWindowMessage  を使う事


なおDelphiは
CM_BASE = $B000;
CN_BASE = $BC00;

を使っているので注意
0765754 NGNG
>>760-764
凄く勉強になりました!!
今までモヤモヤしていた部分が晴れてきたみたいな気がします(たぶん気のせいでしょうが)
本当にありがとうございました。
0766デフォルトの名無しさんNGNG
>>764 一番安全なのは RegisterWindowMessage  を使う事

まぁそうなんだけど、定数せんへんできないのが難点

ユーザ定義メッセージを100個も宣言することもないので、
事実上、メッセージID の使用領域はスカスカですよ。
Dispatch() するクラスをちゃんと調べれば、まず足りないということは
ありえません。神経質になる必要はありません。

>>758

まぁ、「ウィンドウズについては何も知らない」ということですね。
0767766NGNG
定数せんへん → 定数宣言 スマヌ
0768デフォルトの名無しさんNGNG
>>766
>まぁ、「ウィンドウズについては何も知らない」ということですね。
ちょっと言い過ぎ
Object Pascal の記法が奇異に感じられるだけかも知れんし

>>758
TPWで拡張された流儀を引き継いでるって感じなんだけど
メッセージループそのものも知らないのならやっぱ勉強しておいた方が吉
0769デフォルトの名無しさんNGNG
久しぶりにTPWのコードを見たけど
Delphiのライブラリ内部のコードはTPWとあまり変わっていないことに気が付いた
0770デフォルトの名無しさんNGNG
>>768
>>まぁ、「ウィンドウズについては何も知らない」ということですね。
>ちょっと言い過ぎ
>Object Pascal の記法が奇異に感じられるだけかも知れんし

758 は Delphi を長いこと使ってきたっていってるじゃん。
メッセージIDを知らないってことは、Windows の仕組みについて
何も知らないって言ってもいいと思ふ


0771デフォルトの名無しさんNGNG
TEdit内の文字数を調べるには?
おしえてください〜。
0772デフォルトの名無しさんNGNG
Length(Edit1.Text)
0773デフォルトの名無しさんNGNG
>>771

Length(Edit1.Text) なんかだと、文字数というよりバイト数か
0774デフォルトの名無しさんNGNG
なら
w: WideString;
w := Edit1.Text;
Length(w);
0775デフォルトの名無しさんNGNG
>>774

一行で Length(WideString(Edit1.Text))
0776デフォルトの名無しさんNGNG
ありがとうございました!!
0777751NGNG
誰もわかりませんか?
0778デフォルトの名無しさんNGNG
>>777
HelpみたらDisplayRectっぽいけどそれじゃダメ?
つかHelpは探した上でやってるよなあ・・・。
自力でAPI使ってやるしかないかも。
0779751NGNG
>>778
helpは全部見ましたよ
DisplayRectには値を入れることはできません。
0780デフォルトの名無しさんNGNG
(´-`).。oO(じゃあ俺が今見てるエロ動画は幻か・・・DisplayRectで伸縮自在なんだが
0781デフォルトの名無しさんNGNG
>>779
最後の一文読んだ?

注意 DisplayRect プロパティは,メディアデバイスを開いた後でのみ設定できます。
0782デフォルトの名無しさんNGNG
>>779
( ´,_ゝ`)プッ
0783751NGNG
>>780-782
ハァ?
今やってみるから待ってろよ
0784デフォルトの名無しさんNGNG
(*´д`)
0785758NGNG
そーなのだよ、Windowsの仕組みについては、何もどころか全くわからんよ。
VCLの囲みの中でしかも、独自にコンポーネントも作ることもなく他人の作ったコンポの
ちょっとした直し程度しかせずにやってきた、正直言って、今日は自分がVB使いとなんら
変わりないと感じた1日でした。(マジ)
0786751NGNG
デキター━━━(゚∀゚)━━━!!!!
デキター━━━(゚∀゚)━━━!!!!
ばんざーい!ばんざーい!ばんざーい!
>>778さん
>>780-782さん
ありがとうございますた(;´Д`) ハァハァ
0787傍観者NGNG
よかったよかった。
0788デフォルトの名無しさんNGNG
>>785
自己啓発情できたすばらしい1日でしたね
0789デフォルトの名無しさん NGNG
そーなのだよ、Delphiの仕組みについては、何もどころか全くわからんよ。
サンプルの囲みの中でしかも、独自にアプリも作ることもなく他人の作ったアプリの
ちょっとした直し程度しかせずにやってきた、正直言って、今日は自分がガキの使いとなんら
変わりないと感じた1日でした。(ネタ)
0790デフォルトの名無しさんNGNG
>>789
発情しまくり
0791pgpNGNG
エロファイルにpgpってあるんだけどなに?

暗号化してあるってのはわかるんだけど
パスもわかる
PGPのソフトは何使えば複合化できるの?
0792デフォルトの名無しさんNGNG
>>791
スレ違いというより板違い
0793デフォルトの名無しさんNGNG
>>791
というよりチャンネル違い
0794デフォルトの名無しさんNGNG
デルファイやってたら将来C言語とかに移るときに役に立つような
知識が身につきますかね?
0795デフォルトの名無しさんNGNG
>>794
身につく人は身につくし、だめな人は何をやってもだめ。
0796デフォルトの名無しさんNGNG
>>795
箕も蓋もない(w
0797当たって砕けろNGNG
作ったプログラムをexeにするにはどうしたらいいんでしょうか?
ヘルプにexeで検索かけてもでません。鬱。
探し方悪いのか。鬱鬱。
0798デフォルトの名無しさんNGNG
>>797
0点。
0799デフォルトの名無しさんNGNG
┏┓
┃┗┓
┃  ┗┓ 押せ
┃  ┏┛
┃┏┛
┗┛
0800デフォルトの名無しさんNGNG
CM_〜〜、CN_〜〜系のメッセージって、プログラム書くとき
使うことってあるんですか?

WM系はよくメッセージ横取りしたりするのに使うし
自分でフォーム間のやりとりにWM_USERに数値足したメッセージを
使うことはあるけど、CM系とかCN系のメッセージって今まで
何にもいじったこと無いなあ。
0801デフォルトの名無しさんNGNG
コンポーネント作るときよく使う
0802当たって砕けろNGNG
l>押します。鬱。すいませんでした。
0803タモさんNGNG
CMで〜す
0804デフォルトの名無しさんNGNG
http://www.ylw.mmtr.or.jp/~akky/mfc/message.html

WM_USERよりWM_APPを使うほうがいいらしい。
0805デフォルトの名無しさんNGNG
っていうか、WMとCMの違いってなんだ
TFrom内にもWM_ACTIVATEとCM_ACTIVATEとあったりして
わけわかんねー
0806当たって砕けろNGNG
できました。
どうやら単にドコにexeが保存されてるかわからなかっただけの模様。鬱。
0807デフォルトの名無しさんNGNG
え!?マジだったの?>>806
君、「ひまわり」から始めた方がいいよ。
マジで。
0808デフォルトの名無しさんNGNG
このスレは、たんなるバカとDelphiバカが混在していて楽しいズラ
0809デフォルトの名無しさんNGNG
>>794
C言語に必要な知識はほぼ身につくけど、いざ移行するとCのバルキーな
言語仕様に鬱になる罠。
C++には若干不足もあるけど、やっぱり役立つ。でもCの時と同じ罠が・・・

最近ではC#がいーみたいです。漏れは良く知らないけど。
まぁそんなこと心配してるよりDelphiの勉強を始めた方が良い事は確か。
杏より梅が安し、ってやつです。
0810当たって砕けろNGNG
本気でバカですいません。鬱。
0811デフォルトの名無しさんNGNG
>>808
お前みたいなホームラン級のバカもいるしな(藁
0812傍観者NGNG
Cのコードは読めるが書けない。

漢字読めるけど書けないのと同じかな?
0813デフォルトの名無しさんNGNG
>>812
単に必要がないからでしょ
必要になったら書けるよ
0814三村3NGNG
>>740 Parent変更するだけだろ!!

 with Form2 do
 begin
   BorderStyle:=bsNone;
   Top:=0;
   Left:=0;
   Parent:=Self.TabSheet1;
   Show;
 end;

>>791 複合かよ!!
>>793 1chかよ!!
>>798 点数があんのかよ!!
>>799 押してーよ!! でも、押せねーよ!!みないな。
>>807 ぴゅー太かよ!!
>>808 空手バカかよ!!
>>809 果実かよ!!
>>810 本気かよ!!
>>811 ホームラン級かよ!!
>>812 漢字とは違うだろ!!
0815もじもじNGNG
質問です。
var
L,S,T:Strings;

で、関数をいろいろ使用した後に

L := S+T;
とした時に
LにSの文字列しか入りません。

L := T+S;
とすると、今度は
LにTの文字列しか入りません。
これは、どのような可能性が
考えられるのでしょうか?
0816デフォルトの名無しさんNGNG
>>815
そもそもオブジェクトなのに足せるのか
0817もじもじNGNG
訂正です。
L,S,T:Strings; 誤

L,S,T:String; 正


0818もじもじNGNG
それから
末尾にへんなものでも付いてる?
と思い

delete(t,length(t)-1,1);
L := t+s;
showmeseage(L);
としても、末尾の')'が'・'と表示され
ただけでした。
0819無責任だがNGNG
>>815 一番に 考えられるのは S,Tに#0 が含まれいるという事です。
0820無責任だがNGNG
>>818
delete(t,length(t)-1,1);
は t:='123' とすると結果は '13'が残るように思います

#0を消すには
S:=PChar(S);
T:=PChar(T);
L:=S+T;
としてみて下さい。
0821デフォルトの名無しさんNGNG
おそらく厨房な質問で申し訳ありませんが・・・

TData = class
Data : array[1..8,1..1100] of Integer;

procedure TForm1.button1Click(Sender: TObject);
begin
for i:=1 to n do Data[i]:=Data.create; //nは数百ぐらいの任意の数
// 処理
end;

procedure TForm1.button2Click(Sender: TObject);
begin
for i:=1 to n do Data[i].Free;
close;
end;

ヘルプなぞみてここまではできました.
処理はうまくいきます.
しかしアプリを終了するときにエラーが出てしまいます.
メモリーが開放されていないようなのです.
何が足りないのが教えてください.
0822もじもじNGNG
>>820
できました。

ただ、何故この方法で、#0が
消えるのかが、まだ理解できて
ませんが・・・、
ありがとうございました。

deleteに関してはたしかにそうですね。
0823デフォルトの名無しさんNGNG
>>821
  書き間違いが多くて判りません。 ちゃんと書きなおしてみて下され

Dataは整数の配列なの? それとも TDataの配列なの?

そして2次元配列ではないの? さらに、Data.Create はTData.Createの間違い?
0824デフォルトの名無しさんNGNG
>>821 何もかもオカシイよ!!
0825デフォルトの名無しさんNGNG
デルファイでつくったプログラム、面白いゲームとかが
沢山DLできるページがあったら教えてください。
0826デフォルトの名無しさんNGNG
>>825
意味不明。
0827デフォルトの名無しさんNGNG
Extended型の変数の値をString型に変換して代入する方法を教えてください。
低レベルな質問ですいませんが、よろしくお願いします。
0828827NGNG
FloatToStrでできました。どうもありがとうございました。
0829ANGNG
>>821
Data : array[1..8,1..1100] of Integer;
と定義しているのだから、そもそも、
Data[i]:=Data.create;
なんていう代入は出来ないのでは?

てか、このままだと、コンパイルとおらないと思うから
実際に書いたのはこうじゃないはず・・・。
元のソースから、コピペで抜き出してみれ。
0830デフォルトの名無しさんNGNG
>>825
http://www.vector.co.jp/
0831デフォルトの名無しさんNGNG
>>828
自己解決してるのに何がありがたいんだYO!
0832821NGNG
あまり長くなっては思いはしょりました
すいません

type
TData = class
Data : array[1..8,1..1100] of Integer;
var data1: array of Tdata;

procedure TForm1.button1Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data[i]:=Data.create; //nは数百ぐらいの任意の数
// 代入
// 処理
// 保存
end;

procedure TForm1.button2Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data[i].Free;
close;
end;

です.
よろしくお願いします
0833821NGNG
type
TData = class
Data : array[1..8,1..1100] of Integer;
var data1: array of Tdata;

procedure TForm1.button1Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data1[i]:=Data.create; //nは数百ぐらいの任意の数
// 代入
// 処理
// 保存
end;

procedure TForm1.button2Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data1[i].Free;
close;
end;

また間違えてましたすいません
0834821NGNG
for i:=1 to n do Data1[i]:=Data.create; //nは数百ぐらいの任意の数
↓
for i:=1 to n do Data1[i]:=TData.create; //nは数百ぐらいの任意の数
              ----
の間違いでした
たびたびすいません
0835821NGNG
ちなみに
エラーは終了ボタンを押したときに以下のように出ます
”プロジェクト*.exeがEInvalidPointerクラスの例外を生成しました
無効なポインタ操作”
と出ます
どこがいけないのでしょうか?
厨房でスマソ
0836デフォルトの名無しさんNGNG
どこが違うって言われてもなあ…
とりあえずData1の大きさをsetlengthで指定しる。
0837821NGNG
えーとそれはやってます
入れとくべきでした
0838Delフサギコ ◆zE1iiRdQ NGNG
                   _____________
    ∬   ∧,,∧      /
     ~━っミ ゚Д゚彡,,    <  ソース自体むちゃくちゃで
    ∀._(,,,~  ,,,~⊃_   \しかも小出しだしなー...
━┳┷ |. ,(~ヽ,,,ミ.         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄ しんどいぞ....
  ┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄

最小限の再現ソースをかくといいかも。
>>それを書くことで自分の理解も深まって
  結果的にバグが取れるかもね。
0839821NGNG
仰せのおうり
再現ソース書いてみます.
すれ汚してすまそ
0840デフォルトの名無しさんNGNG
バグは821の頭の中にあるようです
0841821NGNG
どこがむちゃくちゃかどうかも分からない厨房なので
はずかしいのですが・・・
以下のようにを書いて見ました
ボタン1を押してボタン2を押すだけでエラーが出ます.
エラーは835と一緒です.
どこがだめなのかヒントでも教えてください
お願いします

****************
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
TData= class
data: array[1..8,1..1100] of Integer;
end;

var
Form1: TForm1;
Data1 : Array of TData ;
n : integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
n:=120;
SetLength(Data1,n);
for i:=1 to n do Data1[i]:=TData.create;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
for i:=1 to n do Data1[i].Free;
close;
end;

end.
0842デフォルトの名無しさんNGNG
>>825
付属のもう1枚のCDに。
0843デフォルトの名無しさんNGNG
>841
SetLengthした後で Low(Data1) と High(Data1) を見てみれ。
0844デフォルトの名無しさんNGNG
>>821
Delphi ヘルプより。
>動的配列の添字は常に整数であり,0 から始まります。
つまり Data1[n] にはアクセスしちゃ駄目ー
0845821NGNG
843様,844様
ありがとうございます.
そんな基本的なことに気がつかないなんて・・・
これだから初心者から抜け出せないのですね.
精進します
0846デフォルトの名無しさんNGNG
>>841-845
つーか、このソースが動いたとして何がしたいの?
根本から何か間違っていると思うのはおれだけなのか?
0847デフォルトの名無しさんNGNG
何処かに連想配列コンポとかありませんか?
0848805NGNG
誰か知らない?
0849デフォルトの名無しさんNGNG
>>806
って、他の掲示板でもexeがどーのこーのって質問してない?
0850デフォルトの名無しさんNGNG
>>848,805
>っていうか、WMとCMの違いってなんだ
>TFrom内にもWM_ACTIVATEとCM_ACTIVATEとあったりして
>わけわかんねー
0851デフォルトの名無しさんNGNG
WMは正式なWindowsメッセージ。
CMはVCLが内部的に使ってる裏メッセージ。
0852Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < とりあえず>>841のソースでうごきますた。
⊂,,,,,,,,,つつ.   \_
 LowとHighあたりは間違いの元だけどね。
0853デフォルトの名無しさんNGNG
nに寒気を感じたのは俺だけですか?
0854デフォルトの名無しさんNGNG
MIDI音源を制御するコンポーネントとかありませんか??
0855デフォルトの名無しさんNGNG
>>854
Delphian World へ行って MIDI で検索する。
MIDI音源を制御するコンポーネントとかがあります。
0856デフォルトの名無しさんNGNG
>>847
TStringList.Objects[]使えばできる。
0857デフォルトの名無しさんNGNG
Delphiで作ったアプリを「左右に並べて表示」をすると、
画面半分の大きさで表示されるんですけど
正しく表示させるにはどうすればいいですか?
0858デフォルトの名無しさんNGNG
>>857
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=051302
0859857NGNG
>>858 さんありがとうございます。

この修正、結構厄介なんですね(^^;
0860Delフサギコ ◆zE1iiRdQ NGNG
   _____     __________
 /:\._____\  /
 |: ̄\ ミ,,゚Д゚ミ  < こちらのに含まれているのを
 |:   :|: ̄U U ̄:|  \使ってみるのはどうかしら。
 マダ シゴトチウ..........

http://pc.2ch.net/test/read.cgi/tech/1022921598/63
0861デルファイマスター@一週間NGNG
いつになったらDelphi 7は発売されますか?
0862デフォルトの名無しさんNGNG
>>861
そういう言い回し流行ってるの?
0863857NGNG
>>860
ありがとうございます。

ただ、sample見ないで貼り付けて実行したら、
フォームが消えました(^^;

もう少しsample読みます。
0864デフォルトの名無しさんNGNG
>>861
今年の年末です
0865デフォルトの名無しさんNGNG
>>861
いい子にしてたらサンタさんが(略)
0866デフォルトの名無しさんNGNG
Delphi6 personalバージョンについて質問です
Delphiを起動するときってかならずForm1とUnit1.pasが表示されますよね。

Delphiを起動したときに、コンソールアプリを作成するようにしたいんですが
いちいち新規作成→コンソールアプリケーションを選ぶのも面倒なので
起動直後からコンソールアプリを作成するにはどうしたらいいでしょうか?

あと
{ TODO -oUser -cConsole Main : ここにプログラムコードを書いてください }
ってのが激しくいらないんですが、消すことはできますか?やり方を教えてください
0867デフォルトの名無しさんNGNG
>>866
DCC32使えば?
0868デフォルトの名無しさんNGNG
>>866
メモ帳でも開けば?
0869デフォルトの名無しさんNGNG
DCC32って何ですか?
0870デフォルトの名無しさんNGNG
>>869
「検索」って知ってる?
0871デフォルトの名無しさんNGNG
私の辞書に、検索という文字はない。
故に辞書も検索できない。
0872デフォルトの名無しさんNGNG
1点
0873デフォルトの名無しさん NGNG
>>869
コマンドラインコンパイラのこと。
0874デフォルトの名無しさんNGNG
>>866
あらかじめコンソールアプリの雛型をどこかに作っておいて
そのショートカットをスタートメニューに入れればいいんじゃない?
0875デフォルトの名無しさん NGNG
バージョン番号が大きいほど優れていると錯覚してる初心者が多いから
Delphiの次製品はコンパイラのバージョンのDelphi 15 にすればいいかも。
0876デフォルトの名無しさんNGNG
>>866
新規作成にコンソールアプリってのがなかった?
0877デフォルトの名無しさんNGNG
>>876
それが面倒なんだと( ´∀`)
0878デフォルトの名無しさんNGNG
>>866
どっちもリポジトリ使ったらできた。でも、余計な作業も増えた。
0879デフォルトの名無しさんNGNG
>>875
P-RateだとかAthlonXPのほにゃらら+とかみたいで、
なんか嫌。
0880デフォルトの名無しさんNGNG
Delphi6でExcelをOLE埋め込みすると、一部分しか表示できないのですが、
全体を表示させる方法はありませんか?
(スクロールさせても下のほうが切れてます)
0881デフォルトの名無しさんNGNG
インターネットに接続しているかどうか判定する方法はありますか?
0882デフォルトの名無しさんNGNG
>>881
電話がつかえなかったらインターネット中です。
0883デフォルトの名無しさんNGNG
ダイヤルアップ ユーザー ハッケソ
0884881NGNG
>>882
(;´д⊂ イジワルしないで教えてください
0885デフォルトの名無しさんNGNG
>>881
どっかにpingしてみる。

(ルータ経由だと実際に通信してみるしか確実な方法は無い)
0886デフォルトの名無しさんNGNG
>>885
ping先の鯖が落ちていたら確実じゃない罠
0887881NGNG
確実な方法はないということですか?
あまり確実だなくてもいいので、一般的にはどういうほうほうでネット接続を検知しているのでしょうか?
0888デフォルトの名無しさんNGNG
>>887
ルータなしに限るなら(ダイアルアップなら)方法はあるが、ユーザーにあらかじめ
そうなのかを聞いておかないとね。
0889デフォルトの名無しさんNGNG
uses WinInet;

function IsInternetConnected: boolean;
var
ConnectType : DWORD;
begin
ConnectType := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@ConnectType, 0);
end;
0890881NGNG
>>888
どういう方法でしょうか?
よかったら教えてください・・・

>>889
ありがとうございます、試してみます!
0891デフォルトの名無しさんNGNG
Delphi6でAccessデータを取得するには
BDEしか手段がないのですか?
BDEはEnterpriseかProfessionalには付属してるとのことなので
それを購入したらいいのかな・・・
DOAでも可能?
0892デフォルトの名無しさんNGNG
DOAってなんだよ…
DAOのつもりなのかADOのつもりなのか…
0893名無し@891NGNG
>>892
あぁぁ・・・
すんませんすんませんすんません・・・
DOAなんてないんですね・・・
DAOとかADOってのもわかってないんですが
DAOってOraclとかのエンジン?

0894デフォルトの名無しさんNGNG
>>891
ADOコンポーネントで可能。
BDEでもできるけど、AccessはメインじゃないからADOがよい。
ADOならAccessの入ってないパソコンでもMDBを操作できる。
0895デフォルトの名無しさんNGNG
ODA 政府間開発援助・・・
0896デフォルトの名無しさんNGNG
ポケコンにDelphiをインストールしようとしましたがなかなかうまくいきません。
どうすればよいですか?
機種はPC-G850Sです。
0897デフォルトの名無しさんNGNG
>>896

ネタはマ板でやっとくれ。
0898名無し@891NGNG
>>894
おぉ!ありがとうございます
BDEは端末にいちいちインストールしないといかんのですね
ADO 調べてきます
多謝です
0899デフォルトの名無しさんNGNG
DOA: テクモが出してる格闘ゲーを装ったギャルゲー
0900名無し@891NGNG
アフォ晒しついでに思い切って聞いてしまおう
MDBって・・・なんですか?(泣
0901デフォルトの名無しさんNGNG
891が取得したいデータが入っているファイルの拡張子。
0902894NGNG
>>898
ここが本家サイトだから読むといいよ。
http://www.microsoft.com/japan/msdn/data/default.asp

簡単に言うと、マイクロソフトのデータベース戦略が「Universal Data Access」
これは、データベースに限らず、すべてのデータを一元管理しようという思想。
で、この思想を支える技術が「OLEDB」。データの種類ごとにCOMを用意して
すべてのデータにアクセス出来るようにしようとする技術。
で、このCOMを汎用的に操作できるクラスライブラリが「Active Database Objects」
すなわちADO。ActiveXだから、これに対応した開発環境ならばADOが使える。

我々が作る場合は、まず、どのデータを操作するか、適したOLEDBプロバイダを
選択する。んで、ADOのライブラリを使って操作する。

Delphiの場合は、ADOのライブラリも使えるけど、BDEやその他のDBコンポーネントと
互換性を持たせるためにTDataSetから派生させたADOコンポーネントを使う。
だから、Delphiで使う場合は、ADOのライブラリよりもTDataSetのプロパティや
メソッドを中心に使うとよい。Delphiとの親和性が高くなる。
0903名無し@891NGNG
>>901
あぁぁ
ありがとうございます
そっか(W

>>902
うわーい
ご丁寧にありがとうございます
とっかかりがわからなくてさんざん調べていたのですが
これだけ糸口をいただけるなら
しばらく勉強しつついろいろと調べてみます
VB6ならprofessionalがあるのですが
Delphiでやってみたくて 購入する版から苦悩ちうなんです

3文字やら4文字のアルファベットの羅列で
頭が混乱してるので とてもありがたいです
ありがとうございます
0904894NGNG
>>903
がんばってね。ADOだけならProfessionalで十分活用できるよ。
0905名無し@891NGNG
>>904
がんばります!
0906デフォルトの名無しさんNGNG
Delphi Personal箔"闌gq"逐÷・摩・・・Aインストールk"・摩・_メs"・B
t項準・・・・lw"・・・・÷楳÷摩・・・Ha・・・ム逐・準・・BOSw"vibр盾翌唐les"・B
0907デフォルトの名無しさんNGNG
>>906
お名前と国籍を教えてください。
0908デフォルトの名無しさんNGNG
>>906
Japanese OK?
0909デフォルトの名無しさんNGNG
listviewにイベントを作成しようと、オブジェクトインスペクタの
イベントのOnClickをダブルクリックしたら、エラー「メソッドlistviewClick
を追加すべき場所が見つかりません。"END"またはINITIALIZATIONがユニットソース
からみつけられませんでした」
とでます。解決方法を教えてください。
0910デフォルトの名無しさんNGNG
>>906-908
warata
0911素人NGNG
>>909
全くの「素」の状態から、ソレやっても同じ状態になるかい?
質問するときは環境とかいろいろ書けれ!
0912素人NGNG
>>909
予想としては、1個「end;」が無いとか…。違うかな…。
0913デフォルトの名無しさんNGNG
>>909
end. が無いと見た。
0914素人NGNG
>>913
そうだ「end.」だ…(今確かめた)。トホホ…。
0915デフォルトの名無しさんNGNG
TFileListBoxにユーザのPCで表示可能な形式の画像ファイルだけを表示させたいです。
Maskプロパティを使って、制限するという所まではわかるのですが、
PCから表示可能な画像の拡張子が必要です。
それを取得する方法を教えてください。
0916デフォルトの名無しさんNGNG
まず「表示可能な画像」の定義をきめないといかんな。
0917デフォルトの名無しさんNGNG
>>916
あ、「Delphiで表示可能」or「PC本体の能力で表示可能」ってことでしょうか?
DelphiではBMPかJPGかアイコンしか表示できないんでしたっけ…?
ピクチャービューアを作ろうと思ったのにぃ…。鬱出汁脳。
0918デフォルトの名無しさんNGNG
>>917
Delphi「に付属するライブラリ」ではjpegとかまでだね。
でもそれをもって「Delphiで表示可能」をくくらないでくれ。
作ることも、探してくることもできるだろ。
0919デフォルトの名無しさんNGNG
>>918
くくってるつもりは無いのですが、どこまでをDelphiと捉えるかの問題じゃないですか?
俺には作れないので探してきます。ありがとうございました。
0920デフォルトの名無しさんNGNG
Susieプラグインに対応。これで完璧
0921デフォルトの名無しさんNGNG
アプリケーションにフォーカスが当たっている状態での
動作で何かキー(例えば’A’)を押したとすると
OnKeyPressメソッドを呼び出し、ShowMessageで
Aの表示されたダイアログを呼び出すことができるというプログラムで、
フォーカスの当たっていない状態でもAを押した時この動作をしたいと思うのですが
どうやるのかが解かりません。
どうか教えてください。お願いします。
0922デフォルトの名無しさんNGNG
>>921
キーボードフックで検索すればいくつか引っかかるかと。
0923デフォルトの名無しさんNGNG
>>922
ありがとうございます
0924無責任だがNGNG
>>921
A は無理だけど
 別のアプリ使ってて Shift+Ctrl+A とかなら ホットキーを使うといい

1) フォームのOnCreateで
const MyId= 1234;
procedure TForm1.FormCreate(Sender: TObject);
var Key,Modifiers: Word; Shift: TShiftState;
begin
ShortCutToKey(TextToShortCut('Shift+Ctrl+A'),Key,Shift);
Modifiers:=ord( ssAlt in Shift )* MOD_ALT ;
Modifiers:=ord( ssCtrl in Shift )* MOD_CONTROL +Modifiers ;
Modifiers:=ord( ssShift in Shift )* MOD_SHIFT +Modifiers ;

UnRegisterHotKey(Handle, MyId);
RegisterHotKey(Handle, MyId,Modifiers ,Key) ;
end;

2) OnDestroyで
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, MyId);
end;

3) フォームにメッセージハンドラを追加
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
0925デフォルトの名無しさんNGNG
>>924

>>922
0926デフォルトの名無しさんNGNG
適当な文字列の最後の\以降の文字列の、最後の.以降の文字(拡張子です)を獲得したいのですが、
正規表現コンポーネントを使用せずに獲得する方法ってあるでしょうか?
0927 NGNG
>>926
ExtractFileExt
0928ANGNG
>>926
ファイル名から拡張子を抜き出したいだけなら、ExtractFileExt じゃだめ?
任意の文字列から、だと上手く動くか判らんが・・・・・
0929デフォルトの名無しさんNGNG
スクリーンセーバーのように、ユーザの入力が一定時間無かった時に特定の動作をする
プログラムを作りたいのですが、DLLを作ってグローバルなマウス入力やキー入力をフックするしか
方法はないのでしょうか?
0930デフォルトの名無しさんNGNG
すいません、出来ました。
0931930NGNG
すいません、930=926です。
0932デフォルトの名無しさんNGNG
>>929
Delphiじゃそんなことできねーよ(藁
0933デフォルトの名無しさんNGNG
DelphiってC++Builder6のMasksはないんでしったけ?
Masks::MatchesMask(filename, "*.txt")
0934 NGNG
>>932
いやできるだろ・・・
0935929NGNG
>>932 >>934
どっちなんでしょう?
できるのならば、どのようにすればいいのでしょうか?
0936デフォルトの名無しさんNGNG
>>933
Personal には無いみたい。
Pro版には付いてるようです。
0937デフォルトの名無しさんNGNG
>>935
もうちょい具体的に言わないと何とも言えぬ。
バックグラウンドで動作するのか、アクティブなのか、とかね。
0938デフォルトの名無しさんNGNG
次スレ

http://pc.2ch.net/test/read.cgi/tech/1021262086/l50
0939909ですNGNG
911,913さん
   ごめなさい〜ほんと、endがなかったです。申し訳ありません
   ほんとの素人とは私です......
0940デフォルトの名無しさんNGNG
D6proからADOでmdbファイルを使ってプログラムしようとしているのですが、
私の認識としては mdbを使う場合、Access自体かAccessのランタイムが必要になる
であろうと考えておりました、実験してみると、やはりAccessが入っていないPCでは
mdbへアクセス出来ませんでした。
ここまでは予想していた通りだったのですが、実はOfficeのDeveloper版を購入してあり、
AccessRTのセットアップでAccessのランタイムをインストールすると見事にD6で作成
したプログラムが実行できましたが、Accessのランタイムをアンインストールした後も
実行出来る事が判りました。D6からmdbを使う場合にはAccessのランタイムをインストール
しなくても何かDLLをコピーするだけで使えるのでしょうか?
mdb(Access)側でVBAを使うでもなく、単にDelphiのISAMファイルとしてmdbを
利用したいだけなのですが・・・。

0941素人NGNG
>>939
今時珍しい心の清らかな人アルネ。あやまらんでもいいアルヨ。
0942940NGNG
MDAC_TYP.EXE と Jet40Sp3_Comp.exe を
http://www.microsoft.com/japan/msdn/data/download.asp
ここから取ってきてインストールするだけでした、

これを再配布して良いのか悪いのかイマイチ不明ですが、とりあえずAccessランタイム無くても解決しました。
この構成でmdbの最適化(サイズを小さくするやつ)ができるのか不明ですが、これから試してみます。
0943デフォルトの名無しさんNGNG
>>940
DBをアプリで使う&配布を簡単に済ませたい場合は
MyBaseしかないかなーと思いこんでいたからAccess+ADOは
盲点だった&ちょっと注目してる。
この方法だとAccessさえ持ってればアプリで作成したデータを
Accessで好きなように加工/メンテ/他形式への変換ができるから
作り込むアプリの機能を最低限で済ませられるメリットがあるのが
良いね。
もしよかったら今後も経過報告してくれるとうれしい。
0944デフォルトの名無しさんNGNG
サブルーチンを作って呼び出すにはどうすれば良いんでしょうか?
0945デフォルトの名無しさんNGNG
>>944
procedure sub(var x:Integer);
begin
x:= x*x;
end;

と、どこかに書きます。 コンパイルしてエラーが出るなら書く場所が違うので移動

0946デフォルトの名無しさんNGNG
サブルーチンでなく、"関数"あるいは"手続き"でヘルプをお探しなさい
0947デフォルトの名無しさんNGNG
>>945
それを呼び出すにはどうすれば良いんでしょうか?
sub(nil);だとエラーが出ます。
0948デフォルトの名無しさんNGNG
>>947
Integerにnilを渡しちゃだめ。
変数パラメータに定数を渡しちゃだめ。

procedure sub(x: Integer); とすれば、

sub(0); で呼び出し可能。でも計算結果は戻ってこない。

てか、これはマジな質問なのか?
0949デフォルトの名無しさんNGNG
>>942
ライセンス
http://www.microsoft.com/JAPAN/msdn/data/download/mdac/26/26eula.htm
0950デフォルトの名無しさんNGNG
ねたに一票。
そもそもnilを渡すことなど思いつくことがおかしい・・・。
0951デフォルトの名無しさんNGNG
サブルーチンとか言ってるし、ブビ厨か?
nilを代入したのも、新しく覚えた言葉を使いたがってるだけとか。
0952929NGNG
>>937
アプリがアクティブかどうかは問いません。
どちらかで動作していて、ユーザがパソコンに触れていない時間が続いたら、
自動的に終了するようにしたいのですが、どうすればできるのか見当も付きません・・・
0953945NGNG
有難う御座いました 出来ました。
nil=null=空で使えるかと思ってました。
0954953NGNG
×945 ○947
0955948NGNG
>>953
ネタじゃないらしいので一言。

nilは空のポインタだが、数値に空という概念はない(必ず何かの値が入っている)。

Delphiに限定した話ではないが、0とnil(null)を混同しているなら整理が必要。
0956デフォルトの名無しさんNGNG
>>952
「ユーザがパソコンに触れていない時間」を取得できればいいわけか。
昔メーリングリストでそんなのあったな・・・
0957デフォルトの名無しさんNGNG
>>952
アプリの外で何か作業をしているかを確認しないといけないならフックが必要だと思いますよ。
0958デフォルトの名無しさんNGNG
>「ユーザがパソコンに触れていない」
なら、スクリーンセーバを登録して、スクリーンセーバからメッセージを貰ったら?
0959デフォルトの名無しさんNGNG
>>958
ユーザのスクリーンセーバーの設定を強引に変更するのはスマートじゃないよねぇ
0960間違って誤爆してしまたNGNG
 pCharをファイルに書き込む際、
var
p: pChar;
f: file;
begin
(略)
BlockWrite(f, p, StrLen(p)+1);
(略)
end;
としているのですが、読みとり方が分かりません。
#0が出るまで1Byteずつ調べていかねばならないのですか?
0961デフォルトの名無しさんNGNG
>>960
後方シークが許されるなら、適当な長さずつまとめて読み込んで、メモリ上で
#$00を探す、という手が使えますが、出来ないなら1Byteずつ、ってなりますね。

特に既存のファイルフォーマットに制約されないなら、文字列の直前に
文字列長を書き込んどけば楽でっせ。

var
 s: String;
 len: Byte;

//書き込むとき
 len := Length(s);
 BlockWrite(f,len,1);
 BlockWrite(f,PChar(s)^,len);

//読み込むとき
 BlockRead(f,len,1);
 SetLength(s,len);
 BlockRead(f,PChar(s)^,len);

これだとByte型の制約から255文字までだけど・・・
0962デフォルトの名無しさんNGNG
>>961
 なるほど、やはり直前にサイズを書いておくべきですね。
ファイルのパスを保存するので、ShortIntを用いれば十分ですね。
0963962NGNG
ミスった…。ShortIntじゃなくてSmallIntです。
0964デフォルトの名無しさんNGNG
>>956
それ、やっぱDLL作ってシステムフックでやるの?

ちょっと面倒だなぁ…
いろいろと…
0965962NGNG
 あるプロシージャでpCharのメモリをStrAllocを用いて確保したのを、
別のプロシージャ(Destroy)でStrDisposeを用いて解放しようとすると
無効なポインタ操作と言われます。
 解放するにはどうしたらいいのでしょうか?
0966デフォルトの名無しさんNGNG
>>965
方法は間違ってない。なにか変なことやってるだろ。
ソース晒してみたら?
0967デフォルトの名無しさんNGNG
>>965
…ローカル変数じゃねーの?
0968デフォルトの名無しさんNGNG
>>965-967
ローカル変数だったら「未定義の識別子」だろ。
やっぱソース晒すしか無さそうだね。

あとString使って、SetLengthで代用できるなら、そっちの方が
なにかと安全かな。
0969デフォルトの名無しさんNGNG
>>968 ローカル変数だったら「未定義の識別子」だろ。
違うプロシージャで同じ名前のローカル変数っていう可能性もある
0970965=962NGNG
PDataSという、TDataS構造体へのポインタがありまして…。
Name: pCharといふフィールドを持っています。(他にもありますが)
これをTListを継承したリストに格納(StrAllocとStrPLCopyで。)
して、Destroyするときに
for i := 0 to Count-1 do
begin
StrDispose(PDataS(Items[i])^.Name);
  Dispose(Items[i]);
end;
としているんですが、どこが違うでしょうか?
0971デフォルトの名無しさんNGNG
>>970
StrDisposeじゃなくてDisposeのほうじゃない?
0972965=962NGNG
>>971
 StrDisposeの方をコメントアウトすると例外が生成されないんですが…。
0973デフォルトの名無しさんNGNG
>>972
StrAllocの方はどうやってる?
0974デフォルトの名無しさんNGNG
こういう場合どうするんでしょうか


str := ''';

0975965=962NGNG
>>973
procedure AddData(bs: String;...);
var
ps: PDatas;
(略)
New(ps);
ps^.Name := StrAlloc(Length(bs)+1);
StrPLCopy(ps^.Name, bs, Length(bs));
(略)
Add(ps);
としています。
>>974
str := #$27;
で良いと思います。
0976デフォルトの名無しさんNGNG
>>972
Disposeの方をコメントアウトしても例外が生成されないだろ、多分。
とりあえず、
> Dispose(Items[i]);
は
Dispose(PDataS(Items[i]));
だと思われ。
0977974NGNG


>975

アリガトウ

0978デフォルトの名無しさんNGNG
>>974
str := '''';
0979965=962NGNG
>>976
 Dispose(PDataS(Items[i]));
に書き換えましたが、やはり例外が発生します。
0980デフォルトの名無しさんNGNG
>>979
ここに上がってるソースには問題ない。
どこかほかの個所でメモリを破壊してるんだろ。

ちなみに↓はうまくいくコードだ。

procedure TForm1.Button1Click(Sender: TObject);
type
 PDatas = ^TDataS;
 TDataS = record
  Name: PChar;
 end;
var
 ps: PDatas;
 bs: String;
 list: TList;
 i: Integer;
begin
 list := TList.Create;
 bs := '( ´∀`)';
 for i := 0 to 999 do begin
  New(ps);
  ps^.Name := StrAlloc(Length(bs)+1);
  StrPLCopy(ps^.Name, bs, Length(bs));
  list.Add(ps);
 end;

 for i := 0 to list.Count - 1 do begin
  StrDispose(PDataS(list.Items[i])^.Name);
  Dispose(PDataS(list.Items[i]));
 end;
 list.Free;
end;
0981デフォルトの名無しさんNGNG
DataSの他のメンバは?Nameを上書きしていない?
0982965=962NGNG
>>980-981
 う〜ん、色々と見たんですが何せソースが膨らみすぎてて…。
印刷して色々と調べてみます。
0983デフォルトの名無しさんNGNG

  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. 次スレはこちら(重複スレを再利用)。
 (    ) .| モナーの *やさしい* Delphi質問スレ Ver.7
 | | |  | http://pc.2ch.net/test/read.cgi/tech/1021262086/l50
 (__)_)  \_________________________
0984デフォルトの名無しさんNGNG
>>983 整理しにくくなるじゃねーかよ! 新しいの立てろゴルァ!
0985デフォルトの名無しさんNGNG
>>984
あっちを残しておくとまた厨がageて
ごっちゃになるのであっち使おうぜ。
0986984NGNG
>>985
しゃーねーな、削除依頼出して消してもらえんのかな。
0987デフォルトの名無しさんNGNG
>>984
スレのタイトルが気に食わないんだったら
.idxファイルを直接いじって変えられるけど?

的外れなレスだったらスマソ
0988デフォルトの名無しさんNGNG
あ、かちゅ〜しゃ使ってるんだったらだけどね
レス数が950を超えています。1000を超えると書き込みができなくなります。