Announcement

Collapse
No announcement yet.

Wie kann ich eine Procedure in eine DLL schreiben?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich eine Procedure in eine DLL schreiben?

    Wie kann ich z.B. diese Procedure in eine DLL
    schreiben? Es kommt immer die Fehlermeldung
    flatcheckbox6 nicht gefunden etc.

    Die Procedure soll im Hauptprogramm aufgerufen
    werden und etwas in die dll schreiebn

    procedure tform1.reg_scrollb_write;
    begin
    reg:=TRegistry.Create;
    reg.RootKey:=HKEY_USERS;
    reg.OpenKey('.DEFAULT\Software\css_style\Scrollb', true);

    if flatcheckbox6.checked then begin
    reg.WriteBool('Einstellungen',true);
    end
    else
    begin
    reg.writebool('Einstellungen',false);
    end;
    reg.WriteString('Grundfarbe',flatedit3.text);
    reg.WriteString('inaktive Reglerfarbe',flatedit4.text);
    reg.WriteString('aktive Reglerfarbe',flatedit5.text);
    reg.WriteString('Dunkler Schatten',flatedit6.text);
    reg.WriteString('Normaler Schatten',flatedit7.text);
    reg.WriteString('Pfeilfarbe',flatedit8.text);
    reg.CloseKey;
    end;

  • #2
    Hallo,<p>
    dass Du eine Fehlermeldung bekommst ist selbstverständlich. Die DLL und dein Programm sind zwei völlig Unterschiedliche "Programme". Ich glaube du vertauscht hier Units mit DLL. Eine DLL ist nichts anderes, als dass in ihr Programmcode ausgelagert wird. Schalterstellungen usw. musst du als Parameter der Prozedure mitübergeben. Hier ein kurzes Beispiel:<p>
    <b>DLL-Datei</b>
    <pre>
    procedure reg_scrollb_write(I: Integer);
    begin
    ...
    if I = 0 then ... //ersetzt durch if flatcheckbox6.checked
    ....
    end;
    </pre>
    <b>EXE-Datei</b>
    <pre>
    ...
    var
    I: Integer;
    begin
    if flatcheckbox6.checked then I := 0;
    reg_scrollb_write(I);
    end;
    </pre>
    Ich habe in diesem Beispiel angenommen, dass sich "flatcheckbox6" sich auf einem Formular in der EXE-Datei befindet. Die DLL kennt natürlich diese nicht. Du musst also alle Schalterstellungen im Programm auswerten und als z.B. Integerwerten an die DLL weitergeben. Ist das Formular in der DLL sieht die Sache natürlich etwas anders aus. Dann dürfte keine Fehlermeldung kommen

    Comment


    • #3
      Kann mir auch jemand sagen, wie ich die Dll in meinem Programm aufrufe

      Comment


      • #4
        Hi

        http://www.entwickler-forum.de\webx?50@@.ee6b943/2

        Gruß Hage

        Comment

        Working...
        X