pro_imaj Posted December 2, 2015 Posted December 2, 2015 Merhaba; Bir formdan başka bir forma veriyi normal delphi formalarındaki gibi yapamıyor muyuz? Yani Form1 deki edit.text verisini Form2 deki Edit1.Text nasıl gönderiyoruz? Teşekkürler. Quote
Administrators Farshad Mohajeri Posted December 2, 2015 Administrators Posted December 2, 2015 Her iki formun açık olması kaydı ile evet. Quote
sobakava Posted December 2, 2015 Posted December 2, 2015 UniForm2.Edit.Text := UnifForm1.Edit1.Text; Quote
pro_imaj Posted December 2, 2015 Author Posted December 2, 2015 @sobakava Delphi Bende sorun oluyor. Aşağıdaki kod ile aşağıdaki hatayı alıyorum. Tetkik.Siparis_No_Edit.Text := '10'; [dcc32 Error] Siparis_Listesi.pas(125): E2003 Undeclared identifier: 'Siparis_No_Edit' *Uses kısmında formu tanımladım. Quote
pro_imaj Posted December 2, 2015 Author Posted December 2, 2015 Bunun bir yolu yok mu acaba, inanılmaz sıkıntılara gebe oluyor Quote
Administrators Farshad Mohajeri Posted December 2, 2015 Administrators Posted December 2, 2015 Bir yazim hatasidir bu. Tetkik nedir unit ismi mi? Quote
pro_imaj Posted December 3, 2015 Author Posted December 3, 2015 Bir yazim hatasidir bu. Tetkik nedir unit ismi mi? Evet unit ismi. Sizin AllFeaturesDemo örneğindeki Main formundaki PageControl düşünün. Siz bunun içine frame'leri oluşturuyorsunuz ya, bu oluşturulan frame bir formdan değer gönderemiyorum. Frama1.Edit.Text := Form1.Edit1.Text; gibi Quote
Administrators Farshad Mohajeri Posted December 3, 2015 Administrators Posted December 3, 2015 Unit1.Form1.Edit1 // şeklinde yazmanız lazım. Quote
pro_imaj Posted December 3, 2015 Author Posted December 3, 2015 1-Main formumda bir adet PageControl var. 2-Main Formun içinde bir adet frame'i (TTetkik_Frame) runtime da çağırıyorum (Normalde Main formda yok ben bir buton ile PageControl içine çağırıyorum) 3-Oluşan Frame'in (TTetkik_Frame) içinde bir buton ile başka bir Form (Siparis_Listesi_Form) çağırıyorum. 4-Çağırdığım bu formda (Siparis_Listesi_Form) bir işlem yapıyorum ve işlemlerin sonucunu Formu kapatıp sonuç verilerini Frame'in (TTetkik_Frame) içindeki editlere yazmak istiyorum. Siparis_Listesi_Form dan TTetkik_Frame Direk değer atasam bile aşağıdaki gibi yine hata alıyorum. Tetkik_Frame.Siparis_No_Edit.Text := '99'; [dcc32 Error] Siparis_Listesi.pas(125): E2003 Undeclared identifier: 'Tetkik_Frame' Quote
pro_imaj Posted December 3, 2015 Author Posted December 3, 2015 Merhaba; Ekteki örnekte görebilirsiniz. Yardımlarınız rica ederim. Frame.rar Quote
Administrators Farshad Mohajeri Posted December 3, 2015 Administrators Posted December 3, 2015 Bir frame'i kullanmadan önce bir Form'ün üzerine koymanız lazım. unit1.UniFrame1.uniEdit1.Text := '9'; UniFrame1 diye bir obje olmadığından doğal olarak derlemiyor. Öncelikle Frame'i bir forma yerleştirin. Quote
jakarta2 Posted March 31, 2016 Posted March 31, 2016 Merhaba; Ben de aynı sıkıntıyı yaşıyorum. Daha önce uses bölümüne diğer formların isimlerini girdiğimizde herhangi bir procedure'de ya da fonksiyonda formx: Tformx.create(application); gibi bir komut kullanabiliyorduk unigui ile kullanamıyoruz. var formx: Tuniform şeklinde tanımlama yaptıktan sonra kullanılıyor o da kısıtlamalara ve sıkıntılara sebep oluyor. Ne yapmam gerekiyor? Quote
jakarta2 Posted March 31, 2016 Posted March 31, 2016 Aşağıdaki gibi bir yapı için c is not a function hatası veriyor nasıl düzeltebilirim? procedure Tfmgiris.UniFormShow(Sender: TObject); begin while wpc < 3 do begin if not GetPass then begin fmSifre.Free; inc(wpc); if wpc = 3 then uniApplication.Terminate; end else begin UserName := DMO.quPer.FieldByName('AdSoyad').asString; YetkiAlani := DMO.quPer.FieldByName('YetkiAlani').asString; SB.Panels[0].Text := 'Kullanıcı : ' + UserName; fmgiris.Caption := 'Hoşgeldin ' + Username; fmSifre.Free; wpc := 4; Accepted := False; end; end; end; function TfmGiris.GetPass : Boolean; begin fmSifre.ShowModal; Result := False; if fmSifre.ModalResult = mrOK then begin if DMO.quPer.Locate('AdSoyad', fmSifre.cbPer.Text, []) then Result := UpperCase(sifreekrani.fmSifre.uniEdit2.Text) = UpperCase(DMO.quPer.FieldByName('Sifre').asString); end else wpc := 2; end; Quote
bugra Posted March 31, 2016 Posted March 31, 2016 Frame'i form ile panel arası bir component olarak tanımlayabiliriz. Yapı itibariyle form kullanım itibariyle paneldirler. Frameler genelde aynı yapıya sahip formların yerine kullanılırlar. İki adet birbirinin aynı form tasarlamak yerine bir adet frame tasarlayarak bunu iki formda da çağırabilirsin. Quote
bugra Posted March 31, 2016 Posted March 31, 2016 jakarta2 Örnek bir proje yollayabilir misiniz? Quote
jakarta2 Posted April 1, 2016 Posted April 1, 2016 Cevaplarınız için teşekkür ederim. Bir mail adresi verirseniz örnek proje göndereyim. Quote
bugra Posted April 1, 2016 Posted April 1, 2016 Sıkıştırılmış formatta buradan gönderebilirsiniz. Quote
jakarta2 Posted April 1, 2016 Posted April 1, 2016 Dosya hazır sıkıştırılmış şekilde ama burada dosya ekle bölümü yok nasıl göndereceğim? Göndermem gerek başka problemlerimde var çıldırmak üzereyim. Login ekranını buradaki login örneğine göre hallettim bu defa da aşağıdaki gibi problemlerim var. Aynı bileşenden var diyerek create etmiyor, showmodal diyorum yine aynı hata, show yine aynı hata anlamadım gitti. unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,LoginFUnit, Controls, Forms, Dialogs, uniGUIForm, uniGUITypes, StdCtrls, UniListBox, UniMemo, UniLabel, ExtCtrls, UniPanel, ComCtrls, UniPageControl, UniButton, Buttons, UniSpeedButton, uniGUIClasses, uniMultiItem, UniBitBtn, uniGUIBaseClasses, uniSplitter, Vcl.Imaging.jpeg, uniImage, Vcl.Menus, uniMainMenu; type TSortOrder = (soASC, soDESC); type TMainForm = class(TUniForm) UniMainMenu1: TUniMainMenu; HaklarveYetkiler1: TUniMenuItem; CariKartlar1: TUniMenuItem; UniImage1: TUniImage; CariKartlar2: TUniMenuItem; UniImage2: TUniImage; procedure UniListBox1Click(Sender: TObject); procedure UniButton1Click(Sender: TObject); procedure UniSpeedButton1Click(Sender: TObject); procedure UniFormActivate(Sender: TObject); procedure CariKartlar2Click(Sender: TObject); private { Private declarations } procedure _cbProc1(LoginSuccessful: Boolean); public SortOrder : TSortOrder; procedure NewCariCard; end; function MainForm: TMainForm; function NumaraAl(TabloAdi : String) : Longint; function TurkishUpCase(uk : Char) : Char; var UserName : String; YetkiAlani : String; WPC : integer; Accepted : Boolean; AcceptStr : String; Acceptint : integer; Acceptdate : Tdate; SelectedKimlik : Longint; const ReadOnly = 1; ReadWrite = 2; AddNew = 3; ForSelect = 4; ForOpen = 5; implementation {$R *.dfm} uses UniGUIVars, MainModule, carilistesi, Unit1, DM, cari; function MainForm: TMainForm; begin Result := TMainForm(UniMainModule.GetFormInstance(TMainForm)); end; function TurkishUpCase(uk : Char) : Char; begin case uk of 'ı' : Result := 'I'; 'i' : Result := 'İ'; 'ş' : Result := 'Ş'; 'ç' : Result := 'Ç'; 'ö' : Result := 'Ö'; 'ü' : Result := 'Ü'; 'ğ' : Result := 'Ğ'; else Result := UpCase(uk); end; end; Function GetName:string; var i : LongWord; begin SetLength(Result, MAX_COMPUTERNAME_LENGTH); if GetComputerName(@Result[1], i) then SetLength(Result, i); end; function TurkishUpStr(St : String) : String; var i : integer; begin for i := 1 to Length(St) do St := TurkishUpCase(St); Result := St; end; function NumaraAl(TabloAdi : String) : Longint; begin with mainform do begin if dmo.taNumara.Locate('Belirtec', TabloAdi, []) then begin dmo.taNumara.Edit; dmo.taNumara.FieldByName('SonNo').asInteger := dmo.taNumara.FieldByName('SonNo').asInteger + 1; Result := dmo.taNumara.FieldByName('SonNo').asInteger; dmo.taNumara.Post; end else begin dmo.taNumara.Insert; dmo.taNumara.FieldByName('SonNo').asInteger := 1; Result := 1; dmo.taNumara.Post; end; end; end; procedure TMainForm.UniFormActivate(Sender: TObject); begin if WebMode then begin With Login_F do begin InitCallback(False,_cbProc1); Show; end; end Else // Mainpanel.Visible := true; end; procedure TMainForm._cbProc1(LoginSuccessful: Boolean); begin if LoginSuccessful = True then // Mainpanel.Visible := true end; procedure TMainForm.CariKartlar2Click(Sender: TObject); begin // if Pos('Cari', YetkiAlani) > 0 then begin carilistesi.fmCariListesi.Create(uniApplication); carilistesi.fmcarilistesi.ShowModal; fmCariListesi.Free; // end else application.messagebox('İşlem Yapılamaz!', 'Bu işlemi yapmaya yetkiniz yok.', mb_ok); end; procedure TMainForm.NewCariCard; var fmCard : TfmCari; begin // if Pos('Yeni', YetkiAlani) > 0 then begin fmCard := TfmCari.Create(Application); fmCard.Mode := AddNew; // if fmCard.ShowModal = mrOK then begin // DMO.quCari.Close; // DMO.quCari.Open; // DMO.quCari.Refresh; // end; fmCard.Free; // end else ErrorBox('İşlem Yapılamaz!', 'Bu işlemi gerçekleştirmek için gerekli erişim hakkınız tanımlı değil...', ''); end; procedure TMainForm.UniButton1Click(Sender: TObject); begin UniForm1.ShowModal; end; procedure TMainForm.UniListBox1Click(Sender: TObject); begin // UniMemo1.Lines.Add(UniListBox1.Items[uniListBox1.ItemIndex]); end; procedure TMainForm.UniSpeedButton1Click(Sender: TObject); begin Close; end; initialization RegisterMainFormClass(TMainForm); end. Quote
jakarta2 Posted April 1, 2016 Posted April 1, 2016 Bu arada if fmCard.ShowModal = mrOK then begin satırları içinde uygunsuz tip hatası veriyor :-( Quote
jakarta2 Posted April 1, 2016 Posted April 1, 2016 if fmCard.ShowModal = mrOK then begin uygunsuz tip hatası dışındaki problemleri hallettim. Anladığım kadarıyla bütün formlar açılışta create edildiği için bir daha create ettirmiyor, showmodal'daki problemin nedeni acayip bitbtn koymuştum nasıl olmuşsa formla aynı ismi almış o yüzden hata alıyormuşum. Quote
bugra Posted April 4, 2016 Posted April 4, 2016 mCard.ShowModal = mrOK yerine mCard.ModalResult= mrOK'u deneyin. Dosya göndermek için "More Reply Options" butonuna basıp attach edebilirsiniz. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.