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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/12/25(火) 16:34:16
D7+FB1.5で質問です。
TDBEditでTimeFieldまたはDateTimeFieldを編集するときに
hh:mm形式で秒を抜かして時分だけ編集するにはどうしたらよいでしょうか。
フィールドにEditMaskに!99:99;1;_ DisplayFormatにhh:mmとしてみたところ
編集や表示は出来るのですが例えば'12:34'と入力して次のフィールドに移り
また戻ってくると'12:00'と表示されてしまいます。
そのまま何もせずまた他のフィールドにフォーカスを移すと'12:34'に戻ります。
953デフォルトの名無しさん:2007/12/25(火) 22:51:38
D7です。
動的配列を明示的に開放しなくてもいいらしいですが、本当ですか?
また、構造体70項目*n個の動的配列を使っていたらエラーが頻出します。
原因は動的配列によるものですか?70項目*1ならエラーはでなくなりますか?
954953:2007/12/25(火) 22:56:03
なんとなく自己解決。
やっぱりバカデカイ動的配列を使うのはまずいみたいですね。
あと、SetLengthであらかじめ大きいサイズを確保した方がいいのかな。
955デフォルトの名無しさん:2007/12/25(火) 23:09:20
setlengthは何度も何度も呼び出すんじゃなくて、最初に余分に割り当てておくほうがいいらしい。
956デフォルトの名無しさん:2007/12/25(火) 23:36:16
>>948
まさに後者です。これが知りたかった。
> この場合はワイド文字列版のAPIを使ってファイルをメモリストリームオブジェクトに読み込み
> 文字列リストやグラフィックオブジェクトのLoadFromStreamメソッドでこのストリームから読み込みます。
> (これについてはTurbo Delphi Explorerの方ですが確認しました)


私の脳内質問にウルトラスーパーデラックスな回答をありがとうございました(-人-)合掌
957949:2007/12/26(水) 00:42:17
>>950
ありがとうございます。 ん〜、じゃ何が原因かなぁ・・・。
958デフォルトの名無しさん:2007/12/26(水) 00:44:54
>>953
何のエラーが出たのか言ってくれないと。
巨大配列でエラーなら、メモリ不足?
959デフォルトの名無しさん:2007/12/26(水) 04:13:35
>>953
動的配列は、自動で解放してくれると思っていい。
手動で解放するなら、nil 代入しても開放される。

また、参照カウンタ方式で、どこからも参照されなくなったら、勝手に開放が基本で、
ただの代入では、コピーされない。

注意点は、string と違って、CopyOnWriteがない。
stringは、代入は、ただ参照先を入れているだけで、コピーされず、
hoge[1] := 'h"などど、各要素にアクセスしたときに、初めてコピーされる。
動的配列、hoge[1] := moge; などと各要素に書き込んでも、複製されない性質がある。


動的配列は、ふつうは、SetLengthであらかじめ確保しておく。
というか、素の配列のように、SetLength なしで、つかってたらアフォ(それはないと思うけど)

要素の追加が頻繁なら、TListなりリスト系のクラスを使う
960デフォルトの名無しさん:2007/12/26(水) 05:12:18
ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200309/200309_03090055.html

↑stdDialogsユニットのTopMost関数を使って ”他のアプリがアクティブになっても常にアプリを最前面表示したい” のですが、
うまくいかんニダ。

uses ・・・, stdDialogs;

procedure TForm1.FormDeactivate(Sender: TObject);
begin
TopMost(Form1.Handle);
end;

としても他のアプリ(ブラウザ等)をクリッコするとアプリが最小化してしまいます。
アプリはForm1があるだけでその他のフォームやダイアログなどは出ないシンプルなアプリです。
どこがいけないのか教えられてあげます。 よろしくお願いされたまえ馬鹿やろう。
961デフォルトの名無しさん:2007/12/26(水) 05:18:31
>>960
OnShowに書いて下さい。

