Delphi

Megjelent a Delphi Prism 2011

Az Embarcadero Technologies bejelentette, hogy megjelent a .Net platformra szánt Delphi legújabb verziója a Delphi Prism 2011. Az új verzió használatához Visual Studio 2010 szükséges és olyan .Net alatt még semmilyen más nyelven nem elérhető újdonságokkal szolgál mint az szempont-orientált és a párhuzamos programozási lehetőségek.

Főbb újdonságok:

  • MonoDevelop IDE
  • Silverlight 4
  • Visual Studio 2010 Shell
  • Extensions methods
  • Párhuzamos programozás
  • Funkcionális programozás
  • C# kód másolása és beillesztése a Delphi/Oxygene kódba
  • Code Obfuscation

További információk a Delphi Prism honlapján

A bejelentkezett felhasználó rendszergazda?

A Windows két alapvető felhasználói fiók típust különböztet meg: "Rendszergazda" és "Korlátozott". A rendszergazda jogosultságú felhasználók módosíthatják a számítógép beállításait: programokat telepíthetnek, rendszer szintű változtatásokat hajthatnak végre, stb.

Ha egy Delphi programban ellenőrizni kell, hogy a belépett felhasználó rendszergazdaként van bejelentkezve, vagy tagja a Rendszergazdák csoportnak, akkor azt a következő függvénnyel lehet egyszerűen megtenni:

function IsWindowsAdmin: Boolean;
const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =  (Value: (0, 0, 0, 0, 0, 5)) ;
      SECURITY_BUILTIN_DOMAIN_RID = $00000020;
      DOMAIN_ALIAS_RID_ADMINS     = $00000220;

var hAccessToken: THandle;
    ptgGroups: PTokenGroups;
    dwInfoBufferSize: DWORD;
    psidAdministrators: PSID;
    g: Integer;
    bSuccess: BOOL;
begin
  Result:=False;
  bSuccess:=OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken);

  if (not bSuccess) and (GetLastError = ERROR_NO_TOKEN) then bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken);

  if bSuccess then begin
    GetMem(ptgGroups, 1024);
    bSuccess:= GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize);
    CloseHandle(hAccessToken);
    if bSuccess then begin
      AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators);
      for g:= 0 to ptgGroups.GroupCount - 1 do if EqualSid(psidAdministrators, ptgGroups.Groups[g].Sid) then begin
          Result:= True;
          Break;
      end;
      FreeSid(psidAdministrators);
    end;
    FreeMem(ptgGroups);
  end;
end;

Használat (pl.):

  if IsWindowsAdmin then showmessage('admin') else showmessage('nem admin');

RADTweet - Asztali Twitter kliens Delphiben

A RADTweet egy a Twitter API felhasználásával Delphiben fejlesztett, nyílt forrású, asztali Twitter kliens.

   

Az alkalmazás néhány funkciója:

  • Üzenetek listája
  • Utalások listája
  • Követők listája
  • Üzenet megjelölése kedvencként (lájkolás)
  • Megjeleníti, hogy a barátainknak hány barátai, követői és üzenetei vannak
  • Stb.

További információk és letöltés: http://sourceforge.net/projects/radtweet

Hogyan változtassuk meg a Windows Start gomb feliratát?

Unod már a Windows Start menüjének feliratát? Ha van jobb ötleted, nincs más dolgod mint kézbe venni egy Delphit vagy Lazarust és már le is cserélheted. Valahogy így:

procedure ChangeStartButtonText(Text: String);
var sbHwnd: hWnd;
begin
  sbHwnd:=GetWindow(FindWindow('Shell_TrayWnd',nil),GW_CHILD or GW_HWNDFIRST);
  SetWindowText(sbHwnd,PChar(Text));
  SendMessage(sbHwnd,WM_SETFOCUS,0,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ChangeStartButtonText('Uccu');
end;

És az eredmény:

Windows XP-n működik.

Update: Akinek kedve van hozzá, le is töltheti a programot és a forráskódját is.

12 Ünnepi Rad Studio 2010 videó - 12: Dll-ek írása Rad Studioban

Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.

A tizenkettedik videó egy Delphi és Dephi Prism által használható unmanaged dll létrehozását mutatja be Delphiben.

A sorozat korábbi részei:

  1. Unit Testing
  2. SyncEdit
  3. Editor tippek és trükkök
  4. Auditok
  5. UML Vizualizáció
  6. Live Templatek
  7. Hello Calculator
  8. Fordítás a háttérben
  9. Klasszikus kinézet
  10. Debug Visualizer
  11. GUI Tippek és Trükkök
  12. Dll-ek írása Rad Studioban

12 Ünnepi Rad Studio 2010 videó - 11: GUI Tippek és Trükkök

Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.

A tizenegyedik videó (kb. 20 perc) néhány új GUI komponens használatát mutatja be. Ezen kívül az új funkciók használatához is mutat néhány tippet.

Ez videó azért nem került fel a YouTube-ra, mert hosszabb mint 10 perc.

12 Ünnepi Rad Studio 2010 videó - 10: Debug Visualizer

Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.

A tizedik videó a RAD Studio 2010 környezetben megjelent Debug Visualizer használatát mutatja be.

A Debug Visualizer megmutatja, hogy mi történik pl. egy TStringList belsejében.

12 Ünnepi Rad Studio 2010 videó - 9: Klasszikus kinézet

Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.

A kilencedik videó a Delphi 7-ben megszokott klasszikus IDE használatát és beállítását mutatja be RAD Studio 2010 környezetben.

Jól jöhet a klasszikus IDE több monitoros környezetben, ahol pl. egyik ablakban a formot tervezzük és kódot írjuk hozzá, míg egy másik monitoron a fordító, vagy éppen a debugger üzeneteit akarjuk megjeleníteni.

Delphi formok Lazarusban

A FreePascal 2.5.1 használatával a Lazarus lehetővé teszi a formok lfm formátumba mentését lrs fájlok használata nélkül. Ez még jobban megkönnyíti a Delphi kódok átültetését Lazarusra.

Előfeltételek:

  • Lazarus trunk verzió
  • FreePascal trunk verzió (2.5.1-el tesztelve, de állítólag a 2.4.0-val is működik)

Lépések:

  1. A Project options-nál, Miscellaneous fülön válasszuk ki a Fpc resources-t.
  2. Másoljuk a dfm fájlt az lfm fájlba.
  3. Lazarusban nyissuk meg a pas fájlt.
  4. Keressük meg a dfm fájl hivatkozását, majd cseréljük le erre:
    {$IFDEF LCL}
    {$R *.lfm}
    {$ELSE}
    {$R *.dfm}
    {$ENDIF}
  5. Az initialization részben keressük meg az lrs fájl beillesztését {$I valami.lrs}, majd távolítsuk el.
  6. Az F12 (View menü: Toggle form/unit view) megnyomása után már láthatjuk is a formunkat.
  7. A természetesen figyelmeztetéseket fogunk kapni a Lazarusban nem létező tulajdonságokról, de ezeket nyugodtan figyelmen kívül hagyhatjuk. Ez a legtöbb esetben megfelelő, de egy komoly fejlesztő mindig elolvassa és elemzi az ilyen üzenetek fontosságát és következményeit.
  8. Mentés után jöhet a fordítás.

Mint mindig, most se felejtsük el hozzáadni a unit fejlécében a uses szekcióhoz a szükséges unitokat (LclType, LResources, stb).

12 Ünnepi Rad Studio 2010 videó - 8: Fordítás a háttérben

Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.

A nyolcadik videó a Rad Studio 2010-ben megjelent új funkció a fordítás a háttérben használatát mutatja be. Ez a funkció lehetővé teszi a fájlok szerkesztését, töréspontok beállítását és módosítását a projekt fordítása közben.

Ez igazából csak olyan projektek esetén lehet hasznos, amikor több perc (>5) alatt végez a fordító, egyébkét az a pár másodperc pont jó arra, hogy az ember egy kicsit lazítson, végiggondolja, hogy mit is rontott el.