Einzelnen Beitrag anzeigen

waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#1

Werte in dynamisch erzeugtem Form ändern

  Alt 5. Jul 2009, 17:19
Hallo,
ich habe mich erstmals mit zur Laufzeit dynamisch erzeugten Forms beschäftigt. Ziel ist es,, ähnlich wie in Outlook zu arbeiten

Ich habe mit einem Inplace auf einem Panel
http://www.delphipraxis.net/internal...myforminplaced
erste Erfolge erzielt.
Nun möchte ich, z.B. bei einem Download Informationen im Panel ändern, was mit einer Zugriffsverletzung endet.
Ich habe versucht hier im Forum eine für mich als "Anfänger" erklärbare Lösung zu finden, bin aber gescheitert.
Wenn ich die Unit, welche ich über das Inplacing eingebunden habe autark laufen lasse, also zur Laufzeit erzeugt wird, funktioniert alles, so wie ich es gerne hätte.

Wie muss ich meinen Code anpassen damit die Labels auch in dem zur Laufzeit erzeugten Form geändert werden können.

Für eine verständliche Unterstützung wäre ich dankbar.

Delphi-Quellcode:
TDBUpdate = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    ProgressBar1: TProgressBar;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
end;
procedure MyUploadCallback(lpszLocal, lpszRemote: string; dwBytesTotal, dwBytesDone: DWORD; Elapsed: Single);


implementation

{$R *.dfm}


procedure MyUploadCallback(lpszLocal, lpszRemote: string; dwBytesTotal, dwBytesDone: DWORD; Elapsed: Single);
begin
 with DBUpdate do
  begin
    Label1.Caption := 'Filename: ' + lpszLocal;
    Label2.Caption := 'Remotename: ' + lpszRemote;
    Label3.Caption := 'Done: ' + Format('%2.n KB/%2.n KB', [dwBytesDone / 1024, dwBytesTotal / 1024]);
    Label4.Caption := 'Percent: ' + IntToStr(Integer(Round((dwBytesDone * 100) / dwBytesTotal))) + '%';
    ProgressBar1.Max := 100;
    ProgressBar1.Position := Integer(Round((dwBytesDone * 100) / dwBytesTotal));
    Refresh;
 end;
end;
[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat