AGB  ·  Datenschutz  ·  Impressum  







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

Neuzeichnen von TStatusbar

Ein Thema von Neelix · begonnen am 2. Dez 2004 · letzter Beitrag vom 4. Dez 2004
Antwort Antwort
Seite 1 von 3  1 23      
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#1

Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:05
Hallo,

in einem Programm werden nacheinander mehrere Query's
Delphi-Quellcode:
      StatusBar1.SimpleText := 'Erstelle tmp_blabla_1';
      StatusBar1.Repaint;
      dmCopyVertrag.qu_CreateDropTable.SQL.Clear;
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('CREATE TEMP TABLE tmp_blabla1 (');
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('bla_1 CHAR(20) NOT NULL,');
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('bla_2 INTEGER NOT NULL)');
      dmCopyVertrag.qu_CreateDropTable.ExecSQL;
      dmCopyVertrag.qu_tmp_blabla_1.ExecSQL;

      StatusBar1.SimpleText := 'Erstelle tmp_blabla_11';
      StatusBar1.Repaint;
      dmCopyVertrag.qu_CreateDropTable.SQL.Clear;
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('CREATE TEMP TABLE tmp_blabla_11 (');
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('bla_11 INTEGER NOT NULL,');
      dmCopyVertrag.qu_CreateDropTable.SQL.Add('bla_12 CHAR(21) NOT NULL)');
      dmCopyVertrag.qu_CreateDropTable.ExecSQL;
      dmCopyVertrag.qu_tmp_blabla_11.ExecSQL;
Der text in der Statusbar ändert sich aber erst, wenn alle Querys abgearbeitet sind und dann sthet dort "Fertig". Es ist aber nicht im Sinne des Erfinders, wenn nur der erste und der letzte Text angezeigt werden. Eigentlich soll man sehen können, an welcher Stelle im Programm man sich gerade befindet.
System: Windows XP, P4 2,4 GHz
Unter NT und einem P3 800 MHz hat's aber schon funktioniert und sogar ohne das Repaint.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:06
Statusbar1.Refresh/Repaint; Sollte dein Problem lösen.

Oh hast du ja schon. Sind die Querys eventuell zu schnell?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#3

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:10
Die dauern eigentlich 'ne ganze Weile. Deswegen will ich das ja anzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:12
War nur eine Vermutung, da sie ja auf dem langsamen System angezeigt wurden. Mach doch mal ein Sleep(2000) nach dem Repaint der Statusbar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#5

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:14
Werde ich vor dem nächsten Programmstart mal einbauen. Zur Zeit arbeitet das Programm gerade wieder (ca. eine halbe Stunde)
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:21
Zitat von Neelix:
Die dauern eigentlich 'ne ganze Weile. Deswegen will ich das ja anzeigen.
Nur mal so ne Frage... was dauert denn beim Erstellen von 2 Tabellen mit je 2 Feldern "ne ganze Weile"?
  Mit Zitat antworten Zitat
Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:25
Hallo,

das Problem der mangelnden Aktualisierung hatte ich auch in einem ähnlichen Fall.

Bei mir konnte ich das Neuzeichnen durch den Aufruf von 'application.processmessages' (jeweils vor dem Ändern des Textes der Statusleiste) lösen.

Gruß,
Thimo
Thimo Echtermann
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#8

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:33
Das:
dmCopyVertrag.qu_tmp_blabla_11.ExecSQL; Dahinter verbirgt sich u.a. so etwas
SQL-Code:
INSERT INTO tmp_blabla_1
SELECT distinct b2.bla_2, b3.bla_3
FROM blabla_21 b2, tmp_blabal_31 b3
WHERE b2.bla_22 = b3.bla_32
AND b2.bla_23 = b3.bla_33
Und davon gibt es mehrere. Eingefügt werden 1000 und mehr Datensätze und selectiert wird über Tabellen mit mehreren Tausend Datensätzen.

Und um gleich der Frage vorzubeugen, warum ich nicht erst mal mit wenigen Datensätze teste: Ich nutze das Programm zur Zeit im "scharfen Betrieb" und versuche nur nebenbei die Anzeige in der Statuszeile wieder hinzubekommen.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:34
[quote="Igotcha"]
Zitat von Neelix:
Nur mal so ne Frage... was dauert denn beim Erstellen von 2 Tabellen mit je 2 Feldern "ne ganze Weile"?
Ich vermute, dass Neelix ein implizites Drop der Tabellen macht. Deutet der Bezeichner der Komponente zumindest an.
Aber dann ist der Server/die Datenbank grottenlangsam oder die Tabellen sind mehrere zig GB groß.
Peter
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#10

Re: Neuzeichnen von TStatusbar

  Alt 2. Dez 2004, 12:41
Zitat von Jasocul:
Aber dann ist der Server/die Datenbank grottenlangsam oder die Tabellen sind mehrere zig GB groß.
Letzteres. Und hinzu kommt, das tausende von Datensätzen (meherere voneinander abhängige Tabellen mit RI) von Datenbank A nach Datenbank B kopiert werden, wobei die Datenbanken (zumindest zur Zeit) auf zwei unterschiedlichen Maschinen liegen. Ich habe ja in meinem Beispiel nur einen kleinen Ausschnitt gezeigt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:33 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