952 :
デフォルトの名無しさん :02/04/06 14:50
953 :
デフォルトの名無しさん :02/04/06 14:55
954 :
ネタじゃないのよ :02/04/06 14:55
>>952 そんなこと言わんと教えてください。おながいします。
955 :
ネタじゃないのよ :02/04/06 14:57
956 :
デフォルトの名無しさん :02/04/06 15:00
これとよーく見比べてみな。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Close; end; end.
957 :
デフォルトの名無しさん :02/04/06 20:43
v (゚ω゚) <そろそろ出番だな /( )\ /'\
時刻処理をしたいのだけど、15時から16時の間はAの処理、それ以外はBの処理 ってのはどのようにすればいいのでしょか?
補足説明 GetLocalTimeを使うと現在時刻が取れるのだけど15時から16時の間とかは wHourを使ってきちんとif文で処理出来るのだけど15時半とかの場合はif文が 使えないっす。
>>958 "日付時刻ルーチン"でヘルプを検索しる!
>>959 >15時半とかの場合はif文が使えないっす。
って15時半から16時の間なら・・・っていう事が
if文で出来ないってことですか?
962 :
デフォルトの名無しさん :02/04/07 00:23
>>960 検索したけど使い方が分からんかった。
やり方教えてくれぃ。
963 :
デフォルトの名無しさん :02/04/07 00:27
>>961 行き違いになってましたすみません。
>って15時半から16時の間なら・・・っていう事が
>if文で出来ないってことですか?
はい。例えば
if Localtime.wHour>14
とすれば15時以降か以前かの判断が出来るのですけど、
この方法だと分単位の判断が出来ないので良い方法があればと思いまして。
まあ強引に入れ子にしてif文を並べれば出来ないこともないのですが、もっと
スマートな方法があるだろうと思いまして。
965 :
デフォルトの名無しさん :02/04/07 01:05
>>964 毎度どうも。
TDataTime型に現在の時刻を入れる方法あるのでしょうか?
>>965 あ、いや初レスです。
TDateTimeのメソッド一覧は見ました?
CurrentDate
CurrentTime
CurrentDateTime
辺りだと思います。
967 :
デフォルトの名無しさん :02/04/07 01:37
Delphiでの書き方がわからないので、 BCBでスマソですが、こんな感じでしょう。 if (TDateTime::CurrentTime() >= StrToTime("15:30:00") && TDateTime::CurrentTime() <= StrToTime("16:00:00")) { } else { }
今までなにも考えずにネストしてました…
_________ ∧,,∧ / ミ;゚Д゚彡< つくってみたけど ミ つI) \ 〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ U U なんか、 [Form1.Caption: '今は1:43:15なので2:00:00から3:00:00の間です'] こんなふうな意味わからん表示になるんだけど なんでだろ〜〜なんでだろ〜〜(テツ&トモ) procedure TForm1.Button1Click(Sender: TObject); var i: Integer; StartTime, EndTime: TTime; begin for i:=0 to 23 do begin StartTime := EncodeTime(i , 0, 0, 0); EndTime := EncodeTime(i+1, 0, 0, 0); if (CompareTime(StartTime, Time) = GreaterThanValue) and (CompareTime(Time, EndTime) = LessThanValue) then begin Form1.Caption := '今は'+TimeToStr(Time)+'なので'+ TimeToStr(StartTime)+'から'+ TimeToStr(EndTime)+'の間です'; Break; end; end; end; なんか、どこか間違ったかな? D6UP1です。
>>969 × CompareTime(StartTime, Time)
○ CompareTime(Time, StartTime)
かな?
あと、iが23のとき、EncodeTime(i+1, 0, 0, 0); で例外が出るような。
またBCBで申し訳ないですが、
日付をまたぐ場合にも対応すると、
TDateTime dtStart = StrToTime("23:00:00");
TDateTime dtEnd = StrToTime("1:00:00");
TDateTime dtCurr = Time();
if (dtEnd < dtStart)
{
if (dtCurr < dtEnd)
dtCurr++;
dtEnd++;
}
if (dtCurr >= dtStart && dtCurr <= dtEnd)
Caption = "内";
else
Caption = "外";
です。
暇なので勉強も兼ねてDelphiで。 function Hoge: Boolean; var StartTime, EndTime, CurrTime: TDateTime; begin StartTime := StrToTime('23:00:00'); EndTime := StrToTime('1:00:00'); CurrTime := Time; if (EndTime < StartTime) then begin EndTime := EndTime + 1; if (CurrTime < EndTime) then CurrTime := CurrTime + 1; end; Result :=(CurrTime >= StartTime) and (CurrTime <= EndTime); end;
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < こうですね!
U ミ \____________
@ミ ミ
∪''∪
if (CompareTime(StartTime, Time) = LessThanValue)
and (CompareTime(Time, EndTime) = LessThanValue) then
そっかそっか。LessとかGreaterとかいうとついわけわかですね
MyCompareTime(StartTime , '<', Time)
とかで比較できたらいいかも。
あ。それって
TimeOf(StartTime) < TimeOf(Time) ってやればいいのか。
ちょっと勉強にナタ。ありがとうです
>>970 さん
Delphiのコードの間違い探しをしたり、自分で書いてみたりして 私も今日はいい勉強になりました。
>>971 訂正です。
EndTime := EndTime + 1;
if (CurrTime < EndTime) then CurrTime := CurrTime + 1;
↓
if (CurrTime < EndTime) then CurrTime := CurrTime + 1;
EndTime := EndTime + 1;
そろそろ、そろっと、新しいスレ立てないと1000になるよ
976 :
デフォルトの名無しさん :02/04/07 15:09
963 です。971をベースにしてできました。ありがとうございました。 969でやろうとしたらCompareTimeとGreaterThanValueとLessThanValueが 未定義だ!と怒られちゃったので。(^^;
爽やかな展開だ、いやに
978 :
デフォルトの名無しさん :02/04/07 19:33
DelphiでXMLをコチョコチョやりたいんですが 情報が集まっているところをご存知でしたら教えていただけないでしょうか
Delphi Magazine 4月号に、interfaceの自動参照カウント処理と、 interfaceを返す関数を呼び出したときに戻り値を受け取らなくても コンパイラが勝手に一時オブジェクトを作って、スコープ脱出時にその開放をやってくれる機能を うまく使って記述コードをすっきりさせる手法が紹介されてた。 C++っぽくておもしろいな。 function AutoFree(obj: TObject): Iなんたら; ってのがあるとすると(Iなんたらはデストラクト時にobjをfreeしてくれるものがあるとする)、 begin sl := TStringList.Create; AutoFree(sl); slを使った処理... end; みたいに、try-finallyを記述しなくても確実に開放できるんだな。 mutexとかの管理なんかも同じ調子ですっきりできそうだ。 バイナリのサイズはむしろ増えそうだが。
980 :
デフォルトの名無しさん :02/04/08 01:16
デバッグをしてると時々、 ソースファイルが見つかりません。ExtCtrls.pas とか表示されるんだけどこれって回避する方法ある?
例外出るとワケワカメなヤツ探しにいくヤツだろ? パッチあてると治るらしいぜ。 オレはパソナルだから面倒でそのままだけど(ワラ
Ent版を買って[プロジェクトオプション]-[コンパイラ]-[デバッグ用DCUを使う]に チェックを入れる。
ageだ
新スレ移行のついでに埋め立て協力カキコ
埋め。
埋め埋め。
梅
埋め埋め埋め
990!
ume
992!
v (゚ω゚) <それそれ出番だな /( )\ /'\
埋め埋め埋め埋め
静かだ・・・
v <(゚ω゚) <うっ! ( )\ /'>
v (゚ω゚)> <はっ! /( ) <'\
v <(゚ω゚)> <うっ! ( ) /'>
v (゚ω゚)/ <はっ! /( ) <'\
v w (゚ω゚)/ \(゚δ゚)<ジーンギスカーン! /( ) ( )ゝ <'\ / >
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。