Hoşgeldin, Ziyaretçi |
Sitemizden yararlanabilmek için kayıt olmalısınız.
|
Kimler Çevrimiçi |
Şu anda 246 aktif kullanıcı var. » (0 Üye - 245 Ziyaretçi) Bing
|
Son Yazılanlar |
Where to buy Viagra onlin...
Forum: Forum Hakkında & Forum Duyuruları
Son Yorum: JamesPoody
Dün, 14:03
» Yorum 0
» Okunma 16
|
Satılık HP 840 G2
Forum: İkinci El Satılık
Son Yorum: admin
26-07-2025, 10:50
» Yorum 1
» Okunma 79
|
AMD Ryzen 10000 Serisi Ze...
Forum: Kullanıcıların gönderdiği haberler
Son Yorum: admin
08-06-2025, 18:44
» Yorum 1
» Okunma 240
|
Samsung S24FE alınır mı?
Forum: Cep Telefonu
Son Yorum: admin
02-06-2025, 11:28
» Yorum 1
» Okunma 251
|
Google Pixel Cihazlarında...
Forum: Android ve Andorid Uygulamaları
Son Yorum: Aviatorder
26-05-2025, 18:52
» Yorum 1
» Okunma 2,798
|
Apple ios 19 ne zaman çık...
Forum: Donanım Haberleri
Son Yorum: admin
26-05-2025, 16:12
» Yorum 0
» Okunma 118
|
Linux Mint 22.2 Zara
Forum: Kullanıcıların gönderdiği haberler
Son Yorum: tekken29
26-05-2025, 11:50
» Yorum 1
» Okunma 165
|
Amiga Sensible World of S...
Forum: Commodore 64 Amiga Oyunları
Son Yorum: admin
19-05-2025, 00:43
» Yorum 0
» Okunma 194
|
Discord giremiyorum DNS o...
Forum: Online İletisim Araclari
Son Yorum: admin
19-05-2025, 00:33
» Yorum 1
» Okunma 206
|
Motor plakamı kaybettim d...
Forum: KONU DISI
Son Yorum: admin
17-05-2025, 19:23
» Yorum 3
» Okunma 248
|
|
|
Pascal Hata Mesajları |
Yazar: sariye - 26-07-2006, 11:45 - Forum: Programlama
- Yorum Yok
|
 |
PASCAL HATA MESAJLARI
Pascal ile yazilan programlarin derlenmesinde derleyicinin saptadigi hatalar ve
programin çalistirilmasi sirasinda ortaya çikan hatalar olmak üzere iki çesit hata
durumu vardir.
1. Compiler Errors Messagee
2. Run Time Errors Messages
Compiler Errors (Derleme Hatalari)
Yazim kurallarina ters düsen, hatali kodlamalar yapilan programin derlenmesi sirasinda
ortaya çikan hatalardir. Saptanan hata, hataya iliskin kod ile birlikte açiklanir.
1) Out of memory
Hafizanin yetersiz oldugunu belirtir. Bu problemi çözmek için asagidaki yollar
denenmelidir.
??Compile menüsündeki “Destination memory” seçenegi “Disk” olarak degistirilir.
??“Options” menüsündeki “Linkler” seçenegide “Linker buffer” alani “Disk” yapilir.
Bu islemin DOS komutu satirindaki derleme seçenegi /L ‘dir. (>TPC/L...)
??Hafizada çalisan TSR programlarinin hafizadan silinmesini saglar.
Bu islemlere ragmen hata çözülmezse unit programlarin hacimleri küçültülmelidir.
2) Identifier expected
Turbo Pascalin bir kelime (reserved word) kelime, tanitici ismi olarak kullaniyor.
3) Unknown identifier
Tanimlanmis bir degisken kullaniyor.
4) Duplicate identifier
Tanitici isim mevcut program blogu içerisinde daha önce tanimlanmis.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
209
5) Syntax error
Kaynak text içerisinde geçersiz karakter bulundu.
6) Error in real constant
Sabit real taniminda hata var.
7) Error in integer constant
Sabit integer taniminda hata var.
8 ) String constant exceeds line
String sabitlerde kullanilan tirnak eksik veya fazla.
9) To many nested files
Içiçe çok fazla dosya baglantisi var
10) Unexpected end of file
Program sonundaki END yazilmamis veya dosya sonunu belirten (.) unutulmus.
11) Line too long
Bir satir üzerinde 120 karakterden fazla bilgi bulunamaz.
12) Type identifier expected
Type tanimlayici gerekli
13) Too many open files
Ayni anda açik olan dosya sayisi çok fazla. Config.Sys dosyasindaki Files=xx
seçeneginde xx arttirilmalidir. xx ayni anda açilabilecek dosya sayisini gösterir.
14) Invalid file name
Geçersiz dosya adi veya bulunmayan directory.
15) File not found
Belirtilen dosya aktif directory içerisinde bulunmuyor.
16) Disk full
Disk dolu. Diskten silinebilecek dosyalari silin.
17) Invalid compiler direvtive
Geçersiz compiler bildirisi.
18 ) Too many files
Programin tamaminda cok fazla dosya veya unit var.
19) Undefined type in pointer definition
Pointer taniminda bilinmeyen tip.
20) Variable identifier expected
Degisken tanimlayicisi bekleniyor.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
210
21) Error in type
Tip hatasi. Sembol ile tip tanimina baslanamaz.
22) Structure too large
Yapi çok büyük. Yapisal tip taniminda yapi olusturan alanlarin toplam uzunlugu
65520 byte olmalidir. Bunun için alan tanimlamalarinda, alan uzunluklari
kisaltilmalidir.
23) Set base type out of range
Küme çok uzun. Küme tipi taniminda kümeyi olusturan toplam eleman sayisi 256k
yi geçemez. Küme tanimlamalarinda eleman sayisi azaltilmalidir.
24) File compenents may not be files
Bir dosyaya ait tip olarak baska bir dosya tipi kullanilmaz
25) Invalid string length
String?in uzunlugu geçersiz. Bir stringin maksimum uzunlugu 255 karakter olabilir.
Bu uzunluk kisaltilmali veya parçalanmalidir.
26) Type mismatch
Tip uyusmazligi. Asagidaki durumlarda meydana gelir:
??Atama veya hesaplama islemlerinde sol taraftaki degisken ile sag taraftaki
ifadelerin tipleri ayni olmayabilir.
??Procedure veya function?larda karsilikli gelen parametrelerin tipleri farkli.
??Islemlerde tip uyusmazligi var.
27) Invalid subrange base type
Sayilabilir tipteki elemanlara geçerli tanimlama yapilmalidir.
28 ) Lover bound greater than upper bound
Alt sinir üst sinirdan büyük.
29) Ordinal type expected
Sayilabilir tip gerekir. Real, String, yapisal tip veya Pointer tipleri burada
kullanilmaz.
30) Integer constant expected
Tamsayi sabiti gerekiyor. Tamsayi tipinde tanimlanmamis bir alana tam sayi
konulmaktadir. Saha tanimi veya degeri düzeltmek gerekir.
31) Constant expected
Sabit gerekiyor. ?const? yazilmis fakat, sabit tanimi olmadigi zaman bu hata mesaji
gerekir.
32) Integer or real constant expected
Tam sayi veya gerçek sayi sabiti gerekiyor. Sayisal tanimlanmis bir alana, sayisal
bilgi disinda bir bilgi yerlestiriliyor.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
211
33) Type indentifier expected
Tip tanimi gerekiyor. Tipin belirlenmesi gerekli olan bir degisken tipi belirtilmemis.
34) Invalid function resul type
Fonksiyon sonucunda tipi hatali. Bir fonksiyonun neticesi yapisal tip olamaz.
35) Label isentifier expacred
Etiket tanimi gerekiyor. LABEL kelimesinden sonra bir etiket tanimlamak gerekir. Ya
?LABEL? kelimesi kaldirilmali yada etiket tanimlanmalidir.
36) Begin expected
BEGIN gerekiyor. Ana program veya procedure/function? larda islemler BEGIN
komutundan sonra yazilmalidir.
37) End expected
END bekleniyor.
38 ) Integer expression expected
Tam sayi bir ifade gerekiyor. Tam sayi kullanilmasi gerekli olan bir islemde baska
tip kullanilmistir.
39) Ordinal expression expected
Sayilabilir tipte bir ifade gerekiyor. Sayilabilir tip yerine, islemde baska tip
kullanilmistir.
40) Boolean expression expected
Mantiksal tipte bir ifade gerekiyor.
41) Operand types do not match operator
Islem ile isareti arasinda uyusmazlik var.
42) Error in expression
Ifadede hata var. Aritmetik bir islemde bir taraf eksik olabilir veya sabit taniminda
sag taraf yazilmamistir.
43) Illegal assignment
Hatali atama yapilmis Bir atama isleminde Fonksiyonlar sag tarafta bulunamazlarr.
44) Field identifer expected
Alan tanimi gerekir. RECORD taniminda alan ismi belirtilmemistir.
47) Object file too large
Object dosya hacmi 64 K? dan daha büyük.
48 ) Code segment too large
Program çok büyük. Bir program veya ünite maksimum 65520 byte
olabilir.Programda unitler kullanilmalidir.Unit çok büyük ise, Unit içerisinde baska
unit? ler kullanilarak program kisaltilmalidir.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
212
49) Data segment too large
Tanimlanan sabit ve degiskenlerin hacmi çok fazla. Bir programda tanimlanan
sahalarin toplami maksimum 65520byte olabilir. Buna Unit? lerde kullanilan alanlar
da dahildir. Hatayi gidermek için alan sayisi veya uzunluklar azaltilmalidir.
50) Do expected
DO gereklidir. WHILE, FOR komutlarinda DO gerekir.
54) Of expected
OF gereklidir. CASE komutunda, ARRAY taniminda vs.. gerekli olan OF kelimesi
kullanilmistir.
55) Interface expected
INTERFACE gereklidir. UNIT içerisinde ?INTERFACE? kelimesi yazilmamis.
57) Then expected
THEN gereklidir. IF komutunda THEN kelimesi yazilmamis.
58 ) To or downto expected
TO veya DOWNTO gereklidir. FOR komutunda TO/DOWNTO kelimelerinden biri
kullanilmamis.
59) Undefined forward
FORWARD tanimlanmamis.
??Unit? in INTEFACE bölümünde tanimlanan PROCEDURE veya FUNCTION
IMPLEMENTATION bölümünde tanimlanmamistir.
??PROCEDURE/FUNCTION? da FORWARD kullanildigi halde
PROCEDURE/FUNCTION hiç tanimlanmamistir.
61) Invalid typecast
Geçersiz çevrim yapilmis. Bazi tipler, tanimlandigi gibi degil de uyumlu uyumlu bir
tipte de kullanilabilir.
62) Division by zero
0? a bölme. Bilindigi gibi bir sayinin sifira bölünmesi tanimsizdir.
63) Invalid file type
Geçersiz dosya tipi. Örnegin, tipli dosyada Readln veya text dosyada Seek komutu
kullanilmaz.
64) Connot read or write variables of this type
Bu tip için okuma veya yazma yapilamaz. Yapisal tipler ekranda dogrudan
görüntülenemezler ve ekrandan alinamazlar.
66) String variable expected
String degisken gerekiyor. String tipte olmasi gereken bir degisken yerine baska
tipte bir degisken kullanilmistir.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
213
67) String expression expected
String ifade gerekli.
68 ) Circular Unit
Unitlerin birbirini kullanimi hatali tanimlanmis
69) Unit name mismatch
Unit ismi uyusmazligi var. Unit programinin disk üzerindeki ismi (dosya adi) ile Unit
komutundan sonra yazilan isim ayni olmamalidir.
70) Unit version mismatch
Unit versiyonlari uyusmuyor. Derlenen Unit versiyonu ile, su anda kullanilan Turbo
Pascal versiyonu uyusmuyor. Unit yeniden derlenmelidir. Bunun için;
???Compile? seçeneginden ?Make? veya ?Build? ile yeniden derleme yapilmalidir.
??TPC ile derleme yapiliyorsa, /M veya /B parametreleri kullanilmalidir.
71) Internal stack overflow
Stack segment 'te tasma var. Uzun Procedure alt programi bölün
72) Unit file format error
Unit program kullanilmasi halinde, Dos için .TPU, .TPP, Windows için .TPW uzantili
dosya yok. .PAS dosyaya uygun .TPU, .TPP veya .TPW dosya olusturulmali.
73) Impelementation expected.
Unit tanimi içerisinde zorunlu olarak bulunmasi gereken IMPELEMENTATION
kullanilmamis.
74) Constant and case types do not match
Sabit ve CASE? de kullanilan tipler uyusmuyor. CASE komutunda kullanilan alan
tipi, test edildigi sabitlerle ayni tipte olmalidir.
75) Record variable expected
Kayit degiskeni gerekiyor. Su anda kullanilan degisken tipi RECORD tipinden
olmali.
76) Constant out of range
Sabit, olmasi gereken sinirlari tasiyor.
77) File variable expected
Dosya degiskeni gerekli.
79) Integer or real expression expected
Tam sayi veya gerçek sayi ifade gerekli.
80) Label not within current block
Etiket mevcut blok disinda. Goto komutu ile program akisinin gönderilecegi etiket
yanlis yerde kullanilmis.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
214
81) Label already defined
Etiket zaten tanimlanmis. Ayni etiket ismi ikinci defa tanimlaniyor.
82) Undefined label in preceding statment
Tanimlanmamis etiket kullaniliyor. Etiket tanimi yapilmalidir.
84) UNIT expected
UNIT kelimesinin yazilmasi gerekir.
85) ?;? expected
Noktali-virgül isaretinin yazilmasi gerekir.
86) ?:?expected
?: ? isaretinin yazilmasi gerekir.
87) ?,? expected
Virgül isaretinin yazilmasi gerekir.
88 ) ?(? expected
?(? Isaretinin yazilmasi gerekir.
89) ?)? expected
?)? isaretinin yazilmasi gerekir.
90) ?=? expected
?=? isaretinin yazilmasi gerekir.
91) ?:=? expected
?:=? isaretinin yazilmasi gerekir.
92) ?[? or ?(.? expected
?[? veya ?(.? isaretinin yazilmasi gerekir.
93) ?]? or ?.)? expected
?]? veya ?.)? isaretinin yazilmasi gerekir.
94) ?.? expected
?.? isaretinin yazilmasi gerekir.
95) ?..? expected
?..? isaretinin yazilmasi gerekir.
96) Too many variables
Degiskenlerin toplam uzunlugu 64 K sinirini asiyor.
97) Invalid FOR control variable
FOR komutu ile kullanilan degiskenin tipi yanlis. Örnegin; For komutunda Real
degisken kullanilamaz.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
215
98 ) Integer variable expected
Integer degisken kullanilmalidir.
99) Files are not allower here
Dosyalar burada kullanilamaz.
100) String length mismatch
Alfasayisal degisken için tanim blogunda verilen uzunlukla islem tanimindaki
uzunluk ölçüleri uygun degil.
101) Invalid ordering of fields
Alanlarin siralamalari geçersiz.
102) String constant expected
Alfasayisal degismez bilgi tanimi yapilmamis.
103) Integer or real variable expected
Tam sayi veya ondalikli sayi degisken tanimi yapilmamis.
104) Ordinal variable expected
Sira belirleme degisken tanimi yapilmamis.
105) Inline error
Turbo Pascal Assembler kodlarinin kullanildigini belirten INLINE komut tanimi hatali.
106) Character expression expected
Karakter ifadesi yapilmamis.
107) Too many relocation items
Çok fazla yeniden konumlandirma basliklari kullanilmis.
108) Overflow in aritmetic operation
Aritmetik islemlerde tasma hatasi.
109) No enclosing For, While,0r Repeiat statement
Islem ifadeleri; FOR, WHILE, veya REPEAT deyimleriyle kapatilmaz.
112) Case constanl out of range
CASE deyimindeki degismez bilgi tanimlanan sinirlan asiyor.
113) Error in statement
Deyim kullaniminda hata var.
114) Cannot call an interrupt procedure
Program akisini bir durduran (interrupt) prosedürü çagrilamaz.
116) Must be in 8087 morle to compile this
Programda tanimlanan genisletilmis sayisal bilgi tiplerinin derlenebilmeleri
için 8087 matematik islemcinin olmasi gereklidir.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
216
117) Target address not found
Bilgilerin aktarilacagi hedef adresi bulunamadi.
118) Include files are not allowed here
INCLUDE program yazilanlar burada kullanilamaz.
119) No inherited methods are accessible here
INHERITED metod yazilimlar verildikleri satirlarda erisilemez.
120) Nil expected
NIL fonksiyonu verilmemis.
121) Invalid qualifier
Geçersiz tanimlama.
122) Invalid variable reference
Geçersiz degisken referans tanimi.
123) Too many symbols
Asiri sembol tanimlamasi.
124) Statement part too largee
Program yazilimdaki deyimler bölümü asiri uzun.
126) Files must be Var parameters
Dosyalarin tanimlarinda VAR parametreleri verilmeli.
127) Too many conditional symbols
Çok sayida kosul sembolleri kullanilmis.
128) Misplacced conditional directive
Kosul direktifi hatali yerlestirilmis.
129) ENDIF directive missing
ENDIF direktifi verilmemis.
130) Error in initial conditional defines
Baslangiç kosul tanimlarinda hatali durum.
131) Header doees not match previous defination
Baslik bir önceki tanima uymuyor.
132) Critical disk error
Disk ortaminda çok önemli hata var.
133) Cannot evaluate this expression
Tanimlanan ifade sonuçlandirilamaz.
134) Expression incorrectly terminated
hatali ifade nedeniyle islem kesildi.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
217
135) Invalid format specifier
Geçersiz format tanimi.
136) Invalid indirect reference
Geçersiz dolayli referans.
137) Structureed variables are not allowed here
Yapisal degiskenler bu satirlarda kullanilmaz.
138) Cannot evaluate without System unit
SYSTEM unit olmadan islem yapilamaz.
139) Cannot access this symbol
Bu yazilim sekline (sembole) erisilemez.
140) Invalid, floating-point operation
Geçersiz ondalikli sayisal islemi.
141) Cannot compile overlays to memory
Bellekte OVERLAY yazilimlari derlenemez.
142) Pointer or procedural variable expected
Pointer veya prosedür degiskenleri tanimlanmamis.
143) Invalid procedure or function reference
Geçersiz prosedür veya fonksiyon referansi kullanilmis.
144) Cannot overlay this unit
Overlay olarak tanimlanan unit, overlay unit olamaz.
146) File access denided
Program veya dosya erisimi yapilamiyor.
147) Object type expeected
OBJECT bilgi tipi yapilmamis.
148) Local object types are not allowed
Çagiran programdaki lokal nesne bilgi tiplerihatali
149) Virtual expected
VIRTUAL tanimi yapilmamis.
I50) Method identifier expected
METHOD yazilim tanimi yapilmamis.
151) Virtual constructor are not allowed
VIRTUAL CONSTRUCTOR tip belirleyicisi hatali taniinlanmis.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
218
152) Constiuctor identifier expected
CONSTRUCTOR bilgi kesim tanimi yapilmamis.
153) Destructor identifier expected
DESTRUCTOR tammi yapilmamis.
154) Fail only allowed within constructors
Sadece CONSTRUCTOR yapisal tammlannda hata olabilir. 1 SS Invalid combination of opcorle and
operandsGeçersiz TURBO ASSEMBLER yazilim opcode kombinasyonu veya islemi.
156) Memory reference expected
Bellek referansi yapilmamis.
157) Cannot add orsubtruct relocatable symbol.
Yeniden yerlestirilebilir yazilimlardaki sayisal degerlerde toplama veya çikarma yapilamaz.
158) Invalid register combination .
Geçersiz yazmaç kombinasyonu.
159) 286/287 instructions are not enabled
286/287 yapisal bilgileri etkin duruma alinamadi.
160) Invalid symbol reference
Geçersiz yazilim kod referansi.
161) Code generation error
Kod yaratma hatasi.
162) Asm expected
TURBO ASSEMBLER yazilimlarinda ASM ifadesi yapilmamis.
163) Duplicate dynamic method index
Ikinci kez tammlanan dinamik (Heap) bellek method indis elemani
164) Duplicate resource identifier
Ikinci kez tanimlanan RESOURCE WORKSHOP bilgi tanimi.
165) Duplicate or invalid export index
Ikinci kez tanimlanan veya geçersiz export (baska bir harici programlara veya dosyalara aktarilmak
üzere hazirlanan bilgi yapilan) indisi.
166) Procedurie or function identifier expected
Prosedür veya fonksiyon kesim adi tanimi yapilmamis.
167) Cannot export this symbol
Tanimlanan yazilim sekli (sembol) harici bir programa veya dosyaya aktarilamaz.
168) Duplicate export name
Ikinci kez tanimlanan export bilgi tanim adi.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
219
169) Executable file header too large
Çalistirilacak program basligi çok uzun.
Run-Time Errors Messages
Turbo/Borlan Pascal DOS modunda çalisirken asagidaki hatalarla karsilasilabilir.
1) Invalid function number
Geçersiz fonksiyon numarasi. Mevcut olamayan DOS fonksiyonu çagriliyor.
2) File not found
Reset, Append, Rename veya Erase komutlariyla kullanilan dosya degiskenine
bilinmeyen dosya ismi atanmis. Dosya bulunamiyor.
3) Path not found
Reset, Rewrite, Append, Erase, ChDir, MkDir veya RmDir komutlari ile belirtilen
ortam/yol (path) bulunamiyor.
4) Too many open file
Ayni anda açilan dosya sayisi fazla. Bunu engellemek için CONFIG.SYS dosyasi
içerisinde tanimlanan Files=xx tanimindaki dosya sayisi arttirilmalidir.
5) File access error
??Reset veya Append komutlarinda belirtilen dosya degiskenine read-only özelligi
olan directory/dosya adi atanmis.
??ReWrite komutu ile olusturulmaya çalisilan dosyanin bulundugu directory dolu
veya ayni isimli read-only özelligi olan bir dosya mevcut.
??Rename komutu ile dosyaya verilecek yeni isim altinda baska bir dosyanin mevcut
olmasi
??Erase komutu ile silinecek olan dosya read-only özelligine sahip.
??MkDir komutu ile var olan bir directory olusturulmaya çalisiliyor.
??RmDir komutu ile silinmeye çalisilan directory'nin içi bos degil.
??Açik olmayan bir dosyadan Read veya BlockRead komutlariyla bilgi okunmaya
çalisiliyor.
??Açik olmayan bir dosyaya Write veya BlockWrite komutlariyla bilgi okunmaya
çalisiliyor.
6) Invalid file handle
Bu hata geçersiz bir dosya istegi DOS sistemine iletilirse ortaya çikar.
12) Invalid file access code
Geçersiz dosya erisim kodu. Reset veya Append komutlarinda geçersiz dosya modu
degeri kullanilmis.
15) Invalid drive number
GetDir veya Chdir komutlari ile geçersiz bir sürücü numarasi kullanilmis.
16) Cannot remove current directory
RmDir komutu ile aktif olan directory silinmeye çalisiliyor.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
220
17) Cannot rename across drives
Rename komutunda belirtilen her iki dosya ayni sürücüde degildir.
I/O Errors
Giris/Çikis islemleriyle ilgili programlarda asagidaki hatalarla karsilasilabiliriz.
100) Disk read error
Read komutu ile dosya sonu isaretinden sonra okuma islemi yapiliyor.
101) Disk write error
Close, Write, Writeln veya Flush komutlari ile dolu bir disk'e islem yapilmaya
çalisiliyor.
102) File not assigned
Reset, ReWrite, Append, Rename veya Erase komutlarinda kullanilan 'dosya
degiskenine' dosya ismi atanmamis.
103) File not open
Üzerinde islem yapilmaya çalisilan dosya açik degil.
104) File not open for input
Text dosyasi giris için açik degil. Bu durumdaki dosyaya Read, Readln, Eof Eoln,
SeekEof veya SeekEoln komutlarinin kullanilmasi sirasinda olusur.
105) File not open for output
Text dosyasi çikis için açik degil. Bu durumdaki dosyaya Write veya Writeln
komutlarinin kullanimi sirasinda olusur.
106) Invalid numeric format
Bir text dosyadan Read veya readln komutu ile sayisal bilgi okunmasi sirasinda olusur
150) Disk is write protected
Disk yazmaya karsi korumali.
151) Unknown unit
Tanimsiz unit.
152) Drive not ready
Sürücü hazir degil.
154) CRC error in data
Datada hata var
156) Disk seek error
Bilgi okuma sirasinda hata olustu. Diskte belirtilen kayita konumlanilamiyor.
Ek A. Hata Mesajlari
Pascal 7.0 ile Programlama A.ORAL
221
157) Unknown media type
DOS tarafindan taninmayan dosya. DOS uyumlu olmayan bir format sekli kullanilmis.
158) Sector not found
Disk'teki bozukluktan dolayi bilgiye erisilemiyor.
159) Printer out of paper
Printer'e kagit takili degil.
160) Device write fault
Donanim hatasindan dolayi disk'e kayit yapilamiyor.
161) Device read fault
Donanim hatasi nedeniyle bilgi okunamiyor.
162) Hardware failure
Donanim hatasi
200) Division by zero
/, div veya mod operatörleri ile yapilan bölme isleminde sayi sifira bölünüyor. Bölme
isleminin paydasi sifir. Programda bölme hatasi olmasa da Win98 isletim sisteminde
CRT uniti kullanilmasi halinde bu hata mesaji ile karsilasilmaktadir. Win 98 altinda
Turbo Pascal ve Bp çalistirildiginda CRT uniti kullanilmamalidir.
201) Range check error
{$R+} compiler bildirisi kullanildiginda, degiskene sinirlari disinda bilgi giriliyor veya
dizinli degiskenin boyutlari sinir disinda.
205) Floting point overflow
Turbo Pascalda tanimlanan degisken alanlarinin disina tasiliyor.
İyi çalışmalar
|
|
|
Delphi Nesneleri |
Yazar: sariye - 26-07-2006, 11:19 - Forum: Programlama
- Yorum (1)
|
 |
Delphi Nesneleri
TEdit Nesnesi
Bilgi girişi yapılabilen nesnelerdir.
AutoSelect TRUE ise tab tuşu ile focus yapıldığında edit içindeki bilgiyi seçili hale getirir.
AutoSize TRUE ise edit içindeki yazının fontu değiştiğinde editin büyüklüğüde değişir.
CanUndo TRUE ise önceki yazı geri alınabilir.CharCase Edit içindeki yazıları büyük, küçük harfli olması sağlanabilir.
HideSelection TRUE ise edit aktifliğini kaybederken seçilmiş yazılar varsa seçilmişlik kaybolur.
SelStart Þeçme işleminin kaçıncı karekterden başladığını gösterir.
SelLength Kaç karekter seçildiğini gösterir.
SelText Seçilen karekterleri gösterir.
SelectAll Edit içindeki tüm yazıyı seçili hale getirir.
Clear Edit içindeki yazıyı temizler.
ClearSelection Seçili kısmı siler.
MaxLength Edite en fazla kaç karekter girilebileceğini gösterir.
Modified Edit içindeki yazılarda değişme meydana geldiğinde TRUE değerini alır
RaadOnly TRUE ise edit içindeki karekterler değiştirilemez
Text Edit içindeki yazıyı gösterir.
GetLenText Edit içindeki karekter sayısını verir.
CopyToClipboard Edit içindeki yazıyı clipboarda kopyalar.
CutToClipboard Edit içindeki yazıları clipboarda kopyalar ve editi temizler.
PasteFromClipboard Clipboarddaki yazıyı edite kopyalar
Label Nesnesi
TLabel nesnesi etiket yazılar için kullanılır.
Transparent TRUE ise label'in arka planının görülmesini sağlar(şeffaflaştırır).
FocusControl Kısayol tuşu tanımlanırsa focusu kime devredeceğini gösterir.
WordRap Label üzerindeki yazılar labelın büyüklüğünü aşarsa bir alt satıra geçmesini
sağlar.
ShowAccelChar TRUE ise başına & işareti koyulan karekterin altı çizili olarak gösterilir,
kısa yol tuşu olarak kullanılır.
TMemo Nesnesi
Çok satırlı bilgi girişlerinin yapıldığı nesnelerdir.
Alignment Memo içindeki sayıların sağa sola ortaya konuşlanmasını sağlar.
Lines Memodaki satırları öğrenmeye ve değiştirmeye yarar.
Momo1.Lines[5]:='Seni seviyem'; ifadesi 6. satıra Seni seviyem yazar.
Memo1.Lines.Strings[6]:='Bende'; ifadesi 7. satıra Bende yazar.
Lines.Count Memodaki satır sayısını verir.
Lines.Add Memoya satır ekler. Memo1.Lines.Add('Sevmek güzeldir');
Lines.Insert Araya satır ekler. Memo1.Lines.Insert(3, 'Sende seviyo musun');
Lines.Exchanges İki satırın yerini değiştirir. Memo1.Lines.Exchanges(4,6);
Lines.Move Satırın yerini değiştirir. Memo1.Lines.Move(2,3);
Lines.IndexOf Verilen değerin memoda kaçıncı satırda olduğunu verir. Değeri bulamazsa -1
dönderir. Memo1.Lines.IndexOf('Bende');
Lines.SaveToFile Memodaki yazıyı dosyaya kaydeder. Memo1.Lines.SaveToFile('fsw.txt');
Lines.LoadFromFile Memoya dosyadan bilgi yükler. Memo1.LoadFromFile('fsw.txt');
WantReturn TRUE ise enter tuşu imleci bir alt satıra geçirir
WantTab Tab tuşu normalde form üzerindeki nesneleri dolaşmak için kullanılır. TRUE değerinialırsa bu özelliğini kaybeder ve memo içinde kullanılmaya başlanır.
ScrollBars Memo içindeki yazılar memoya sığmadığı zaman kaydırma çıbukları ekler.
TButton Nesnesi
Komut düğmeleridir.
Cancel TRUE ise cancel tuşu bu button için kullanılır.
Default TRUE ise enter tuşu bu button için kullanılır.
ModalResult Buttona basıldığında çeşitli sonuçlar dönderebilir. Seçilene göre değişik komutlar çalışabilir.
TCheckBox Nesnesi
Seçenek kutucuklarıdır.
AllowGrayed TRUE ise CheckBox'ın gri hale de gelmesini sağlar.
Checked TRUE ise onaylı demektir.
State CheckBox'ın durumunu öğrenmeye, değiştirmeye yarar.
TRadioButton
Radyo butonu şeklindeki seçenek kutucuklarıdır. Aynı taşıyıcı üzerindekilerden sadece bir
tanesi işaretlenebilir.
TListBox
Belli elemanları listelemeye yarar.
Column Elemanların kaç kolonla sıralanacağını gösterir.
ExtendedSelect TRUE ise parçalı olarak birden fazla eleman seçilebilmesine olanak verir.
Items Listedeki elemanları öğrenmeye ve değiştirmeye yarar. TListBox1.Items[3]:='Delphi';
Item.Add Yeni elemanlar eklenmesini sağlar. ListBox1.Items.Add('mamy');
Items.Insert Araya eleman ekler. ListBox1.Items.Insert(7, 'İstanbul');
Items.Count Eleman sayısını verir.
Items.ItemIndex Seçili nesnenin indexini verir.
Items.IndexOf Verilen elemanın kaçıncı olduğunu dönderir ListBox1.Item.IndexOf('Mami');.
TopIndex Ekranda en üstte görülen elemanın indeksini öğrenmeye ve değiştirmeye yarar.
ListBox1.TopIndex:=3;
Items.Move Elemanın yerini değiştirir. Items.Move(4, 7); 4.satırı 7.satıra taşır.
Items.Delete Eleman siler. ListBox1.Items.Delete(9);
Items.Exchange İki öğenin yerini değiştirir. ListBox1.Items.Exchange(5,2);
Items.LoadFromFile Elemanları dosyadan yükler.
Items.SaveToFile Elemanları dosyaya kaydeder. ListBox1.Items.SaveToFile('Dersler.dat');
IntegralHeight TRUE ise elemanın hepsi gösterilir. Parçalı, yarım gösterim kapatılır.
ItemHeight Elemanların yüksekliğini belirler. Style özelliği lbOwnerDrawFixed olmalı
MultiSelect TRUE ise çoklu seçime izin verir.
Style Elemanları nasıl göstereceğini verir.
lbStandart : Bütün elemanlar aynı yüksekliktedir.
lbOwnerDrawFixed: Bütün elemanlar aynı yükseklite olmak üzere ItemHeight ile düzenlenebilir.
lbOwnerDrawVariable: Elemanlar farklı yüsekliklerde ayarlanabilir.
SelCount Çoklu seçimlerde kaç tane elemanın seçildiğini verir.
Selected Belirli bir elemanın seçili olup olmadığını sorgular. Selected[7] gibi.
Sorted Elemanları sıralı olarak listeler.
TComboBox
Aşağıya doğru açılan liste kutusudur.
DropDownCount ComboBox açıldığında kaç satırın listelenceğini tanımlar.
MaximumLength Elemanların en fazla uzunluğunu verir.
Style ComboBox'ın tipini belirler.
Items TListBox'taki gibidir.
Text ComboBox'ın seçilen elemanını verir.
TGroupBox
Nesneleri gruplamaya yarar. Taşıyıcı bir nesnedir. Mesela bu nesne silinirse içindeki
nesnelerde silinir.
TPanel
Düz taşıyıcı bir nesnedir.
TRadioGroup
RadioButtonları gruplandırmaya yarar.
Items. Bu özellik ile butonlar eklenebilir.
ItemIndex İşaretli olan elemanın indexini verir
Colums Elemanların kaç sütünla dizileceğini belirtir.
TFrame
Form gibi bir taşıyıcı bir nesnedir. Ancak Frameler yeni bir nesneymiş gibi başka
formlarda kullanılabilir. Tek başlarına kullanılamazlar. Yeni bir frame oluşturmak için File
menüsünden New Frame seçilir. Frame oluşturulup kaydedildikten sonra component paletten Tframe nesnesiyle kullanılabilir. Yani önce Frame yaratmanız. gerekir. Tüm özellikleri formlar gibidir.
TAction
Belli komutları içinde barındıran bir nesnedir. Aynı komutlar çeşitli yerlerde kullanılacaksa
işleri kolaylaştırır. Çift tıkladığınızda açılan pencereden kendi komutlarınızı ve ya tanımlı
komutları seçebilirsiniz. Bu komutları kullanabilmek için nesnelerin Action kısmında
belirtmeniz yeterlidir.
TMainMenu
Ana menü oluşturmaya yarayan nesnedir. Çift tıkladığınızda veya Items özelliğine
tıkladığınızda açılan pencereden menüler tanımlanır. ImageList özelliği ile TImageList
nesnesiyle seçilen iconların menülerle kullanılmasını sağlar.
TImageList
Bu nesne çeşitli iconları, resimleri liste halinde toplamanızı ve onları icon
kullanlabilecek nesnelerde kullanmanızı sağlar. Çift tıkladığınızda açılan pencereden
iconlar seçilebilir. Iconların genişliği ve yükseklikleri ayarlanabilir. Image
kullanılabilecek nesnelerin(Mesela menülerde, speedbuttonlarda) ImageList özelliğinde
belirtirseniz ilk imaj ilk elemana, sonraki imaj sonraki elemana otomatik olarak atanır.
Kolay Gelsin (
|
|
|
Delphi Nesne Özellikleri |
Yazar: sariye - 26-07-2006, 11:17 - Forum: Programlama
- Yorum Yok
|
 |
Delphi Nesne Özellikleri
Delphi Nesnelerininin Temel Özellikleri
Nesnelerin özellikleri üç grupta toplanabilir.
Properties : Bunlar nesnelerin fiziki özellikleridir. Tasarım aşamasında düzenlenebilirler.
Adı, genişliği, rengi, hizalama şekli, font, erişilebilirlik,....
Methods : Bunlar nesneler üzerinde uygulanabilen işlemlerdir. Çalışma zamanı kullanılabilirler. Actiflik durumu, sürüklenme durumu, focus durumu, boyanma şekli, sınıf tipi, yenilenme durumu....
Events : Bunlar çalışma zamanında nesne üzerinde meydana gelen olaylardır. Nesne üzerinde fare ile tıklanması, bir tuşa basılması, nesnenin aktif duruma gelmesi, sürüklenmesi, ....
Hemen hemen tüm nesnelerde bazı özellikler ortaktır. Öncelikle bu özelliklerden bazılarını
açıklayalım açılayalım.
Name: Nesnenin ismidir. Nesne kullanılacağı zaman bu isimle çağrılır. Sadece tasarım aşamasında değiştirilebilir. Türkçe karekterler kullanılmamalıdır.
Caption: Nesnenin ekranda görülecek başlığıdır. Burada Türkçe karekterleri kullanabilirsiniz.
Align: Nesnenin hizalanacağı(konuçlanacağı) biçimi belirler. Nesnenin taşıyıcısının boyutları
değiştiğinde nesnenin boyutları da değişir. Left değerini seçersek nesne taşyıcının en soluna
hizalanacaktır.
alTop Üste
alLeft Sola
alRight Sağa
alBottom Alta
alNone Hizalama yapılmaz
alClient Tümünü kaplar
Anchors: Bu da nesnenin hizalanmasını sağlar. Align'dan farkı nesnenin kenar değerlerinin
sabit kalmasıdır. Yani nesne sağ kenardan tasarladığımız biçimde kalmasını istiyorsak
right'ı seçmeliyiz. Taşıyıcının boyutları değişsede nesnemiz sağ kenardan hep aynı uzaklıkta
kalacaktır.
Action: Nesne üzerinde kullanılacak eylem grubunu belirtir.(TActionList nesnesinde daha
ayrıntılı açıklanacak).
Color: Nesnenin rengidir
Enabled: Nesnenin erişilip erişilmeyeceğini gösterir. True: Erişilebilir, False: Erişilemez
Hight: Nesnenin piksel olarak yüksekliğidir.
Width: Nesnenin piksel olarak genişliğidir.
Left: Nesnenin sol kenarının kaçıncı pikselden başlayacağını gösterir. Bu sayı nesnenin
taşıyıcısına bağlıdır.Yani ekranın en solundan itibaren değildir.
Top: Nesnenin üst kenarının kaçıncı pikselden başlayacağını gösterir. Aynı left gibidir.
Visible: Nesnenin görülüp görülmeyeceğini belirler. True : Görülebilir, False :Görülemez
Cursor: Fare imlecinin nesne üzerinde iken alacağı şekildir. 0'dan -21'e kadar bir değer
verilebilir.
Font: Nesnenin fontunu gösterir.
Name Fontun ismidir
Color Fontun rengidir
Size Fontun büyüklüğüdür
Height Fontun yüksekliği
Style Font şekli(Bold, italik, altçizgili gibi)
Pitch Karekterlerin genişlikleridir
Hint Nesnenin kısa açıklamasıdır(ipucu)
ShowHint Nesne için Hint kısmına yazılan ip ucunun gösterilip gösterilmeyeceğini anlatır.
TabStop Nesnelere Tab tuşu ile ulaşılıp ulaşılmayacağını gösterir
TabOrder Tab tuşunun sıralamasıdır. Nesnelere tab ile erişirken sırayı istediğiniz gibi
değiştirebilirsiniz
Owner Sadece çalışma zamanı kullanılır. Nesnenin taşıyıcısı hafızadan atıldığında nesneninde atılmasını sağlar
Parent Taşıyıcının bazı özelliklerinin(font, renk, görünebilirlik, ulaşılabilirlik gibi) nesneye geçmesini sağlar
HelpContex Nesne için F1 yardım tuşuna basıldığında yardım dosyasındaki ilgili sayfanın
numarasıdır.
PopupMenu Nesne üzerinde farenin sağ tuşuna basıldığında açılacak menüyü gösterir.
Tag Nesne için bir işaretçi olarak değerlendirilebilir. Tamsayı bir değer verilmelidir.
Mesela 7 tane textbox varsa bunların tag değerleri kullanılarak hangi nesnenin kullanıldığı
anlaşılabilir.
Hide Visible gibidir. Nesneyi gizler.
Show Nesneyi tekrar görünür kılar.
SetFocus Kontrolü istenen nesneye aktarır. Tab tuşu gibi
CanFocus Kontrolün nesneye geçirilip geçirilmeyeceğini sorgular.
Focused Kontrolün nesnede olup olmadığını sorgular. Dönen değer True ise kontrol nesnededir.
Ctl3D Nesnenin üç boyutlu gösterilip gösterilmeyeceğini anlatır.
BorderStyle Nesnenin çerçevesinin nasıl olacağını belirler.
CamponentIndex Form üzerindeki nesnelere çalışma zamanında bir index verilebilir.
DockSite Nesnenin konuşlandırılıp(sağa, sola, yukarı, aşağı-taşınabilir düğmler gibi)
konuşlandırılamayacağını anlatır.
DockOrientation Konuşlandırmanın nasıl yapılacağını anlatır. DoNoOrient, DoHarizontal,
DoVertical değerlerini alabilir.
LRDockWidth Yatay konuşlandırmadaki genişlik
TBDockHeight Dikey konuşlandırmada yükseklik
UnDockWidth Konuşlandırma geri alındığındaki genişlik
UnDockHeight Konuşlandırma geri alındığındaki yükseklik
DragCursor Sürükleme sırasında farenin alacağı şekildir.
DragKind Sürüklemenin nasıl yapılabileceğini gösterir:
dkDrag : Nesneye sürükle ve bırak işlemi uygulanabilir.
dkDock: Nesneye sürükle ve konuçlandır işlemi uygulanabilir.
DragMode Sürüklemenin işleminin nasıl olacağını anlatır.
dmManuel: Sürüklemenin başlayabilmesi için kod gerekir(mousedawn olayında).
dmAutomatic: Sürüklemenin başlaması için kod gerekmez.
Dragging Bir nesne sürükleniyorsa True değerini alır.
RePaint Nesneyi yeniden çizer.
Refresh Nesneyi yeniler.
Free Nesneyi siler ve hafızadan atar.
Update Nesneyi yeniden günceller.
ScaledBy Nesne belli oranda büyütülüp küçültülebilir. ScaledBy(60/100) gibi.
Temel Nesne Olayları
OnClick Farenin sol tuşu ile tıklandığında meydana gelir. Bazı nesneler enter veya kısayol tuşuna basılması da bu olayı başlatır.
OnDoubleClick Farenin sol tuşuna çift tıklanmasıyla meydana gelir.
OnMouseDown Nesne üzerinde iken farenin tuşlarından birisine basılmasıyla meydana gelir.
Tam şekli:
OnMauseDown( Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer )
Görüldüğü gibi bu olayın üç tane parametresi vardır.
Button: Farenin hangi tuşuna basıldığını anlatır. MbRight, MbLeft, MbMiddle değerlerini
alabilir.;
Shift: Shift, Alt, Ctrl tuşlarının durumunu verir. SsShift, SsAlt, SsCtrl değerlerini alır.
X,Y: Fare imlecinin nesne içindeki(ekrana göre değil) koordinatlarıdır. Nesnenin Sol üst
köşesinin koordinatları 0,0 dır.
OnMouseMove Fare nesne üzerinde hareket ederken meydana gelir. Paremetreleri OnMouseDown ile aynıdır.
OnMouseUp Fare nesne üzerinde iken basılan tuşun bırakılmasıyla meydana gelir. Paremetreleri OnMouseDown ile aynıdır.
OnChange Nesne içindeki bilgilerde değişme olursa meydana gelir (EditBox kutusuna bir harf girilmesi gibi).
OnKeyPress Klavyeden bir tuşa basılmasıyla meydana gelir. Basılan karekter nesneye
gönderilmeden önce gerçekleştiği için basılan tuş kontrol edilebilir. Ancak sadece ASCII kodlu tuşları algılayabilir. Key parametresine sahiptir. ASCII değerleri için # işareti kullanılır. #0=boş karekter, #65='A'
OnKeyDown Klavyeden bir tuşa basılamsı sırasında ve basılı tutulduğu sürece meydana gelir. Klavyedeki tüm tuşaları kontrol edebilir. Key ve Shift parametreleri vardır.
VK_TAB, VK_RETURN, VK_PAUSE, VK_ESCAPE, VK_PRIOR(pageup), VK_NEXT(pagedawn) , VK_MULTIPLY(* tuşu), VK_ADD(+), VK_SUBTRACKT(-), VK_DECIMAL(.), VK_DIVIDE(/), VK_CAPITAL (capslock), VK_END, VK_HOME, VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN, VK_NUMLOCK, VK_INSERT,
VK_DELETE, VK_BACK, VK_SHİFT, VK_CONTROL
VK_A .....VK_Z : A .....Z tuşları
VK_0 ..... VK_9 : 0.....9 tuşları
VK_F1 ....VK_F12 : F1....F12 tuşları
VK_NUMPAD0....VK_NUMPAD9 : 0....9 tuşları-klavyenin sağındaki
Shift SsShift, SsAlt, SsCtrl, SsLeft(farenin sol tuşu), SsRight, SsMiddle, SsDouble
(farenin sağve sol tuşlarına aynı anda basılması)
On KeyUp Klavyeden basılan tuşun bırakılmasıyla meydana gelir. OnKeyDown gibidir.
OnEnter Nesnenin aktif olmasıyla meydana gelir.
OnExit Nesnenik aktifliğinin sona ermesiyle meydana gelir.
OnStartDrag Bir nesnenin sürüklenmeye başlanmasıyla meydana gelir(sürüklenen nesne üzerinde).
Source : Sürüklenen nesneneyi gösterir.
OnEndDrag Bir nesnenin süklenme işleminin sona ermesi ile meydana gelir(sürüklenen nesne üzerinde).
Target : Üzerine bırakılma işlemi uygulanan hedef nesneyi anlatır.
OnDragDrop Sürüklenen nesnenin başka bir nesne üzerine bırakılmasıyla meydana gelir(hedef nesne üzerinde).Accept=True ise bırakılma işlemi yapılabilir demektir(her nesne her nesne üzerine bırakılamaz).
DragState parametresi sürükleme işleminin durumunu anlatır.
dsDragEnter: Sürükleme yeni başlar
dsDragLeave:Sürükleme sona erdi
dsDragOver : Sürükleme devam ediyor
OnDragOver Nesne üzerinde sürükleme işlemi sırasında meydana gelir.
OnStartDock Konuslandırma başladığında meydana gelir.
Bu özellikler nesnelerin çoğunda mevcuttur.
Kolay Gelsin
|
|
|
C++ ta veritabanına kaydetme silme ileri vs. |
Yazar: sariye - 26-07-2006, 11:10 - Forum: Programlama
- Yorum Yok
|
 |
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// Table1->Open(); // tabloyu açmak için
// Table1->Active = true; // tabloyu açmak için
Query1->Open();
// () fonksiyon olduğunu gösterir () olmazsa program çalışmaz
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Bu satırı silme.
Table1->Active = !Table1->Active; // tabloyu aç,kapat için
// tabloyu aç,kapat için aşagıdaki kodlarda kullanılabilir
/*
if( Table1->Active )
Table1->Active = false;
else Table1->Active = true;
*/
// tabloyu aç,kapat için aşagıdaki kodlarda kullanılabilir
/* Table1->Active = true; Table1->Open(); */
// Table1->Active = false; Table1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Table1->First(); // ilk kayıt
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Table1->Prior(); //önceki kayıt
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Table1->Next(); // sonraki kayıt
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Table1->Last(); // son kayıt
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Table1->MoveBy(5); // o anda bulunduğu yerden 5 kayıt sonrasına gider
// (-5) olsaydı oanda bulunduğu yerden 5 kayıt geriye giderdi
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Table1->Delete(); // Kayıt sil
// Table1->DeleteTable(); // Tabloyu sil
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Table1->Insert(); // O anda imlecin bulunduğu yere yeni kayıt ekler.
Table1->Append(); // Tablonun sonuna yeni kayıt ekler.
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Table1->Post(); // kaydet
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
Table1->Edit(); // düzelt
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
Table1->Refresh(); // yenile
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
/* TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
Variant locvalues[1];
locvalues[0] = Variant("Ocelot");
locvalues[1] = Variant(2);
// CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), Opts);
Table1->Locate("NAME;SIZE",VarArrayOf(locvalues, 1), Opts);
// locate yerleşmek arama için kullanılır
*/
Table1->Edit();
Table1->FieldByName("SIZE")->Value = 12;
Table1->Post();
// Table1->EmptyTable(); // tablonun içini boşaltır
// Table1->LockTable(); // tabloyu kilitlemek için kullanılır
// Table1->RenameTable();
// Table1->
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)
{
if(Table1->Active)
Table1->Active = false;
else Table1->Active = true;
}
//---------------------------------------------------------------------------
|
|
|
Ağ üzerinde mesajlaşmak için |
Yazar: sariye - 26-07-2006, 10:56 - Forum: Programlama
- Yorum (2)
|
 |
AÐ ÜZERİNDEN MESAJ GÖNDERMEK
Bu örnek sayesinde ag ortaminda bilgisayarlar arasi mail ve mesaj gönderilebilir. Ayni zamanda bir server programi da durumu ve olaylari göstermekedir.
Option Explicit
Dim ID%
Private Function WSend(i%, Text$)
If Winsock(i).State = 7 Then
Winsock(i).SendData Text
Dim t As Long
t = Timer
Do While t + 0.5 > Timer
DoEvents
Loop
End If
End Function
Private Sub Form_Load()
If Winsock(0).State <> 0 Then Winsock(0).Close
'Kullanilacak Port
Winsock(0).LocalPort = 10567
'Dinle
Winsock(0).Listen
End Sub
Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'Aktif Kullaniciyi tanimla
Dim i%
START:
For i = 1 To User.ListItems.Count
User.ListItems.Item(i).SubItems(1) = Winsock(User.ListItems.Item(i)).State
If User.ListItems.Item(i).SubItems(1) <> 7 Then
Winsock(User.ListItems.Item(i)).Close
Unload Winsock(User.ListItems.Item(i))
User.ListItems.Remove i
GoTo START
End If
Next i
'Baglan
If Index = 0 Then
For i = 2 To User.ListItems.Count
If User.ListItems(i) > User.ListItems(i - 1) + 1 Then
Load Winsock(User.ListItems(i) - 1)
Winsock(User.ListItems(i) - 1).LocalPort = 10567
Winsock(User.ListItems(i) - 1).Accept requestID
Exit Sub
End If
Next i
If User.ListItems.Count > 0 Then
If User.ListItems(1) >= 2 Then
Load Winsock(User.ListItems(1) - 1)
Winsock(User.ListItems(1) - 1).LocalPort = 10567
Winsock(User.ListItems(1) - 1).Accept requestID
Exit Sub
End If
Load Winsock(User.ListItems.Count + 1)
Winsock(User.ListItems.Count + 1).LocalPort = 10567
Winsock(User.ListItems.Count + 1).Accept requestID
Exit Sub
End If
Load Winsock(1)
Winsock(1).LocalPort = 0
Winsock(1).Accept requestID
End If
End Sub
Private Sub Winsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
'Aktif kullaniciyi tanimla
Dim i%
START:
For i = 1 To User.ListItems.Count
User.ListItems.Item(i).SubItems(1) = Winsock(User.ListItems.Item(i)).State
If User.ListItems.Item(i).SubItems(1) <> 7 Then
Winsock(User.ListItems.Item(i)).Close
Unload Winsock(User.ListItems.Item(i))
User.ListItems.Remove i
GoTo START
End If
Next i
'Mesaj al
Dim Message$
Winsock(Index).GetData Message
Call SetList(Mid(Message, 1, 1) & Index & Mid(Message, 2, Len(Message)))
If Mid(Message, 1, 1) = 4 Then Exit Sub
'Mesaji paylastir
If Mid(Message, 1, 1) = 1 Then
Dim MFrom$, MTo$, MText$, ok%
MFrom = Mid(Message, 2, InStr(1, Message, "%") - 2)
MTo = Mid(Message, InStr(1, Message, "%") + 1, InStr(1, Message, "$") - InStr(1, Message, "%") - 1)
MText = Mid(Message, InStr(1, Message, "$") + 1, Len(Message))
ok = 0
For i = 1 To User.ListItems.Count
If LCase(User.ListItems(i).SubItems(2)) = LCase(MTo) Or LCase(MTo) = "alle"Then
If LCase(User.ListItems(i).SubItems(2)) <> LCase(MFrom) Then
WSend User.ListItems.Item(i), MText
SetList "3%" & User.ListItems(i).SubItems(2) & "$" & MText
ok = 1
Exit Sub
End If
End If
Next i
'Kullanici belli degil
If ok = 0 Then
WSend Index, "Kullanici aktif degil"
SetList "3%" & MFrom & "$" & "Kullanici aktif degil"
End If
End If
End Sub
Function SetList(Message$)
Dim litem As ListItem
Select Case CInt(Mid(Message, 1, 1))
Case 1, 4: ID = ID + 1
If LMessage.ListItems.Count > 13 Then LMessage.ListItems.Remove 1
Set litem = LMessage.ListItems.Add(, , ID)
litem.SubItems(1) = Mid(Message, 3, InStr(1, Message, "%") - 3)
litem.SubItems(2) = Mid(Message, InStr(1, Message, "%") + 1, InStr(1, Message, "$") - InStr(1, Message, "%") - 1)
litem.SubItems(3) = "<- " & Mid(Message, InStr(1, Message, "$") + 1, Len(Message))
Case 2: Set litem = User.ListItems.Add(, , Mid(Message, 2, 1))
litem.SubItems(1) = Winsock(CInt(Mid( Message, 2, 1))).State
litem.SubItems(2) = Mid(Message, 3, Len(Message))
Case 3: If LMessage.ListItems.Count > 13 Then LMessage.ListItems.Remove 1
Set litem = LMessage.ListItems.Add(, , ID)
litem.SubItems(1) = Mid(Message, 3, InStr(1, Message, "$") - 3)
litem.SubItems(2) = "MailServer"
litem.SubItems(3) = "<- " & Mid(Message, InStr(1, Message, "$") + 1, Len(Message))
End Select
End Function
|
|
|
|