Sign in Join
Wiki copytemporary

Accessing the Interfaces directly/pt: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-Esta página descreve como ter acesso direto de escrita ao widgeset subjacente usado pelo Lazarus (por exemplo: a API do Windows, ou GTK ou QT, etc). Pode-se sempre tentar evitar de confiar nas especifidades do widgeset. Este documento está aqui para as pessoas melhorarem o widgeset e para quem escreve componentes e realmente precisa acessar os widgeset diretamente.
2-
3-## Contents
4-
5- * 1 Visão Geral
6- * 2 Detalhes de cada Widgetset
7- * 2.1 Qt
8- * 2.2 Carbon
9- * 2.3 Windows
10- * 3 List of Handles on various LCL classes
11- * 3.1 TFont
12- * 3.2 TCanvas
13- * 3.3 TBrush
14- * 3.4 TBitmap
15- * 3.5 TCustomForm
16- * 3.6 TMenu, TMainMenu, TMenuItem and TPopUpMenu
1+Esta página descreve como ter acesso direto de escrita ao widgeset subjacente usado pelo Lazarus (por exemplo: a API do Windows, ou GTK ou QT, etc). Pode-se sempre tentar evitar de confiar nas especifidades do widgeset. Este documento está aqui para as pessoas melhorarem o widgeset e para quem escreve componentes e realmente precisa acessar os widgeset diretamente.
172
183## Visão Geral
194
20-Cada TWinControl tem um handle e a LCL não precisa saber o que é um handle. O significado de um handle é totalmente assunto da interface:
5+Cada TWinControl tem um handle e a LCL não precisa saber o que é um handle. O significado de um handle é totalmente assunto da interface:
216
22- * em Gtk um handle é freqüentemente um PGtkWidget.
23- * em Windows um handle é freqüentemente um HWnd.
24- * em Carbon um handle é freqüentemente um objeto descendente de TCarbonWidget.
25- * em Qt um handle é freqüentemente um ponteiro para um objeto descendente de TQtWidget.
7+- em Gtk um handle é freqüentemente um PGtkWidget.
8+- em Windows um handle é freqüentemente um HWnd.
9+- em Carbon um handle é freqüentemente um objeto descendente de TCarbonWidget.
10+- em Qt um handle é freqüentemente um ponteiro para um objeto descendente de TQtWidget.
2611
2712## Detalhes de cada Widgetset
2813
2914### Qt
3015
31-Handles em Qt são na maioria ponteiros para objetos. Toda vez que um controle é criado, um objeto de ajuda é também criado e os dois são conectados. O objeto de ajuda é necessário para receber eventos do Qt. Depois de receber um evento, ele vai enviá-lo para a LCL.
16+Handles em Qt são na maioria ponteiros para objetos. Toda vez que um controle é criado, um objeto de ajuda é também criado e os dois são conectados. O objeto de ajuda é necessário para receber eventos do Qt. Depois de receber um evento, ele vai enviá-lo para a LCL.
3217
33-A maior parte dos objetos é descendente de TQtWidget, como declarado abaixo:
34-```
35-{ TQtWidget }
36-
18+A maior parte dos objetos é descendente de TQtWidget, como declarado abaixo:
19+
20+ { TQtWidget }
21+
3722 TQtWidget = class(TObject)
3823 private
3924 public
4025 Widget: QWidgetH;
4126 LCLObject: TWinControl;
4227 end;
43-```
4428
45-Note as duas variáveis que todos eles contêm:
29+Note as duas variáveis que todos eles contêm:
4630
47- * Widget - Esta é uma conexão ao objeto do Qt para este Widget
48- * LCLObject - É uma ponte com o objeto da LCL a que ele está vinculado.
31+- Widget - Esta é uma conexão ao objeto do Qt para este Widget
32+- LCLObject - É uma ponte com o objeto da LCL a que ele está vinculado.
4933
5034### Carbon
5135
52-Handles em Carbon são muito similares aos do Qt. As classes do helper são descendentes da classe abstrata TCarbonWidget.
53-```
54-{ TCarbonWidget }
55-
36+Handles em Carbon são muito similares aos do Qt. As classes do helper são descendentes da classe abstrata TCarbonWidget.
37+
38+ { TCarbonWidget }
39+
5640 TCarbonWidget = class(TObject)
5741 private
5842 public
5943 Widget: Pointer;
6044 LCLObject: TWinControl;
6145 end;
62-```
6346
64-Note as duas variáveis que todos eles contêm:
47+Note as duas variáveis que todos eles contêm:
6548
66- * Widget - Esta é uma conexão com o objeto do Carbon para este Widget:ControlRef (descendentes de TCarbonControl) ou WindowRef (descendentes de TCarbonWindow).
67- * LCLObject - É uma ponte com o objeto da LCL a que ele está vinculado.
49+- Widget - Esta é uma conexão com o objeto do Carbon para este Widget:ControlRef (descendentes de TCarbonControl) ou WindowRef (descendentes de TCarbonWindow).
50+- LCLObject - É uma ponte com o objeto da LCL a que ele está vinculado.
6851
6952### Windows
7053
71-Handles em Win32 ou WinCE são quase sempre o mesmo que os seus handles relativos da API. Por exemplo, um handle de TMenu é HMENU, um handle de TBrush é HBRUSH, portanto você pode facilmente usá-los e passá-los para as APIs.
54+Handles em Win32 ou WinCE são quase sempre o mesmo que os seus handles relativos da API. Por exemplo, um handle de TMenu é HMENU, um handle de TBrush é HBRUSH, portanto você pode facilmente usá-los e passá-los para as APIs.
7255
7356## List of Handles on various LCL classes
7457
7558### TFont
7659
77- * Win32, WinCE: HFONT
78- * Qt: Um objeto TQtFont de qtprivate.pas
79- * Carbon: Um objeto TCarbonFont de carbongdiobjects.pp
60+- Win32, WinCE: HFONT
61+- Qt: Um objeto TQtFont de qtprivate.pas
62+- Carbon: Um objeto TCarbonFont de carbongdiobjects.pp
8063
8164### TCanvas
8265
83- * Win32, WinCE: HDC
84- * Gtk: Um objeto TDeviceContext de gtkdef.pp
85- * Você pode can pegar um drawable, por exemplo com: TDeviceContext(MyCanvas.Handle).Drawable
86- * Qt: Um objeto TQtDeviceContext de qtprivate.pas
87- * Carbon: Um objeto TCarbonDeviceContext de carboncanvas.pp
88- * O handle nativo pode ser accessado com TCarbonDeviceContext(MyCanvas.Handle).CGContext de tipo CGContextRef
66+- Win32, WinCE: HDC
67+- Gtk: Um objeto TDeviceContext de gtkdef.pp
68+ - Você pode can pegar um drawable, por exemplo com: TDeviceContext(MyCanvas.Handle).Drawable
69+- Qt: Um objeto TQtDeviceContext de qtprivate.pas
70+- Carbon: Um objeto TCarbonDeviceContext de carboncanvas.pp
71+ - O handle nativo pode ser accessado com TCarbonDeviceContext(MyCanvas.Handle).CGContext de tipo CGContextRef
8972
9073### TBrush
9174
92- * Win32, WinCE: HBRUSH
93- * Qt: Um objeto TQtBrush de qtprivate.pas
94- * Carbon: Um objeto TCarbonBrush de carbongdiobjects.pp
75+- Win32, WinCE: HBRUSH
76+- Qt: Um objeto TQtBrush de qtprivate.pas
77+- Carbon: Um objeto TCarbonBrush de carbongdiobjects.pp
9578
9679### TBitmap
9780
98- * Win32, WinCE: HBITMAP
99- * Gtk: PGDIObject (definido na unidade GtkDef)
100- * Qt: Um objeto TQtImage de qtobjects.pas unit
101- * Carbon: Um objeto TCarbonBitmap de carbongdiobjects.pp
81+- Win32, WinCE: HBITMAP
82+- Gtk: PGDIObject (definido na unidade GtkDef)
83+- Qt: Um objeto TQtImage de qtobjects.pas unit
84+- Carbon: Um objeto TCarbonBitmap de carbongdiobjects.pp
10285
103-Você pode acessar isto no Gtk fazendo:
104-```
105-var
86+Você pode acessar isto no Gtk fazendo:
87+
88+ var
10689 GDIObject: PGDIObject;
10790 Bitmap: TBitmap;
10891 AImage: PGtkWidget;
10992 begin
11093 ...
111-
112- GDIObject := PgdiObject(Bitmap.Handle);
113-
114- AImage := gtk_image_new_from_pixmap(GDIObject^.GDIPixmapObject,
94+
95+ GDIObject := PgdiObject(Bitmap.Handle);
96+
97+ AImage := gtk_image_new_from_pixmap(GDIObject^.GDIPixmapObject,
11598 GDIObject^.GDIBitmapMaskObject);
116-
99+
117100 gtk_widget_show(AImage);
118-
101+
119102 gtk_container_add(GTK_CONTAINER(MyForm.Handle), AImage);
120103 end;
121-```
122104
123105### TCustomForm
124106
125- * Win32, WinCE: it´s a HWND, um handle de janela nativo
126- * Gtk: É um ponteiro para uma estrutura.
127- * Qt: O handle é um ponteiro para um objeto da classe TQtMainWindow declarada em qtwidgets.pas. Para ter acess ao objeto do Qt TQtMainWindow significa faça:
107+- Win32, WinCE: it´s a HWND, um handle de janela nativo
108+- Gtk: É um ponteiro para uma estrutura.
109+- Qt: O handle é um ponteiro para um objeto da classe TQtMainWindow declarada em qtwidgets.pas. Para ter acess ao objeto do Qt TQtMainWindow significa faça:
128110
129-TQtMainWindow(Handle).Widget
111+TQtMainWindow(Handle).Widget
130112
131- * Carbon: TCarbonWindow de carbonprivate.pp
113+- Carbon: TCarbonWindow de carbonprivate.pp
132114
133115### TMenu, TMainMenu, TMenuItem and TPopUpMenu
134116
135- * Win32, WinCE : HMENU
136- * Qt: TMainMenu é um ponteiro para um objeto TQtMenuBar. TPopUpMenu é um objeto TQtMenu. TMenuItem pode ser um TQtAction se representa um item selecionável, ou um separador ou um TQtMenu se é um item que tem submenus.
137- * Carbon: TMenuItem é um objeto TCarbonMenu, TMenu (TMainMenu e TPopupMenu) é representado pelo seu item de menu raiz.
117+- Win32, WinCE : HMENU
118+- Qt: TMainMenu é um ponteiro para um objeto TQtMenuBar. TPopUpMenu é um objeto TQtMenu. TMenuItem pode ser um TQtAction se representa um item selecionável, ou um separador ou um TQtMenu se é um item que tem submenus.
119+- Carbon: TMenuItem é um objeto TCarbonMenu, TMenu (TMainMenu e TPopupMenu) é representado pelo seu item de menu raiz.
138120
139121---
140-*From the Free Pascal wiki, page "Accessing the Interfaces directly/pt", as the Internet Archive kept it on 2024-03-08. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
122+*From the Free Pascal wiki, page "Accessing the Interfaces directly/pt", as it stood on 2012-02-03 after a change by Chronos, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
123+Category: LCL/pt

Back to history