الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن الخلايا الثابتة في flexgrid

مغلق
بدأه فاطمة7 في 12 مايو 2006 · 7 رد · 704 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أخواني

سبق و إن سألت هذا السؤال و لم أتلقى الجواب الشافي أرجو ممن عنده أي فكرة عن الموضوع أن يسعفني بها

السؤال هو :

كيف أستطيع الكتابة يدوياً (ليس من خلال الكود)في الخلايا الثابتة في أداة flexgrid أو DBGrid ؟

لقد حاولت وضع مربع نص فوق كل خلية ثابتة و الكتابة فيه و لكن لم أعرف كيف أحرك مربعات النصوص بحركة شريطي التمرير العمودي و الأفقي بحيث يبدو الأمر و كأن الكتابة تتم على الخلايا الثابتة و ليس في مربعات النصوص .

#2

السلام عليكم ورحمة الله..

الأخت الكريمة..

لقد وضعت كود في موضوع سابق

(هل يمكن أدخال معلومات على FlexGrid)

كل ما عليك هو نقل الـ Events من الـ فليكس جريد الى TextBox

من سجن عكا وطلعــت جنـازة...

محمد جمجوم و فؤاد حجـازي

جازي عليهم يا شعبــي جازي...المندوب السامي وربعه عموما

محمد جمجوم ومع عطا الزير...فؤاد حجـــــــــازي عز الذخيـره

فلـسطـين

#3

شكرا لك أخي الكريم على تفضلك بالإجابة :

أرجو التوضيح أكثر ..! أنا أريد تحريك مربعات النصوص مع خلايا الجدول الثابتة عند تحريك شريطي التمرير

#4

السلام عليكم ورحمة الله

الأخت الكريمة ... ما زلت لم أفهم الطلب ... :(

ولكن عملت لك كود ارجو ان يكون ذا فائدة ... وكالعادة هو في دقائق اي يحتاج الى تطوير منك

يحتاج هاذ الكود الى فورم و مربع نص وفليكس جريد ...

Option Explicit
Dim strLastValue As String

Private Sub Form_Load()
With MSFlexGrid1
	.Rows = 10
	.Cols = 8
End With
End Sub

Private Sub MSFlexGrid1_EnterCell()
	Text1 = MSFlexGrid1.Text
End Sub

Private Sub MSFlexGrid1_RowColChange()
	With MSFlexGrid1
		.Text = Text1
		Text1.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth, .CellHeight
		strLastValue = .Text
		Text1 = .Text
	End With
	Text1.SetFocus
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
Dim vStr As String
	Select Case KeyCode
		Case Is = vbKeyDown
			vStr = "{DOWN}"
		Case Is = vbKeyUp
			vStr = "{UP}"
		Case Is = vbKeyHome
			vStr = "{HOME}"
		Case Is = vbKeyEnd
			vStr = "{END}"
		Case Is = vbKeyLeft
			vStr = "{LEFT}"
		Case Is = vbKeyRight
			vStr = "{RIGHT}"
	End Select
	If vStr > vbNullString Then
		.Text = Text1
		.SetFocus
		SendKeys vStr
		KeyCode = 0
	End If
End With
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
	Case Is = vbKeyEscape
		Text1 = strLastValue
End Select
End Sub

شارك معنا في (عمل مشاريع برمجيه بمشاركة جميع الأعضاء هنا, مشاريع برمجية كاملة)

تم تعديل هذه المشاركة بواسطة meynot في 14 مايو 2006 في 08:11

من سجن عكا وطلعــت جنـازة...

محمد جمجوم و فؤاد حجـازي

جازي عليهم يا شعبــي جازي...المندوب السامي وربعه عموما

محمد جمجوم ومع عطا الزير...فؤاد حجـــــــــازي عز الذخيـره

فلـسطـين

#5

كل الشكر لك اخي الكريم

نعم الكود السابق مفيد للكتابة في الخلايا العادية للأداة Flexgrid بواسطة مربع النص و طلبي هو الكتابة في خلايا السطر الثابت و خلايا العمود الثابت (خلايا السطر الأول و العمود الأول) للأداةflexgrid

أرجو أن أكون قد أوضحت

#6

السلام عليكم ورحمة الله

اختنا الكريمة لقد ارسلت ذلك الكود وأعلم انكي تريدين الكتابة على الأعمدة 0 والصفوف 0

والتعديل لم يكن صعباً

على اي حال ... أرجو ان تلاحظي الفروقات وذلك لكي تستفيدي من كيفية عمل مثل هذا وان شاء الله الى مشاريع اكبر الكود التالي هو من السابقو لم يحذف منه شي ولكن أضيف عليه بعض المتغيرات لك يكون ذلك الإجراء.

Option Explicit
Dim strLastValue As String

Private Sub Form_Load()
With MSFlexGrid1
	.Rows = 10
	.Cols = 8
End With
End Sub

Private Sub MSFlexGrid1_EnterCell()
	Text1 = MSFlexGrid1.Text
End Sub

Private Sub MSFlexGrid1_RowColChange()
	With MSFlexGrid1
		.Text = Text1
		Text1.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth, .CellHeight
		strLastValue = .Text
		Text1 = .Text
	End With
	Text1.SetFocus
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
Dim vStr As String
								 Dim vRow As Integer, vCol As Integer
	vRow = .Row
	vCol = .Col
	Select Case KeyCode
		Case Is = vbKeyDown
			vStr = "{DOWN}"
								vRow = vRow + 1
		Case Is = vbKeyUp
			vStr = "{UP}"
								 vRow = vRow - 1
		Case Is = vbKeyHome
			vStr = "{HOME}"
								 vCol = 0
		Case Is = vbKeyEnd
			vStr = "{END}"
								 vCol = .Cols - 1
		Case Is = vbKeyLeft
			vStr = "{LEFT}"
								 vCol = vCol - 1
		Case Is = vbKeyRight
			vStr = "{RIGHT}"
								 vCol = vCol + 1
	End Select
	If vStr > vbNullString Then
		.Text = Text1
		.SetFocus
'		SendKeys vStr
								If vRow < 0 Then vRow = 0
								If vCol < 0 Then vCol = 0
								If vRow > .Rows - 1 Then vRow = .Rows - 1
								If vCol > .Cols - 1 Then vCol = .Cols - 1
								.Row = vRow
								.Col = vCol
		KeyCode = 0
	End If
End With
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
	Case Is = vbKeyEscape
		Text1 = strLastValue
End Select
End Sub

شارك معنا في (عمل مشاريع برمجيه بمشاركة جميع الأعضاء هنا, مشاريع برمجية كاملة)

تم تعديل هذه المشاركة بواسطة meynot في 15 مايو 2006 في 06:03

من سجن عكا وطلعــت جنـازة...

محمد جمجوم و فؤاد حجـازي

جازي عليهم يا شعبــي جازي...المندوب السامي وربعه عموما

محمد جمجوم ومع عطا الزير...فؤاد حجـــــــــازي عز الذخيـره

فلـسطـين

#7

وهذا كود لكتابة الترويسة الى الجريد

Dim strHeader As String
With MSFlexGrid1
	.Rows = 10
	.Cols = 6
	strHeader = "Corner...|Name" & Space(30) & "|" & "Salary|" & "Position" & Space(10) & "|" & "Date" & Space(10) & "|" & "Total" & Space(5)
	MSFlexGrid1.FormatString = strHeader
End With

وان كنت تودين الكتابة عليه حددي التالي

.row=0
.col=1
.text="WHATEVER"
وهكذا على باقي الحقول

من سجن عكا وطلعــت جنـازة...

محمد جمجوم و فؤاد حجـازي

جازي عليهم يا شعبــي جازي...المندوب السامي وربعه عموما

محمد جمجوم ومع عطا الزير...فؤاد حجـــــــــازي عز الذخيـره

فلـسطـين

#8

أخي الكريم :

لقد وفيت بالغرض المطلوب و زيادة

أكرر شكري و امتناني

هذا الموضوع مغلق.

مواضيع مشابهة