ПредишенСледващото

Кажете ми, моля, как да създадете динамичен визуален компонент (бутон) за формата, в Делфи.

BTn: = TButton.Create (самостоятелно);
Btn.Parent: = Self;
Btn.Left: =
Btn.Top: =
Btn.Caption: = "Кликнете мен";
Btn.Visible: = вярно;

процедура TForm1.ButtonClick (Sender: TObject);
започвам

Благодаря ви много! Успех!


> И след това, след като процедура Ctrl + S изчезва :)

Тази декларация, ако се публикува. Обикновено, работещи дори ако не е в дизайна време назначава, поставени в частни, отново, ако другите не са длъжни да възникнат. След това нищо няма да изчезне. )

Но ЕС, но на мястото, където водачът по подразбиране се създава подразбиращи се да се публикува, защото всичко, което има на разположение чрез IE.


> Аз отидох да си няколко харакири направи.
>

"Единична Tabletka" (в)


>> отидох да си направя няколко харакири.> "Стига
> Един Tabletka "(в)
Да, аз харакири с khachapuri объркани :) Но защо раздел Delphi очевидно не публикува предписано - не е ясно. Сиди, Гад, от косвени доказателства (макар че, само и само веднъж). При създаване на компонент (а) е ясно: ако искате да видите # XA0; имот в ID - се поставя в публикуван. Но! Всички те са от лявата страна! И това е окачен - отдясно. В допълнение към дъщерни (синове?) Компонент (и). Те обикновено са най-отгоре. Но просто ей така, в движение, нито мога да си спомня една книга, която заяви, че горната, neimenovanaya раздела - публикуван.

> Sidi, Gad, от косвени доказателства

Или да не предполагам и прочетете док.

За класове, съставени в съответствие с директивата и техните наследници раздел по подразбиране "- публикувани, за останалите - публично.


> Но защо в раздела Delphi публикувани изрично предписано
> - не е ясно.

Тъй като тя е проектирана специално за компонента, IMHO. За проекта е излишно. Отново, IMHO.

> Но просто ей така, в движение, нито мога да си спомня една книга в
> Казва, че горната, neimenovanaya раздела - публикуван.
>

Е, ако чичо Borland, така че не име, така също и в който и да е книга (Flonov отива гори), няма да бъдат прочетени. -)

Забележка: Класът TPersistent дефинирани в класове единица на VCL и CLX е обявен в държавата, така че всеки един клас, получени от TPersistent ще има RTTI генерирана за публикуваните секции. В VCL / CLX използва информацията за типа по време на работа, генерирана за публикуваните секции, за да получите достъп до стойностите на компонент "и свойства, когато се спестяват или товарене форма файлове. Освен това, IDE използва компонент" и информация за типа по време на работа за определяне на списъка на имотите, за да се покаже в инспектора на обекта.

Налице е рядко или не, е необходимо за подаване на заявление за директно използвате компилатор превключвателя за $ М ".

В Konopka е там със сигурност. Той е видял някъде другаде, но къде - не си спомням.

Помощ D7, раздел Delphi Справочник на езика / видимост на членовете на групата:

Членове в началото на декларацията на класа, че дон "т имат определен видимост по подразбиране са публикувани, предвидени в класа е съставена от държавата или се извлича от един клас, съставен в състоянието, в противен случай, тези членове са публични.

Prompt, и как да се създаде софтуер Label? Задаване на размера на шрифта? Местоположение?


> Prompt, и как да се създаде софтуер Label? Разположен на шрифта,
> # XA0; размер? Местоположение?

По същия начин, както TButton


> [21] Мария # XA0; (03.10.07 09:18)

Прочетете целия списък, pozhalsta

LBL: = TLabel.Create (Form1);
Lbl.Parent: = Form1;
lbl.Caption: = Ini.ReadString ( "Етикет", "lbl1", "Добре дошли!");
lbl.Font.Size: = 20;
lbl.Font. (Трябва да е смел, не знам как да пиша!)

Как да се уточни, че това е в центъра на горната част на формуляра (като подравнен :? = Център;! Отгоре не знам, позиция в общото)
lbl.Left: =?
lbl.Top:=?
lbl.Height: =?
lbl.Width: =?


> Това беше в центъра на горната част на формуляра

елементарна аритметика

> За да бъдем смели, не знам как

lbl.Font.Style: = [fsBold];

> Това беше в центъра на горната част на формуляра

Поставете етикет Align = alTop и подравняване = taCenter


> D6

Пиша D6 трябва да се изчисли математически случило. Всичко си дойде на мястото. Бутони аз динамично да създават, как да ги регистрират правилно:
ShellExecute (дръжка, нула "Winword.exe" нулев, нулев, SW_SHOWNORMAL);
bottone, когато го създаде с панела, така, как да създавате динамично?


> Изчислява математически

парцел геометрично
пекат kulinaricheski
изродят генеалогично
..
)


> Мария # XA0; (10/03/07 14:16) [30]

Може би, добре, това е програмиран nafik?
Наемете програмист.

О, труден живот: ((аз ги имам тук, сега и аз съм.

> Отдаване програмист.

Наемете мен. gygygy.

Създайте свой прозорец protsedurku за бутони чрез SetWindowLong го висят на върха на основните и правят това, което е необходимо за BM_CLICK.

Аз съм на по отношение на отговори [30].

И все пак, как да се регистрирате програмно динамично да създадете бутон, че тя трябва да се отвори всеки изпълним!

> И все пак, тъй като софтуерът да се регистрирате в динамично създаден
> Бутон, че то трябва да се отвори всеки изпълним!

Присвояване ги манипулатори належащи # 133

функционира Obrabotcik_dinamiceskoi_knopki_Button1 (hWnd: HWND; Msg: LongInt; wParam, lParam: Longint): longInt; stdcall;
започвам
# XA0; ако след Msg = BM_CLICK започне
# XA0; # XA0; Zapusk_kakoynibud_progi;
# XA0; край;
# XA0; Резултати: = CallWindowProc (Стрелката (Button1.Tag), hWnd, Msg, wParam, lParam);
приключи;

Button1.Tag: = SetWindowLong (Button1.Handle, GWL_WNDPROC, LongInt (@ Obrabotcik_dinamiceskoi_knopki_Button1));

Кажи ми, ако има по-лесен начин? Може би има? И може би дори много по-лесно?

Може би има. Но аз съм пълен с дъб в VTSL, така че е до вас.

Така уморен вече този прясна вода гъба (без гъба). напиши метод, като:
TForm1.ButtonClick (Sender: TObject). в този вид причина, четири резба [30], за да се създаде един бутон, то нека това бъде BUTTON1, наричан по-нататък
Button1.OnClick: = ButtonClick; Чрез натискане Button1 всичко се превръща в ButtonClick на тялото. Алилуя!

Тогава защо ви дават полезни съвети за начинаещи ниво API? Вие разбирате, че тези съвети ще ги и нищо повече обърка само?

Вид на новия ден! Всичко се оказа!

> Алилуя!

Той остана почти последното нещо, което ми липсваше, и как да се програмно определени размерите на матрицата? На който всичко това се изтегля. Пиша това:

Form1.Caption: = Ini.ReadString ( "Форма", "Cap", "Navigator");
Form1.Height: = Ini.ReadInteger ( "Форма", "височина", 500);
Form1.Width: = Ini.ReadInteger ( "Форма", "ширина", 700);
Пренебрегва, не задава по подразбиране от 500 до 700.

А! И все пак, какво да кажем за менюто, самото меню е създал, и като раздел, за да се регистрирам?

Това е сутрин, събуди се! Помощ svezhenachinayuschey. )

По подразбиране е целочислена стойност да се използва, ако няма ключ, съответстващ на раздел или никаква стойност, съответстваща на данните идент.

За съжаление? Какво означава това.

> [48] Мария # XA0; (04.10.07 08:33)

Това е откъс от помощта "и функция ReadInteger.

Prompt, PLZ, как да създадете меню на програмата, по подобие Botton не работи.

> Подобие Botton

Някъде по този начин:

функционира TMenuInsertColleague.AddMenuItem (MainMenu: TMainMenu;
# XA0; MenuData: TMenuItemData): булева;
Var
# XA0; I: Integer;
# XA0; TempMenuItem: TMenuItem;
започвам
# XA0; Резултат: = False;
# XA0; ако целеви (MenuData) и целеви (MainMenu) след това
# XA0; започне
# XA0; # XA0, защото: = 0 до MainMenu.Items.Count # 151; 1 правя
# XA0; # XA0; започне
# XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; ако MainMenu.Items [I] .Caption = MenuData.Section тогава
# XA0; # XA0; # XA0; започне
# XA0; # XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; # XA0; TempMenuItem: = TMenuItem.Create (MainMenu);
# XA0; # XA0; # XA0; # XA0; TempMenuItem.Caption: = MenuData.Caption;
# XA0; # XA0; # XA0; # XA0; TempMenuItem.ImageIndex: = MenuData.ImageIndex;
# XA0; # XA0; # XA0; # XA0; TempMenuItem.Tag: = цяло число (MenuData.CommandClass);
# XA0; # XA0; # XA0; # XA0; TempMenuItem.OnClick: = MenuClickEvent;
# XA0; # XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; # XA0; MainMenu.Items [I] .Add (TempMenuItem);
# XA0; # XA0; # XA0; # XA0; Резултат: = True;
# XA0; # XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; # XA0; Exit;
# XA0; # XA0; # XA0; край;
# XA0; # XA0; край;
# XA0; # XA0;
# XA0; # XA0; TempMenuItem: = TMenuItem.Create (MainMenu);
# XA0; # XA0; TempMenuItem.Caption: = MenuData.Section;
# XA0; # XA0; MainMenu.Items.Add (TempMenuItem);
# XA0; # XA0;
# XA0; # XA0; Резултати: = AddMenuItem (MainMenu, MenuData);
# XA0; край;
приключи;

TMenuItemData # 151; не е нужно. Там Chrono линии като "на името на елемента" менюто и т.н. # 133

Но аз давам за по-голяма яснота и:

TMenuItemData = клас
# XA0; строго лично
# XA0; # XA0; FSection: низ; # XA0; # XA0; # XA0;
# XA0; # XA0; FCaption: низ;
# XA0; # XA0; FCommandClass: TCustomCommandClass;
# XA0; # XA0; FImageIndex: цяло число;
# XA0; обществен
# XA0; # XA0; конструктор Създаване (раздел: низ; Надпис: низ;
# XA0; # XA0; # XA0; CommandClass: TCustomCommandClass; ImageIndex: цяло число = # 151: 1);

# XA0; # XA0; имот Раздел: низ прочетете FSection;
# XA0; # XA0; имот Надпис: низ прочетете FCaption;
# XA0; # XA0; имот CommandClass: TCustomCommandClass прочетете FCommandClass;
# XA0; # XA0; имот ImageIndex: Integer прочетете FImageIndex;
# XA0; край;

О, благодаря, но аз не мисля, че толкова трудно! Аз ще се опитам.

> О, благодаря ти, но не мисля, че толкова трудно! Аз ще се опитам # 133

Могат да бъдат значително опростени # 151; това е част от проекта. Вие достатъчно:

TempMenuItem: = TMenuItem.Create (MainMenu);
# XA0; # XA0; # XA0; TempMenuItem.Caption: = "Моята точка";
# XA0; # XA0; # XA0; TempMenuItem.OnClick: = MenuClickEvent; // <— Клик
# XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; MainMenu.Items [I] .Add (TempMenuItem);

когато:
MainMenu.Items [I] # 151; Тази позиция най-високо ниво, като "File
"


> TempMenuItem: = TMenuItem.Create (MainMenu);
> # XA0; # XA0; # XA0; TempMenuItem.Caption: = "Моята точка";
> # XA0; # XA0; # XA0; TempMenuItem.OnClick: = MenuClickEvent; // <— Клик
> # XA0; # XA0; # XA0;
> # XA0; # XA0; # XA0; MainMenu.Items [I] .Add (TempMenuItem);

Една грешка. Неизвестна MenuClickEvent и OnClick

MenuClickEvent този манипулатор
е необходимо да се напише

Напишете програма Мария някого.


> Мария, шегуваш ли се?

НЕ! Били всички получени, благодаря на всички ви много.

ако MessageDlg ( "изход?", mtConfirmation, [mbYes, mbNo], 0) = mrYes след това.

пише, че вместо да, и не са били ДА и НЕ?

MessageBox () на руски уиндсърфинг шоуто да, и не


> Това прясна вода гъба (не гъба)

ако гъбата, а след това със сигурност ба dyaga = Spongilla lacustris.


> Ако гъбата, след това със сигурност badyaga = Spongilla lacustris.
Добре, ekselents

Свързани статии

Подкрепете проекта - споделете линка, благодаря!