When reading a document: .chm, .txt, .html , .pdf ... sometimes we need to know what it is => WIKIPEDIA
Or translated from one language into another language => GOOGLE Dictionary
I've tested with HMG3, Windows XP, IE8. Runs good, though slightly slower than directly into IE.
Currently, only 10 languages options. Please help me complete the program
I think there may be many other websites like Google or Wikipedia is more convenient, please help me updated.
Code: Select all
#include "hmg.ch"
Function Main
System.Clipboard := 'Welcome to hmgforum.com'
DEFINE WINDOW Win AT 0,0 WIDTH 800 HEIGHT 500 NOSIZE NOMAXIMIZE MAIN ON LOSTFOCUS close()
@ 0,0 LABEL label_show WIDTH 1 HEIGHT 1 value '' INVISIBLE
@ 0,0 LABEL value1 WIDTH 1 HEIGHT 1 value '' INVISIBLE
@ 10,5 LABEL Label_from WIDTH 40 HEIGHT 20 value 'FROM'
@ 5,45 COMBOBOX Combo_From WIDTH 120 ITEMS {'1-English','2-French','3-Spanish','4-Portuguese','5-Turkish','6-Czech','7-Polish','8-Russian','9-Romanian','10-Vietnamese'} VALUE 1
@ 10,180 LABEL Label_to WIDTH 30 HEIGHT 20 value 'TO'
@ 5,210 COMBOBOX Combo_to WIDTH 120 ITEMS { '1-English', '2-French','3-Spanish','4-Portuguese','5-Turkish','6-Czech','7-Polish','8-Russian','9-Romanian','10-Vietnamese'} VALUE 1
@ 10,380 LABEL Label_system WIDTH 60 HEIGHT 20 value 'SYSYTEM'
@ 5,450 COMBOBOX Combo_system WIDTH 120 ITEMS {'1-Dictionary', '2-Wikipedia','3-None'} VALUE 1
@ 30,5 ACTIVEX translate WIDTH 785 HEIGHT 430 PROGID "shell.explorer"
DEFINE TIMER Timer_1 INTERVAL 500 ACTION dictionary()
END WINDOW
ACTIVATE WINDOW Win
Return
FUNCTION dictionary()
LOCAL value2 := '' , address := ''
value2 := System.Clipboard
value2 := alltrim(value2)
IF win.value1.value <> value2
win.value1.value := value2
DO CASE
CASE Win.Combo_system.Value == 1
Win.Title := "GOOGLE DICTIONARY"
address := 'http://translate.google.com/#'
DO CASE
CASE Win.Combo_From.Value == 1
address := address + 'en|'
CASE Win.Combo_From.Value == 2
address := address + 'fr|'
CASE Win.Combo_From.Value == 3
address := address + 'es|'
CASE Win.Combo_From.Value == 4
address := address + 'pt|'
CASE Win.Combo_From.Value == 5
address := address + 'tr|'
CASE Win.Combo_From.Value == 6
address := address + 'cs|'
CASE Win.Combo_From.Value == 7
address := address + 'pl|'
CASE Win.Combo_From.Value == 8
address := address + 'ru|'
CASE Win.Combo_From.Value == 9
address := address + 'ro|'
CASE Win.Combo_From.Value == 10
address := address + 'vi|'
ENDCASE
DO CASE
CASE Win.Combo_To.Value == 1
address := address + 'en|' + value2
CASE Win.Combo_To.Value == 2
address := address + 'fr|' + value2
CASE Win.Combo_To.Value == 3
address := address + 'es|' + value2
CASE Win.Combo_To.Value == 4
address := address + 'pt|' + value2
CASE Win.Combo_To.Value == 5
address := address + 'tr|' + value2
CASE Win.Combo_To.Value == 6
address := address + 'cs|' + value2
CASE Win.Combo_To.Value == 7
address := address + 'pl|' + value2
CASE Win.Combo_To.Value == 8
address := address + 'ru|' + value2
CASE Win.Combo_To.Value == 9
address := address + 'ro|' + value2
CASE Win.Combo_To.Value == 10
address := address + 'vi|' + value2
ENDCASE
Win.translate.Object:Navigate(address)
Win.label_show.value := 'T'
CASE Win.Combo_system.Value == 2
Win.Title := "WIKIPEDIA - " + value2
DO CASE
CASE Win.Combo_From.Value == 1
address := 'http://en.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 2
address := 'http://fr.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 3
address := 'http://es.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 4
address := 'http://pt.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 5
address := 'http://tr.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 6
address := 'http://cs.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 7
address := 'http://pl.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 8
address := 'http://ru.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 9
address := 'http://ro.wikipedia.org/wiki/' + value2
CASE Win.Combo_From.Value == 10
address := 'http://vi.wikipedia.org/wiki/' + value2
ENDCASE
Win.translate.Object:Navigate(address)
Win.label_show.value := 'T'
ENDCASE
ELSE
Win.label_show.value := 'F'
ENDIF
IF Win.label_show.value == 'T'
Win.Restore
ENDIF
RETURN
Function close()
Win.Minimize
Return