Autor Beitrag
schlaufi
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 10.02.05 15:09 
Ich versuche gerade eine DLL zu erstellen, das geht auch soweit.

Die Funktionen in der DLL gehen auch Problemlos, aber Label und die Texte in Edit-Feldern werden auf dem Formular in der DLL micht angezeigt.

Hat einer eine ahnung warum :?:
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 10.02.05 15:25 
rück mal code raus
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 10.02.05 15:27 
Kann mich retnyg nur anschliessen, aber mal ein Tip ins Blaue hinein: Wandlest du denn von PChar zurück in String?
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 10.02.05 15:46 
genau mit strings sollte man nicht arbeiten wenn man dlls benutzt, das kann ins aucge gehen :shock:
schlaufi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 10.02.05 16:39 
Ich packe in meiner DLL Dateien und mochte die auf eimen Formular ausgeben, wenn die Dateinamen in die Captian eines Buttons schreibe geht es. Es werden aber Labels nicht angezeigt die fest auf dem Formular sind.


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:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
function Packen_start(PF_VD_AZ_Quelle:String;PF_VD_Ziel:PChar):Boolean;
  const
    TZ_VD = '|';
  var
    PF_VZ_Ziel      : String;
    PF_VD_Quelle    : String;
    PF_VD_AR_Quelle : array of String;
    PF_AR_Zaehler   : Integer;
begin
  FO_Packen := TFO_Packen.Create(Application);
  Result         := True;
  FO_Packen.Left := 80;
  FO_Packen.Top  := 80;
  PF_AR_Zaehler  := 0;
  SetLength(PF_VD_AR_Quelle,PF_AR_Zaehler);
  PF_VD_AZ_Quelle := PF_VD_AZ_Quelle;
  if Length(PF_VD_AZ_Quelle) = 0 then
    begin
      Result := False;
    end;
  if Result = true then
    begin
      PF_VZ_Ziel := ExtractFileDir(PF_VD_Ziel);
      Result := DirectoryExists(PF_VZ_Ziel);
      if Result = False then
        begin
          Result := ForceDirectories(PF_VZ_Ziel);
        end;
    end;
  if Result = true then
    begin
      while Pos(TZ_VD,PF_VD_AZ_Quelle) > 1 do
        begin
          PF_VD_Quelle    := Copy(PF_VD_AZ_Quelle,0                          ,Pos(TZ_VD,PF_VD_AZ_Quelle)-1);
          PF_VD_AZ_Quelle := Copy(PF_VD_AZ_Quelle,Pos(TZ_VD,PF_VD_AZ_Quelle)+1,Length(PF_VD_AZ_Quelle)    );
          if PF_VD_Quelle <> '' then
            begin
              Inc(PF_AR_Zaehler);
              SetLength(PF_VD_AR_Quelle,PF_AR_Zaehler);
              PF_VD_AR_Quelle[PF_AR_Zaehler-1] := PF_VD_Quelle;
            end;
        end;
      if PF_AR_Zaehler > 0 then
        begin
          FO_Packen.PB_Gesamt.Position := 0;
          FO_Packen.PB_Gesamt.Max      := Length(PF_VD_AR_Quelle);
          FO_Packen.ZF_Packen.FileName := PF_VD_Ziel;
          FO_Packen.Show;
          FO_Packen.SetFocus;
          FO_Packen.ZF_Packen.OpenArchive(fmCreate);
          for PF_AR_Zaehler := 1 to Length(PF_VD_AR_Quelle) do
            begin
              FO_Packen.PB_Datei.Position  := 0;
              FO_Packen.PB_Datei.Max       := 100;
              FO_Packen.LA_Gesamt.Caption  := ExtractFileName(PF_VD_AR_Quelle[PF_AR_Zaehler-1]);
              FO_Packen.PB_Gesamt.Position := PF_AR_Zaehler-1;
              FO_Packen.ZF_Packen.AddFiles(PF_VD_AR_Quelle[PF_AR_Zaehler-1]);
            end;
          FO_Packen.ZF_Packen.CloseArchive;
        end;
    end;
  FO_Packen.Close;
end;

procedure TFO_Packen.ZF_PackenFileProgress(Sender: TObject; FileName: String; Progress: Double; Operation: TZFProcessOperation; ProgressPhase: TZFProgressPhase; var Cancel: Boolean);
begin
  FO_Packen.PB_Datei.Position := Round(Progress);
end;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
schlaufi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 11.02.05 09:47 
Habe meinen fehler gefungen, muß mit showmodal und Refrech arbeiten