Tankönyv delphi

Akkor használja a formában ActiveControl tulajdonság, de az összetevő, ami miatt a helyi menüt, nem feltétlenül az aktív kontroll.

„Milyen korlátai vannak standard Delphi ellenőrzés?”

Bármely alkatrész, amely TList, tárolhat minden olyan információt, legfeljebb 16368 elemekkel. Például TTabControl tartalmazhatnak legfeljebb 16368 könyvjelzők és paletta Delphi komponensek 16368 oldalt palettán.

Sok a standard Delphi komponensek héját szabványos Windows ellenőrzéseket. Windows 3.1 korlátozhatják ezeket. Például: TComboBox TListbox és tartalmazhat legfeljebb 5440 elemek, vagy TMemo tSzerkesztés (és más megfelelő komponenseket.) 32 KB szöveget.

Windows 3.1 források mennyisége korlátozza TNoteBook komponens, és lehetővé teszi, hogy egy legfeljebb 570 oldalas. (Az is nehéz, hogy több mint 500 ablak kilincs bármely Windows alkalmazás.)

1. megjegyzés: határértéket meghaladó kivételt dob, vagy lehet, hogy a Windows instabil.

2. megjegyzés: Sok a korlátokat az 16-bites Windows jelentősen csökkent a Windows NT és a Windows 95 A jövőben 32 bites változatai Delphi, ezek a korlátozások gyakorlatilag eltűnik.

„Hogyan határozzák meg a string hossza pixelben egy adott betűtípussal?”

TextHeigh és TextWidth - meghatározni a magasság és a sorban szélessége pixelben vászon két módszer alkalmazható. Ne felejtsük el, hogy rendelni egy font Canvas objektumot, mielőtt rajzolni valamit, vagy méréseket.

Minden vizuális komponenseket egy Canvas tulajdon, de alapértelmezésben védett (védett) eléréséhez csak volt közvetlen leszármazottai. De, mint létrehozni a kódot alapuló TForm örökösök, akkor szinte mindig van, hogy egyfajta örökölt ingatlan vászon. TPaintBox komponens elérhető (állami) Canvas tulajdonság, hogy az eseménykezelő OnPaint alkatrész lerajzolhatod semmit, de akkor őket a céljainknak.

Ha az alkatrész nincs Canvas tulajdonság a következő függvény visszaadja a szélessége a szöveg alapján, egy adott betűtípus:

függvény GetTextWidth (CanvasOwner: TForm; szöveges karakterlánc ;.

„Miért van néhány vizuális elem típusát és TPanel tSzerkesztés nincs tulajdonságait Canvas?”

Minden örökösök TCustomControl egy Canvas tulajdonság, de akkor kell valamilyen védekezési mechanizmus más „művészek” nem húzhat egy komponens. Örökösök komponens mindig hozzáférhet a védett tulajdonságokat öröklik egy komponenst (például, vászon), de ugyanazt a komponenst a felhasználók nem férhetnek hozzájuk.

TCanvasPanel = osztály (TPanel)

„Hogyan jutok egy vízszintes görgetősáv a ListBox alkatrész?”

Üzenet küldése LB_SetHorizontalExtent ablak kilincs ListBox komponenst. Például a számla lehet üzenetet küldeni a OnCreate eseménykezelő a következő formában:

eljárás TForm1.FormCreate (Sender: TObject);

SendMessage (Listbox1.Handle, LB_SetHorizontalExtent, 1000. Longint (0));

„Vajon Delphi komponens, amely támogatja a soros kommunikációs (portok)?”

Nem. Vannak azonban olyan könyvtárak dolgozik soros port (és hamarosan megjelenik alkatrészek) Delphi harmadik fél, például, TurboPower, SaxComm és mások.

„Hogyan lehet beállítani a füleket TMemo szabályozás?”

Ahhoz, hogy a lapon a szerkesztési többkomponensű (pl TMemo), küldjön neki egy üzenetet EM_SetTabStops. Lapok tömb helyét jelöli a lapok. Mivel wParam SendMessage paraméter értéke 1, azaz az összes fül lesz arra az értékre továbbított Lapok tömbben. Ne felejtsük el bekapcsolni a füleket, hogy hozzanak ingatlan WantTabs TMemo komponens True.

eljárás TForm1.FormCreate (Sender TObject.);

TabInc. LongInt = 10;

SendMessage (Memo1.Handle, EM_SetTabStops, 1. Longint (@TabInc));

„Mi a legjobb hely a kódot a program, ahol meg tudja nyitni az ablakot a logó a program, amikor elindul?”

A legjobb hely, hogy megjelenjen az ablakon, egy logó - a forráskódot a projekt az első előtt Application.FormCreate Application.Run. Ily módon végezzük, hogy hozzon létre egy űrlapot on the fly, és megjeleníti azt a tényleges alkalmazás elindul.

„A program során minden egyes újonnan megnyílt gyermek ablak kissé lejjebb és jobbra az előzőt. A problémám az, hogy amikor bezárom minden gyermek ablakot, és nyissa meg az új, úgy tűnik, hogy a jobbra és alatta, amit zárni, mielőtt még ha csak milyen szabályok meg van írva? "

Így az MDI gyermek ablak. Ebben a helyzetben a VCL nem terjed ki a Windows viselkedés ilyen szabályok által diktált rendszer maga.

Nem tesztelt feltevés: Az eljárás FormCreate próbálja meg telepíteni a szükséges értékeket tulajdonságok Top, Left, szélesség és magasság. FormCreate MDI gyermek formájában fogják hívni az ablak előtt maga lesz látható.

„Miért van a program nem találja a forrásokat, csomagolt nekem .RES-fájlt, ha .RES-fájlnak ugyanaz a neve, mint a modul formájában?”

Ha a megadott név használt .RES-fájlnak ugyanaz a neve .DPR-fájl, Delphi felülírja azt hozza létre saját .RES-fájlt ugyanazzal a névvel. Ezen kívül a projekt RES-fájl csak Delphi-projekt menedzser, ne módosítsa, vagy add hozzá az erőforrásokat.

„Vannak képezi a görgető funkció gombok használatával? Például felfelé és lefelé nyomja a PgUp és PgDown volt.

Görgetés végezzük alakváltozás pozíció tulajdonságok vagy formajellemzőkre VertScrollbar HorzScrollbar. A következő kód azt mutatja, hogyan lehet ezt megtenni:

Milyen sorrendben az események létrehozása és megjelenítése formák?

Amikor létrehoz egy űrlapot események történnek, az alábbi sorrendben: OnCreate, OnShow, OnPaint, OnActivate, OnResize újra OnPaint.

„Miért, ha az űrlap felvezető OnActivate FormStyle változik az ingatlan, hiba»Nem lehet megváltoztatni Látható OnShow vagy OnHide«(Nem tudom megváltoztatni a Visible (láthatóság) a OnShow vagy OnHide)?

FormStyle tulajdonság határozza meg a stílus az ablak jön létre, és általában telepítve a OnCreate eseménykezelő azonban meg lehet változtatni, és létrehozása után kilincs, nem csak abban az esetben rakodók OnActivate, OnShow vagy OnHide. A probléma az, hogy próbál változtatni a stílusát az űrlap esetén az események és OnShow OnHide.

„Hogyan fizethetek komponensszinten határait, mint a” elsüllyedt „(mélység), vagy a” emelt „(konvex)?

Annak érdekében, hogy az alkatrész kissé süllyesztett vagy emelt, helyezze egy alkatrész vagy egy TPanel TBevel, amelyek tulajdonságait a megfelelő helyre.

Hol találom a forráskód az oldal elemek (pl TTabbedNotebook)?

VCL forráskódot tartalmazza a kód „fül” -alkatrészek jogi okok miatt. Ugyanakkor a forrás interfész (interface forrás) található DELPHI \ DOC könyvtár és kiterjesztése INT.

Megjegyzés: A bejegyzett tulajdonosai Delphi RTL forráskód kérheti a forráskódot és TTabSet TTabbedNotebook egységekben Borland Corporate Affairs. Utasítás van a readme fájlban az eredeti RTL kódot. [000892]

Kapcsolódó cikkek