Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zugriff auf Prozedur anderer Unit (https://www.delphipraxis.net/79823-zugriff-auf-prozedur-anderer-unit.html)

tankm26 29. Okt 2006 10:28


Zugriff auf Prozedur anderer Unit
 
Moin!

Den ZUgrifdf aus meiner 1.Unit, skat1, auf eine procedure der 2.unit, xmod, bekome ich nicht hin. Woran kann das liegen?

Danke im Voraus,

Wieland
Delphi-Quellcode:
unit skat1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ScktComp, StdCtrls, Grids, ExtCtrls, ImgList,
  ActnList, ComCtrls, jpeg, Buttons, xmod;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    btnormals: TButton;
    btnachkrbub: TButton;
    btgeben: TButton;
    btende: TButton;
    btsort2: TButton;
    btsort3: TButton;
    btmischen: TButton;
    lsort2: TLabel;
    lsort3: TLabel;
    lsort1: TLabel;
    Label1: TLabel;
    btmemory: TButton;
    btrestore: TButton;
    btsort4: TButton;
    lsort4: TLabel;
    lbox: TListBox;
    ledi1: TLabeledEdit;
    btneumax: TBitBtn;
    lmax: TLabel;
    Image1: TImage;
    trbr: TTrackBar;
    lmodi: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure btnormalsClick(Sender: TObject);
    procedure btnachkrbubClick(Sender: TObject);
    procedure btendeClick(Sender: TObject);
    procedure btgebenClick(Sender: TObject);
    procedure btsort2Click(Sender: TObject);
    procedure btsort3Click(Sender: TObject);
    procedure btmischenClick(Sender: TObject);
    procedure btmemoryClick(Sender: TObject);
    procedure btrestoreClick(Sender: TObject);
    procedure btsort4Click(Sender: TObject);
    procedure btneumaxClick(Sender: TObject);
    procedure trbrChange(Sender: TObject);
  private
    procedure zeitmessung(w,s:integer);
    procedure wimageload;
    procedure wsortiere1vert(s,w:integer);
    procedure wsortiere2einf;
    procedure wsortiere3ausw;
    procedure wsortiere4adrian;
    procedure wmischen;
    procedure wgeben;
    procedure change;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  karten:array[1..33] of TBitmap;
  kartenfeld,memory1:array[1..32] of Integer;
  nummern:array[1..33]of Integer;
  nix,von,bis,max,ws:integer;
  c,n1,n2,q:int64;
implementation
{$R *.dfm}

.
.
.


procedure TForm1.change;
var i:integer;
begin

.
.
.

   // xmod.TForm2.   HIER IST MEIN PROBLEM
  end;
end;
end.


Unit 2 (xmod):


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ScktComp, StdCtrls, Grids, ExtCtrls, ImgList,
  ActnList, ComCtrls, jpeg, Buttons;
 
type
  TForm2 = class(TForm)
  procedure wxgeben;
  end;

  var
  zahlenfeld, memory2: array of Integer;

implementation
uses skat1;

procedure tform2.wxgeben;
var i:Integer;
begin
 for i:=1 to 30 do
  form1.lbox.Items.Add(IntToStr(i));
end;

end.

DocE 29. Okt 2006 10:32

Re: Zugriff auf Prozedur anderer Unit
 
Der Aufruf muss in der Form:

Delphi-Quellcode:
Form2.wxgeben;
erfolgen.


Grüsse
...Doc

mkinzler 29. Okt 2006 10:33

Re: Zugriff auf Prozedur anderer Unit
 
Zeig mal dei 2. Unit.

DocE 29. Okt 2006 10:39

Re: Zugriff auf Prozedur anderer Unit
 
Die steht doch oben mit drin :wink:

mkinzler 29. Okt 2006 10:44

Re: Zugriff auf Prozedur anderer Unit
 
Zitat:

Zitat von DocE
Die steht doch oben mit drin :wink:

hab ich übersehen, da sie an die erste Unit angehängt war.

tankm26 29. Okt 2006 10:46

Re: Zugriff auf Prozedur anderer Unit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der Aufruf "Form2.wxgeben;" funktioniert leider nicht.


Ich habe das Programm mal angehängt.

DocE 29. Okt 2006 10:51

Re: Zugriff auf Prozedur anderer Unit
 
Das Problem ist, dass es sich gar nicht um ein "normales" Formular handelt, sondern um eine Unit, in der Du ein TForm2 typisierst, dieses allerdings nie erzeugst.

Benötigst Du ein zweites Formular oder nur eine weitere Unit (zur besseren Übersichtlichkeit)?

Dann muss/sollte das ganze ein bißchen anders aussehen...


Grüsse
...Doc

tankm26 29. Okt 2006 10:54

Re: Zugriff auf Prozedur anderer Unit
 
nur ne neue unit

DocE 29. Okt 2006 10:57

Re: Zugriff auf Prozedur anderer Unit
 
Dann probiers mal so:

Delphi-Quellcode:
unit xmod;

interface

uses
  Windows, SysUtils;

  procedure wxgeben;


var
  zahlenfeld, memory2: array of Integer;

implementation

uses skat1;


procedure wxgeben;
var i: Integer;
begin

  for i:=1 to 30 do
    form1.lbox.Items.Add(IntToStr(i));

end;

end.
Aufruf aus Form1 heraus durch

Delphi-Quellcode:
wxgeben; // oder auch: xmod.wxgeben; (beides möglich)
Edit: Natürlich die Unit in Form1 einbinden...


Grüsse
...Doc

tankm26 29. Okt 2006 11:00

Re: Zugriff auf Prozedur anderer Unit
 
funzt, danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Seite 1 von 2  1 2      

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