AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei Erstellung eigener Unit

Ein Thema von bigmama2k · begonnen am 8. Mär 2007 · letzter Beitrag vom 10. Mär 2007
 
bigmama2k

Registriert seit: 5. Mär 2007
5 Beiträge
 
#1

Problem bei Erstellung eigener Unit

  Alt 8. Mär 2007, 20:01
Hi @ all,

bin neu hier deswegen erstmal ein herzliches hallo Smile

Ich habe ein Problem beim erstellen einer eigenen Unit (Delphi 10 bzw. 2006)

Da es viele proceduren und funktion gibt die ich häufig benötige, habe ich mir gedacht ich bastle mir meine eigene Unit.
Diese kann ich dann einfach in meine zukünftigen Projekte einbinden etc...

Dazu habe ich folgende Ordnerstruktur:

C:\eklassen\delphi\units
C:\eklassen\delphi\VerwaltungsProjekt

Unter "Verwaltungsprojekt" habe ich eine VLC-Anwendung erstellt unter der ich meine selbst erstellen Units verwalten/testen möchte.
in c:\eklassen\delphi\units erstell ich mit diesem Projekt die Units.

Den Ordner Units habe ich auch unter Optionen zum Suchpfad für Units eingetragen.

Nun habe ich mal eine Unit erstellt, deren pas Datei liegt im Ordner "units":

Delphi-Quellcode:
unit akcode;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry;

type
  TAkCode = class
    function ReadRegStr(Rootkey:Cardinal; Subkey:String; Entry:String):String;
    function ReadRegInt(Rootkey:Cardinal; Subkey:String; Entry:String):Integer;
    function WriteRegValue(Rootkey:Cardinal; Subkey:String; Entry:String; What:String):boolean; overload;
    function WriteRegValue(Rootkey:Cardinal; Subkey:String; Entry:String; What:Integer):boolean; overload;
    function GetUVersion:String;
    private
    public
  end;

type
  TAkTaskMgr=class
    function LockTaskMgr:boolean;
    function UnlockTaskMgr:boolean;
    function IsLocked:boolean;
    private
    public
  end;

var
  pAkCode:TAkCode;
  pAkTaskMgr:TAkTaskMgr;

implementation

  function TAKCode.GetUVersion;
  begin
    Result :='1.1';
  end;

  function TAkCode.ReadRegStr(Rootkey: Cardinal; Subkey: string; Entry: string):String;
  var
    Reg:TRegistry;
  begin
    Result:='';
    Reg:=nil;
    try
      Reg:=TRegistry.Create;
      Reg.RootKey:=Rootkey;
      if Reg.OpenKey(Subkey,true) then
        Result:=Reg.ReadString(Entry)
      else
        Result:='ERROR';
    finally
      Reg.Free;
    end;
  end;

  function TAkCode.ReadRegInt(Rootkey: Cardinal; Subkey: string; Entry: string):Integer;
  var
    Reg:TRegistry;
  begin
    Result:=-1;
    Reg:=nil;
    try
      Reg:=TRegistry.Create;
      Reg.RootKey:=Rootkey;
      if Reg.OpenKey(Subkey,true) then
        Result:=Reg.ReadInteger(Entry)
      else
        Result:=-1;
    finally
      Reg.Free;
    end;
  end;

  function TAkCode.WriteRegValue(Rootkey: Cardinal; Subkey: string; Entry: string; What: string):boolean;
  var
    Reg:TRegistry;
  begin
    Result:=false;
    Reg:=nil;
    try
      Reg:=TRegistry.Create;
      Reg.RootKey:=Rootkey;
      if Reg.OpenKey(SubKey,true) then
      begin
        Reg.WriteString(Entry,What);
        Result:=true
      end;
    finally
      Reg.Free;
    end;
  end;

  function TAkCode.WriteRegValue(Rootkey: Cardinal; Subkey: string; Entry: string; What: Integer):boolean;
  var
    Reg:TRegistry;
  begin
    Result:=false;
    Reg:=nil;
    try
      Reg:=TRegistry.Create;
      Reg.RootKey:=Rootkey;
      if Reg.OpenKey(SubKey,true) then
      begin
        Reg.WriteInteger(Entry,What);
        Result:=true
      end;
    finally
      Reg.Free;
    end;
  end;

  function TAkTaskMgr.LockTaskMgr;
  begin
    Result := pAKCode.WriteRegValue(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Policies\System','DisableTaskMgr',1);
  end;

  function TAkTaskMgr.UnlockTaskMgr;
  begin
    Result := pAKCode.WriteRegValue(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Policies\System','DisableTaskMgr',0);
  end;

  function TAkTaskMgr.IsLocked;
  var
    x:Integer;
  begin
    x:= pAkCode.ReadRegInt(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Policies\System','DisableTaskMgr');
    if x=1 then
      Result:=true
    else
      Result:=false;
  end;

end.

Diese Unit bzw. das Projekt "Verwaltungsprojekt" habe ich compiliert und alles läuft.

Nun erstelle ich ein neues Projekt und binde die Unit AkCode ein.
Dies funktioniert auch, d.h. er findet die pas datei.

Wenn ich nun aber hergehe und in meinem neuen Projekt z.B. folgenden Aufruf mache:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
    if pAkTaskMgr.IsLocked then
      pAkTaskMgr.UnLockTaskMgr
    else
      pAkTaskMgr.LockTaskMgr;
end;
Dann kann ich das Projekt zwar compilieren und es läuft auch alles wie es soll, er zeigt mir aber dennoch im Struktur Bildschirm unter Fehler an, dass sowohl die Variablen pAkTaskMgr etc. als auch die FUnktionen Nicht deklarierte Bezeichner seien und unterstreicht auch alles rot.

Blickt er nicht dass die Sachen in der Unit sind?
Wie kann ich ihm das weis machen?

Bitte helft mir Undecided

Es läuft zwar alles ist aber trozdem nervig wenn alles rot ist und anscheinend voller Fehler.


Danke mal im Vorab

bigmama
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz