Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mein Programm hat nach dem start ein kleines Grafikproblem (https://www.delphipraxis.net/2094-mein-programm-hat-nach-dem-start-ein-kleines-grafikproblem.html)

Daniel B 6. Jan 2003 19:28


Mein Programm hat nach dem start ein kleines Grafikproblem
 
Hallöchen,

wenn ich mein Programm starte, dann ist das PageControl mit Loks aktiv, siehe Bild1.
Gehe ich nun auf ein anderes PageControl, dann sind die Header der ListViews komplett grau. Siehe Bild2. Gehe ich aber wieder auf Loks und dann wieder auf Funktionen, so sieht der Header wieder normal aus. Ist auch bei den anderen so. Aber es passiert nur beim starten und sobald ich mal alle durchgeklickt habe, so stimmt es dann bei allen. Beim nächsten Start ist das Problem wieder da.
Ich habe dies auch auf normalen PCs ausprobiert, das gleiche Problem.
Hat jemand ne Idee was das sein könnte?
ReFresh oder RePaint bringt nichts!

Grüsse, Daniel :hi:

Christian Seehase 6. Jan 2003 19:48

Moin Daniel B,

werden die Komponenten dynamisch erzeugt?

Daniel B 6. Jan 2003 19:52

Hallo Christian,

nein, nichts wird dynamisch gemacht.

Grüsse, Daniel :hi:

jbg 6. Jan 2003 19:57

Hast du irgendwo den Items.EndUpdate zu Items.BeginUpdate vergessen? Oder blockierst du das Redraw der Komponente (WM_SETREDRAW)?

Daniel B 6. Jan 2003 20:03

Hallo jbg,

nein, hab auch kein Begin- und EndUpdate... Ich mach auch nichts am ReDraw... Jedenfalls nicht bewusst ;)

Grüsse, Daniel :hi:

Daniel B 7. Jan 2003 21:10

Hallöle,

keiner noch ne Idee? Ich möchte es so nicht hergeben. Sieht ja wirklich blöd aus.
Habe es mal angehängt, ein paar "wichtige" sachen sind allerdings gesperrt. :)
Vielleicht liegt es doch an bestimmen HW-Konfigurationen.
Achja, in der Ini die angelegt wird, bei [Fensterdaten], Fensterposition nicht auf 0 setzen, sonst gibt es eine kleine Message beim nächsten Start. :oops: //Die aber sehr Lustig ist :mrgreen:

Grüsse, Daniel :hi:

Christian Seehase 7. Jan 2003 21:38

Moin Daniel,

Deine besagte Meldung kommt ja automatisch, da die 0 automatisch beim Programmstart eingetragen wird :mrgreen:

Den genannten Effekt hab' ich hier übrigens auch W2K SP2

Nur wo das herkommt kann ich mir im Moment nicht erklären.

Daniel B 7. Jan 2003 21:53

Hallo Christian,

Zitat:

Zitat von Christian Seehase
Deine besagte Meldung kommt ja automatisch, da die 0 automatisch beim Programmstart eingetragen wird :mrgreen:

stimmt ja, :oops: ich schreib ja beim anlegen der INI erstmal überall 0. Somit kommt es ja. Aber Lustig ist die trotzdem, "Cannot change Visible in OnShow or OnHide", Du kannst Dir nicht vorstellen, wie ich mich vor lachen das erste mal nicht mehr eingekriegt habe... ;)

Immerhin kommt es auch bei Dir, dann kann man immerhin sagen das es am Programm liegt und nicht an verschiedenen Systemen, das ist mir lieber so.

Grüsse, Daniel :hi:

phlux 8. Jan 2003 08:24

Moin, hast du schon mal ausprobiert einfach das ListView zu löschen und ein neues auf die Form zu packen :?: Manchmal hilft das
Edit: Kann man die Kompos nicht beim ersten zeigen dazu zwingen sich neu zu zeichnen
Hast du das HintWindow auch überschrieben, das sieht bei mir so komisch ganzgrau aus :|

Daniel B 8. Jan 2003 11:59

Mahlzeit,

Zitat:

Zitat von phlux
Moin, hast du schon mal ausprobiert einfach das ListView zu löschen und ein neues auf die Form zu packen :?:

Nein...
Zitat:

Hast du das HintWindow auch überschrieben, das sieht bei mir so komisch ganzgrau aus :|
Ja... Und die Zeiten. Kommen sofort und halten 10 Sekunden...

