Merhaba,
Ben ornegin form1 ve form2 olmak uzere iki adet form var form1de Public kismina bir degisken tanimladim bu degiskeni form2den showmessege(form1.degisken) dedigimde acces violation hatasi aliyorum sorunum nedir anliyamadim yardimci olurmusunuz?
Merhaba,
Bende şu anda bir hata alıyorum. Hata iki adet değişkenim var; eşitliyorum eşitlemiyor sorun nedir?
Güzel kardeşim soruları biraz daha açık yaz ki bizde anlayalım. Değişken ne değişkeni. String, Integer, Real? Şimdi tahminler ile ilerleyeceğim o zaman. Büyük ihtimalle string, integer tipli bir değişken yerine TStringList gibi create edilmesi gereken bir nesne değişkeni kullanıyorsun. Yine büyük ihtimalle Form1'de tanımladığım değişkeni create etmediğin için bellekte bulamıyor nesneyi ve sana AV hatası veriyor.
İlk olarak Form1 create ediliyorsa Form1'in OnCreate eventi ile değişkenini create et. Sorunun çözülmesi lazım.
Tabi bu verdiğim cevap tamammiyle soru soruş şekline göre cevapladım.
public
_HASTA_KODU:integer;
degiskendim su sekilde yani illa kullanmakmi gerek bu degiskeni form 1 de
(04-07-2019, Saat: 09:36)arsl01 Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Ben ornegin form1 ve form2 olmak uzere iki adet form var form1de Public kismina bir degisken tanimladim bu degiskeni form2den showmessege(form1.degisken) dedigimde acces violation hatasi aliyorum sorunum nedir anliyamadim yardimci olurmusunuz?
Formu create ettiğine eminmisin normalde kullanabilirsin
debug modda show oncesi formun durumunu bir kontrol etmeni öneririm
(04-07-2019, Saat: 09:50)arsl01 Adlı Kullanıcıdan Alıntı: [ -> ] public
_HASTA_KODU:integer;
degiskendim su sekilde yani illa kullanmakmi gerek bu degiskeni form 1 de
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses Unit3;
procedure TForm2.Button1Click(Sender: TObject);
begin
form3 := Tform3.Create( Self );
ShowMessage(form3.Deger)
end;
end.
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TForm3 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
Deger : String;
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
(04-07-2019, Saat: 09:50)arsl01 Adlı Kullanıcıdan Alıntı: [ -> ] public
_HASTA_KODU:integer;
degiskendim su sekilde yani illa kullanmakmi gerek bu degiskeni form 1 de
Tahminen formu create etmeden o forma ulaşmaya çalışıyorsun sonrası AV. İlk olarak create et @
adelphiforumz hocamın dediği gibi.
hocam create ediyorum baska bi sorun var cozersem sizide bilgilendirecegim
Hocam ya create olayında bir sorun var.. yada sizin public değişkeninizde.. başka bir yerde olacağını sorunun sanmıyorum.
Kodunuzu bilmiyorum ama kodla create etmiyorsanız formları otomatik create sırasında değişkenin olduğu formu kullanacağınızın üstüne almanız gerekiyor. Daha önce oluşturulması için.
Hocam form 1 deki veriti form2 den cekecegime 1 deko veriyi form2 deki degiskene attim ve boylece sorunumu cozdum