Hey Shawn,
du kan starte med at hente samtlige projekter ud af din database og gemme på en eller anden måde i dit program, ex: i en TList så du har dem gemt lokalt indtil det er nødvendigt at refreshe.
Hvis det var mig ville jeg oprette en klasse til det, ex:
TaProject = class()
private
fStartDate:TDateTime;
fStopDate:TDateTime;
fProjectName:string;
public
property StartDate: TDateTime read fstartDate write SetStartdate();
property stopDate: TDateTime read fStopDate write SetStopDate()
property Projectname: string read fProjectName write SetProjectName();
procedure SetStartDate(Value:TDateTime);
procedure SetStopDate(Value:TDateTime);
procedure SetProjectName(Value:String);
end;
procedure TaProject.SetStartDate(Value:TDateTime);
begin
if(value <> fStartDate) then
fStartDate:= Value;
end;
procedure TaProject.SetStopDate(Value:TDateTime);
begin
if(value <> fStopDate) then
fStopDate:= Value;
end;
procedure TaProject.SetProjectName(Value:String);
begin
if(value <> fProjectName) then
fProjectName:= Value;
end;
Et eller andet centralt sted i dit program skal du have en TList. Ex:en "MainForm" hvis du har sådan en
ex:
private
projectList: TList;
når dit programmer starter op skal denne så "create"'s
projectList:= TList.Create();
Når du så henter værdierne ud af din database, opretter du en TaProject for hver gang.
ex:
bemærk! dbStuff og numResults eksisterer ikke normalt.
men ved ikke hvordan du henter fra din db!
det skal du selvfølgelig så ændrer så det passer ind i dine komponenter/klasser.
var
i:integer;
aP:aProject;
begin
for i:= 0 to numResults do
begin
aP:= aProject.Create();
aP.ProjectName:= dbstuff["ProjectName"];
aP.StartDate:= dbStuff["StartDate"];
aP.StopDate:= dbStuff["StopDate"];
projectList.Items.Add(aP); //adds the project to the projectList (TList)
end;
{* Add all the projects to a grid! *}
end;
Hvad bruger du til dit grid?
et hjemmestrikket? en kalender?
men i bund og grund:
Sørg for du kan bruge "OwnerDraw"
Dernæst må du i "OnOwnerDraw" eller "OnDraw" (kommer an på komponentet...)
finde ud af om det projekt der ligger der skal have en anden farve og om der overhovedet er nogen.
Desværre har jeg pt. ikke lige fået taget mig sammen og smidt Delphi på min bærbar, så kan først kigger på noget lidt mere seriøs kode engang i eftermiddag,
men kunne være rart med lidt info om hvad du bruger indtil videre. også mht. hvad du bruger til at hente dataene ud fra db'en =)