Formu Panelde gosterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Formu Panelde gosterme

Mesaj gönderen veliadiguzel »

S.A.

Turetilmis formları ana formun (Turetilmemis) icindeki bir panel de gostermek istiyorum asagideki ornekler denedim ama formu panele cıkarıyorum ama kontroller calısmıyo.

Kod: Tümünü seç

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   Panel1: TPanel;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   MyForm : TForm;
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 MyForm := TForm.Create(Panel1);
 with MyForm do
 begin
   Name   := 'MyForm';
   Parent := Panel1;
   Width  := 100;
   Height := 100;
   Top    := 10;
   Left   := 10;
   Show;
 end;
end;

end.
bide bunu buldum ama hata verdi

http://www.delphipages.com/threads/thre ... 89&G=37440

bundada kontroller calısmadi

http://www.lazarus.freepascal.org/manti ... =806&nbn=1

Bir Fikri olan varmı.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Senin de denediğin gibi forum'un parentini TPanel'e verdiğinde içinde görebiliyorsun.

- Kontrollerin çalışmaması doğal. Çünkü TForm özelliğini bir TControl olarak da dönüştürmüş oluyorsun. Bu da ne demek..

- Form başlığı anlamında caption başlığın olamayacak sen çizeceksin. Borderstyle özelliğini bsNone yapıp başlığı kaldırabilirsin.
- Form başlık butonları anlamında system butonların da olmayacak sen buton koyup kontrol edeceksin.
- MainMenun de olamayacak, onun erine ToolBar menu kullanacaksın.
- Form'un OnCreate özelliği olamayacak çünkü parentin OnCreate'ine bağlandı. Onun yerine parenti olan TPanel'i dahası TPanel'in parenti olan Form'un onCreate'ini kullanacaksın. Yani formun bir panelden öte gidemeyecek. Bunu yapmak isteme sebebini söylersen başka çözümler üretebiliriz. Mesela MDI form veya Frame kullanman gibi.
Resim
Resim ....Resim
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

S.A.


Aslında yapmak istedigim bir nevi MDI uygulama ama ben genel ozellik olarak programlarımda sol tarafta bir agac yapısı menu icin, sagda page control ve sayfa sayfa diger program kısımları olarak kullanırım bana gore daha derli toplu oluyor. MDI formda boyut olaylarını pek beceremedigim den boyle bir şey yapayım dedim ama olmadı :(
frame olayını ise hic denemedim ve nası bisi oldugunuda bilmem acıkcası.

yapmak istedigim ise dedigim gibi solda menu bar (outlook bar, tree view vs.) sagda ise artık nası olursa benim formlarım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Tamam o zaman sorun yok. İstediğiniz sonucu MDIForm ile alabilirsiniz.

- MDIForm'a bir tane sola yanaşık (Alignment : alLeft) bir TPanel koyun. MDIChild formlarınız geriye kalan kısmı kullanırlar.

- TPanel üzerinde Tree yapısını yerletirebilirsiniz.
Resim
Resim ....Resim
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

S.A.

Kodbank da buldum ve biraz degistime ile olay halloldu kod asagıda

Kod: Tümünü seç

procedure FormuPaneldeGoster(var Reference;
                                          InstanceClass: TComponentClass;
                                          PAnaForm:TForm;
                                          PPnl:TPanel;
                                          PStatusBar:TStatusBar);Overload;
var
  Instance: TComponent;
//  Form:TForm;
begin
  If Pointer(Reference) = Nil Then
    Begin
    Instance := TComponent(InstanceClass.NewInstance);
    TComponent(Reference) := Instance;
      Try
      Instance.Create(PAnaForm);
      Except
      TComponent(Reference) := nil;
      Raise;
      End;
    End;

//  If EnSonGosterilenForm <> Nil Then
//     EnSonGosterilenForm.Close;

  TForm(Reference).Parent := PPnl;
 // EnSonGosterilenForm:= TForm(Reference);
  PStatusBar.Panels[0].Text:= 'Gösterilen Pencere: ' + TForm(Reference).Caption;
  TForm(Reference).BorderStyle := bsNone;
  TForm(Reference).Position    := poDefault;
  TForm(Reference).Top  := 0;
  TForm(Reference).Left := 0;
  TForm(Reference).ClientWidth := PPnl.Width;
  TForm(Reference).ClientHeight:= PPnl.Height;
  TForm(Reference).Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FormuPaneldeGoster(Form2,TForm2,Self,Panel1,Statusbar1);

end;
belki birinin daha ihtiyacı olur.

A.E.O.
Kullanıcı avatarı
spiderman
Üye
Mesajlar: 70
Kayıt: 02 Ara 2005 03:17

Mesaj gönderen spiderman »

Bu arada Panel yerine

xMusteriForm:=TMusteriForm.Create(Self);
xMusteriForm.Parent:=Memo1;
xMusteriForm.Show;

derseniz MusteriFormunu Memo1'in icinde cikar ve edit kisimlari enable olur.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

Aslında bu kod benimde çok işime yaradı, Allâh razı olsun hepinizden.


.
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

Amin cümlemizden.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Basitçe Frame kullanın.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

coderlord yazdı:Basitçe Frame kullanın.
nasıl yani frame derken neyi kastettiniz..?
Siz hayal edin...Biz yapalım TuannaSoft...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Delphi'deki TFrame yapısını kastetmiştim.
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

ben o kodu çalıştıramadım ...
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: Formu Panelde gosterme

Mesaj gönderen Okann »

peki bir dll form panelde gösterilebilirmi
Cevapla