>>961
ありがとうございました。
962 ◆XcB18Bks.Y :2007/12/26(水) 10:25:07
>>957
もしかして標準以外のコンポを使っています?
Turbo Delphi Explorerでは標準以外のコンポは設計時に配置できません。
963デフォルトの名無しさん:2007/12/27(木) 00:04:01
>>962
使ってません。
ソースとexeがここにありますけど。
gamdev.org/up/img/10666.lzh
964デフォルトの名無しさん:2007/12/27(木) 10:17:30
Delphi7とFireBird1.5で質問です。
IntegerフィールドをDBGridでチェックボックスで表示してオフならば0オンならば1をセットしたいのですが
可能でしょうか。
965デフォルトの名無しさん:2007/12/27(木) 11:14:00
>>955
そうなんだ、間違ってたんだな俺。
結局実務で使わなかったから不具合出たかは解かんないけど。
966 ◆XcB18Bks.Y :2007/12/27(木) 12:03:19
>>963
試してみたところ、読み込み時に下のようなエラーダイアログが出て
アプリケーションアイコンがTurbo Delphi Explorer標準のものになってしまいますが
読み込みは上手くいっているようですし実行も出来ました。

---------------------------
エラー
---------------------------
リソースファイル C:\Documents and Settings\ (略) \デスクトップ\10666\Project1.res が見つからないので再作成しました。
---------------------------
OK
---------------------------
967デフォルトの名無しさん:2007/12/27(木) 16:26:22
Delphi7だけど
アクセスで作ったリスト(文字列とか数値のデータ型設定済み)を
インポートかなんかで読み込んだら
そのまま即配列として使えますか?
それとも各列のデータ型に合うように一個一個型宣言しないと使えませんか?
教えてください。
使い道は単なる配列の用途です。100列×1000行、というか100項目のクラスが1000個、というか
まぁその辺まだ理解出来てないレベルです。
968デフォルトの名無しさん:2007/12/27(木) 16:38:58
>>966
(略)さん今後とも宜しくお願いします
969デフォルトの名無しさん:2007/12/27(木) 16:52:31
>>964
OnDrawColumnCellイベントに自分で描けばいい。
970デフォルトの名無しさん:2007/12/27(木) 22:41:19
>967
その前に聞こうか。TField型について調べたか?
971デフォルトの名無しさん:2007/12/27(木) 22:58:48
a, b, c: integer;
c := a div b;
aが負数でもcはマイナスにならないのはなじぇ
972デフォルトの名無しさん:2007/12/27(木) 23:04:06
b が負数だから。

>>966
ありがとうございます。 
操作ミスか何かと考えます。
973デフォルトの名無しさん:2007/12/27(木) 23:06:22
なぞなぞだったのかよ
974デフォルトの名無しさん:2007/12/27(木) 23:07:19
turboの複数言語インスコって
turboマネージャー亡き今はもう無理なんだっけ?
975967:2007/12/27(木) 23:22:38
>>970
personalだからHelpもリンクされてない
だめか
976デフォルトの名無しさん:2007/12/27(木) 23:28:23
ごめn
おれがいいたいのは
たとえば a = -1 かつ b > 1 のとき c = 0 になるんだよ
これってコンピュータ内部事情?
977デフォルトの名無しさん:2007/12/27(木) 23:35:52
-0 になってほしいのか? 
978デフォルトの名無しさん:2007/12/27(木) 23:36:35
整数除算か
979デフォルトの名無しさん:2007/12/27(木) 23:37:29
>>977
いやこれにたよったコード書いていいのか思って
もちろん整数についてだけど
980デフォルトの名無しさん:2007/12/27(木) 23:40:58
>>976
実数が欲しいなら、
a, b, c: Double;
として、
c := a / b;
ってやってくれ。
981デフォルトの名無しさん:2007/12/27(木) 23:47:07
負数を正数で割ると問答無用で0になるの?
982デフォルトの名無しさん:2007/12/27(木) 23:47:35
>>980
いや>>979が知りたかったが
どうやら整数除算というやつは環境依存だそうだから
頼ったコードは書けないんだね
983デフォルトの名無しさん:2007/12/28(金) 00:04:55
>>981
-4 div 2 とかならならちゃんと-2になるよ
実数が欲しいなら>>980
984デフォルトの名無しさん:2007/12/28(金) 00:05:06
>>981
いやいや、 小数点は切り捨てられるって事。
つまり、-0.5→0 になる。
Delphiのdivは常に切捨てじゃないの?

