Jump to content

Bir Formdan Başka Bir Forma Veriyi Normal Delphi Formalarındaki Gibi Yapamıyor Muyuz?


pro_imaj

Recommended Posts

@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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

:wacko:

 

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'
Link to comment
Share on other sites

  • 3 months later...

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?

Link to comment
Share on other sites


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;



 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

 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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...