Flere kommuner går nu i gang med at bruge AI-understøttet dokumentation. Målet er, at sagsbehandlere skal bruge mindre tid på referater og registrering – og mere tid på nærvær i mødet med borgeren.
Klik med musen på din form. Til højre på skærmen skifter din "Object inspector" til at vise properties og events for denne (form-klassen).
Klik på "Events" i inspectoren og find OnCreate linien. Dobbeltklik i feltet t.h. og du har en plads til at fylde athlon-pascals kode ind (man skal i øvrigt ikke bruge Athlon'er - de bruger 33% mere strøm end P4'erne ;-)).
Du skal bruge PostQuitMessage(0) i stedet for Close, hvis du placerer koden i OnCreate eventen:
procedure TfrmMain.FormCreate(Sender: TObject); begin if not FileExists('aFile.Dll') then begin MessageDlg('Naaah', mtError, [mbOK], 0); PostQuitMessage(0); end; // if end;
Det er ment som at den skal tjekke om en anden fil existere og vis ikk afslutte (fordi uden den fil fucker den helt ud.. og man skal genstarte.. derfor.. bare for en sikkerheds skyld til brugerene!!)
procedure TfrmMain.btnFetchClick(Sender: TObject); var hWndCurWin, hWndDesk: HWnd; ThisHandle : TWindowClass; begin hWndDesk:= GetDesktopWindow; // This ist the parent of alle top-level windows if hWndDesk = 0 then exit;
hWndCurWin := GetWindow(hWndDesk,GW_CHILD);
lbWindows.Items.BeginUpdate; try lbWindows.Clear;
while (hWndCurWin <> 0) do begin ThisHandle := TWindowClass.Create(hWndCurWin); if ThisHandle.IsValid(self.Handle) then lbWindows.Items.AddObject(ThisHandle.Name,ThisHandle) else ThisHandle.Free; // Was a dud - erase again
// MSDN advise use of EnumChildWindows hWndCurWin := GetWindow(hWndCurWin,GW_HWNDNEXT); end; finally lbWindows.Items.EndUpdate; end; // try end;
Min TWindowClass set sådan herr ud - og den er ikke færdig (eller køn for den sags skyld):
const StLgd = 255;
type TWindowClass = class // Mangler at hente programmets ikon frem private fHandle : HWND; fName : string; public constructor Create(aHandle : HWND); destructor Destroy; override; procedure Draw(aCanvas : TCanvas; aRect : TRect); property Handle : HWND read fHandle; property Name : string read fName; function IsVisible : boolean; function HasParent : boolean; function IsToolWindow : boolean; function IsMe(aHandle : HWND) : boolean;
// Not a toolwindow nor is it me, it is visible, and has no parents. function IsValid(const aThisForm : HWND) : boolean; end;
implementation
constructor TWindowClass.Create(aHandle: HWND); var szWinText : pchar; begin inherited Create; fHandle := aHandle;
destructor TWindowClass.Destroy; begin try finally inherited; end; // try end;
procedure TWindowClass.Draw(aCanvas: TCanvas; aRect : TRect); begin aCanvas.TextRect(aRect,aRect.Left+32,aRect.Top+2,fName); end;
function TWindowClass.HasParent: boolean; begin result := (GetParent(fHandle) <> 0); end;
function TWindowClass.IsMe(aHandle: HWND): boolean; begin result := fHandle = aHandle; end;
function TWindowClass.IsToolWindow: boolean; begin result := ((GetWindowLong(fHandle, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) <> 0); end;
function TWindowClass.IsValid(const aThisForm : HWND) : boolean; begin result := not (HasParent or IsToolWindow or not IsVisible or IsMe(aThisForm)); end;
function TWindowClass.IsVisible: boolean; begin result := IsWindowVisible(fHandle); end;
Erstat lbWindows med en TStringList og du er klar til at lede efter programmet. Utrolig hvad du får for 0 points ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.