![]() |
Prozedur aufrufen
Hallo zusammen,
Nachdem ich es nun dank eurer Hilfe geschafft habe, einen Timer auf einer anderen Form zu aktivieren, möchte ich nun gerne eine Prozedur (CopyFiles) auf einer anderen Form aufrufen. Ich habe es folgendermaßen versucht:
Delphi-Quellcode:
Das hat aber nicht so richtig geklappt :-(
Form1.CopyFiles;
Vielen Dank für eure Hilfe Michael |
Re: Prozedur aufrufen
Hat nicht geklappt. Sorry, aber ich hab meine Glaskugel vergessen. Gibt es eine Fehlermeldung? Wenn ja, welche?
|
Re: Prozedur aufrufen
Zitat:
|
Re: Prozedur aufrufen
Den Befehl gibt es nicht.
|
Re: Prozedur aufrufen
Hi,
ich gehe mal von aus, dass das so aussieht:
Delphi-Quellcode:
Wenn dann sollte das so aussehen:
implementation
procedure TForm1.Button1Click(Sender: TObject); begin Form1.CopyFiles; end; procedure CopyFiles; begin mach was... end;
Delphi-Quellcode:
[edit] :wall: Erst lesen, dann schreiben.
TForm1 = class
private procedure CopyFiles; end; ... ... ... implementation procedure TForm1.Button1Click(Sender: TObject); begin CopyFiles; end; procedure TForm1.CopyFiles; begin machwas end; Wenn du in Unit2 (Form2) die Procedure CopyFiles aus der Unit1 (Form1) aufrufen willst, muss du das so machen:
Delphi-Quellcode:
[/edit]
// Unit2
uses {blablabla}, Unit1; // Aufrufen Form1.CopyFiles; |
Re: Prozedur aufrufen
die unit in welcher sich der befehl befindet in "uses" der Unit einbinden wo du den Befehl aufrufen willst
|
Re: Prozedur aufrufen
Hi,
Nein, so sieht es nicht aus, weil in deinem Beispiel Versucht wird, von Form1 aus eine Prozedur auf der gleichen Form aufzurufen. Ich versuche aber, von Form2 aus auf die Prozedur auf Form1 zuzugreifen. Danke Michael |
Re: Prozedur aufrufen
Zitat:
Gruß Michael |
Re: Prozedur aufrufen
Zitat:
|
Re: Prozedur aufrufen
Hi,
Genau das habe ich bereits getan, aber er sagt weiterhin "Undefinierter bezeichner" :-( Gruß Michael |
Re: Prozedur aufrufen
hi,
du must die procedure noch eintragen (TForm1):
Delphi-Quellcode:
procedure CopyFiles;
|
Re: Prozedur aufrufen
Zitat:
|
Re: Prozedur aufrufen
Delphi-Quellcode:
procedure CopyFiles();
begin //Blabla end; |
Re: Prozedur aufrufen
Aha,
schau dir nochmal meinen ersten Post an. Da steht wie du das deklarieren musst. |
Re: Prozedur aufrufen
im private bereich deklariert??? dann kann das nicht gehen. du musst den public bereich nehmen!
|
Re: Prozedur aufrufen
Achso, sorry
Muss
Delphi-Quellcode:
vor alles, oder nur vor diese Prozedur?
TForm1 = class
private |
Re: Prozedur aufrufen
Delphi-Quellcode:
type
TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } // --> Hier muss die procedure rein <-- end; |
Re: Prozedur aufrufen
Unit 1:
Delphi-Quellcode:
TForm1 = class
private ... public procedure CopyFiles; end; ... procedure TForm1.CopyFiles; begin //machwas end; Unit2:
Delphi-Quellcode:
uses Unit1;
.... procedure TForm2.Button1Click(Sender: TObject); begin CopyFiles; end; |
Re: Prozedur aufrufen
Jetzt habe ich folgenden Fehler:
Zitat:
|
Re: Prozedur aufrufen
Delphi-Quellcode:
type
TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } procedure CopyFiles; end; ---------------------------- procedure TForm1.CopyFiles; //<-- begin // mach was end; |
Re: Prozedur aufrufen
das bedeutet dass du die Prozedur zwar im interface bereich angegeben hast,
aber die procedure nicht im implementation aufführst edit: Nils_13 hat dir das Beispiel mal erläutert... |
Re: Prozedur aufrufen
Hmm, genau das habe ich gemacht...
|
Re: Prozedur aufrufen
Kannst ja dein Programm zur Verfügung stellen ! Dann können wir dein Problem verstehen.
|
Re: Prozedur aufrufen
Ok.
Unit3: (Vorher Unit1 genannt)
Delphi-Quellcode:
Unit2:
//Habe ich entfernt
Delphi-Quellcode:
Hoffe, ihr kommt mit meiner Unordnung klar...
//Habe ich entfernt
|
Re: Prozedur aufrufen
Und? Wo liegt das Problem ? Es sollte alles laufen.
:shock: du hast ja überall TForm3 vergessen :shock: |
Re: Prozedur aufrufen
Tut es aber nicht :-(
|
Re: Prozedur aufrufen
Zitat:
|
Re: Prozedur aufrufen
Hmm, hilf mir mal auf die Sprünge, wo muss den da TForm3 hin?
|
Re: Prozedur aufrufen
mache mal folgendes:
klicke mit der rechten Maustaste auf die Prozedurnamen im Implememtationsteil der Unit 3. Dann öffnet sich ein PopupFenster. Dort klckst du den Punkt "Klasse beim Cursor vervollständigen" an. Und das für alle Proceduren. ann wird automatisch im interface teil die Deklaration der Methoden aufgenommen :wink: |
Re: Prozedur aufrufen
Hi,
du (hehemande) musst, wie Nils es schon in seinem Beispiel erklärt hat, überall so machen. Hier nochmal:
Delphi-Quellcode:
[edit] Delphi-Tags richtig gesetzt [/edit]type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } procedure CopyFiles; function GetTempDir: String; function GetWinDir: String; end; implementation function TForm1.GetTempDir: String; begin // mach was end; function TForm1.GetWinDir: String; begin // mach was end; procedure TForm1.CopyFiles; begin // mach was end; ... |
Re: Prozedur aufrufen
*hier stand Mistfug*
|
Re: Prozedur aufrufen
Moin!
Zitat:
MfG Muetze1 |
Re: Prozedur aufrufen
Hört das hier bald mal auf, wir haben doch schon alles gesagt, ob man jetzt Faul ist alles einzutippen oder nicht ist doch egal.
|
Re: Prozedur aufrufen
Zitat:
echt? Klappt bei mir nicht:
Delphi-Quellcode:
Rechte Maustaste und vervollständigen klappt nich.
...
implementation procedure TForm1.MachWas; begin // end; [edit] Ok, funktioniert doch. Nach nem Neustart von Delphi ging das auch. Wusste ich gar nicht. [/edit] |
Re: Prozedur aufrufen
Versuchs mal mit [Shift] + [Strg] + [C]
Damit sollte es auf alle Fälle gehen... mfG mirage228 |
Re: Prozedur aufrufen
Ich habe es jetzt hinbekommen, DANKE!!
Ps: Das hat nichts mit zu faul zu tun, bin halt ein bischen blöd :lol: |
Re: Prozedur aufrufen
nicht "blöd", sondern "aller anfang ist schwer" :wink:
ist doch schön wenn es jetzt klappt. |
Re: Prozedur aufrufen
:mrgreen: Dann stell mal später deinen Prog unter Freeware oder OpenSource zu Verfügung, handelt sich ja um ZIP.
|
Re: Prozedur aufrufen
Hi,
Das wird ein Teil von einem Installer, der FREEWARE wird :-D Gruß Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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