StringGridにMonthCalendarを使って月曜日だったら月曜日だけの週の月日を表示させたいんですけどどうしたらいいかまったくわかりません。
質問の内容が良くわからんというか、なんと言うか。
取得できるけど、表示方法がわからん。
表示方法はわかるけど、取得方法がわからん。
どっちもわからん。
そもそも、どう考えればよいかわからん。
どうなんじゃろ? まあ、いいか。
その月内からその曜日に該当する日付を取得すると言うことなら
たとえば・・・
まず、MonthCalendarなるものから選んだ日付が何曜日かを取得。
次にその月内の日数を取得して、1日目から順に一日づつ増やして同じく
曜日を取得して、判断する。
その日付の曜日が先程取得した曜日と同じならその結果をStringGridへ・・・。
ってことでしょうか。
DateUtils(日付時刻ルーチン)をヘルプで参照すると必要となる関数は
揃ってます。
質問と違ってたら<m(__)m>
質問を変えていいですか?たとえばEdit1に4月1日,Edit2に月曜日と入れると4月1日以降の月曜日を取得したいんですけどどうしたらいいんですか?4月3日、4月10日、4月17日・・・みたいな感じで。
> たとえばEdit1に4月1日,Edit2に月曜日と入れると4月1日以降の月曜日を取得したい
こんな感じでできました。
procedure TForm1.Button1Click(Sender: TObject);
const
week: array[1..7] of string = ('日曜日','月曜日','火曜日','水曜日','木曜日',
'金曜日','土曜日');
var
d, today: TDateTime;
iw: integer;
begin
d := VarToDateTime('2005年'+Edit1.Text);
iw := 0;
repeat
inc(iw);
until week[iw] = Edit2.Text;
while DayOfWeek(d) <> iw do d := d+1;
today := Now;
while d<today do
begin
Memo1.Lines.Add(DateTimeToStr(d));
d := d+7;
end;
end;
このプログラムをコピーしてEdit1,Edit2,button1,Memo1をフォームに貼り付けて、Edit1に4月1日と入力して実行したんですけど、読込み違反が起こりましたとエラーになるんですけどどうしたらいいんですか?
すいません。edit2に曜日を入れるのを忘れてました。ちゃんと動きました。ありがとうございます。
ツイート | ![]() |