-0.5を-1にしたいのなら、
Trunc, Floor, Ceil のどれかを使うと思う。
985デフォルトの名無しさん:2007/12/28(金) 00:12:30
>>984
>Delphiのdivは常に切捨てじゃないの?

おお、じゃあそれに頼ったコード書いていいんだね
それを教えて
986デフォルトの名無しさん:2007/12/28(金) 00:18:09
ヘルプに載ってるでしょ。
987デフォルトの名無しさん:2007/12/28(金) 00:22:56
浮動小数点型のデータをdivで割ろうとすると「型が違う」とコンパイルエラーになる。
988デフォルトの名無しさん:2007/12/28(金) 00:23:14
>>986
すまん・・・・

>x div y の値は,x/y の値を 0 の方向に向かってもっとも近い整数に丸めた値

載ってた・・・・ありがとう
989デフォルトの名無しさん:2007/12/28(金) 00:24:41
頭悪すぎ・・
990デフォルトの名無しさん:2007/12/28(金) 00:49:33
性格が悪いよりいいさ
991デフォルトの名無しさん:2007/12/28(金) 01:05:18
けだし名言
992デフォルトの名無しさん:2007/12/28(金) 01:07:05
でも環境依存のコードってあまりな
993デフォルトの名無しさん:2007/12/28(金) 01:14:29
コンパイラオプション依存のコードは結構あった。
994ななしへたぐらま ◆XcB18Bks.Y :2007/12/28(金) 04:37:29
もうスレ終了間際なのですが当方、今夜はスレ建てられませんのでテンプレだけ作っておきます。

>>1のテンプレはDelWikiの過去ログに飛べなかったのでURIをいじってみました。
>>2のテンプレはdat落ちしたスレを省きました(次スレが見つからなかったのでただの削除です)。

スレタイ:くだすれDelphi(超初心者用)その45

-->>1用--------
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
http://delwiki.info/?Delphi%20%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9
----------
(つづく)
995ななしへたぐらま ◆XcB18Bks.Y :2007/12/28(金) 04:38:20
-->>2用--------
<関連スレ>
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc11.2ch.net/test/read.cgi/tech/1093654251/
Delphi初心者のための寺子屋
http://pc11.2ch.net/test/read.cgi/tech/1132756268/
delphiで作った有名ソフトって何があるの?
http://pc11.2ch.net/test/read.cgi/tech/1135654787/
Delphi持ってるならGLSceneを使え
http://pc11.2ch.net/test/read.cgi/tech/1163269079/
【Delphi互換!?】FreePascal【GPL】
http://pc11.2ch.net/test/read.cgi/tech/1137051510/

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc11.2ch.net/test/read.cgi/gamedev/1097836469/
Delphiでアクションゲームが作りたい!! Part2
http://pc11.2ch.net/test/read.cgi/gamedev/1027482533/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc11.2ch.net/test/read.cgi/gamedev/1028278884/
delphiでMMO
http://pc11.2ch.net/test/read.cgi/gamedev/1072515100/
----------
(以上)
996デフォルトの名無しさん:2007/12/28(金) 09:49:18
立ててきた

くだすれDelphi(超初心者用)その45
http://pc11.2ch.net/test/read.cgi/tech/1198802907/
997ななしへたぐらま ◆XcB18Bks.Y :2007/12/28(金) 10:50:15
>>996
朝からお疲れさまでした!
998ななしへたぐらま ◆XcB18Bks.Y :2007/12/28(金) 11:52:37
>>967
アクセスでカンマ区切りテキストでエクスポートして文字列リストに読み込む。
1行ごとに別の文字列リストのCommaTextに代入すれば各行にフィールドの文字列が入ります。
カンマ区切りテキストにした時点で全部文字列になっているので
必要に応じて整数型や実数型に再変換。

#しかし列が100もあるテーブルってどんなテーブルなんだろう…
999デフォルトの名無しさん:2007/12/28(金) 11:55:41
糞スレ埋め
1000デフォルトの名無しさん:2007/12/28(金) 11:56:12
1000げと
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。