AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Timer bei fsSTAYONTOP kommt nicht durch

Ein Thema von easywk · begonnen am 28. Jun 2006 · letzter Beitrag vom 28. Jun 2006
Antwort Antwort
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Timer bei fsSTAYONTOP kommt nicht durch

  Alt 28. Jun 2006, 13:43
So, in dieser Lösung übergebe ich dem Zusatzformular die Rechenroutine. Das Formular erzeugt einen Thread, führt in diesem Thread die Rechenroutine aus und zeigt ein "Lebenszeichen" an
Delphi-Quellcode:
type
  TMsgProcedure = procedure of object;

  TMsgThread = class(TThread)
    private
    protected
      Working : Boolean;
      procedure Execute; override;
    public
      ExecProc : TMsgProcedure;
    end;

  TFormWorkMessage = class(TForm)
    LabelMsgText: TLabel;
    Label1: TLabel;
    Image1: TImage;
    ImageList1: TImageList;
    Timer1: TTimer;
  private
    { Private-Deklarationen }
    ImgIndex : Integer;
    MyThread : TMsgThread;
  public
    { Public-Deklarationen }
    procedure ShowMessageAndExec(MsgText:String;ExecProc:TMsgProcedure);
  end;

var
  FormWorkMessage: TFormWorkMessage;

implementation

{$R *.dfm}

{ TFormWorkMessage }

procedure TMsgThread.Execute;
begin
  Working:=TRUE;
  Self.ExecProc;
  Working:=FALSE;
end;

procedure TFormWorkMessage.ShowMessageAndExec(MsgText: String;
  ExecProc:TMsgProcedure);
begin
  ImgIndex:=1;
  LabelMsgText.Caption:=MsgText;
  // Thread für die Rechenoperation initialisieren
  MyThread:=TMsgThread.Create(TRUE);
  MyThread.ExecProc:=ExecProc;
  MyThread.Resume;
  Self.Show;
  // "lebenszeichen" Anzeigen und warten bis der Thread fertig ist
  repeat
    ImageList1.GetBitmap(ImgIndex,Image1.Picture.Bitmap);
    if ImgIndex<ImageList1.Count-1 then
      Inc(ImgIndex)
    else ImgIndex:=0;
    Self.Repaint;
    Sleep(250);
  until not MyThread.Working;
  // ordnungsgemäß beenden
  MyThread.Terminate;
  MyThread.WaitFor;
  MyThread.Free;
  Self.Close;
end;
Meinungen?
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz