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

أبحث عن كيفيت إستعمال QRLABEL بطريقة عمودية

مغلق
بدأه HALTDODO في 27 مارس 2005 · 5 رد · 673 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إيها الاخوة

مشكلتي اني اريد إستعمال QRlabel بطريقة عمودية في الطبعة

أرجو المساعد عاجل جدا

وفقكم الله جميعا دمتم لي العام

و بالمناسبة أشكر الاخ عروة أنا اعتبرك روح هذا المنتدى و منك نستفيد بضلك استطعت ان اخطو خطوات جبار في دلفي مع اني جديد في لغة الدلفى و قد قمت بإنشاء برنامج جد فعال للمؤسسة التي اشتغل فيها و هذا كله بفضل تعليماتك و توصياتك و نصائحك و مجمل مشاركاتك في هذا تلمنتدى

حفضك الله ياعروة :(

#2

شكرا HALTDODO على كلماتك الرقيقة والتي أعتز بها جدا

..

أتمنى لك التوفيق والنجاح ..

بالنسبة لسؤالك لاأظن أنك ستجد طريقة جاهزة لعمل ذلك من مكونات QRlabel . ولكني لجأت مرة لحيلة من اجل موضوع مشابه ,

وهي تصغير عرض الQRlabel وزيادة إرتفاعة مع التأكد من وجود الخاصة wordwarp مضبوطة إلى true , بالإضافة إلى ضبط Autosize إلى false . ولكن المشكلة أنه يجب الفصل بين كل حرف وآخر ب بالمحرف #13 الذي يعني سطر جديد :

بإمكانك عمل إجراء للفصل بين كل حرف وحرف بفراغ كالتالي :

أولا عرف الإجراء :

function TForm1.dospace(s: string): string;
var i,l:integer;
begin
l:=length(s);
i:=l;
while i>1 do
begin
Insert(#13,s,i);
i:=i-1;
end;
result:=s;
end;

ثم للإستدعاء يصبح :

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
beginQRLabel1.AutoSize:=false;
QRLabel1.WordWrap:=true;
QRLabel1.Width:=25;
QRLabel1.Height:=255;;
QRLabel1.Caption:=dospace('HELLO EVERY BODY');
end;

يتوقع هنا أن تستبدل العبارة Hello every body بمعلومات تجلب من الجدول .

مثلا :

QRLabel1.Caption:=dospace(Table1.FieldByName('FirstName').AsString);

هذه الشفرة ستختلف حسب برنامجك , ولكن المهم أن تنفذ عند عرض التقرير (FormShow ) مثلا

الشفرة النهائية المقترحه ستكون كالتالي :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, QuickRpt, QRCtrls, ExtCtrls, DB, DBTables, DBCtrls;

type
  TForm1 = class(TForm)
    QuickRep1: TQuickRep;
    QRLabel1: TQRLabel;
    Button1: TButton;
    Table1: TTable;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    procedure FormShow(Sender: TObject);
  private
  function dospace(s:string):string;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.dospace(s: string): string;
var i,l:integer;
begin
l:=length(s);
i:=l;
while i>1 do
begin
Insert(#13,s,i);
i:=i-1;
end;
result:=s;
end;

procedure TForm1.FormShow(Sender: TObject);
var s:string;
begin
QRLabel1.AutoSize:=false;
QRLabel1.WordWrap:=true;
QRLabel1.Width:=25;
QRLabel1.Height:=255;
QRLabel1.Caption:=dospace(Table1.FieldByName('FirstName').AsString);
end;

end.

تم تعديل هذه المشاركة بواسطة ORWA في 28 مارس 2005 في 00:12

#3

شكرا أخ عروة سأعمل بلاكواد الذي إقترحتهم و أكون لك فاضلا إذا امكن إعطائي ملفات على شكل ZIP و هذا لربح الوقت

شكر و جزيل الشر :lol:

#4

عفوا أخ عروة لقد كتبت الشر بدلا عن الشكر

اكرر لك شكري الخالض و إعتذاري و إمتناني لك على مساعدتك لي

#5

أخ عرة لقد قمت بتطبيق الاكواد التي تلقينها منك لكنها صالحة للفرنسية او الانجليزية فقط لكن باللغة العربية كانت كما يلي:

دلفي نكتب :

د

ل

ف

ي

و انا اريدها ان تكتب عمودية ملتسقة كتابة عادية لكن عمودية

و لك جزيل الشكر

#6

كلامك صحيح , المشكلة هي مع اللغه العربية ..

علينا البحث عن طريقة أخرى

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

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