unit DrieKnoppenScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ActnList, Images, Vcl.ImgList, UiContext, Vcl.ExtCtrls, Soap.InvokeRegistry, Soap.Rio, Soap.SOAPHTTPClient, Data.DB, Datasnap.DBClient, Soap.SOAPConn, Agent; type TfmDrieKnoppenScherm = class(TForm) alKnoppenOnder: TActionList; actLinksOnder: TAction; actCentraalOnder: TAction; actRechtsOnder: TAction; alAlgemeen: TActionList; actVolgende: TAction; actHome: TAction; actAfsluiten: TAction; actUitloggen: TAction; actPallet: TAction; actOngedaanMaken: TAction; actSluiten: TAction; pnlDrieKnoppen: TPanel; btnLinksOnder: TButton; btnCentraalOnder: TButton; btnRechtsOnder: TButton; actSchermRechts: TAction; actSchermLinks: TAction; pnlTop: TPanel; lblGebruiker: TLabel; pnlLinksOnder: TPanel; pnlCentraalOnder: TPanel; pnlRechtsOnder: TPanel; imgLinksOnder: TImage; imgCentraalOnder: TImage; imgRechtsOnder: TImage; actAfronden: TAction; actTerug: TAction; procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure imgLinksOnderClick(Sender: TObject); procedure imgCentraalOnderClick(Sender: TObject); procedure imgRechtsOnderClick(Sender: TObject); private fUiContext: TUiContext; protected function ComputerName: String; function WUserName: String; function FullName: String; function ToonPopupScherm(Melding, Actie1: String; Actie2: String = ''; imgCentraalIndex: integer = 13; ImageIndex1: integer = -1; ImageIndex2: integer = -1; knopkleur: TColor = $001717CD): TModalResult; public property UiContext: TUiContext Read fUiContext Write fUiContext; end; var fmDrieKnoppenScherm: TfmDrieKnoppenScherm; implementation uses PopupScherm; {$R *.dfm} procedure TfmDrieKnoppenScherm.FormCreate(Sender: TObject); begin actLinksOnder := nil; actCentraalOnder := nil; actRechtsOnder := nil; lblGebruiker.Visible := false; end; procedure TfmDrieKnoppenScherm.FormShow(Sender: TObject); begin btnLinksOnder.Visible := false; btnCentraalOnder.Visible := false; btnRechtsOnder.Visible := false; btnLinksOnder.Images := UiContext.ImagesScherm.ilAlgemeen48; btnCentraalOnder.Images := UiContext.ImagesScherm.ilAlgemeen48; btnRechtsOnder.Images := UiContext.ImagesScherm.ilAlgemeen48; if btnLinksOnder.Action <> nil then begin UiContext.ImagesScherm.ilAlgemeen128.GetIcon(btnLinksOnder.ImageIndex, imgLinksOnder.Picture.Icon); end; if btnCentraalOnder.Action <> nil then begin UiContext.ImagesScherm.ilAlgemeen128.GetIcon(btnCentraalOnder.ImageIndex, imgCentraalOnder.Picture.Icon); end; if btnRechtsOnder.Action <> nil then begin UiContext.ImagesScherm.ilAlgemeen128.GetIcon(btnRechtsOnder.ImageIndex, imgRechtsOnder.Picture.Icon); end; lblGebruiker.Caption := UiContext.Initialen; if lblGebruiker.Caption <> '' then begin lblGebruiker.Visible := true; end; end; function TfmDrieKnoppenScherm.FullName: String; begin Result := ComputerName + ' / ' + WUserName; end; procedure TfmDrieKnoppenScherm.imgLinksOnderClick(Sender: TObject); begin if btnLinksOnder.Action<>nil then begin btnLinksOnder.Action.Execute; CloseModal; end; end; procedure TfmDrieKnoppenScherm.imgCentraalOnderClick(Sender: TObject); begin if btnCentraalOnder.Action<>nil then begin btnCentraalOnder.Action.Execute; CloseModal; end; end; procedure TfmDrieKnoppenScherm.imgRechtsOnderClick(Sender: TObject); begin if btnRechtsOnder.Action<>nil then begin btnRechtsOnder.Action.Execute; CloseModal; end; end; function TfmDrieKnoppenScherm.ToonPopupScherm(Melding, Actie1: String; Actie2: String = ''; imgCentraalIndex: integer = 13; ImageIndex1: integer = -1; ImageIndex2: integer = -1;knopkleur: TColor = $001717CD): TModalResult; var PopupScherm: TfmPopupScherm; begin PopupScherm := TfmPopupScherm.Create(self); PopupScherm.lblWaarschuwing.Caption := Melding; PopupScherm.lblActie1.Caption := Actie1; //indien nodig twee tekstknoppen zichtbaar maken if Actie2 <> '' then begin PopupScherm.pnlbtnActie1.Width := 134; PopupScherm.pnlbtnActie2.Visible := True; PopupScherm.lblActie2.Caption := Actie2; PopupScherm.imgActie1.Left := 35; PopupScherm.imgActie2.Left := 35; end; //kleur knoppen PopupScherm.lblActie1.Color := knopkleur; PopupScherm.lblActie2.Color := knopkleur; PopupScherm.pnlbtnActie1.Color := knopkleur; PopupScherm.pnlbtnActie2.Color := knopkleur; if knopkleur = clYellow then PopupScherm.lblActie1.Font.Color := clBlack; //grote image in het midden kiezen UiContext.ImagesScherm.ilAlgemeen128.GetIcon(imgCentraalIndex, PopupScherm.imgCentraal.Picture.Icon); //indien nodig de knoppen vergroten en een image laden if ImageIndex1 >= 0 then begin PopupScherm.pnlbtnActie1.Top := PopupScherm.pnlbtnActie1.Top - 60; PopupScherm.pnlbtnActie1.Height := PopupScherm.pnlbtnActie1.Height + 60; UiContext.ImagesScherm.ilAlgemeen64.GetIcon(ImageIndex1, PopupScherm.imgActie1.Picture.Icon); PopupScherm.pnlbtnActie1.VerticalAlignment := taAlignBottom; PopupScherm.lblActie1.Align := alBottom; PopupScherm.imgActie1.BringToFront; end; if ImageIndex2 >= 0 then begin PopupScherm.pnlbtnActie2.Top := PopupScherm.pnlbtnActie2.Top - 60; PopupScherm.pnlbtnActie2.Height := PopupScherm.pnlbtnActie2.Height + 60; UiContext.ImagesScherm.ilAlgemeen64.GetIcon(ImageIndex2, PopupScherm.imgActie2.Picture.Icon); PopupScherm.lblActie2.Align := alBottom; PopupScherm.imgActie2.BringToFront; end; result := PopupScherm.ShowModal; end; function TfmDrieKnoppenScherm.WUserName: String; var nSize: DWord; begin nSize := 1024; SetLength(Result, nSize); if GetUserName(PChar(Result), nSize) then SetLength(Result, nSize-1) else RaiseLastOSError; end; function TfmDrieKnoppenScherm.ComputerName: String; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; end.