-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
3. Mai 2007
Hallo,
habe geschaft ein Testprog zu machen. Es kommt darauf an, wann man den Parent an das Frame zuweisst. Macht man es in meinem Testprog hinter dem Execute funktioniert es.
Vielleicht hilft das jemand, das Problem zu erkennen.
Es wird das ElTree für das Kompilieren benötigt.
Wäre gut, wenn jemand Rat weiss.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
27. Apr 2007
Die Funktion die den Fehler verursacht habe ich gefunden:
Diese wird aber nicht beim Zerstören des Objekts aufgerufen, sondern beim Berechnen der Spaltenbreite
DrawText(Canvas.Handle, PChar(S), Length(S), R, DT_NOPREFIX or AL or DT_CALCRECT);
Der Fehler tritt nämlich nur dann auf, wenn die Größe der Spalten berechnet werden muss.
Die Funktion wird insgesamt 3 mal aufgerufen, pro Spalte...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
27. Apr 2007
Danke erstmal für die Antwort.
zu 1,2,3,4: hab ich alles kontrolliert, läuft alles korrekt
zu 5: ??? dass heisst?
zu 6: ja, ich bekomme ja schon den fehler, wenn ich über einen button ein .free aufrufe.
zu 7: ja
Mittlerweile habe ich ein Testframe gemacht, auf dem nur ein Eltree liegt und ein Button zum zerstören.
Folgende erkenntnis habe ich:
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
... ach so ein scheiss... ich verzweifele gleich ... wieso ich immer?
ok, hab gerade ein argument für die richtige fährte gefunden. wenn ich in dem frame einen button mache, der eltree.free aufruft, knallt das prog auch raus ...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
AHA....
den Grund, wann ein Frame abschmiert habe ich jetzt.
Immer dann wenn ein LMD-ElTree auf der Maske ist und diese Liste ein Objekt hinzugefügt bekommen hat (Items.Add).
Auch ein Items.Clear hilft dann nicht mehr. Dann kracht es, beim Free.
Beim Simulieren in einem kleinen Demo-Programm passiert dieses aber nicht.
Was kann das sein?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Also ich habe ein paar neue Erkenntnisse, die mich nicht wirklich weiterbringen.
Es sind insgesamt 7 verschiedene Frames. Wenn ich bei diesen 7 Frames den Parent nicht setze funktioniert das Programm fehlerfrei, ausser dass ich das Frame halt nicht sehe.
Bei 3 dieser Frames kann ich den Parent setzen und mit dem neuen FreeAndNil funktioniert auch das freigeben super.
4 der Frames, die...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Hehe, das wäre meine nächste Frage gewesen, da hab ich nämlich sowas. aber so lange der rest nicht geht hatte ich die frage nach hinten gestellt.
Gibts dafür auch ne möglichkeit? Ich müsste auch die Variable freigeben aus dem Hauptprogramm.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Ich habe gerade noch eine Interessante Erkenntnis erlangt.
Egal welches ich als erstes Frame freigebe. Das erste meldet keinen Fehler.
Egal welches ich als zweites, drittes, usw freigebe, ab da kommen die Fehler!
Dann habe ich mal probiert einfach zur Laufzeit während des normalen Programmlaufs ein Frame zu zerstören, geht auch fehlerfrei. Das zweite -> absturtz.
Interessant wird das...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Ich hab es gerade mal im Quelltext direkt in die fFunktion die das Fenster schließt gemacht. Jetzt kommt zwar kein Fehler mehr vom SetFocus, aber das Ergebnis ist immer noch gleich.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Hallo, dann kommt die Meldung "Ein deaktiviertes oder unsichtbares Objekt kann keinen Focus erhalten!"
Hab auch mal auf die Form oder ähnliches versucht, geht leider nicht.
Mit dem nicht auf nil setzen verstehe ich nicht. Ich habe doch "aFrame := nil;" gemacht. Warum geht das nicht so?
Danke schonmal für den Tipp...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Fframe_wf_messages := Tframe_wf_messages.Create(self, vTab);
Fframe_wf_messages.Parent := vTab;
Fframe_wf_messages.Align := alClient;
Fframe_wf_messages.Execute(KDRProg1);
Wobei ich den Constructor folgendermaßen geändert habe
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by backdraft,
26. Apr 2007
Hilfe, ich verzweifel langsam,
ich habe in meinem Programm ein PageControl an der Seite, welches Frames aufnimmt. Diese Frames lege ich zur Laufzeit an,
mit dem Formular als Owner. Auf dem Frames ist eigentlich immer eine ElTree Komponente oder ein ListView.
Zum Freigeben der Frames rufe ich folgende Funktion auf:
procedure iFreeFrame(aFrame: TFrame);
var vName: string;
begin