AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten löschen > Abstracter Fehler

Ein Thema von mimi · begonnen am 26. Aug 2006 · letzter Beitrag vom 28. Aug 2006
 
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: Komponenten löschen > Abstracter Fehler

  Alt 27. Aug 2006, 11:19
Gut, wenn ich Dir helfen konnte. Nur noch einige kurze Anmerkungen:

1. Zu Deiner Namensgebung für die Panels und IntToStr/StrToInt: Dein Vorgehen verstehe ich. Ich vermute aber, dass Delphi bei diesen Umwandlungen viel probieren muss (und StrToInt gerne zu Exceptions führt, wenn auch nicht in Deinem Fall). Deshalb würde ich eher int-Variablen als Zwischenspeicher verwenden als diese Konvertierungen.

2. ActiveControl := nil; gefällt mir nicht, denn das aktive Formular sollte auch ein ActiveControl haben. Aber wenn es klappt... Aber füge noch eine Zeile ein, damit Du sicher sein kannst, dass der Focus entfernt ist:
Delphi-Quellcode:
form1.ActiveControl:=niL;
Application.ProcessMessages;
3. Wozu hast Du in PanelFree die Variable MenuItem deklariert? Warum setzt Du die Variable test nicht auf das, was sie ist, nämlich TJvCaptionPanel - Du musst doch sowieso das cast vornehmen?!

4. Delphi-Referenz durchsuchenRemoveControl entfernt die Komponente nur aus der Liste test.Controls[i], macht also das Gleiche wie Parent := nil. Du musst diese Komponenten jeweils ebenfalls "free" machen!

5. Zur Erzeugung der Anzeige:
Zitat von mimi #3:
ScrollBox.Refresh; warum ? es klappt doch auch so...
Unnötige Verweise auf "ferne" Formulare sollten entfallen (es sei denn, ich habe das Zusammenspiel Deiner Formulare falsch verstanden). Es geht Dir vermutlich darum, dass die Anzeige erneuert wird, nachdem das Panel erzeugt wurde. Dazu ist (nur) das Control neu zu zeichnen, auf dem das Panel angelegt wurde, also ScrollBox; für diesen Vorgang ist Refresh vorgesehen, während Show die Eigenschaft Visible des betreffenden Formulars verändert. (Ich hoffe, dies erklärt meinen Vorschlag - wie gesagt, vorausgesetzt, dass er zu Deinen Intentionen passt.)

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
 


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 16:26 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