Grüsse, Daniel :hi:

Daniel B 9. Jan 2003 18:10

Hallöchen,

ich habe heute nochmal ein bisschen damit rumgespielt.
1. Habe ich die LV von Funktionen gelöscht und das von Loks dahin kopiert, sodas es die gleiche Einstellungen hat.
- Leider nichts gebracht
2. Ich habe auf dem dritten PC die L gelöscht und einfach eine neue eingefügt. Nur vsReport, GridLines und Header eingeschaltet.
- Genauso schlimm

Eigentlich ist alles noch schlimmer geworden. Den, vorher kammen die nach dem zweiten Switchen auf das jeweilige PC, die Header wieder. Die ist jetzt gar nicht mehr der Fall. Egal ob bei der Kopierten, oder bei der neu eingefügten. Die LV auf dem vierten PC hat immernoch das verhalten, das nach dem zweiten Umschalten die Header gehen.

Weiterhin ist mir noch etwas aufgefallen. Siehe Anahng. Dies ist eine der neue LV. Die ganzen eingefügten Einträge sind ja gar nicht sichtbar. Nicht nur die Header.
Langsam mach ich mir ernthafte Sorgen... :?

Grüsse, Daniel :hi:

Daniel B 14. Jan 2003 19:38

Zitat:

Zitat von Daniel B
Weiterhin ist mir noch etwas aufgefallen. Siehe Anahng. Dies ist eine der neue LV. Die ganzen eingefügten Einträge sind ja gar nicht sichtbar. Nicht nur die Header.
Langsam mach ich mir ernthafte Sorgen... :?

Das problemchen am schluss das gar nichts mehr sichtbar ist, lag daran, das ich noch keine Columns hinzugefügt hatte.
Also, wieder nur das Problem wie von anfang an.
Und zwar egal ob ich die LV aus Loks kopiere und bei Funktionen einfüge, oder bei Weichenstarassen ein komplett neue hinsetze.
Nach dem zweiten anzeigen des TSheets, ist es weg und die Header wieder normal sichtbar.

Grüsse, Daniel :hi:

Daniel B 14. Jan 2003 19:49

:bounce2: :bounce2: :bounce2:
Ich habs!
Ich hab mir mal gedacht, schaust Dir mal genauer an, was Du in der ShowProz. überhaupt machst.
Am anfang rufe ich folgende Prozuder auf:
Delphi-Quellcode:
procedure TMainFormMC2004.LVFktFuellen;
//ListView KK Funktionen mit Daten aus dem Loks-Record füllen
var
  i: integer;
begin
  ListViewKKFkt.Clear;
  for i := 0 to MC2004.MenueInit.FktAnzahl -1 do
  begin
    ListViewKKFkt.Items.Add;
    with ListViewKKFkt.Items.Item[ListViewKKFkt.Items.Count -1] do
    begin
      Caption := IntToStr(MC2004.MenueInit.FktStamm[i].FktID);
      SubItems.Add(MC2004.MenueInit.FktStamm[i].FktName);
      SubItems.Add(IntToStr(MC2004.MenueInit.FktStamm[i].FktAdresse));
      SubItems.Add(IntToStr(i));
    end;
  end;
  Check;
end;
Ich füge den Inhalt des Arrays in die LV ein.
Hab mal die Proz. ausgeklammert und der Fehler ist weg. :bounce1:
Ach, ich bin so glücklich. :mrgreen:

Die frage ist nun, wie umgehe ich das?
Ich brauch ja die Prozeduren da drin. Irgendwo verständlich da noch nichts im Array drin ist. Wenn ich vorher was in den Arrays lade und dann die TS umschalte ist das Problem nicht. Da auch Inhalt in den Arrays drin ist.
Hmm...
*grübel*

Grüsse, Daniel :hi:

phlux 14. Jan 2003 19:57

Bringt da BeginUpdate und EndUpdate vllt irgendwas :?:

Daniel B 14. Jan 2003 20:21

Hi phlux,

nein, leider nicht.
Auch kein ReFresh, oder RePaint, oder LV.Canvas.ReFresh.
Alles nichts.

Grüsse, Daniel :hi:

Daniel B 15. Jan 2003 17:12

Hallöchen,

ich habe den Fehler gefunden und behoben. Jetzt geht alles so wie es sollte.
Das Problem: LV.Clear;
Die Lösung: LV.Items.Clear;

*anshirnklatsch* :mrgreen:

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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