Einzelnen Beitrag anzeigen

Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: zur laufzeit erstelltes control wird nur teilweise zerst

  Alt 24. Mär 2004, 12:09
noch mal schieben

hier die erstellung des Panels mit allen Controls
Delphi-Quellcode:
procedure TfrmMain.geteilter1Click(Sender: TObject);

var
   p : TPanel;
   ed : TEdit;
   btt: Tbutton;
   MousePos: Tpoint;
   i:integer;
begin
    if XPMenu1.Active then
       XPMenu1.Active:= False;
      
     mousePos:=screentoClient(Mouse.CursorPos);
     p:= TPanel.Create(Stringgrid1);

      with p do
         begin
           parent:= frmmain;
           p.name:='max';
           height:=100;
           Width :=200;
           Top:= mousePos.x;
           left:= MousePos.y;
           Ctl3D:=false;
           popupmenu:=popupmenu1;
         end;
         btt:=TButton.Create(self);

               btt.Parent:= p.parent;
               btt.name:='britta';
               
               btt.Top := p.top + p.Height -30;
               btt.left:= p.Left +10;
               //btt.Kind:=bkOk;
               btt.Visible:=true;
               btt.onClick:=GeteilterDienstInsert;
         for i:=1 to 2 do
           begin
              ed:=TEdit.Create(self);
              ed.parent:=p;
              ed.name:= 'ed' + inttostr(i);
              ed.Height:= 20;
              ed.Width := 70;
              ed.text := '';
              with Tedit(FindComponent('ed'+ inttostr(i))) do
                 begin
                      case i of
                        1: begin
                             top := 10 ;
                             left := 10 ;
                           end;
                        2: begin
                             top := 12 * i+ height;
                             left := 10;
                           end;

                      end;
                 end;
           end;
           

          XPMenu1.Active:= true;
end;
nach der eingabe möchte ich dies wieder löschen und zwar so:
Delphi-Quellcode:
procedure Tfrmmain.GeteilterDienstInsert(Sender : TObject);
var
  hedit,hwd :THandle;
  sErsterDienst,
  sZweiterDienst : String;
  iCnt: integer;
begin
     for icnt :=1 to 2 do
       begin
         with TEdit(FindComponent('ed'+ Inttostr(iCnt))) do
                case iCnt of
                  1: sErsterDienst := text;
                  2: sZweiterDienst := text;
                end;
       end;
       Stringgrid1.Cells[stringgrid1.Col,stringgrid1.row]:=sErsterDienst
                                                           + #13#10 +
                                                           sZweiterDienst;
       hedit:= Findwindow(nil,'Kindergarten');
       hwd:=FindWindowEx(hedit,0,'TPanel','max');
       postmessage(hwd,WM_close,0,0);
       //Showmessage(inttostr(hedit));
end;

der bursche löscht alles, läßt mir aber den button frech auf der form stehen, weitere click's sind möglich.

wm_destroy habe ich auch schon probiert.

hat jemand wenigstens einen ansatz für mich.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat