Einzelnen Beitrag anzeigen

PTB

Registriert seit: 6. Dez 2012
4 Beiträge
 
#4

AW: TMonthCalendar + Tage Fett markieren + Schleife

  Alt 7. Dez 2012, 14:37
Das Problem hat sich erledigt

Für die, die es interessiert hier meine Lösung:

Delphi-Quellcode:
procedure TForm16.GetMarkingDays();
var
  MonthBoldInfo: Cardinal;
  sl_date: TStringList;
  s_sql: string;
  i_i1: Integer;
  i_i2: Integer;
  s_day: string;
  s_month: string;
  s_year: string;
  i_start_date: Integer;
  i_amount_days: Integer;
begin

  sl_date := TStringList.Create;
  sl_date.Delimiter := '.';
  sl_date.StrictDelimiter := True;
  sl_date.DelimitedText := DateToStr(MC1.Date);

  s_day := sl_date[0];
  s_month := sl_date[1];
  s_year := sl_date[2];

  PSQLQuery1.Close;
  PSQLQuery1.SQL.Clear;
  s_sql := 'SELECT datum_start,buchungszeitraum '+
           'FROM hotelbuchungsassistent.buchung '+
           'WHERE EXTRACT(MONTH FROM datum_start) = ' + s_month + ' ' +
           'ORDER BY EXTRACT(DAY FROM datum_start)';
  PSQLQuery1.SQL.Add(s_sql);
  PSQLQuery1.Open;

  for i_i1 := 0 to PSQLQuery1.RecordCount - 1 do
  begin
    sl_date.DelimitedText := PSQLQuery1.FieldByName('datum_start').AsString;

    i_start_date := StrToInt(sl_date[0]);
    i_amount_days := PSQLQuery1.FieldByName('buchungszeitraum').AsInteger;

    for i_i2 := i_start_date to (i_amount_days + i_start_date) - 1 do
    begin
      SetLength(a_day, Length(a_day) + 1);
      a_day[Length(a_day) - 1] := i_i2;
    end;
    PSQLQuery1.Next;
  end;

  b_markieren := True;
  MC1.OnGetMonthInfo(MC1, 12, MonthBoldInfo);
  MarkingDays();
end;

procedure TForm16.MarkingDays();
var
  s_date1: string;
  s_date2: string;
  s_date_complete: string;
  sl_date: TStringList;
begin
  s_date_complete := DateToStr(MC1.Date);

  sl_date := TStringList.Create;
  sl_date.Delimiter := '.';
  sl_date.StrictDelimiter := True;
  sl_date.DelimitedText := s_date_complete;

  s_date1 := sl_date[0]+'.'+sl_date[1]+'.'+IntToStr(StrToInt(sl_date[2])+4);
  s_date2 := sl_date[0]+'.'+sl_date[1]+'.'+sl_date[2];

  MC1.Date := StrToDate(s_date1);
  MC1.Date := StrToDate(s_date2);
end;
Falls jemad was nicht versteht einfach fragen (bin zwar anfänger aber arbeite schon so lange an diesem Problem das ich genau sagen kann was wo passiert und warum )

Jatzt habe ich aber das Problem das ich diese Tage nicht wieder Normal bekomme, also das sie nicht mehr Fett sind.

Gibt es irgendwie eine möglichkeit das ich Objekt neu lade also das ich das wie beim start wiederfinde?

Danke im vorraus

Geändert von PTB ( 7. Dez 2012 um 14:51 Uhr)
  Mit Zitat antworten Zitat