Newsgroup: it.comp.lang.delphi
Titolo: Creazione form & memo a runtime

Ciao,
Vorrei creare a run-time una form contenente in Tmemo da e aprirla in modo
"modale.
Allora:
procedure TForm1.Button1Click(Sender: TObject);
var
NewForm:TForm;
NewMemo:TMemo;
begin
  NewForm:=TForm.Create(self);
  with NewForm do begin
    Parent:=self;
    Left := 256;
    Top := 40;
    Width := 369;
    Height := 369;
//  Lines.Strings['1'];
   TabOrder := 1;
   Name:='FORM33';
   Visible:=true;
  end;
  NewMemo:=TMemo.Create(self);
  with Newmemo do begin
    Parent:=NewForm;
    Left := 0;
    Top := 33 ;
    Width := 250;
    Height := 250;
    Align := alClient;
    Font.Charset := DEFAULT_CHARSET;
    Font.Color := clWindowText;
    Font.Height := -13;
    Font.Name := 'Verdana';
    Font.Style := [];
    Lines.Add('AAAAAA');   // per prova
    ParentFont := False;
    ScrollBars := ssVertical;
    TabOrder := 2;
    WantTabs := True;
   end;
end;
Problema: la forma viene aperta, il memo c'č, la prima linea č uguale a
'AAAAAA' ma il memo non si puo' editare, č come se fosse readonly.
Ho provato a aggiungere nel codice readOnly:=true, ma nulla cambia .
??
Grazie
Guido

Alla fine della creazione del Memo metti :
SetFocus ;
Ciao
Mario (
mari...@inwind.it
)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Allora:
<CUT>
Attenzione: il codice che hai postato e' davvero mal scritto
e puo' crearti diversi problemi.
I farei cosi' (leggi i commenti per maggiori info):
procedure TForm1.Button1Click(Sender: TObject);
var
  MyForm: TForm;
  NewMemo : TMemo;
begin
  // crei la form
  Application.CreateForm(TForm, MyForm);
  // usi un costrutto try .. finally
  // cosi' non rischi memory leak
  try
    // imposti i valori
    with MyForm do
    begin
      Left := 256;
      Top := 40;
      Width := 369;
      Height := 369;
      TabOrder := 1;
      Name := 'FORM33';
      NewMemo := TMemo.Create(self);
      with Newmemo do begin
        Parent := Myform;
        // non ha senso impostare le dimensioni ...
        Left := 0;
        Top := 33;
        Width := 250;
        Height := 250;
        //  ... se poi imposti l'allineamento alClient
        Align := alClient;
        Font.Charset := DEFAULT_CHARSET;
        Font.Color := clWindowText;
        Font.Height := -13;
        Font.Name := 'Verdana';
        Font.Style := [];
        Lines.Add('AAAAAA'); // per prova
        ParentFont := False;
        ScrollBars := ssVertical;
        TabOrder := 2;
        WantTabs := True;
      end;
    end;
    // visualizzi la form
    MyForm.ShowModal;
  finally
    // finito di usarla, liberi la memoria
    MyForm.Free;
  end; // try ..finally
end;
E' codice scritto alla svelta e non testato al 100x100, comunque
l'idea generale e' questa.
Ciao.
ACSH
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:cokflu$pju$1...@news.newsland.it...


 Guido
Non era un rimprovero, ma solo una considerazione,
forse un po' troppo diretta. Gia' che ci sono,
esagero: occhio al quoting!


 ha scritto nel messaggio
news:ohhrd.60421$Es2.1...@twister2.libero.it...
