[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/13 11:51 / Filesize : 238 KB / Number-of Response : 924
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれDelphi(超初心者用)その46



1 名前: ◆XcB18Bks.Y mailto:sage [2008/03/12(水) 21:09:39 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その45
pc11.2ch.net/test/read.cgi/tech/1198802907/

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?Delphi%20%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9


520 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:20:39 ]
TurboDelphiとTurboDelphi.NETって共存できないの?

521 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:57:12 ]
>>520
できますん

522 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:50:42 ]
TDateTimeからUTCの時間(文字列、もしくは、年、月、日の数値)を取得する方法教えてくださいでつorz

523 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:11:00 ]
>>522
>>305

524 名前:デフォルトの名無しさん [2008/05/02(金) 18:03:04 ]
ちょっと疑問なんですが、
Nowでとった時間をTQueryなんかでAsDateTimeで設定したとしたら、
UTCとして登録されるのかな?
もしかして、localtimeとして登録されちゃう?

525 名前:524 [2008/05/02(金) 18:15:39 ]
あれ?

テストしてみたら、localtimeがRDBに入ってるみたいだけど、そうなの?

これだと、登録した場所によって、時間の前後が変わっちゃうんだね。

526 名前:524 [2008/05/02(金) 18:27:43 ]
具体的には、

1.日本でNowで日時を取得
2.RDB(Firebird)のTIMESTAMP項目に、AsDateTimeで設定
3.アプリを例えばグリニッジで実行したら

このとき、1と3の日付文字列は同じになるのでしょうか?異なるのでしょうか?


527 名前:524 [2008/05/02(金) 18:30:17 ]
自分の予想としては、
DateTimeToStrはローカルタイム変換はせずローカルタイムjのみ入力可で、
RDBにはローカルタイムで登録されてるので、
同じ日付文字列になると思うのですが。。。

528 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:06:49 ]
もうちょっともちけつ



529 名前:524 mailto:sage [2008/05/02(金) 19:18:36 ]
ラジャ!

知りたいのは以下の内容です。

質問1:
RDBに日付を登録するときはローカルタイムで良いのでしょうか?
それともUTCの方が良いのでしょうか?
どちらが良いともいえない場合、どちらが一般的でしょうか?

質問2:
Nowで取得してAsDateTimeでRDBのTIMESTAMP項目に登録すると、
ローカルタイムが登録されるのでしょうか?

質問3:
上記の通り登録したRDBのTIMESTAMP項目をAsDateTimeで取ってきて、
DateTimeToStrした場合、
ロケールがどこに設定されたとしても、”日、時、分”は同じものとなるのでしょうか?

530 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:10:45 ]
こんばんは。
電卓のプログラム(OSに搭載されている)の3のボタンを9っていう数字に変えたいんですけど、
//電卓のウィンドウハンドルを取得
hcal :=FindWindow(nil, '電卓');
h5 :=FindWindowEx(hcal, 0, nil, '3');
if h5 <>0 then
begin
SetWindowText(h5, '9');

Sleep(100);

end;

うまくいかないのですが、どうしたらよいでしょうか?
ご教授おねがいします。



531 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:35:49 ]
>>524
>>質問2,3
ADO,DBExpress何を使ってるかしらんが、基本的にドライバ次第。
ひねくれた?ドライバでなければ、TimeStamp値として渡した日付時刻がそのまま
登録される。勝手に変換したりはしないと思う。渡す日付時刻をどう解釈するかは
アプリ次第。

532 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:58:27 ]
>>510
集合はビット演算が入るから、配列より遅くなる。 でも、メモリ消費は1/8だよ。

>>530
MSDNには、下記のようにある。
>ほかのプロセス内のコントロールのテキストを設定するには、
>SetWindowText 関数を呼び出すのではなく、直接 WM_SETTEXT メッセージを送ります。

533 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:07:54 ]
TStringListのDelimiterに<>などの2文字以上の文字を設定するにはどうすればいいのでしょうか
置換で代替できるとは思うのですが格好よくないので使いたくありません・・・

