AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Probleme mit Frames und deren Aktualisierung in Formularen
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Frames und deren Aktualisierung in Formularen

Ein Thema von Alex_ITA01 · begonnen am 23. Nov 2004 · letzter Beitrag vom 10. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Probleme mit Frames und deren Aktualisierung in Formularen

  Alt 23. Nov 2004, 12:39
Moin Moin,
ich habe folgendes Problem:
Ich habe eine ganze normale Form mit eine paar TabSheets. Je nachdem, welcher TabSheet betätigt wurde, soll ein anderes Frame auf ein Panel gezeigt werden.
Soweit so gut...
Wenn ich jetzt angenommen in dem Frame den Name von einer GroupBox ändere und das Formular, wo das Frame eingebettet ist nicht offen habe im Designer, und ich compiliere das Projekt, dann geht das auch aber wehe ich starte das Projekt....
Jede Menge Exceptions weil er in dem Formular wo das Frame eingebettet ist, noch den Name der "alten" GroupBox hat. Gibt es eine Möglichkeit wie man alles aktualisieren kann, was auf dieses Frame zugreift?
Ich hoffe ihr versteht was ich meine und könnt mir helfen...?!

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 10. Jun 2006, 23:23
*staubwegwisch* *hust*
Ich habe ein ähnliches Problem: ich hab ein TFrame welches zur Laufzeit erzeugt wird (können auch mehrere sein, soll so ähnlich werden wie das Download-Fenster von Firefox) mit einer Progressbar drauf, die sich aber nicht bewegt. Wenn ich das ganze direkt auf das Formular mache, läufts aber. Application.ProcessMessages hab ich schon probiert, geht aber auch nicht.

Zitat von Alex_ITA01:
Ich hoffe ihr versteht was ich meine und könnt mir helfen...?!
Ich auch
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 11. Jun 2006, 19:07
Also, so sieht mein Code für die Erstellung des Frames aus:

Delphi-Quellcode:
...
  inc(FrameID);
  DateiFrame := TFDatei.Create(PDateien);
  DateiFrame.Parent := PDateien;
  DateiFrame.LName.Caption := FileName;
  if DateiGroesse < 1048576 then DateiFrame.LGroesse.Caption := RealToStr(DateiGroesse/1024) + ' KB';
  if DateiGroesse > 1048576 then DateiFrame.LGroesse.Caption := RealToStr(DateiGroesse/1024/1024) + ' MB';
  if DateiGroesse > 1073741824 then DateiFrame.LGroesse.Caption := RealToStr(DateiGroesse/1024/1024/1024) + ' GB';
  DateiFrame.Name := 'Frame' + IntToStr(FrameID);
  FrameNr := FrameID;
  if FListe.Count <> 0 then DateiFrame.Top := (FListe.Count) * 65;
  FListe.Add(DateiFrame);
  DateiFrame.Show;
  PDateien.Repaint;
  DateiFrame.FStream := TFileStream.Create(target, fmCreate);
  DateiFrame.TDatei.Enabled := true; //TDatei ist der Timer der für die Progressbar zuständig ist
  Application.ProcessMessages;
  try
    IDS := TidStreamVCL.Create(DateiFrame.FStream);
    try
      with AContext.connection do
      begin
        try
          SizeOfIncomingStream := Socket.ReadInteger;
          Socket.ReadStream(IDS, SizeOfIncomingStream);
        finally
          Disconnect;
        end;
      end;
      IDS.VCLStream.Position := 0;
    finally
      FreeAndNil(IDS);
    end;
  finally
    for i := 0 to FListe.Count - 1 do
    begin
      DateiFrame := FListe[i];
      if DateiFrame.Name = 'Frame' + IntToStr(FrameNr) then
      begin
        FreeAndNil(DateiFrame.FStream);
        DateiFrame.TDatei.Enabled := false;
        DateiFrame.Free;
        Fliste.Delete(i);
      end;
    end;
    ...
So funktioniert es aber nicht.

Wenn ich aber statt
Delphi-Quellcode:
DateiFrame := TFDatei.Create(PDateien);
  DateiFrame.Parent := PDateien;
DateiFrame := TFDatei1; schreibe und den Frame schon zur Designzeit aufs Formular ziehe, dann gehts.
Die Datei wird auch ordnungsgemäß gespeichert und alles, nur bei der Progressbar tut sich nix.
Wo liegt denn hier der Fehler? Ich hoffe ihr könnt mir helfen, langsam weis ich nicht mehr weiter.
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 15. Jun 2006, 22:40
***push***

MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 15. Jun 2006, 22:56
Hallo Sko,

wieso muss das unbedingt mit einem Frame realisiert werden? Nimm doch einfach eine Form und erzeuge sie dir dynamisch. Das sollte doch völlig ausreichend sein. Frames sind doch nur interessant, wenn du sehr viele Komponenten und logische Bereiche auf einer Form hast, dann kannst du das weiter aufteilen. Hier macht ein Frame doch nicht wirklich sinn - oder doch?

Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 15. Jun 2006, 23:39
Hi Thorsten,

Das ganze soll so ähnlich werden wie das Download-Fenster vom Firefox (siehe Anhang), daher der Plan mit den Frames.
Miniaturansicht angehängter Grafiken
firefox_dl_103.jpg  
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#7

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 16. Jun 2006, 16:29
Hallo!

Delphi-Quellcode:
SizeOfIncomingStream := Socket.ReadInteger;
Socket.ReadStream(IDS, SizeOfIncomingStream);
Da es sich hier nicht um einen asynchronen Befehl handelt, wird doch gewartet, bis der komplette Stream eingelesen wurde. In dieser Zeit ist der VCL-Hauptthread natürlich blockiert, es werden keine Botschaften oder sonstiges verarbeitet. Da hilft dir auch ein irgendwie gearteter Timer nicht, denn der wartet auch darauf, daß der VCL-Hauptthread wieder auftaucht von der Prozedur...

Du musst dafür sorgen, daß der Download in separaten Threads erfolgt. Im Delphiforum habe ich da ein paar TCP-Komponenten gepostet, die dir asynchrones Lesen erlauben und dir synchronisierte Ereignisse wie OnRead und OnProgress liefern, kannst sie dir ja mal anschauen. Stichwort SimpleTCP.

Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 16. Jun 2006, 17:56
Hmm, wenn ichs ohne Frames und so mache (wie zur Zeit noch) dann hab ich damit kein Problem, die Progressbar läuft und der Rest vom Programm geht auch. Erzeugt der Indy-TCP-Server nicht automatisch nen Thread wenn er was zu tun bekommt
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 25. Jun 2006, 18:40

Hat nich wer ne Idee?
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 25. Jun 2006, 19:40
Hallo,

kennst du schon die Komponente TIdAntiFreeze?

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz