Autor Beitrag
rego
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Mo 29.08.05 14:05 
hallo nochmal,

wie verbinde ich units miteinander ? also, ich habe 2units, aus der 1. will ich befehle der 2. benutze zum beispiel:

unit2:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
  FUNCTION Translate_Reverse(Eintrag : String) : STRING;
  VAR
    Buch     : STRING;
    F        : Text;
    gefunden : Boolean;
    TempStr1 : String;
    TempStr2 : String;
    TempStr3 : String;

  BEGIN
    Buch := 'C:\ENTWICK\CONTICON\TOOLS\''TEXTE.' + Suffix(Sprache);
    assign(F, Buch);
    gefunden := False;
    IF Pos('  ',Eintrag) > 0 THEN BEGIN
      WHILE Pos('  ',Eintrag) > 0 DO BEGIN
        Delete(Eintrag,Pos('  ',Eintrag),1); { macht aus mehreren, ein Leerzeichen }
      END;
    END;
    IF Fileexists(Buch) THEN BEGIN
      reset (F);
      WHILE NOT EOF(F) DO BEGIN
        readln(F,TempStr1);    (* deutsch *)
        readln(F,TempStr2);    (* šbersetzung *)
        readln(F,TempStr3);    (* Leerzeile *)
        (* Hier wird von englisch nach deutsch bersetzt *)
        IF Trim(TempStr2) = Trim(Eintrag) THEN BEGIN
          gefunden := True;
          Translate_Reverse := TempStr1;
          Break;
        END;
      END;
    END ELSE BEGIN
      rewrite(F);
      TempStr1 := 'šbersetungsdatei '{ + SpracheToTxt(Sprache)};
      writeln(F,TempStr1);
      writeln(F,'');
      writeln(F,'');
    END;
    IF gefunden THEN BEGIN
      close(F);
    END ELSE BEGIN
      append(F);
      writeln(F,Eintrag);
      writeln(F,Eintrag);
      writeln(F,'');
      close(F);
      Translate_Reverse := Eintrag;
      Inc(Anzahl_nicht_gefunden);
    END;
  END;


unit1:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.btn_Start_DBClick(Sender: TObject);
begin
Translate_Reverse; {ist nur zum testen ob er von DB750VW.pas den befehl akzeptiert, was er aber nicht tut (ungültiger Bezeichner Translate_Reverse)}
end;



also ich habe bei uses der 1. unit DB750VW adiert, aber es funktioniert nicht, er nimmt die funktionen aus der DB750VW unit nicht an.

rego
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Mo 29.08.05 14:09 
Ist die Funktion, die du aufrufst, in der eingebundenen Unit auch im Interface-Bereich deklariert?

_________________
Bravery calls my name in the sound of the wind in the night...
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 29.08.05 14:10 
Îst der Befehl denn im Interface-Teil der Unit aufgeführt?

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mo 29.08.05 14:13 
also die unit muss unter uses eingetragen werden und außerdem muss die funktion oder procedure die du in der anderen unit aufrufen willst im interface bereich deklariert werden dann sollte es gehn

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700