Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: schumi - Agosto 03, 2015, 12:44:14 pm
-
qualcuno ha provato con successo a creare applicazioni MDI? soprattutto con la possibilità di minimizzare le form figlie in basso.
da una prova veloce con ver 1.4.2 sembra che la main form copra le figlie?????
-
Non ho mai affrontato l'argomento. Sarebbe bello se ci riesci se ci spieghi come hai fatto. Così produciamo materiale in merito
-
leggendo qua e la in forum delphi sono riuscito utilizzando CreateParented al posto di Create della form child.
nel mondo "Lazarus" non trovo riscontri ??? ???
-
Shumi, in lazarus l'MDI non è supportato.
Per scelta, non per mancanza.
Scegli una strada alternativa all'MDI. :D
Stilgar
-
non sono io che non voglio le strade alternative... sono certi clienti ;)
comunque l'MDI è in lavorazione e funzionicchia anche se non completamente cross platform
http://forum.lazarus.freepascal.org/index.php/topic,26112.msg159777.html?PHPSESSID=a2fcfd11fa6a551a199bd5b07e098804#msg159777
verifica su roadmap
-
Prova a vedere se così può anddare bene
-
Ho provato anche io a compilare l'esempio, ma non mi permette di spostare o ridimensionare la form child all'interno della form main. Suggerimenti?
-
ho provato impostando formstyle a fsMDIform e fsMDIChild, poi a creare la form figlia sia con
fmChild := TfrmChild.CreateParented(frmMain.Handle);
fmChild.show;
che
fmChild := TfrmChild.Create(self);
fmChild.Parent := frmMain;
fmChild.show;
e in tutti i casi non vedo sostanziali variazioni, uniche accortezze nella form figlia :
procedure TfrmChild.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
CloseAction := CaFree;
end;
procedure TfrmChild.FormResize(Sender: TObject);
begin
application.ProcessMessages ;
end;
sembra funzionare bene (provato solo su windows)
Provando però in un progetto complesso già esistente quando abbassi la form da un errore TWinControl.WMSize loop detected.
appena avrò un po' di tempo farò qualche altra prova.
-
:( Con Windows fa tutto come dovrebbe....
D'altra parte era solo un esempio.
Il "trucco" si basa su questa riga :
Sotto linux non so se possa dare problemi.
Stilgar
-
secondo roadmap solo interfaccia QT è ultimata e funzionante:
An MDI LCL emulator for widgetsets which does not support MDI, also native implementation of MDI for qt and win32/64. Currently only qt has full MDI support, others are in progress.
-
Ho fatto un po di ricerche e ho trovato questo
http://wiki.lazarus.freepascal.org/MultiDoc
E' una simulazione del MDI ma che è cross platform.
Ho fatto anche un piccolo esempio che allego.
-
Ragazzi qualcuno ha provato la mia versione? Vi funziona bene? Avete approfondito l'argomento?
-
non ancora, sono giorni di fuoco prima delle ferie :'(
avevo trovato anch'io multidoc ma sembrava un progetto fermo da anni e quindi ero un po' indeciso.
appena riesco faccio 2 prove e considerazioni.
ciao