534 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:16:35 ]
>>533
無理
SetDelimitedTextルーチンをぱくって自分で書くしか。
単純な置換だと""の中まで変えちゃうから要注意。

535 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:02:47 ]
>>533
具体的に1文字で何ができないのかを言った方が、解決すると思う

536 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:16:34 ]
>>534
ありがとうございます
www.din.or.jp/~egawa-n/delphi/func.htmlのを使わせてもらうことにします

537 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:19:48 ]
>>535
すみません、リロード忘れてました
2chのDATを扱いたいので・・・
一応<だけでやってもいいとは思いますが面倒なので・・・

538 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:22:34 ]
>>537
TRegExpおすすめ
というかdat処理ならこういうの入れないとめんどくさくて無理



539 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:27:38 ]
>>538
なるほど、正規表現の手がありましたか
確かに分かりやすそうです
ありがたく使わせてもらいます

540 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:39:07 ]
>>532
情報ありがと。
けどメッセージ飛ばしたけど、書き換えできなかった・・・。
もう手はないかな?

541 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:25:51 ]
特定のウィンドウにキーを送るのではなく
グローバルホットキー、例えばCtrl+Alt+G
を発動させるコードってどう書くんですか

542 名前:|Д゚彡 ◆A6VzDeLphI mailto:sage [2008/05/03(土) 14:56:30 ]
Ctrl/Shift/Alt/Winキーを受け付けるWindowsのHotKeyを登録・処理する
delfusa.main.jp/delfusafloor/technic/technic/049_HotKeyRegistration.html


543 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:29:58 ]
HotKeyを受け取って自分で処理したいのではなく
その逆にどこかのアプリで登録済みのHotKeyを
呼び出してそのアプリの機能を呼び出したいということです。
その際直接そのアプリを指定しないでキーボード操作のみの形でやりたいです。

544 名前:|Д゚彡 ◆A6VzDeLphI mailto:sage [2008/05/03(土) 15:46:31 ]
key_eventで、キーをおしたことにすればいいんじゃないのかな?

特定のアプリ専用なら
俺なら、ウィンドウ列挙してそのアプリを前面にもってきてから
アクセラレータキーを送るとか、
そうするなあ。



545 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:30:05 ]
SetWindowsHookEx をやりたいって事のようだけど
コレは色々悪さ出来るからな。 
どっちにしても自前で解決して欲しい所。

546 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:59:03 ]
全部の窓からWM_GETHOTKEYで 設定されてるキーを調べて
その窓に対してコマンドを送ればいいんじゃないの?

547 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:42:59 ]
普通に key_event 6回だろ。

548 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 09:36:12 ]
>>545
とりあえずマウスのフックとキーボードが押されたときに反応する(フックっていうのか?)のはできるんだけど、
電卓の例の場合はどういう種類のフック使うんでしょうか?



549 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 10:30:30 ]
>>548
Delphi関係ないからAPIスレで聞け
Win32API質問箱 Build65
pc11.2ch.net/test/read.cgi/tech/1208847084/

550 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:11:50 ]
フォームではなく、特定のコンポーネントにファイルをD&Dして
受け取らせるにはどうやったらいいのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:19:50 ]
フォームならできるのにコンポーネントだとできない理由は?

552 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:51:09 BE:974887-PLT(12660)]
ウインドウハンドル持ってないコンポはダメじゃなかったっけ?

553 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:47:52 ]
>>552
TGraphicControl派生コンポはTPanel置いてその中に置けばおk

554 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:00:58 BE:174825-PLT(12660)]
>>553
なるほど
じゃあ、アプリケーションメッセージで
if (Msg.message = WM_DROPFILES) and (Msg.hwnd = Panel1.Handle) then
こんな感じで振り分ければおkじゃね?>>>550

※FormCreateの中に↓を入れておくこと
DragAcceptFiles(Panel1.Handle, True);
Application.OnMessage := AppMessage;

555 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:02:52 BE:626494-PLT(12660)]
実際、ppMessageはこんなかんじ

