AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi ProgressBar bei Verbinden durchlaufen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

ProgressBar bei Verbinden durchlaufen lassen

Ein Thema von wfs12 · begonnen am 13. Jul 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#1

ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 15:31
Guten Tag ich benutze eine JvspecialProgress Bar um während des Vebindens zu einem Mysql Server anzuzeigen, dass momentan gearbeitet wird. Um die Bar durchlaufen zu lassen benutze ich diesen Code:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if startbar=true then begin
    if JvSpecialprogress1.Position=JvSpecialprogress1.Maximum then JvSpecialprogress1.Position:=0 else
      JvspecialProgress1.StepIt;
  end else JvSpecialprogress1.Position:=0;
end;
Die Startvariable wird am anfang des Verbindens auf true gesetzt:
Delphi-Quellcode:
procedure TForm1.connectbtnClick(Sender: TObject);
begin
  startbar:=true;
  if connectbtn.Caption='Verbindenthen
    startconnection(db,host,benutzer,pass)
  else begin
    mysql_close(_myCon);
    MessageDlg('Die Verbindung wurde erfolgreich getrennt',mtinformation,[mbOK],0);
    connectbtn.Caption:='Verbinden';
  end;
  startbar:=false;
end;
Wenn ich jetzt auf den Button klicke wird die ProgressBar aber erst gestartet, nachdem der MessageDlg angezeigt wurde, und wird nach dessen Schließen auch gleich wieder beendet. Liegt das an dem Timer? Oder wie kann man das anders lösen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 15:42
während dein Programm verbindet willst du gleichzeitig animiert etwas anzeigen? Arbeitest aber nur mit einem Thread?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#3

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 15:52
also das sollte sowas wie ne warteanzeige sein: auf der form läuft die Progressbar durch und das Programm verbindet mich. Ist das nicht einfach so möglich ohne einen weiteren Thread zu öffnen? Aber während er verbindet ist doch nicht alles andere blockiert oder?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 16:04
Hi,

das geht so nicht! Ich denke mal, dass die Verbindungs-Methoden blockierend sind. Diese solltest du dann in einen eigenen Thread auslagern. Ein Ereignis nach erfolgter Verbindung aus dem Thread heraus kann dann deine Anzeige löschen.

Gruß oki
42
  Mit Zitat antworten Zitat
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#5

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 17:20
und wie lagert man einen thread aus?
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#6

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 17:30
Das ist ein etwas komplexeres Thema was ohne konkrete Fragestellungen wohl den Rahmen hier sprengen würde.
Ich würde dir empfehlen ersteinmal ein Tutorial zu lesen, z.B. das hier (erster Google Treffer für "delphi threads"). Extrem kompliziert ist die Sache nicht, aber es gibt einige Probleme die auftreten könnten, und das Tutorial wird dir diese nahebringen (so wie ich das in der Kapitelübersicht erkennen kann).
Also ich sprach hier nur für mich, aber wenn du eine genauere Fragestellung hast, bin ich eher bereit, Sachen zu erklären

Edit: Das Tutorial ist vielleicht doch nicht so passend. Man lernt zwar mehr als in anderen, aber mit den API-Funktionen zu Threads musst du dich eigentlich nicht herumschlagen. Such lieber nochmal selber, die Klasse heißt eben TThread (ist ein Kapitel im Tutorial da), eine wichtige Methode wäre vielleicht noch Synchronize()...
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#7

Re: ProgressBar bei Verbinden durchlaufen lassen

  Alt 13. Jul 2007, 18:31
vielen dank erstmal ich glaube wenn das so aufwendig ist lass ich das erstmal lieber sollte ja nur darstellen, das man warten soll ich schreib das jetzt in ein label oder eine statusleiste oder sowas.
  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 09:13 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