form uzerinde bir adet tpanel var. icinde bir iki bilesen mevcut.
normalde bu panel gizli. bu paneli gorunur yaptigimda panele showmodal
ozelligi vermek istiyorum.
panel gorunur durumdayken kullanici form uzerindeki diger bilesenlere
mudahele edemesin taki paneli kapatana dek. bu isi paneli bi forma koyup
formuda showmodal olarak cagirip yapabiliriz ama ben bu is icin extra bir
form eklemek istemiyorum projeye.
boyle bir sey yapmak mumkun mudur?
TPaneli Showmodal olarak gostermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: TPaneli Showmodal olarak gostermek
Bütün componentleri Enabled'ını False yapabilirsin belki?
bunu delphi.about'tan aldım. bütün editleri clear yapıyor. eğer biraz değiştirirsek, olur mu bilmiyorum denemedim
Ayrıca buna bakabilirsin.
http://www.daniweb.com/forums/thread150255-4.html#
bunu delphi.about'tan aldım. bütün editleri clear yapıyor. eğer biraz değiştirirsek, olur mu bilmiyorum denemedim
bu prosedür çalışır mı bilemem bütün panelleri enabled'ını false yapıyorprocedure ClearEdits;
var j : Integer;
begin
for j := 0 to ComponentCount-1 do
if (Components[j] is TEdit) then
(Components[j] as TEdit).Text := '';
end;
Kod: Tümünü seç
procedure PanelDisable;
var j : Integer;
begin
for j := 0 to ComponentCount-1 do
begin
if (Components[j] is TPanel) then
(Components[j] as TPanel).Enabled := False;
end;
SeninIstediginPanel.Enabled := True;
end;
http://www.daniweb.com/forums/thread150255-4.html#
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: TPaneli Showmodal olarak gostermek
butun bilesenleri dolasip panel ve panelin uzerindeki bilesenler haric digerlerini false yapmak ise yariyor fakat
form uzerindeki bilesen sayisi fazla olunca islem uzun suruyor. bir de bu sekilde yapinca paneli kapatmadan formu kapatmak istediginde ek bir kontrol yapmak gerekiyor
if panel.visible = true then
formu kapatma
gibi. ben bunlara gerek kalmasin istiyorum. sonucta windows icin formda bir pencere , panelde bir pencere. forma verilebilen bir ozelligin panelede verilebilmesi lazim.
form uzerindeki bilesen sayisi fazla olunca islem uzun suruyor. bir de bu sekilde yapinca paneli kapatmadan formu kapatmak istediginde ek bir kontrol yapmak gerekiyor
if panel.visible = true then
formu kapatma
gibi. ben bunlara gerek kalmasin istiyorum. sonucta windows icin formda bir pencere , panelde bir pencere. forma verilebilen bir ozelligin panelede verilebilmesi lazim.
Re: TPaneli Showmodal olarak gostermek
Şöyle bir fikir vereyim bende panel dışında kalan diğer elemanları başka bir panel içine alıp o panelin enabled özelliği ile istediğiniz yapabilirizsiniz diye düşünüyorum...
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: TPaneli Showmodal olarak gostermek
showmodal olarak gozukecek panel haricindeki diger panelleri disable yapmakta is gorurdu ama bu sekilde kullanacagim panel sayisi biraz fazla olunca pek kullanisli bir cozum gibi gelmedi.
bi tane form kullanarak isimi gorecek birseyler buldum.
paneli, projede bu is icin olusturmus oldugum bir formu create edip onun icine yerlestirip showmodal ediyorum.
bi tane form kullanarak isimi gorecek birseyler buldum.
paneli, projede bu is icin olusturmus oldugum bir formu create edip onun icine yerlestirip showmodal ediyorum.
Kod: Tümünü seç
procedure TForm3.Button4Click(Sender: TObject);
begin
PostMessage(Application.ActiveFormHandle,wm_close,0,0);
end;
procedure TForm3.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button in [mbRight] then
ShowPanelInModalForm(panel1,x,y);
end;
procedure TForm3.ShowPanelInModalForm(aPanel:TPanel;X,Y:Integer);
var
myForm:TfrmPanelContainer;
Panel:TPanel;
Point:TPoint;
begin
Application.CreateForm(TfrmPanelContainer, myForm);
Panel :=aPanel;
Point.X := X;
Point.Y :=Y;
Point:=ClientToScreen(point);
myform.Width :=panel.Width;
myform.Height :=panel.Height;
myForm.Left :=Point.X;
myForm.Top :=point.Y;
Panel.Parent:=myForm;
Panel.Align :=alClient;
Panel.Visible :=True;
myForm.ShowModal;
panel.Visible:=false;
panel.Parent :=self;
panel.Align:=alNone;
FreeAndNil(myform);
end;
end.