procedure TFrom1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
 if (Msg.message = WM_DROPFILES) and (Msg.hwnd = Panel1.Handle) then begin
  SetForegroundWindow(From1.Handle);
  SendMessage(Handle, WM_DROPFILES, Msg.wParam, Msg.lParam);
  Handled := True;
 end;
end;

556 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:04:39 BE:609375-PLT(12660)]
そんで更にこんな感じ

procedure TFrom1.DropFiles(var Msg:TWMDROPFILES);
const
  NameMax = 1024;
var
  DropFileCount: Integer;
  FileNameA : array[0..(NameMax + 10)] of Char;
  TempStr:String;
begin
  DropFileCount := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0);
  DragQueryFile(Msg.Drop, 0, FileNameA, NameMax);
  //お好きな処理//


  DragFinish(Msg.Drop);
end;

557 名前:550 mailto:sage [2008/05/04(日) 22:51:03 ]
みなさんありがとうございます
早速やってみますね

558 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:16:23 ]
DragQueryPointでその位置にあるコントロールを取得しては?



559 名前:デフォルトの名無しさん [2008/05/05(月) 09:30:28 ]
いつも助かっています。
Open SourceのでかいDelphiで書かれたソフトがあり、それで
勉強しようと思っています。CTRL−Cや’;’を押してどういう処理が
されているのかをとりあえず見たいのですが、どういう文字の検索を
すれば該当部分のコードを見れるでしょうか?
OnKeyで探したのですが、それらしき処理をしている所には飛んで
いかなかったのですが。

560 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 09:38:27 ]
実行させてみるのが一番いいと思うよ。
OnKeyって事はコンソールアプリじゃなくて GUI アプリなんだろ?

windowsGUIならイベントは全部 TAplicatioの OnMessage でひっかけられるから
この中で キーイベントを IF 文入れて ブレークポイントかけられるようにして
トレースしてゆけばいい


561 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:43:29 ]
もしTActionのショートカットに入ってたらソース上には現れない
フォームを右クリックしてエディタで表示して例えば「;」なら「187」って
いう生数字を探せば見つかる


562 名前:デフォルトの名無しさん [2008/05/05(月) 13:35:59 ]
お返事ありがとうございました。
> 560
あまりよくわかっていませんが、FormCreateに
Applicaton.OnMessage:= AppMessage;
を入れて
Precedure TMainFrom.AppMessage(...)
var dummy:integer;
begin
  If msg.message=WM_Keydown then
  dummy:=1;
end;
でdummy:=1に赤線(ブレーク)をしてみましたが、そこで
止まってくれません...こういう意味ではない??

>561
187という生数字を探しましたが、ありませんでした...

MenuにもCTRL-Cのショートカットは登録してないですし
www.sph.sc.edu/comd/rorden/ezdicom.html
なのですが...


563 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:06:49 ]
MDIChildってフォームのメニューに"Ctrl+C"と";"のショートカットが割り当てられた項目あるけど違うのけ?

564 名前:デフォルトの名無しさん [2008/05/05(月) 14:43:09 ]
あ、ありがとうございました。元Sourceをみていただいて
とても感謝しています。
Childwin.dfmの中を見ればいいんですね。
*.pasの中だけ、187の検索をしていました。
これをみると、Copyはshortcut16451とありますが、これは
CTRL+Cでいいんですよね..??
本当にありがとうございました。

565 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:10:46 ]
> これをみると、Copyはshortcut16451とありますが、これは CTRL+Cでいいんですよね..??

そう

566 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 08:18:38 ]
お前ら、SpTBXLibの2.0が出てますよ
ttp://club.telepolis.com/silverpointdev/index.htm
2.0からTBXが不要になりました

567 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:44:46 ]
SetLength(S, $7FFFFFFF)とやるとAccessViolationが
でます。Delphiは境界テスト?もろくに行われていない製品なのでしょうか?
SetLength(S, $7FFFFFFF - 10)でやっと「メモリ不足」というエラーがでます(これは
別にいいんですが)。10というのはどっからきてるんでしょうね。参照カウンタと長さ用の領域に
8バイト、終端文字に1バイト、あと?



