Simple windowed application: Difference between revisions
Content added Content deleted
mNo edit summary |
(→{{header|Pascal}}: add example) |
||
Line 1,102: | Line 1,102: | ||
end |
end |
||
</lang> |
</lang> |
||
=={{header|Pascal}}== |
|||
{{works with|Free_Pascal}} |
|||
{{libheader|SysUtils}} |
|||
{{libheader|glib2}} |
|||
{{libheader|Gtk2}} |
|||
Ported from the C example. |
|||
<lang pascal>Program SimpleWindowApplication; |
|||
uses |
|||
SysUtils, |
|||
glib2, |
|||
Gtk2; |
|||
const |
|||
clickme = 'Click Me'; |
|||
MAXLEN = 64; |
|||
var |
|||
counter: integer = 0; |
|||
procedure clickedme(o: PGtkButton; d: pointer); cdecl; |
|||
var |
|||
nt: Pchar; |
|||
l: PGtkLabel; |
|||
begin |
|||
l := Gtk_LABEL(d); |
|||
inc(counter); |
|||
nt := Pchar('You clicked me ' + inttostr(counter) + ' times'); |
|||
Gtk_label_set_text(l, nt); |
|||
end; |
|||
var |
|||
win: PGtkWindow; |
|||
button: PGtkButton; |
|||
Mylabel: PGtkLabel; |
|||
vbox: PGtkVBox; |
|||
begin |
|||
Gtk_init(@argc, @argv); |
|||
win := PGtkWindow(Gtk_window_new(Gtk_WINDOW_TOPLEVEL)); |
|||
Gtk_window_set_title(win, clickme); |
|||
button := PGtkButton(Gtk_button_new_with_label(clickme)); |
|||
Mylabel := PGtkLabel(Gtk_label_new('There have been no clicks yet')); |
|||
Gtk_label_set_single_line_mode(Mylabel, TRUE); |
|||
vbox := PGtkVBox(Gtk_vbox_new(TRUE, 1)); |
|||
Gtk_container_add(Gtk_CONTAINER(vbox), Gtk_WIDGET(Mylabel)); |
|||
Gtk_container_add(Gtk_CONTAINER(vbox), Gtk_WIDGET(button)); |
|||
Gtk_container_add(Gtk_CONTAINER(win), Gtk_WIDGET(vbox)); |
|||
g_signal_connect(G_OBJECT(win), 'delete-event', TGCallBack(@Gtk_main_quit), NULL); |
|||
g_signal_connect(G_OBJECT(button), 'clicked', TGCallBack(@clickedme), Mylabel); |
|||
Gtk_widget_show_all(Gtk_WIDGET(win)); |
|||
Gtk_main(); |
|||
end.</lang> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |