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