568 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:48:42 ]
Delphiは境界テスト?もろくに行われていない製品なのでしょうか?
Delphiは境界テスト?もろくに行われていない製品なのでしょうか?
Delphiは境界テスト?もろくに行われていない製品なのでしょうか?



569 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/05/06(火) 13:05:03 ]
|,,∧    
|゚Д゚彡  
|⊂ミ   
>>567さん
ほんとうだ。。よく気がついたね。


570 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:46:54 ]
あるいはメモリマネージャ側のエラーかもな

571 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:55:56 ]
今試せないけど、データ型が大きすぎとかでそんなエラーになるとオモッタなあ。違うの?Sがなんだか知らんが

572 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:36:26 ]
型が大きすぎでAccessViolationはねーよw

573 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:44:02 ]
ソース見ればアクセス違反が出るまでの経緯が分かるけど、単にチェック不足だな。
要求メモリ量が負になっても気にせず続行する男気あふれるコードだ。

574 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:33:32 ]
TSaveDialogでOptionsのofShowHelpをTrueにするとヘルプボタンが表示されますが
どのイベントでひろえば良いのでしょうか。

575 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:14:47 ]
WM_HELPを拾えばいいんでない?

576 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:15:22 ]
質問です^^
デルファイ7使ってるんですが
「元に戻す」(アンドゥ)ってどうやるんでしたっけ
先日分からなくて諦めました
3作業前に戻るとか出来ないんですかね^^;;;;;;

577 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:17:48 ]
7では無理


578 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:35:45 ]
>>577

まじでぇえええええ^^
あり;;



579 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 09:30:11 ]
>>575
ダイアログを表示しているフォームのOnHelpでも、TApplicationのOnmessage
でMsg.messageをWM_HELPで判定しても
procedure WMHelp(var msg: TMSG); message WM_HELP;をprivateで宣言して
やってもひろえていないようです。どうして?

580 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:21:00 ]
>>579
TApplication.HandleにRegisterWindowMessage(HELPMSGSTRING)で送られてるみたいだが

581 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:08:54 ]
>>580
ありがとう。でも分からなかったです。とほほ

582 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 17:25:29 ]
>>581
WinspectorとかでTApplicationの持つウィンドウのメッセージ監視すれば引っかかるはずだよ。
TApplication.OnMessageでは引っかからないからTApplicationのウィンドウをサブクラス化しないと受け取れないかも。

583 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:07:13 ]
というかダイアログのHelpContextを設定しておけば
Application.HelpFileで指定しといたヘルプ
(の該当するトピック)を開いてくれるんだが。
それ以外のことをやりたいわけ?

584 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 07:27:53 ]
TApplicationのウィンドウプロシージャーなら、Application.HookMainWindowでOK.
WM_COMMANDもどこかのウィンドウに送られている。(ダイアログのトップレベルのウィンドウかも)

585 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 08:10:53 ]
色々ありがとうございます。ちなみにHTMLヘルプなもんで…HelpContextでは
うまくいきませんでした。それから Application.HookMainWindow も少しだけ
試したんですが。もう少し気合入れて調べてみます。

586 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:12:24 ]
TBXを配布しているサイトが見れないのですが、TBXを再配布しているサイトはないのでしょうか?

587 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:34:11 ]
微妙にバージョン違い?
ttp://www.torry.net/pages.php?id=16#7246

588 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:54:06 ]
ありがとうございます
使ってみます



589 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 02:44:36 ]
type TSettings = class
published
 property Min: Integer;
 property Max: Integer;
 property Text: String;
 property Switch: Boolean;
end;

といったプロパティをINIファイルに自動的に読み書きさせるコードのサンプルってないのかな。
WriteComponentだとプロパティの追加削除ですぐ例外吐くから使えない。

590 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 03:55:41 ]
そのWriteComponent内で呼ばれるTWriterのコードでも見たら?
まさにそのものをやってるメソッドがあるから

591 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 04:46:57 ]
TPersistentから継承しなくても良かったっけ?

592 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 05:04:16 ]
誰か例のTGifImageの脆弱性なおしておくれ

