こんばんわ。デルファイの5を使い始めて間もないのですが、今なかなか使い方が分からず困っている部分があります。コンポーネントのサンプルにあるmonthカレンダーについて、TButtonをクリックすると次の日へ移動する方法とある1つの日付をクリックしたら、その日のスケジュールが抽出できる方法を教えていただけないでしょうか?
スケジュールを抽出する方法というのは、そのスケジュールがデータベースと繋がっていて、そのデータベース上にあるテーブルの情報を、フォームに反映させるようなことです。データベースは、オラクルの9iを使っています。お手数がかかるようでしたら、きっかけとなるような情報をいただけると幸いです。
具体的に何がわからないのでしょうか。
データベースの扱い方からわからないのでしょうか?
サンプルはHELPを併用して読んでみたのですか?
データベースの扱い方は、ある程度分かるので大丈夫だと思います。コンポーネントのコマンドがわからないところです。コンポーネント上で次の日付/前の日へ移る方法や選んだ日付をクリックしたら、処理が行われる方法です。
データベースの使用は必須条件?
データベースを使わない方法でのスケジュール保存/参照はダメなの?
データベースを使用する方法は、私にとってわかりやすいので、できればそちらのほうがいいです。ただ、データベース以外でのスケジュール保存方法の情報もいただけたら、ぜひ試してみたいと思っています。
スケジュールとはどんな内容のもの?
例えばMemoなどに箇条書きしたようなものとか?
TEDitとmemoに表示したいと思っています。Teditには、そのスケジュールのタイトルや詳しい時間など、memoにはその内容を表示できればと思っています。ただ、1日にいくつものスケジュールがあることが前提なので、そうなるとmemoに箇条書きに表示する方法がやりやすいのではと感じています。
TChangeDate = procedure(Year,Month,Day: Word) of Object;
TMonthCalendar = class(ComCtrls.TMonthCalendar)
private
FChangeDate: TChangeDate;
public
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
published
property OnChangeDate: TChangeDate read FChangeDate write FChangeDate;
end;
procedure TMonthCalendar.CNNotify(var Message: TWMNotify);
var
Year,Month,Day: Word;
begin
inherited;
with Message, NMHdr^ do
begin
case code of
MCN_SELCHANGE:
begin
if Assigned(OnChangeDate) = True then
begin
DeCodeDate(Date,Year,Month,Day);
OnChangeDate(Year,Month,Day);
end;
end;
end;
end;
end;
procedure TForm4.ChangeDate(Year,Month,Day: Word);
begin
//ここで適当に処理
Exit;
end;
procedure TForm4.FormCreate(Sender: TObject);
var
Year,Month,Day: Word;
begin
MonthCalendar1.OnChangeDate := ChangeDate;
end;
procedure TForm4.Button1Click(Sender: TObject);
var
Year,Month,Day: Word;
begin
MonthCalendar1.Date := MonthCalendar1.Date + 1;
DeCodeDate(MonthCalendar1.Date,Year,Month,Day);
ChangeDate(Year,Month,Day);
end;
procedure TForm4.Button2Click(Sender: TObject);
var
Year,Month,Day: Word;
begin
MonthCalendar1.Date := MonthCalendar1.Date - 1;
DeCodeDate(MonthCalendar1.Date,Year,Month,Day);
ChangeDate(Year,Month,Day);
end;
ここのさん、
はい。このようなものができればいいと思います。これは、どのように作成しているのでしょうか?
ここの?さん現在過去のダウンロードアドレスではダウンロード
できない様ですが、現在のダウンロードアドレスは公開されていますか。
真琴:「はい、民宿ダイアモンドヘッドです、あ、ユウコ、ナニ?」
裕子:「ユウスケが使ってみたら〜、Memoに書いた文が日付移動しても保存されないって」
真琴:「あ…ユウコ、ジツは、説明し忘れたことが…」
裕子:「ナンなの?」
真琴:「MemoのOnkeyDownイベントで…Memoが書き換えられたことをカレンダーに教えてあげないとMemoに書き込んだDATAが保存されないの」
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
MonthCalendarEx1.TextModified := True;
end;
裕子:「もう、カンジンなコトじゃない、それ言ってくれないと…」
真琴:「ユウコが急いで帰っちゃったから言う暇もなくて…^^;」
カイトさんじゃなくて真琴さん?
新しいMonthCalendarEx公開していただいてありがとうございます。
Gridの線が描画されるのいいですね。
ShowGridとshowWeekNumbersがTrueの時拡大すると最初の縦線の位置が
ずれるのと金土の間の縦線が表示されません。
Scheduleの文字が実行時に表示されませんが、何かプロパティが
ありましたか。
使用Delphi2010です。
MonthCalendarEx 益々いいですね。
Delphi2010ではエラーが出ますと誰か突っ込みを入れられると
思いましたが無いですね。
私はようやく全て(たぶん)正常に動作する様になりました。
>Scheduleの文字が実行時に表示されませんが、何かプロパティが
>ありましたか。
MEMOにも使う別物の入れ物があったんですね、理解しました。
ツイート | ![]() |