Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Prozeduraufrufe 'zwischenspeichern'?

  Alt 21. Mai 2007, 14:13
Also entweder du machst das über einen Thread (siehe Vorpost) oder du legst ein array of Boolean an:
Delphi-Quellcode:
// Zuerst definieren wir eine "Enumeration". Das ist sozusagen ein "Konstantenarray" nur etwas bequemer!
// In die Klammern kommen alle Einträge. z.B. "Kontakte herunterladen" oder "Bilder herunterladen" (mir viel nichts besseres ein)
type
  TJobs = (jLoadContacts, jLoadImages);

  // Nun schreiben wir im Formular ein Boolean array
  private
    restJobs : Cardinal; // <!--- Wie viele Jobs noch erledigt werden müssen
    jobsCompleted : array [TJobs] of Boolean; // <!--- erster Vorteil: Wir können damit ein array erstellen
 

procedure LoadContacts;
begin
  // Kontakte laden
end;

procedure LoadImages;
begin
  // Bilder laden
end;

procedure LoadFromSim;
begin
  restJobs := Length(jobsCompleted);
  while restJobs > 0 do // Solange es noh was zu erledigen gibt
  begin
    Application.ProcessMessages; // Damit die Anwendung net einfriert
    // nun überprüfen, ob Kontakte geladen werden können und ob sie überhaupt gelesen werden müssen
    if CanLoadContacts and (not jobsCompleted[jLoadContacts]) then
    begin
      LoadContacts;
      jobsCompleted[jLoadContacts] := true; // wenn der Job gelesen werden konnte als wahr einstufen
      dec(restJobs); // Und die anzahl der nicht abgearbeiten Jobs verringern
    end;
    // Und das mit allen anderen Jobs machen
  end;
end;
Ich hoffe mal, dass war deine Frage
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat