AGB  ·  Datenschutz  ·  Impressum  







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

Nochmal DLL Programmierung

Ein Thema von Alex_ITA01 · begonnen am 30. Sep 2003 · letzter Beitrag vom 1. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:04
Ich habe irgendwie immernoch das Problem von einer DLL auf die Komponenten der MainApplication
zuzugreifen. Kann mir nicht jemand mal ein kurzen Code geben der das zeigt.Muss nix weiter sein sondern nur wie ich darauf zugreif.
danke alex
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:15
Wie weit bist Du denn in der Richtung schon? Hast Du schon irgendwelchen Demo-Source, der einfach nur nicht ganz tut oder bist Du noch bei Null?
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:19
ich habe eine dll programmiert,(nur leider kann ich auf die komponenten nicht zugreifen)
und eingebunden ist sie auch schon in der mainapplication und aufgerufen auch, muss nur denn dll quelltext ändern (denk ich)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:29
Wie wäre es, wen ndu uns endlich mal den Code deiner DLL zeigst? Oder wie stellst du dir vor, dass wir dir jetzt helfen sollen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:31
Naja, die Problematik ist recht tiefgreifend. Ohne Packages ist TForm aus der Anwendung nicht gleich TForm aus der DLL und damit geht das Problem los. Schaue Dir erst mal die hier gezeigten Links an:

http://www.delphipraxis.net/internal...ect.php?t=4335

Da wird die Problematik angesprochen. Vielleicht kann ich morgen mal ein Beispiel zusammenzimmern...
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:34
sorry bitte schön


uses
SysUtils,
Classes;

{$R *.res}

procedure DLLSetButton;
begin
Form1.Button1.Caption := 'Wurde aus DLL geladen';
end;

exports
DLLSetButton;

begin
end.



und im Hauptprog:


const
dllname = 'Test.dll';


procedure DLLSetButton stdcall; external dllname;
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:39
Wie willst Du denn so an Form1 rankommen. Die DLL ist praktisch eine eigentständige Anwendung.

Hast Du Dir die Links schon durchgelesen?
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#8

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:41
bin grad dabei sie mir durchzulesen
danke alex
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Nochmal DLL Programmierung

  Alt 30. Sep 2003, 10:42
Und das: http://www.delphipraxis.net/internal...ect.php?t=6407
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Nochmal DLL Programmierung

  Alt 1. Okt 2003, 08:39
So, anbei nun ein kleines Beispiel für Delphi 6. Vom Prinzip her ist es ganz einfach:

Neues Projekt erstellen (Project1) mit einem Formular:
Delphi-Quellcode:
object Form1: TForm1
  Left = 192
  Top = 107
  Width = 274
  Height = 113
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Shell Dlg 2'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Edit1: TEdit
    Left = 16
    Top = 16
    Width = 241
    Height = 21
    TabOrder = 0
    Text = 'Edit1'
  end
  object Button1: TButton
    Left = 184
    Top = 48
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 1
  end
  object Button2: TButton
    Left = 16
    Top = 48
    Width = 100
    Height = 25
    Caption = 'DLL ausf'#252'hren'
    TabOrder = 2
    OnClick = Button2Click
  end
end
Der Quellcode ist einfach:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
  private
  public
  end;

procedure DLLTest; external 'Project2.dllname 'Test';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
  // Aufruf der DLL
  DLLTest;
end;

end.
Wichtig! In den Projektoptionen das Package VCL und RTL einbinden, sonst KANN es nicht gehen.

Dann weiteres neues Projekt als DLL-Project (Project2) im gleichen Verzeichnis erstellen.

Als Quellcode für reicht:
Delphi-Quellcode:
library Project2;

uses
  SysUtils,
  Classes,
  Forms,
  StdCtrls;

{$R *.res}


procedure Test;
begin
  TEdit(Screen.Forms[0].FindComponent('Edit1')).Text := 'Test aus DLL';
  TButton(Screen.Forms[0].FindComponent('Button1')).Caption := 'geändert';
end;

exports
  Test;

begin

end.
Auch hier unbedingt in den Projektoptionen die Packages VCL und RTL einbinden. Dann ist es gar kein Problem.

Aber! Ich persönlich halte von dem Projekt gar nix, ich habe nur die technischen Möglichkeiten gezeigt. Der Zugriff einer DLL auf die Hauptanwendung macht meiner Meinung nach keinen Sinn. In eine DLL sollten nur in sich geschlossene Funktionen ausgelagert werden, sonst ist die Quellcode-Pflege einefach schwierig.
Angehängte Dateien
Dateityp: zip dllzugriff.zip (3,6 KB, 7x aufgerufen)
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz