05. november 2005 - 16:03Der er
4 kommentarer og 1 løsning
Kalender skal hente info fra database
Hejsa
Jeg sidder og er ved at lave en kalender der skal hente nogle oplysninger fra en MS Access database
Kalenderen viser en måned ad gangen og den er "tegnet" i et TStringGrid. Jeg vil nu gerne at de forskellige Felter med en dag skal indeholde data hentet fra tabellen Kalender og datoen kan findes i feltet Dato under formattet DD-MM-YYYY
Hvordan gøres dette? Jeg vil gerne have et "prøve"projekt, ikke nødvendigvis med en hel kalender, men med noget der opdateter løbende så jeg kan se noget fungerende kode.
Nu er det ikke en kodecentral hvor der stilles ønsker i stil med giro413. Det må antages at spørgerne er delvist selvhjulpne, dvs. i stand til at lave noget kode selv når de har fået nogle ideer fra os andre.
Jeg ville nok lave en ny komponent der nedarver fra en TDrawgrid og der indkapsle en TQuery/TADOQuery eller hvad de nu hedder. Rimeligt low-tech. Der ville jeg så tegne hvert felt selv så jeg kunne placere grafik og n-antal linier selv. Du skriver "opdaterer løbende", tænker du på en TTimer eller er det en ”data-aware” tingest du vil have fat i?
hehe, nu sad jeg og arbejdede på det i går og fik noget fungerende kode lavet, men hvis jeg forstår data-aware udtrykket rigtigt, så betyder det at der bliver opdateret lige så snart der kommer et nyt post til databasen. Hvis ikke hvad mener du så med data-aware ?
Måske jeg tager fejl af det du ønsker ?.Lyder lidt som en 'dato-picker' du er ude efter.Har aldrig selv forstået koden til nedenstående eks., der såvidt jeg husker er lavet af Snowball.Men måske kan du få lidt ud af at kigge på hans kode, som jeg har gemt omhyggeligt.Kan se på det gamle spm. at zip-koden er taget ned - desværre.
procedure TFMain.InitGrid; const SGColWidthArray : array[0..3] of integer = (140,160,350,70); SGTextArray : array[0..3] of string = ('Forfatter','Overskrift','Resume','Dato'); var i: Integer; begin for i := 0 to 3 do begin SGResultat.ColWidths[i] := SGColWidthArray[i]; SGResultat.Cells[i,0] := SGTextArray[i]; end; SGResultat.RowCount := 2; end;
function TFMain.KonverterDato(pDato: String):String; begin Result := Copy(pDato,4,2) + '-' + Copy(pDato,1,2) + '-' + Copy(pDato,7,4); end;
procedure TFMain.PageControl1Change(Sender: TObject); begin If PageControl1.ActivePageIndex = 1 Then InitGrid; If PageControl1.ActivePageIndex = 3 Then begin ADODataSet1.Close; ADODataSet1.CommandText := 'SELECT * FROM tbl_Artikler'; ADODataSet1.Open;
ListBox1.Items.clear; ListBox2.Items.clear; ListBox3.Items.clear; ListBox4.Items.clear; while not adodataset1.Eof do begin
procedure TFMain.ListBox5Click(Sender: TObject); var AltOK: Boolean; begin AltOK:=ADOTable1.Locate('overskrift',ListBox5.Items[Listbox5.ItemIndex],[loCaseInsensitive]); end; procedure TFMain.Button3Click(Sender: TObject); var x:Integer; begin for x:=0 to adotable1.Recordset.RecordCount -1 do begin listbox5.Items.Add(ADOTable1.FieldByName('overskrift').AsString); ADOTable1.Next; end; ADOTable1.First; end;
procedure TFMain.Button4Click(Sender: TObject);
VAR
Lines : TStringList;
begin
begin Lines := TStringList.Create;
begin Lines.Text :=DbMemo1.Lines.Text;
end;
Savedialog1.execute; //Hvis brugeren klikker gem
lines.Savetofile(SaveDialog1.Filename);
Lines.Free; end; end; procedure PrintTStrings(Lst : TStrings) ; var I, Line : Integer; begin I := 0; Line := 0 ; Printer.BeginDoc ; for I := 0 to Lst.Count - 1 do begin Printer.Canvas.TextOut(0, Line, Lst[I]);
{Font.Height is calculated as -Font.Size * 72 / Font.PixelsPerInch which returns a negative number. So Abs() is applied to the Height to make it a non-negative value} Line := Line + Abs(Printer.Canvas.Font.Height); if (Line >= Printer.PageHeight) then Printer.NewPage; end; Printer.EndDoc; end;
procedure TFmain.printmemo1Click(Sender: TObject); begin
PrintTStrings(dbmemo1.lines); end; procedure TFMain.Button6Click(Sender: TObject); begin MArtikel.cuttoClipboard; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.