لغة الدالفي delphi كل ما يتعلق بالدالفي و الباسكال

إضافة رد
قديم 24-09-2010, 03:57 PM
  #1
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
12 DELPHI ; Astuces


Sous cette rubrique, je vais essayer de poster des astuces pratiques et qui fonctionnent avec les différentes versions de Delphi. L'astuce sera bien rédigée, commentée et le source indenté

Toute critique ou demande d'explication est la bienvenue


ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 24-09-2010, 04:13 PM
  #2
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

Voici une technique qui vous permette de rafraîchir votre dbgrid sans perdre la ligne en cours

Vous commencez par créer une classe qui hérite de la classe TDBgrid, vous lui affecter le dataset, la position de la ligne en cours, vous faites appel à la méthode refresh, puis c'est l'opération inverse qui sera faite

كود:
THackDBGrid = class(TDBGrid)
 
procedure Refresh_PreservePosition;
 var
   rowDelta: Integer;
   row: integer;
   recNo: integer;
   ds : TDataSet;
 begin
   ds := THackDBGrid(DBGrid1).DataSource.DataSet;
 
   rowDelta := -1 + THackDBGrid(DBGrid1).Row;
   row := ds.RecNo;
 
   ds.Refresh;
 
   with ds do
   begin
     DisableControls;
     RecNo := row;
     MoveBy(-rowDelta) ;
     MoveBy(rowDelta) ;
     EnableControls;
   end;
 end;
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 24-09-2010, 04:56 PM
  #3
ليلى الحياة100
VIP_MEMBRE
مشرفة سابقة
 الصورة الرمزية ليلى الحياة100
 
تاريخ التسجيل: 01-07-2008
الدولة: الجزائر
المشاركات: 3,712
ليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداعليلى الحياة100 عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

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

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





ليلى الحياة100 غير متواجد حالياً  
رد مع اقتباس
قديم 28-09-2010, 10:13 AM
  #4
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

Salam

Je vous présente la deuxième astuce, il s'agit d'un bout de code qui vous permet de controler les touches majuscules et ver num par programmation

كود:
procedure ToggleNumLock;
 var
    KeyState: TKeyboardState;
 begin
    //note: Use VK_CAPITAL for Caps Lock
 
    GetKeyboardState(KeyState) ;
 
    //simulate key events (down + up)
    if (KeyState[VK_NUMLOCK] = 0) then
    begin
      Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or 0, 0) ;
      Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;
    end
    else
    begin
      Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or 0, 0) ;
      Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;
    end;
 end;
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 09-10-2010, 07:11 AM
  #5
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

Salam

ASTUCE N°03 : Comment désactiver le menu surgissant du composant EDIT

La troisième astuce consiste à désactiver le menu surgissant (popup) qui apparait lorqu'on clic avec le bouton droit sur le composant Edit. Dans beaucoup de situations on n'a pas besoin de ce menu, voici une technique très simple pour qu'il disparaisse
كود:
procedure TForm1.Edit1ContextPopup(
    Sender: TObject;
    MousePos: TPoint;
    var Handled: Boolean) ;
 begin
    //disable default context popup
    Handled := True;
 end;
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 10-10-2010, 12:58 PM
  #6
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

Salam

ASTUCE N°04 : Comment parcourir les champs d'édition par l'appui de la touche "entrée" dans un formulaire


Il arrive très souvent que l'on veuille donner le focus au contrôle suivant (dans l'ordre spécifié par la propriété TabOrder) dans un formulaire à condition que ce contrôle ait TabStop à true. Nous utilisons ici un gestionnaire d'évènement commun à tous les contrôles TEdit qui passera au contrôle suivant si nous appuyons sur Entrée


كود:
procedure TMainForm.GoToNextEditControls(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then 
PostMessage(self.Handle,WM_NEXTDLGCTL,0,0);
//Nous pouvons aussi utiliser : perform(WM_NEXTDLGCTL,0,0);
end;

التعديل الأخير تم بواسطة ING_HYD ; 10-10-2010 الساعة 01:08 PM
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 29-10-2010, 06:28 PM
  #7
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

Salam

ASTUCE N°05 : Ouvrir une table ADO

Les composants ADO ont fait leur preuve et ne sont plus à démontrer. Cette procédure est très simple d'emploie elle se contente d'ouvrir une table ADO et renvoie un message d'erreur en cas d'échec

كود:
procedure OuvrirTableADO(ATableADO: TADOTable);
begin
  try
    ATableADO.Open;
  except
    on E: Exception do
      raise Exception.CreateFmt('Erreur lors de l''ouverture de la table %s', [ATableADO.Name]);
  end;
end;

التعديل الأخير تم بواسطة ING_HYD ; 29-10-2010 الساعة 07:11 PM
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 11-01-2011, 11:18 PM
  #8
ING_HYD
مشرف منتدى هندسة الري
 الصورة الرمزية ING_HYD
 
La spécialité: Hydraulique
جامعة حسيبة بن بوعلي شلف
تاريخ التسجيل: 08-05-2010
الدولة: الجزائر
المشاركات: 1,124
ING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداعING_HYD عضو محترف الابداع
افتراضي رد: DELPHI ; Astuces

ASTUCE N°06 : ShowMessage en Overlay

Sachant que le ShowMessage n'accepte que le type string comme argument alors on est obligé de faire des conversion si on veut passer des entiers, réel, date ou boolean. Cette technique est assez répondue chez les programmeurs mais on peut faire mieux ! et oui on peut surcharger le ShowMessage c'est ce qu'on appel Overloading la fonction ShowMessage

La technique est assez simple, on redéfinis le ShowMessage pour chaque type dans l'unité Common.pas comme suit

كود:
 unit common;
 
 interface
 
 uses dialogs, sysutils;
 
 procedure ShowMessage(const value : string) ; overload;
 procedure ShowMessage(const value : integer) ; overload;
 procedure ShowMessage(const value : extended) ; overload;
 procedure ShowMessage(const value : boolean) ; overload;
 
 implementation
 
 //displays a string in a dialog box
 procedure ShowMessage(const value : string) ;
 begin
   Dialogs.ShowMessage(value) ;
 end;
 
 //displays an integer in a dialog box
 procedure ShowMessage(const value : integer) ;
 begin
   ShowMessage(IntToStr(value)) ;
 end;
 
 //displays a float in a dialog box
 procedure ShowMessage(const value : extended) ;
 begin
   ShowMessage(FloatToStr(value)) ;
 end;
 
 //displays a boolean in a dialog box
 procedure ShowMessage(const value : boolean) ;
 begin
   ShowMessage(BoolToStr(value, true)) ;
 end;
end.
Puis il suffit d'appeler l'unité Common dans la partie uses de votre projet mais attention si vous avez dans les uses l'unité Dialogs celle-ci doit être déclaré avant l'unité common
ING_HYD غير متواجد حالياً  
رد مع اقتباس
قديم 05-02-2011, 02:59 PM
  #9
annabil23
 الصورة الرمزية annabil23
 
La spécialité: Eléctrotech
مؤسسة تعليم ثانوي ( ثانوية)
تاريخ التسجيل: 19-06-2010
الدولة: الجزائر, عنابة
المشاركات: 43
annabil23
افتراضي رد: DELPHI ; Astuces


annabil23 غير متواجد حالياً  
رد مع اقتباس
قديم 03-03-2011, 07:25 PM
  #10
amnela
 الصورة الرمزية amnela
 
La spécialité: Autres
جامعة محمد بوضياف للعلوم والتكنولوجيا- وهران
تاريخ التسجيل: 19-08-2010
المشاركات: 47
amnela عضو يستحق التميزamnela عضو يستحق التميز
افتراضي رد: DELPHI ; Astuces

salam alikoum
merci pour les astuces c'est intéréssant
amnela غير متواجد حالياً  
رد مع اقتباس
إضافة رد

الكلمات الدلالية (Tags)
astuce, desphi

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
Castalia2011_1.7 for delphi 5 to delphi xe annabil23 لغة الدالفي delphi 7 18-12-2012 04:53 AM
astuces pour ne plus se faire piéger sur le Net sitayeb المنتدى الهندسي العام 0 25-09-2011 08:34 AM
Delphi 2010 or delphi 2011 info_megue لغة الدالفي delphi 1 29-11-2010 03:45 PM
{تطبيق} Guide des meilleures astuces Internet lystaf منتدى البرامج العام 0 05-08-2009 12:14 PM
l'encyclopedie des trucs et astuces windows xp chat11 الإعــلام الآلي والرياضيــات 3 19-12-2008 09:48 PM


الساعة الآن 07:03 PM.