Announcement

Collapse
No announcement yet.

Entfernen von Objekten zur Lauzeit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Entfernen von Objekten zur Lauzeit

    Moin!<BR>
    Ich will bei einem Formular zur Laufzeit Objekte hinzufügen und entfernen:<BR>
    +----------------------<BR>
    I Text 1: [blabla1]<BR>
    I Text 2: [blabla2]<BR>
    I Text 3: []<BR>
    I<BR>
    +----------------------<BR>
    Also, sobald ich 'Text 3' fülle, soll eine neues Objekt erscheinen ('Text 4'). Klappt.<BR>
    Wenn ich den Inhalt von 'Text 2' lösche, soll das Objekt 'Text 3' verschwienden. Klappt unter Bedingungen!<BR>
    Das Entfernen habe ich im onExit gemacht. Wenn ich also 'Text 2' leere, und in 'Text 1' Clicke, dann geht das. Wenn ich mit 'Shift+TAB' 'rausgehe, geht das. Wenn ich aber nur mit 'TAB' rausgehe, bzw. auf 'Text 3' klicke, dann schmiert das Programm mit einer Zugriffsverletztung im Kernal ab.<BR>
    Der scheint es nicht zu mögen, wenn ich dem das nächste aktive Element unter dem Hintern wegziehe.<BR>
    Ich habe schon folgendes probiert:<BR>
    ...; application.prozessmessages; TText(Objekt).free;...<BR>
    Text1.setfocus;<BR>
    TText(Objekt).parent:=NIL;<BR>
    TText(Objekt).Ereignisse:=NIL;<BR>
    <BR>
    Was kann ich machen???<BR>
    <BR>
    MFG,cu,LLAP Ralph Erdt

  • #2
    Hm!<br>
    Probier doch mal das ActiveControl des Forms zu setzen/ändern bevor Du dem System das aktive Element wegziehst.<br>

    ActiveControl = text1; (oder etwas ungefährliches)<br>
    text2.free;<br>
    BYE BERND<br&gt

    Comment


    • #3
      Moin!<BR>
      Habe ich auch probiert. Klappt leider auch nicht. Was solls. Ändern wir einfach die Spielregeln ....<BR>
      Ich habe das so aufgegeben. Statt dessen mache ich einen Extra-BTN hin, mit dem man löschen kann. Ist zwar nicht das optimum, aber wenn es nicht anders geht... <BR>
      MFG,cu,LLAP Ralph Erd

      Comment


      • #4
        Hi

        probier im onExit jedes TEdit

        <pre>

        procedure TForm1.EditExit(Sender: TObject);
        begin
        if MustDeleteOneEdit then
        begin
        Windows.SetFocus(TEdit(Sender).Handle);
        DeletedEditControl.Free;
        Self.SelectNext();
        end;
        end;

        </pre>

        Gruß Hage

        Comment

        Working...
        X