593 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 08:06:58 ]
JaneStyleはTGifImageを修正してるみたいですね

594 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 09:37:06 ]
gifimage.pasの5992行から

while (code >= ClearCode) do
begin
//ここから
if UINT(Source) > UINT(@stack[High(stack)]) then
begin
Dec(Source);
Result := Source^;
Exit;
end;
//ここまで
Source^ := table1[code];

検証お願いします

595 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:04:57 ]
>>594
行けたぜGJ!
でも俺の場合5873行なんだがこれはバージョンの違い?
一応2.2なんだが・・・

596 名前:Zzz [2008/05/09(金) 11:24:39 ]
質問お願いします
Delphi7なんですけど
(最大化最小化閉じるボタンを非表示などをした)Formを
同プロジェクト内の別のFormでも使いたくFormごとコピーして
使用したいのですがコピーやり方がわかりません
どうやれば実現できるのでしょうか???

597 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:37:16 ]
ExplorerでForm1.pas/.dfmをForm2.*にコピー&リネームして
ファイル内のユニット名、クラス名、Nameプロパティ名を調整。

フォーム上のコンポーネントやプロパティの設定は.dfm
イベントハンドラ等のコードは.pasにあるから適当に切り貼りしてもいいかも。

名前をつけて保存でForm2とかやっちゃうとForm1が破棄されForm2を使い出すからわけわかってないと悲惨なことに。

IDEでは使いまわし支援でリポジトリなるものをサポートしているけどほとんど使ったことない。
活用してる人っているのかね。

なんにしてもプロジェクト全体のバックアップをしてから試したほうがいいかもね。

598 名前:Zzz [2008/05/09(金) 11:40:36 ]
やはり意外と、つらそうな道のりですね
了解しました
地味に作成しようと思います
リポジトリの使用方法も忘れてつつあるので・・・
ありがとうございました



599 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:40:40 ]
うちは5846行目だった

TGIFSubImgae.Decompressプロシージャ内のNextLZW関数内だよね?

600 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 12:45:27 ]
ver2.2のNextLZWの中です

ASSERT(Code < TableSize, 'Code too large');
while (code >= ClearCode) do
begin
//ここから
if UINT(Source) > UINT(@stack[High(stack)]) then
begin
Dec(Source);
Result := Source^;
Exit;
end;
//ここまで
Source^ := table1[code];
Inc(Source);
if (code = table0[code]) then
Error(sDecodeCircular);
code := table0[code];
ASSERT(Code < TableSize, 'Code too large');
end;


601 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:17:57 ]
>>596
継承して使うと似たようなフォームで少しだけ違うような場合に便利だよ
ファイル⇒新規作成⇒その他 で出たダイアログのタブの今のプロジェクト内から Form1を選んで
下の ・継承 を確認して [OK]

602 名前:Zzz [2008/05/09(金) 16:50:32 ]
たびたびすいません
質問です
リストボックスやコンボックスのItems欄に選択「文字」を追加する
方法が分かりません
・・・と書くとItem addとか思われると思いますが、もう一歩進んで
その追加したを随時に追加し、且つ保存したいのです
プログラムを終了させる、プログラムを起動させる
「追加したデータが消えてる(涙・・・」
どうやれば保存できるのでしょうか
最終的には、マイナーなコンポーネントに対し保存したいのですが
基本のリストボックスやコンボックスのやり方を教授していただければ
自分で考えますので(当たり前ですけど)ヒントの程お願い致します

603 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:09:42 ]
終了時にファイルに保存して起動時にファイルから読み込む。

604 名前:Zzz [2008/05/09(金) 17:23:32 ]
>>603 おしい
それも一つの手ではあるんですが、最終的にコンポーネントの
Items欄に追加したいのでItems欄に保存する方法はないのかと
言うのを知りたいのです

605 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:31:18 ]
質問する前に日本語を勉強する

606 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:41:48 ]
いまいちよくわからないがexeのどこかに保存されているであろうItemsのデフォルト値に対して保存・読み出ししたいってことか?
もしそうなら、コンパイルする度に値が吹き飛ぶぞw

607 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:42:09 ]
そういうことができるなら ini ファイルはいらんがな・・

608 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:57:18 ]
リソースを書き換えたいのか? 出来るだろうが、なんでiniファイルは駄目なんだ?



609 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:18:12 ]
少なくともコード書いて試して 603 に対して「おしい」とかいってるのか?
const
  DatEx='.dat';
var
  ListDat:string;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Add(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListDat:=ChangeFileExt(Application.ExeName,DatEx);
  if FileExists(ListDat) then
    ListBox1.Items.LoadFromFile(ListDat);
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  ListBox1.Items.SaveToFile(ListDat);
end;
ちなみにみんなの言っている「日本語でおk」は
「Items欄に保存」ってのがわからんってことだぞ

610 名前:Zzz [2008/05/09(金) 23:16:25 ]
>>609
むむー
ListBox1.Items.SaveToFile(ListDat); で行けるかも

えっと
Items欄に保存ってゆうのは・・・・・・
コンボボックスとかは、選択肢をItems.Addしなくても事前に入れて置けるじゃないですか(うろ覚えすまん)
あれってPgで、あるボタンを押した時のイベントでItems.Addして追加しても、
Pg終了して、再度Pg再開してコンボボックスの中見ると消えてるじゃないですか(あたりまえですけど)
つまり、そのItems欄の中にデータを残しておきたい訳です

(↓コンボの中)
にんじん
だいこん
トマト

↓(いもを追加)

(↓コンボの中)
にんじん
だいこん
トマト
いも

↓(システム落として再起動)

(↓コンボの中)
にんじん
だいこん
トマト

(がーん いもは・・・・・)

611 名前:デフォルトの名無しさん [2008/05/10(土) 00:01:24 BE:348454-PLT(12660)]
iniかレジストリ使うのが普通じゃね?

612 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:55:11 ]
自分で言ってるけど消えるのは当たり前なんです
そういうのは外部のファイルに記録しておいて
再開したときに読み込むのがいいと思います

613 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 07:42:56 ]
だから、設計時に追加した情報は、コンパイルするとリソースとしてexeに含まれるの。

614 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:03:01 ]
TIniFile使ってやるのが一般的じゃね?
>>610の気持ちもわからんではないが・・・逆にIDEで初期値を入れられるだけでも便利と思え!

ListBox1.Items.Commatext:=ReadString('ListBox1','Items','');

WriteString(ListBox1','Items',ListBox1.Items.CommaText);



615 名前:デフォルトの名無しさん [2008/05/10(土) 10:27:37 ]
dfmファイルを外部に持たせればOK.

616 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:28:00 ]
    彡川三三三ミ
   川出 ::::::⌒ ⌒ヽ  パクリ星からやってきたお!
  出川::::::::ー●-●-)
 ..川(6|::::::::  ( 。。)) パクリ星の王子様の◆Style/kK.sだお!
 出川;;;::∴ ノ  3  ノ  
   ノ\_;;;;;;;;;;;;;;;;ノ   Janeスレ荒らしてるヒキコモリだから友達できないお!
  ( *  ヽー--'ヽ )
  (∵ ;)  ゚ ノヽ  ゚ ):) チンポは極小で包茎だお!!ちなみに童貞だお!!
  (: ・ )--―'⌒ー--`,_)
  (___)ーニ三三ニ-)
  (∴ ー' ̄⌒ヽωニЗ 好きなものは他人のソースとオナニーとwarezだお!!
   `l ・  . /メ /
    ヽ ∵  /~- /.    今日もたくさんソースパクリまくるお!!
    (__)))))_)))))

617 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:33:41 ]
>>566
おー、Sliverpoint乙

618 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:14:34 ]
>>587
今頃で申し訳ないんですがエラーが出てインストール出来ません・・・
d6perだからですかね?proだとインストールできるんでしょうか



619 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:15:29 ]
>>618
alpha版はdel7から対応だったように思う
2.1beta1↓
ttp://www.fileup.org/fup183413.zip.html
TB2Kのパッチは自分で探してね

620 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:15:47 ]
>>619
passはtbx






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<238KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef