Einzelnen Beitrag anzeigen

hypercoder

Registriert seit: 11. Aug 2006
4 Beiträge
 
#3

Re: label.caption & button.enabled werden nicht refreshe

  Alt 24. Sep 2006, 11:13
Ok ich versuche es.... weniger abstract .... mit ein wenig code....

Die Application besteht aus 1 Mainform und 7 zusätzlichen Formularen. Nur die Mainform wird automtisch erzeugt. Alle anderen -> verfügbare Formulare.

Diese Mainform mit der Funktion eines Spalsh-Screens hat einen Timer. Der Timer wird gestartet - ein WAV File asynchron dazu abgespielt. Nach Ablauf des Timers wird Mainform versteckt und abhängig vom Eintrag in einer INi-Datei eines von 2 Formularen (1x Editor und 1x Hauptprogramm) erzeugt und anschl. eine Start-Procedure aufgerufen.

Delphi-Quellcode:
procedure TMainForm.TimerOffTimer(Sender: TObject);
begin
  TimerOff.Enabled := false;


  if flag = 0 then
  begin
    EditorForm := TEditorForm.Create(self);
    Application.ProcessMessages;
    EditorForm.{procedure};
  end
    else
  begin
    HauptProgrammForm := THauptProgrammForm.Create(self);
    Application.ProcessMessages;
    HauptProgrammForm.{procedure};
  end;
Im Editor selbst wird per Button ein weiteres Formular (Zweck:Suchfunktion) erzeugt:

Delphi-Quellcode:
  if SuchForm = nil then { -> wenn es also noch nicht erzeugt wurde}
    begin
      SuchForm := TSuchForm.Create(Application);
      Application.ProcessMessages;
    end
      else
    begin
      SuchForm.Visible := true;
      SuchForm.BringtoFront;
    end;
Auf dieser Form befinden sich u.a. Progressbars, Labels und Buttons - welche sich nicht während der runtime verändern lassen (visuell: d.h. caption wird einem label anders zugewiesen aber nicht auf dem Bildschirm aktualisiert. Übliche Maßnahmen .update .repaint application.processmessages alles schon durch und zu keinem einwandfrei funktionierendem ergebnis gekommen.

Wenn ich allerdings nun im quelltext an einer entsprechenden Stelle einen Breakpoint setze und der Debugger dort reinläuft - ich dann mittels F9 weiter mache - wird alles von nun an sauber refreshed d.h. die Application läuft sauber -> Zeichen Quelltext eigentlich OK??????

Für mich sieht es so aus, als ob duch diese lange Zwangspause meine Form-Objekte überhaupt erst richtig initialisert werden.... also funktionsfähig.... und ich dadurch im weiteren Porgrammverlauf dadurch keinerlei mehr Probleme habe.

Fehlt diese Zwangspause kommt es zu Fehlfunktionen - keine Abstürze oder so , sondern 'nur' das Nicht-Bedienen von bestimmten visuellen Objekten.

Ich schreibe gewöhnlich nur kleinere Programme. Da habe ich keinerlei Schwierigkeiten.

Sobald eine Application etwas größer wird - ist diese Problematik zu beaobachten. Es scheint also daran zu liegen, daß ich irgendwie einen Denkfehler ständig bei steigender Komplexibilität einbringe.

Ich habe stets mit vielen Formularen zu kämpfen gehabt - auch wenn dort nicht viel passierte. Also wenig Runtime Processzeit - mehr Konstruktzeit - wenn ich das mal so sagen darf - verteht mich denn überhaupt jemand

Ich hoffe das nun alles ein wenig verständlicher ist.

Würde mich auf weitere Antworten freuen

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat