اذهب إلى المحتوى

E.Nourddine

الأعضاء
  • المساهمات

    1458
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    18

أجوبة بواسطة E.Nourddine

  1.  

    عند رسم أي شكل على برنامج Photoshop يمكن تعديل القيم الافتراضية للشكل عن طريق القائمة العلوية أسفل قائمة العناوين Menu، والتي تحتوي كل ما يخص بالشكل Shape،تمثلها الصورة التالية:

    mati4.thumb.jpg.436f6ed63f2a6045722f96b3

      كما يمكن التحكم في عرض الخط عن طريق  weight :

    lSuM9.thumb.jpg.063a2d1de4cb5201c8c542dd

    مما ينتج عنه:

    GemzS.thumb.jpg.1e8baa4cac442ddc486e8afc

  2. للسماح لك باستعمال AddNew على BindingListالخاصة بـ BankAccount عليك التوفر على خاصية New الخاصة بـ Constrctor، كما هو موضح في الكود التالي:

    Public Class BankAccount
        Public Property BSB As String
        Public Property Account As String
    
        Public Sub New()
            'Do initialization here if you need
            'Or Remove the constructor if you don't need any initialization.
        End Sub
    End Class

    كما أنك لن تحتاج لاستعمال accountList.AllowNew = True، يكفي أن تستعمل(BindingList(Of T ) كـ DataSource:

    Private accountList As BindingList(Of BankAccount)
    Private Sub frmAccountLoad_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        accountList = New BindingList(Of BankAccount)
        dgvAccounts.DataSource = BS
    End Sub

    إذن يمكنك استعمال()accountList.AddNew  في أي مكان تريد من الكود:

  3. جملة الاستعلام المستعملة في كودك السابق، وجب أن تكون على الشكل التالي:

    Dim con As dbConn = New dbConn()
    Dim SqlSelect As String
    SqlSelect = "SELECT * FROM login Where user_id= @parmUserID"
    Dim cmd As New OleDbCommand(SqlSelect, con.oleconnection)
    cmd.Parameters.AddWithValue( "parmUserID", WorkerID_.Text )

    بالنسبة للمتغير النصي InsertSQL  والذي يحتوي على جملة استعلام تأخذ قيمها من خلال القيم الموجودة بالحقول النصية، أنصحك باستخدام هذه الطريقة في ربط Values بجملة الاستعلام مع الحقول النصية، هذه أوضح وأكثر تنظيما من طريقتك المُستعملة والتي تعتمد على Concatenation، بهذا الشكل:

    Dim InsertSQL As String
    InsertSQL = "INSERT INTO login (user_id, user_role, user_password, user_status) "
    InsertSQL &= " VALUES ( @parmUser, @parmRole, @parmPwd, @parmStatus )"
    Dim cmdInsert As New OleDbCommand(InsertSQL, con.oleconnection)
    cmdInsert.Parameters.AddWithValue( "parmUser", WorkerID_.Text )
    cmdInsert.Parameters.AddWithValue( "parmRole", "Worker" )
    cmdInsert.Parameters.AddWithValue( "parmPwd", "12345" )
    cmdInsert.Parameters.AddWithValue( "parmStatus", 1 )
    
    
    Dim SqlUpdate As String
    SqlUpdate = "INSERT INTO Worker (ID, WorkerID, WorkerName, DoB, Address, Phone, Email, CompanyName, PassportNum, PassportExp, VisaExp, VisaStatus, user_id) "
    SqlUpdate &= " VALUES ( @parmID, @parmName, @parmDoB, etc... ) "
    Dim cmdUpdate As New OleDbCommand(SqlUpdate, con.oleconnection)
    cmdUpdate.Parameters.AddWithValue( "parmID", WorkerID_.Text )
    cmdUpdate.Parameters.AddWithValue( "parmName", WorkerName.Text )
    cmdUpdate.Parameters.AddWithValue( "parmDoB", DoB.Text )
    -- etc with the rest of the parameters.

     

  4. هناك ثلاث طرق لاستخدام Web Service على بيئة التطوير Vb.net:

    استعمال String:

    وهي أن تحليل المدخلات كقيمة نصية، ثم تتفحصها، مثال:

    [WebMethod]
    public bool ImportXML(string xmldoc)
    {
            /*XML تحليل القيم النصية وتحويلها إلى كائنات */
    }

    ربطها بـClass:

    MSDN

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope 
        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
        <SubmitClass
          xmlns="http://msdn.microsoft.com/AYS/XEService">
          <input> 
            <child1>foo</child1> 
            <child2>bar</child2> 
          </input> 
        </SubmitClass>
      </soap:Body>
    </soap:Envelope>

    مثال:

    public class MyClass
    {
        public string child1;
        public string child2;
    }
    
    [WebMethod]
    public void SubmitClass(MyClass input)
    {
        // Do something with complex input parameters
        return;
    }

    استعمال XmlElement:

    [WebMethod]
    public void SubmitXml(XmlElement input)
    { 
       return;
    }
    

    للاستفادة حول الموضوع أكثر Msdn.

  5. من الواضح أن اسم Id كحقل غير معترف به من قبل dt، لذا وجب عليك استعمال أسماء حقول صحيحة متواجدة بقاعدة البيانات، حتى لا تقع في هذا الخطأ، مثل:

    dr("Product ID")=
    dr("Product Name")=
    dr("Price")=
    dr("Quantity")=

    أو يمكننا استعمال القيم الترتيبية للحقول:

     dr(0)=
        dr(1)=
        dr(2)=
        dr(3)=

    ومن وجهة نظر، أن تستعمل هذه الطريقة لربط قيم DataGridView [قيم لحقول نصية من نوع TextBox، بهذا الشكل:

    If Trim(txt_qty.Text) = "" Then
                MsgBox("Please insert quantity")
            Else
                Dim rnum As Integer = datagridviewname.Rows.Add()
                datagridviewname.Rows.Item(rnum).Cells("name_of_productid_column").Value = txt_id.Text
                datagridviewname.Rows.Item(rnum).Cells("name_of_productname_column").Value = txt_name.Text
                datagridviewname.Rows.Item(rnum).Cells("name_of_price_column").Value = txt_price.Text
                datagridviewname.Rows.Item(rnum).Cells("name_of_qty_column").Value = txt_price.Text
    End If

     

  6. على برنامج photoshop،  وكما هو الأمر على مختلف برامج Adobe المخصصة للتصميم، يتيح رسم أشكال shapes بمميزات مختلفة، ومن بين الإعدادات التي يرتكز على كل مصمم ما يدعى بـ Stroke الإطار وَ Fill الملء، حيث بالإمكان التحكم في كلا الخاصيتين.

    في حالتنا هذه سنستعمل خاصية الملء Fill وهي المسؤولة عن ضبط محتوى الشكل، كما تبين الصورة التالية:

    PGHzo.thumb.png.76c6efc07dfdabd5e4a8e0d4

    بعد تحديد الشكل، ومن خلال القائمة العلوية الخاصة بإعدادات الشكل، توجد خاصية Fill، سنختار قيمة بدون محتوى حتى نحصل على شكل بدون محتوى.

  7. الطريقة التي سننهجا للوصول إلى نتيجة المعادلة الكيميائية هي:

    (income + income => outcome) H2 + O2 => H2O

    أي أن جملة الاستعلام ستكون على الشكل:

    SELECT CONCAT(GROUP_CONCAT(CASE WHEN type='income' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + '), ' => ',
                 GROUP_CONCAT(CASE WHEN type='outcome' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + '))
                 AS reaction
    FROM tbl_reaction_item
    GROUP BY reid;

    تم استعمال GROUP By للتجميع الحقول حسب حقل معيّن.

    النتيجة النهائية للمعادلة:

    ╔══════════════════╗
    ║     reaction     ║
    ╠══════════════════╣
    ║ 2H2 + O2 => 2H2O ║
    ╚══════════════════╝

    استخدمنا:

    •  GROUP_CONCAT مع علامة + للحصول على الشكل العلمي لكتابة المعادلة.
    • CONCAT للحصول على الرمز <=.
    ╔══════╦═══════════╦═════════╦═════╦══════╗
    ║ reid ║ substance ║  type   ║ num ║ pos  ║
    ╠══════╬═══════════╬═════════╬═════╬══════╣
    ║    1 ║ H2        ║ income  ║   2 ║   1  ║       
    ║    1 ║ O2        ║ income  ║   1 ║   2  ║     
    ║    1 ║ H2O       ║ outcome ║   2 ║   1  ║
    ╚══════╩═══════════╩═════════╩═════╩══════╝

     

    النتيجة النهائية:

    ╔═════╦════════════╦═════════════╦══════════╦══════════════════╗
    ║ id  ║ condition  ║ phenomenon  ║  infor   ║     reaction     ║
    ╠═════╬════════════╬═════════════╬══════════╬══════════════════╣
    ║  1  ║ abcd123    ║ abcd123     ║ abcd123  ║ 2H2 + O2 => 2H2O ║
    ║  2  ║ wer        ║ wer         ║ wer      ║ (null)           ║
    ╚═════╩════════════╩═════════════╩══════════╩══════════════════╝

     

  8. أولا عليك ببداية حلقة التكرار بالعدد 1 وليس 3 لأنك تريد البدء بـ Number 1.

    و استعمالك لـ

     $num$i

    دون اللجوء إلى رابطة concatenation  وهي النقطة "." سيتسبب في رفع استثناء exception.

    وتكون الطريقة الصحيحة لفعل ذلك، كما يلي:

    $num1 = "Number 1";
    $num2 = "Number 2";
    $num3 = "Number 3";
    
    for ($i = 1; $i <=3; $i++) {
        $num = 'num' . $i;
        echo ${$num} . "<br>";
    }
    

    أو:

    <?php 
    $num1 = "Number 1";
    $num2 = "Number 2";
    $num3 = "Number 3";
    
    for ($i = 0; $i < 3; $i++) {
        echo ${"num".$i} . "<br>";
    }

    يمكن الحصول على نفس النتيجة، باستعمال مصفوفة تخزّن فيها القيم المناسبة للمتغيرات، ثم تتصفحها عن طريق حلقة التكرار for:

    $nums = array("Number 1", "Number 2","Number 3");
    for ($i = 0; $i <3; $i++) {
        echo $nums[$i] . "<br>";
    }

     

  9. الخطأ الوحيد في كودك هو استعمالك لـ absoulute عوض relative.

    عملت على تصحيح الكود ليكون بالشكل التالي:

    .bodyContent {
      position:relative;
      padding:20px;
      margin-bottom:50px;
    }
    
    .footer {
       position: relative;
       background-color:#333;
       width:100%;
       height:50px;
       margin-bottom:0px;
    } 

    خاصية position في ملف التنسيق css تتعلق بتموضع العنصر داخل العنصر المحتوي له، وتمتلك أربع قيم من الممكن أن تأخذها كقيم:

    • static
    • relative
    • fixed
    • absolute

    The position Property

  10. بالرغم من أن العنصر مخفي إل أنه يمكن الحصول على عرضه -height- من خلال مكتبة Jquery، وذلك من خلال الشفرة التالية:

    var previousCss  = $("#myDiv").attr("style");
    
    $("#myDiv")
        .css({
            position:   'absolute', //تتضمنها من قبل #myDivهذه الخاصية  يمكن الاستغناء عنها في حال كانت
            visibility: 'hidden',
            display:    'block'
        });
    
    optionHeight = $("#myDiv").height();
    
    $("#myDiv").attr("style", previousCss ? previousCss : "");

    ويعتبر المتغيّر optionHeight، كمتغير يحتوي على قيمة Height الخاصة بـ myDiv#.

  11.  

    <% @post.each do |p| %>
      <%= p.jpost_title %>
      <%= p.company.company_name %>
      <%= p.post_location %>
    <% end %>

    عليك استعمال delegate في رابط الجدولين، بهذا الشكل:

    #app/models/post.rb
    class Post < ActiveRecord::Base
       belongs_to :company
       delegate :company_name, to: :company #-> @post.company_name
    end
    

    مما يسمح لك باستخدام:

    <% @post.each do |p| %>
      <%= p.jpost_title %>
      <%= p.company_name %>
      <%= p.post_location %>
    <% end %>

    وحتى أضعك في الصورة بشكل وجيد، أظر إلى الرسم التالي المبين لبنية الجداول-كمثال- داخل قاعدة البيانات:

    post.company@ وجب التأكد من استعمال رابط بين الجدولين.

    يمكن الوصول إلى company عن طريق id ومن ثم اسنخراج جميع معلوماتها:

    zTPt0.thumb.jpg.ea08d541deb84998330b6b73

    للحصول على نتيجة عند استعمال post.company@ يجب التأكد من استعمال رابط بين الجدولين.

    يمكن الوصول إلى company عن طريق id ومن ثم استخراج جميع معلوماتها:

    @post.company_id #-> 1
    @post.company.company_name #-> "Test"
    
  12. لتوضيح المفهوم فـ after_create تعمل بعد حدث إدخال بيانات إلى قاعدة البيانات.

    و في كود الحقل name لم يتم تخزينه بعد:

    user = User.create(some_attiributes)
    user.name     #=> "Test name"
    
    user.reload
    user.name     #=> nilمما يحتم إعطاءه القيمة 

    في حال أردت إدخال قيمة name في قاعدة البيانات استعمل before_create والتي تعمل عكس الوظيفة السابقة أي قبل عملية التخزين في db.

    مثال، لنفترض وجود حقلين first_name و last_name:

    before_create :set_user_full_name
    
    def set_user_full_name
        self.name = "#{first_name} #{last_name}"
    end

    كحالة من الممكن الوقوع فيها، وهي عدم توفر المستخدم على قيم لـ fisrt_name  و last_name، يمكننا استخدام الكود التالي لتفادي أي نوع من رفع excepton  من خلال المتحكم Controller:

    class Users::RegistrationsController < Devise::RegistrationsController
      before_filter :set_name_param, only: [:create]
    
      private
      def set_name_param
        params[:user][:name] = "#{params[:user][:first_name]} #{params[:user][:last_name]}"
      end
    end

     

  13. من أساسيات الحياة أنّ الإنسان لا يمكن أن يمضي يومه بأكمله في العمل، وإن صادف ووجدت شخصا يعمل بشكل متواصل طيلة اليوم فاعلم أنه سيصاب بنوبة من الإرهاق والتعب من المجهود المبذول، وذلك لأنه يعمل بطريقة ستوصله إلى أقرب مستشفى لتلقي العلاج، لذلك ينصح المتخصصون في هذا المجال بضرورة الموازاة بين العمل والراحة، وكطريقة أجدها فعالة بشكل جيد -من خلال تجربة شخصية-، طريقة POMODORO، حيث تعتمد هذه التقنية على مبدأ أساسي بسيط:

    • أعمل 25 دقيقة وخذ مدة راحة تساوي 5 دقائق.
    • ثم أعد العملية بشكل متواصل إلى أن تنتهي ساعات العمل.

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

    هذا ستجدد نشاطك وتبقى حيوياً لوقت أطول مما يساعدك على الاستمرار  في العمل بشكل أفضل.

    بالنسبة لـ POMODORO يمكنك اقتناء هذا المؤقت الذي سيساعدك على ضبط أوقات العمل والراحة:

    tomatoe-timer.thumb.jpg.edafce2951bcdddd

    تقنية pomodoro

    • أعجبني 1
  14. في العموم ليس هناك وقت محدد لرفع السعر، بمعنى آخر لن يقدّر أحد سواك الحاجة والوقت المناسب لفعل ذلك، حيث أنّه مغامرة يجب حساب عقباتها جيداً قبل الإقدام عليها، فمثلاً من الممكن أن تفقد عميلاً مهما بسبب هذه الزيادة إذا لم يلمِس في عملك الأحقّية للسعر المعروض مقابل الساعة الواحدة، أضف إلى ذلك إمكانية مصادفة نوع من العملاء مستعد للمجادلة في أي شيء وبالتحديد في السعر.

    كوقت أعتبره مناسبا لرفع السعر بشكل تقريبي -  وهنا لن أتحدث عن مهارتك، سأعتبرك ماهراً ومحترفا في عملك - فهو وقت زيادة الطلب على العرض أي عندما تشعر أن هناك إلحاحا على طلبك للعمل وأنك بصدد العمل على مشروعين أو أكثر، يمكنك هنا رفع سعر ساعتك، مع مراعاة أن تكون درجة رفع السعر معقولة وغير مبالغ فيها، حيث ستضع حداً للمتلاعبين في عرض المشاريع وتعمل مع الجادين. ولا تنسى المحافظة على العملاء المداوِمين على العمل معك، فتجعل رفع السعر هو الغاية القصوى من عملك فتفقد عملاءك المخلصين للعمل معك.

    • أعجبني 1
  15. عادة ما تكون هذه المبيانات غرض عرض تقارير ومبيانات للمستخدم، حتى يتمكن وبصورة واضحة من استنباط الفرق بين قيم ومعايير بخصوص ظاهرة معينة أو نتائج وإحصائيات في مجال ما.

    كهذه المبيانات مثلاً:

    Multi-Series-Column-Chart.thumb.jpg.34bcBar-Chart-Competing-Websites.thumb.jpg.7Pie-Chart-Traffic-Sources.thumb.jpg.0efe

    ملاحظة: وظيفة المبيانات هي تسهيل استنتاج وإيصال المعلومة، بشكل هندسي جميل.

    تيقى وسيلة عرض مثل هذا النوع من التقارير على العميل، تختلف من مستقل لآخر:

    استعمال Balzamiq كبرنامج عرض وتصميم شكل التطبيق، حيث يوفر إمكانية عرض chart data أي المبيانات، كمثال:

    Column_Chart_for_Data_Visualization.jpeg

    والطريقة الثانية، والتي ستتطلب منك بعض الوقت و احتراف أحد برامج التصميم-وأنا لست مع هذه الطريقة-، حيث ستقوم بتصميم مبيانات بقيم عشوائية غرض عرضها للعميل.

    يلجأ غالبية المطورين إلى استعمال صور لمبيانات موجودة على النت لإعطاء العميل صورة تقريبية، ¦أو استعمال برنامج Balzamiq كما ذكرت من قبل.

     

  16. هذه بعض مميزات البرامج الأكثر استعمالاً :

    Adobe Premiere Pro:

    • مقاطع الفيديو والصوت معا...
    • دمج الفيديو أو الصوت (Mix).
    • تصحيح الألوان.
    • إضافة تأثيرات متنوعة، animation،...
    • سهل الاستعمال.

    Adobe After Effects:

    • متخصص بالأساس في إضافة التأثيرات الخاصة.
    • إضافة مجسمات 3D.
    • إضافة أي تأثيرات 2D من الممكن تخيلها.
    • تصحيح الألوان.

    Vegas Pro:

    • دمج الفيديو أو الصوت (Mix).
    • به العديد من مميزات Adobe Premier ولكن ليس كلها.
    • به العديد من مميزات Adobe After effects ولكن ليس كلها.
    • سهل الاستعمال.
  17. هذه بعض المحررات الخاصة بالفيديو، هناك الكثير وهذه أفضلها:

    VLMC: هو برنامج مهيكل بالأساس على برنامج VLC،ويقدم إمكانيات جيدة، هذا بالإضافة إلى أنه برنامج مفتوح المصدر، ويمكن من تحرير قطع فيديو عديدة.

    Lightworks : برنامج حديث، يمتلك مميزات تحرير الأشرطة ويتميز بإمكانية حفظ الفيديو بصيغة AVI.

    Avidemux: محرر فيديوهات بسيط، يُنصح به للتغيرات الطفيفة والسريعة.

    Kdenlive: محرر بمميزات كبيرة ، وهو مفتوح المصدر أيضا يمكن تنصيبه على بيئة Linux وماك أو اس.

  18. في النسخة الحديثة من FFmpeg، استعمل crop filter.

    عن طريق

    ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
    

    حيث :

    • out_w: هي عرض المستطيل الناتج.
    • out_h: طول المستطيل الناتج.
    • xو  y  :إحداثيات النقطة الأعلى جهة اليسار للمستطيل الناتج، أي نقطة بداية عملية القص.

    الصورة الأصلية(320x240):

    LAW6C.thumb.png.48e6de64de0552b68347177c

    مثال1:

    vqW5O.thumb.png.2b5a31ff9d1dd8866a779cdc

    لقص 60*80 ابتداءً من النقطة(200،100):

    ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
    

    مثال2:

    IwvRw.thumb.png.e9d4048604a4df48a8d781c6

    لقص الجزء السفلي جهة اليمين:

    ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
    

    أو:

    ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
    

    أو:

    ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
    

    مثال3:

    l1ILH.thumb.png.0b09dc3714a1a7804204aea7

    قص وإزالة 20px من أعلى الشريط و20أخرى من أعلاه:

     ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
    

     

    • أعجبني 1
  19. إذا كنت تريد جعل النص المحدد بمحاذاة اليمين، يمكنك استعمال الخاصية "HorizontalContentAlignment="Right وذلك داخل وسم Combobox، بهذه الطريقة:

    <ComboBox ... HorizontalContentAlignment="Right">

    وفي حال كنت تريد جعل محاذاة عناصر القائمة المنسدلة إلى اليمين يمكنك استعمال خاصية HorizontalContentAlignment الخاصة بعناصر القائمة ComboBoxItems:

    <ComboBox>
        <ComboBox.ItemContainerStyle>
            <Style TargetType="{x:Type ComboBoxItem}">
                <Setter Property="HorizontalContentAlignment" Value="Right"/>
            </Style>
        </ComboBox.ItemContainerStyle>
    </ComboBox>

    ولضبط محاذاة العنصر المحدد داخل القائمة فقط إلى اليمين، نستعمل:

    <ComboBox ... HorizontalContentAlignment="Right">
        <ComboBox.ItemContainerStyle>
            <Style TargetType="{x:Type ComboBoxItem}">
                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            </Style>
        </ComboBox.ItemContainerStyle>
    </ComboBox>

     

  20. الطريقة السهلة لفعل ذلك هي بتصميم إطار Stroke لدائرة على شكل خطوط Dashed Line، وذلك من خلال نافذة Stroke Panel:

    4jwZo_(1).thumb.jpg.2344b173492ab71b0891

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

    رسم القطعة الأساسية:

    19EGy.thumb.png.c14a1fd3fc4d089d3087fdb2

    من خلال القائمة Effect > Distort & Transform > Transform,

    ثم نحدد Preview.

    نكرر الشكل الأول بصورة دائرية، مما يتيح لنا الحصول على الشكل:

    PreviewiHF9j.thumb.png.ab02dc3745659e37a605cd63

    يمكن التحكم في المسافة الفاصلة بين شكلين متتابعين:

    Yb3Uq.thumb.png.7f593e93d78fa8ad88c93cbf

     

    • أعجبني 1
  21. هناك طريقتين اثنتين لفعل ذلك:

    • الأولى:

    باستخدام الأمر التالي:  Cmd+A, Cmd+C, Cmd+N.

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

    ملاحظة Cmd هي Ctrl على أنظمة ويندوز.

    • الثانية:

    يمكنك تحديد-عمل Selection- لطبقة ما أو جزء من المشروع عن طريق ضغط زر ctrl -أو Cmd- مع تحديد الجزء بالفأرة.

    لتظهر المعلومات في نافذة أخرى -info panel-، يمكن إظهار هذه النافذة من خلال الاختصار F8:

    tKEAX.thumb.png.55cdc859404444976ca1ac0b

  22. يمكن إدراج تعليق في عدة أسطر على لغة البرمجة Python بالشكل التالي:

    ''' 
    مرحبا بك في أكاديمية حسوب
    يمكنك اضافة عدد كبير من الأسطر واعتبارها كتعليق
    '''

    التعليق في سطر واحد:

    # تعليق مكون من سطر واحد

    يمكن أيضا استعمال التعليقات بجانب الكود، مع العلم أن التعليقات لا يتم اعتبارها كود برمجي:

    spam = 1  # تعليق بجانب الكود

     

    • أعجبني 1
×
×
  • أضف...