Yo sólo he modificado el demo 26, por lo que el campo color se encuentra en la tabla Schedules.
El código que utilizo ya lo había puesto más arriba en el mensaje #12, pero te lo incluyo de nuevo porque le agregué la opción de bloquear una habitación.
Estos procedimientos yo los he colocado en el menú del PopUpMenu porque me parece más ordenado, pero los puedes colocar en botones si lo deseas.
Para reservar una habitación (Color verde:= $00B9FFB9)
Código Delphi
[-]procedure TFPrincipal.ReservarHabitacion1Click(Sender: TObject);
begin
ADOTable1.Active:= True;
if (ADOTable1.Fields.FieldByName ('Notes').AsString= 'Habitación bloqueada') then
begin
ADOTable1.Edit;
ADOTable1.Fields.FieldByName ('Notes').Clear;
ADOTable1.Post;
end
else
begin
dbplanner1.PopupPlannerItem.Color := $00B9FFB9;
dbplanner1.PopupPlannerItem.Update;
FillPlanner;
end;
end;
Para asignar una habitación(Color gris claro)
Código Delphi
[-]procedure TFPrincipal.AsignarHabitacion1Click(Sender: TObject);
begin
ADOTable1.Active:= True;
if (ADOTable1.Fields.FieldByName ('Notes').AsString= 'Habitación bloqueada') then
begin
ADOTable1.Edit;
ADOTable1.Fields.FieldByName ('Notes').Clear;
ADOTable1.Post;
end
else
begin
dbplanner1.PopupPlannerItem.Color := clWhite;
dbplanner1.PopupPlannerItem.Update;
FillPlanner;
end;
end;
Para bloquear una habitación(Color gris oscuro)
Código Delphi
[-]procedure TFPrincipal.BloquearHabitacion1Click(Sender: TObject);
begin
ADOTable1.Active:= True;
ADOTable1.Edit;
ADOTable1.Fields.FieldByName ('Notes').AsString:= 'Habitación bloqueada';
ADOTable1.Post;
dbplanner1.PopupPlannerItem.Color := clGray;
dbplanner1.PopupPlannerItem.Update;
FillPlanner;
end;
Para eliminar una reserva o asignación
Código Delphi
[-]procedure Pulsar(Key: Byte);
begin
keybd_event(Key, 0, 0, 0);
keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);
end;
Código Delphi
[-]procedure TFPrincipal.Eliminar1Click(Sender: TObject);
begin
Pulsar(VK_DELETE);
end;
El efecto 3D de los ítems se obtiene en mi caso asignando en DefaultItem>ColorTo:= $002E2E30, que es un gris oscuro. Por supuesto tú puedes elegir los colores que más te agraden. La barra verde brillante en el margen superior de cada ítem la asignas en DefaultItem>TrackColor, colocando TrackVisible:= True.
Ya te había señalado que este componente posee cientos de opciones de configuración y de diseño y que muchas de las funciones las puedes asignar a los ítems.
Saludos
amadis y ojalá haya podido ayudarte.