Terminarz - wybór kontrolek

0

Witam, chcę zrobić terminarz w Delphi, 5 kolumn i 18 wierszy, 1 kolumna to godziny, zapiszę tam 18 godzin obecnego dnia, w pozostałych 3 kolumnach planuję opisywać ćwiczenia, krótkie notki tekstowe, liczbowe. Obecnie robię to w excelu, stąd moje pytanie dosyć ogólne, z czego mógłbym skorzystać aby taki terminarz wykonać i czy w miarę nie zaawansowany sposób mogę połączyć ten komponent z kalendarzem, proszę tylko napisać własne przemyślenia, spróbuję przestudiować to sam. Pozdrawiam.

0

Jeśli o listę chodzi, to możesz wykorzsytać TStringGrid, TListBox, TCheckListBox czy TListView; Wszystko zależy od efektu jaki chcesz uzyskać, więc OwnerDraw na pewno się przyda; Możesz rysować do woli, więc i do woli pomysłów; Nabezpieczniej było by wykorzystać TStringGrid, ponieważ zapewni to gotową "siatkę" z obsługą klawiatury i myszy, a pozostawać będzie do zrobienia samo rysowanie; Ewentualnie jeśli chcesz megasuperhiper efekt uzyskać, to oprogramuj własną kontrolkę na bazie np. TCustomControl lub podobnych;

Co do kalendarza to sytuacja jest podobna - albo gotowe (z pomocą znów przychodzi np. TStringGrid), albo własne; Wszystko po raz koljeny zależy od oczekiwanego efektu; Gotowe kontrolki jak TCalendar nie są jakieś super atrakcyjne, więc trzeba się zastanowić która kontrolka będzie Ci odpowiadać;

Dobrze by było jakbyś przedstawił sporządzony w dowolnym programie graficznym "zarys" kontrolek i formularza, żebyśmy wiedzieli jaki będzie docelowy efekt (namaluj coś np. w MS Paint) - wtedy będzie można coś doradzić.

0

Potrzebujesz TVirtualTreeView i nic więcej.

0

mam na myśli coś takiego jak w załączniku, zamiast id mam godziny, pozostałe to typy treningu i tu data jest jako pole, a spróbuję aby po kliknięciu na datę np w komponencie kalendarza który będzie obok treeview przechodziło do tego dnia, o ile to będzie dla mnie za skomplikowane pozostanę przy excelu.

0

@Michal90: taki efekt o ile się nie mylę jest raczej do uzyskania nawet na TListView. Tylko wiadomo, własna obsługa rysowania. Plus tworzenie kontrolek w wierszach. Są na to przykłady w google. Wystarczy poszukac, pokombinować i zaadaptować kod na swoje potrzeby.

0
unit terminarz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Grids, Calendar, Spin;

type
  TForm1 = class(TForm)
    ListView1: TListView;
    Calendar1: TCalendar;
    SpinButton1: TSpinButton;
    Label1: TLabel;
    procedure SpinButton1DownClick(Sender: TObject);
    procedure SpinButton1UpClick(Sender: TObject);
    procedure Calendar1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}


procedure TForm1.SpinButton1DownClick(Sender: TObject);
begin
Calendar1.PrevMonth;
end;

procedure TForm1.SpinButton1UpClick(Sender: TObject);
begin
Calendar1.NextMonth;
end;

procedure TForm1.Calendar1Click(Sender: TObject);
var
  dzien, miesiac, rok: integer;
begin
dzien:=Calendar1.Day;
miesiac:=Calendar1.Month;
rok:=Calendar1.Year;
  Label1.Caption:='Miesiac: ' + inttostr(miesiac) + ' Rok: ' + inttostr(rok);
end;

end. 

Mam 1 pytanie, za chwilę sobie połączę kalendarz z tlistview tak aby po kliknięciu tworzyl sie czysty komponent wg szablonu do wypelniania, ale w jaki sposob to zapisywać?
TFileStream i zapisywać komponent?

1 użytkowników online, w tym zalogowanych: 0, gości: 1