Sekmedeki formlara müdahale etmek.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Sekmedeki formlara müdahale etmek.

Mesaj gönderen sarp_halit » 25 Ağu 2011 12:45

Merhaba arkadaşlar.

adresinde belirtmiş olduğum sorunu çözdüm. Formları yeni sekmede açmak için:

Kod: Tümünü seç

procedure TfrmMainform.btnHastaBazindaClick(Sender: TObject);
var form:TfrmHastaBazinda;
baslik:String;
sekme:TTabSheet;
i:integer;
varmi:boolean;
begin
baslik:='Hasta Bazında Randevular';
varmi:=False;
for i := 0 to sayfa_panel.PageCount - 1 do
    if sayfa_panel.Pages[i].Caption=baslik then
    begin
      sekme:=sayfa_panel.Pages[i];
      varmi:=true;
      Break;
    end;
    if not varmi then
    begin
      //ilk olarak sekmeyi oluşturalım
      sekme:=TTabSheet.Create(sayfa_panel);
      sekme.PageControl:=sayfa_panel;
      //formu sekmenin içine açalım
      form:=TfrmHastaBazinda.Create(sekme);
      form.Parent:=sekme;
      form.BorderStyle:=bsNone;
      form.Align:=alClient;
      form.Visible:=True;
      form.tbHastaarama.SetFocus;
      sekme.Caption:=form.Caption;
    end;
  sayfa_panel.ActivePage:=sekme;
end;
kodlarnı kullandım. şimdi ise şöyle bir sıkıntım var. ben bu formu açtıktan sonra üzerideki herhangi bir butonla yeni bir form showmodal ediyorum. açılan yeni formun kapanışında panelin içindeki herhangi bir nesneye müdahale etmem gerekiyor. mesela sekmenin içindeki formun üzerinde bulunan label'ın captionını değiştirmek istiyorum.

bunu nasıl yapabilirim?

teşekkür ederim.
Fethiye den herkese sevgiler ...
X))@:>

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 850
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Sekmedeki formlara müdahale etmek.

Mesaj gönderen csunguray » 25 Ağu 2011 04:48

Şimdi sen sekmenin içerisinde aaçılan bir formun üzerindeki bir button a basarak bir başka formu modal olarak gösterdin. Sonra modal olan form kapandı. Yapamadığın şey nedir onu anlamadım. hangi formun caption ını değiştirmek istiyorsun? Eğer tabsheet içerisindeki formun mu yoksa PageControl u içeren formun caption ını mı?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: Sekmedeki formlara müdahale etmek.

Mesaj gönderen sarp_halit » 06 Eyl 2011 10:01

show modal ettiğim form kapanırken sekme içerisinde yer alan formun üzerindeki herhangi bir label'ın caption özelliğini değiştirmek istiyorum ama bu sefer access violation hatası veriyor.
Fethiye den herkese sevgiler ...
X))@:>

emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 09:05
Konum: izmir
İletişim:

Re: Sekmedeki formlara müdahale etmek.

Mesaj gönderen emin_as » 06 Eyl 2011 12:07

Formu free ettikten sonra herhangi bir degişiklik yapamazsın, artık nesneler geçersizdir.

Free etmeden önce degişiklik yapabilirsin, ama form ve sekme lokal değişkenler, sadece bu procedure içindeyken geçerlidir. Başka procedure lerde kullanacaksan bu değişkenleri global olarak tanımlamalısın ve işin bittikten sonra nil ile içerigin boşaldıgını belirtmelisin.

Kod: Tümünü seç

Form.Free;
Form:=nil;
if Assigned(form) then ...

Cevapla