Buch: Einführung in Tcl/Tk
Das Buch "Einführung in Tcl/Tk" wendet sich an Anfänger, die diese interessante Programmiersprache erlernen möchten. Es umfasst alle wichtigen Befehle und erklärt mit vielen Beispielen deren Funktionsweise. Bei Bedarf kann man im Internet auf den Seiten
jeden Befehl vertiefen.
Das Buch darf für nicht-kommerzielle Zwecke kostenlos als pdf-Datei heruntergeladen werden. Die im Buch erwähnten Beispiele können Sie ebenfalls herunterladen, um sich das Abschreiben zu sparen. Sollten Sie trotz sorgfältiger Prüfung Fehler finden, bitte ich Sie um einen entsprechenden Hinweis. Auch Verbesserungsvorschläge sind herzlich willkommen.
Version | Änderungen |
2023-12-02 |
Neue Kapitel: Kapitel "9.6 Trace" Kapitel "44.6 Mausklicks eine Zeit lang ignorieren" Kapitel "51.5 Mit der Maus zeichnen" |
2022-07-26 | Wegen geschäftspolitischer Änderungen seitens ActiveState wurden die Verweise auf ActiveTcl entfernt. |
2022-01-02 |
Neue Kapitel: Kapitel "11.2 Duplikate entfernen ohne die Reihenfolge zu ändern" Kapitel "16. Pool" Kapitel "17. Tree (Baum)" Kapitel "18. Graph (Gerichteter Graph)" Kapitel "26. Tcl mit C/C++ kombinieren" Kapitel "28. Formel-Eingabe durch den Anwender" Kapitel "41.18.1. Text-Element durchsuchen" Kapitel "41.19 Kalender" Kapitel "46. Tooltip anzeigen" Ergänzungen in folgenden Kapiteln oder Beispielen: Kapitel "7.1.1. Rechnen mit Zahlen" Kapitel "11. Listen, Beispiele 556 und 557" Kapitel "12.1. Text, Beispiel 561" Kapitel "57. Programm weitergeben" |
2020-10-12 |
Neue Kapitel: Kapitel "16.1 Matrix kopieren" Kapitel "37.1. Einheitliche Hintergrundfarbe des Dialogs und der Elemente" Kapitel "45.7 Bildschirmfoto erstellen" Ergänzungen in folgenden Kapiteln oder Beispielen: Kapitel "7.1.1. Rechnen mit Zahlen", Funktionen asin, acos, atan, Beispiel 532 Kapitel "12.1. Text, Beispiele 522 bis 524" Kapitel "14.1. Dictionary", Beispiel 531 Kapitel "36.17. Treeview", Beispiele 447, 529, 530, 533, 534, 535 und 538 Kapitel "39.1. Binding für ein Element", KP_Enter Kapitel "40. Mauszeiger, Beispiele 525 und 526" |
2019-12-15 |
Neue Kapitel: Kapitel "3. Beispiel-Programm" Kapitel "6.3.4. Prüfen, ob eine Variable existiert" Kapitel "15. Stack (Stapel)" Kapitel "44.3. Tabelle sortieren" Kapitel "50. Client-Server-Kommunikation" Ergänzungen in folgenden Kapiteln oder Beispielen: Kapitel "11.1. Listen, Beispiele 515 und 516" Kapitel "13.2. Array an Prozedur übergeben" Kapitel "15.2. Ordner durchsuchen mit glob, Beispiele 139 und 438" Kapitel "16. Matrix, Beispiele 433 und 434" Kapitel "16.1. Matrix mittels Liste sortieren" Kapitel "36.17. Treeview, Beispiele 263 und 514" Kapitel "44. TkTable, Beispiel 133" Kapitel "45.5. Objekt bewegen, Beispiel 512" |
2019-02-03 |
Neue Kapitel: Kapitel "10.4. Vergleich von Listen mit ::struct::set" Kapitel "28.2. Fenstergröße abfragen" Kapitel "34.9. Menubutton" Kapitel "35.6. Prüfen, ob ein Element existiert" Kapitel "35.7. Größe und Position eines Elements abfragen" Kapitel "35.8. Element löschen" Kapitel "43.6. Farbe eines Bildpunkts ermitteln" Kapitel "46.3. Farbe und Schrift der Elemente festlegen" Ergänzungen in folgenden Kapiteln: Kapitel "6.2.1. Formatierung, Format %j" Kapitel "14.1. Dateien und Ordner, Befehl [info nameofexecutable]" Kapitel "14.1. Dateien und Ordner, Beispiel 135" Kapitel "25. Objektorientierte Programmierung, Beispiel 342 und 477" Kapitel "31.1. Scroll-Leisten mit pack, Beispiel 463" Kapitel "34.2. Label, Option -anchor" Kapitel "34.7. Checkbutton, Option -command, Beispiel 464" Kapitel "34.8. Radiobutton, Option -command, Beispiel 465" Kapitel "34.11. Listbox, Beispiele 478-480" Kapitel "35.9. Element deaktivieren und aktivieren, Option -state readonly" Kapitel "41.1. Toplevel-Dialog, Beispiel 476" |
2018-08-23 |
Ergänzungen in folgendem Kapitel: Kapitel "47.1. Zeichenfläche" |
2018-08-18 |
Ergänzungen in folgendem Kapitel: Kapitel "8.5. Uplevel" |
2018-08-04 |
Ergänzungen in folgendem Kapitel: Kapitel "6.1.1. Rechnen mit Zahlen" |
2018-06-17 |
Ergänzungen in folgenden Kapiteln: Kapitel "41.1. Binding für ein Element" Kapitel "46. TkTable" Kapitel "48. Gnuplot" |
2018-03-27 |
Neues Layout Ergänzungen in folgenden Kapiteln: Kapitel "24. Datenbank sqlite3" Kapitel "38.4. Entry" Kapitel "38.17. Text" Kapitel "46. TkTable" |
2017-11-11 |
Ergänzungen in folgenden Kapiteln: Kapitel "128. Treeview" Kapitel "154. Layout" |
2017-08-16 |
Neue Kapitel: Kapitel "82. Nur für Windows: gleichzeitige Nutzung von GUI und Konsole" Ergänzungen in folgenden Kapiteln: Kapitel "128. Treeview" Kapitel "134. Canvas (Zeichenfläche)" |
2017-06-04 |
Neue Kapitel: Kapitel "17. Fehlermeldungen verstehen" Ergänzungen in folgenden Kapiteln: Kapitel "21. Rechnen" Kapitel "60. Dateien und Ordner" Kapitel "109. Label" |
2017-02-04 |
Neue Kapitel: Kapitel "65. csv-Dateien öffnen bzw. erstellen" Kapitel "67. Matrix" |
2016-12-27 |
Ergänzungen in folgenden Kapiteln: Kapitel "42. Listen" Kapitel "64. Konfigurationsdatei speichern und einlesen" Kapitel "100. tk_getOpenFile" Kapitel "101. tk_getSaveFile" Kapitel "114. Labelframe" Kapitel "138. Eigenschaft eines Elements nachträglich ändern" Kapitel "150. Layout" |
2016-10-24 |
Neue Kapitel: Kapitel "143. Virtuelle Ereignisse" Ergänzungen in folgenden Kapiteln: Kapitel "118. Listbox" |
2016-09-14 |
Ergänzungen in folgenden Kapiteln: Kapitel "5. Hilfreiche Internetseiten zu Tcl/Tk" Kapitel "48. Strings (Text)" Kapitel "90. Elemente ausblenden" Kapitel "91. Elemente einblenden" Kapitel "119. Combobox" |
2016-08-10 |
Neue Kapitel: Kapitel "54. Mustererkennung in Strings bzw. Text ersetzen in Strings" Ergänzungen in folgenden Kapiteln: Kapitel "122. Notebook" Kapitel "131. Zeichenflächen ,die größer als das Fenster sind" |
2016-06-15 |
Neue Kapitel: Kapitel "36. Upvar und Uplevel in Prozeduren" Kapitel "102. Variablen und Befehle der Elemente sind global" Kapitel "130. Zeichenflächen ,die größer als das Fenster sind" Ergänzungen in folgenden Kapiteln: Kapitel "37. Programmablauf (Kurzform)" Kapitel "55. Ein Array an eine Prozedur übergeben" Kapitel "111. Entry" Kapitel "117. Listbox" Kapitel "124. Text" Kapitel "139. Maus- und Tastaturereignisse (Bindings)" |
2016-03-13 |
Neue Kapitel: Kapitel "124. Popup-Menü (Kontextmenü)" Kapitel "125. Optionen-Menü" Kapitel "128. Canvas als Hilfsmittel, viele Elemente in einem Fenster darzustellen" Ergänzungen in folgenden Kapiteln: Kapitel "23. Zufallszahlen" Kapitel "41. Listen" Kapitel "59. Ordner durchsuchen mit fileutil::find" Kapitel "74. Datenbank sqlite3" Kapitel "80. Der Geometrie-Manager pack" Kapitel "108 Button" Kapitel "109. Entry" Kapitel "120. Panedwindow" Korrektur in folgendem Kapitel: Kapitel "135. Maus- und Tastaturereignisse (Bindings)" |
2015-11-15 |
Teilweise neue Reihenfolge der Kapitel auf Grund der Erfahrungen aus einer Programmier-AG. Neue Kapitel: Kapitel "16. Variablenname mit Hilfe einer anderen Variablen bilden" Kapitel "21. Zahlen mit führender Null" Kapitel "37. Programmablauf im Detail (Regeln des Tcl-Interpreters)" Kapitel "43. Elemente aus einer Liste extrahieren mit foreach" Kapitel "44. Alle Kombinationen aus den Elementen einer Liste erzeugen (Permutation)" Kapitel "52. Zahl als String oder als Zahl behandeln" Ergänzungen in folgenden Kapitel: Kapitel "41. Listen" Kapitel "63. Umgang mit Binär-Dateien" |
2015-09-26 |
Neue Kapitel: Kapitel "43. Listen expandieren mit {*}" Kapitel "55. Ordner durchsuchen mit fileutil::find" Kapitel "58. Konfigurationsdatei speichern und einlesen" Kapitel "66. Befehle aus einer Textdatei ausführen" Ergänzungen in folgenden Kapitel: Kapitel "12. Ausgabe von Text und Zahlen" Kapitel "49. Arrays" Kapitel "50. Ein Array an eine Prozedur übergeben" Kapitel "54. Ordner durchsuchen mit glob" Kapitel "64. Andere Programme starten" Kapitel "65. Befehle dynamisch erzeugen" Kapitel "95. Allgemeine Optionen der Elemente" |
2015-09-07 |
Ergänzungen in folgenden Kapiteln: Kapitel "61. Andere Programme starten" Kapitel "97. Bilder verwenden" |
2015-08-28 |
Neue Kapitel: Kapitel "61. Andere Programme starten" Kapitel "112. Text" Ergänzungen in folgenden Kapiteln: Kapitel "27. Datum und Uhrzeit" Kapitel "111. Treeview" |
2015-07-05 |
Neue Kapitel: Kapitel "33. Prozeduren in separate Datei auslagern" Kapitel "64. Objektorientierte Programmierung" Ergänzungen in folgenden Kapiteln: Kapitel "69. Der Geometrie-Manager pack" |
2015-05-15 |
Neue Kapitel: Kapitel "50. Unterschied zwischen Array und Dictionary" Kapitel "110. TkTable" Ergänzungen in folgenden Kapiteln: Kapitel "28. Rechnen mit Datum und Uhrzeit" Korrekturen: Kapital "39. Listen", Befehl lreplace. |
2015-03-05 |
Neue Kapitel: Kapitel "17. Programm mit Argumenten (Parametern) starten" Kapitel "18. Dezimale, hexadezimale, binäre und ASCII-Darstellung von Zahlen" Kapitel "54. Umgang mit Binär-Dateien" Ergänzungen in folgenden Kapiteln: Kapitel "108. Menü" Kapitel "128. Mehrsprachige GUI" |
2015-02-10 |
Ergänzungen in folgenden Kapiteln: Kapitel "9. Tcl/Tk-Programme unter Windows ausführen" Kapitel "10. Tcl/Tk-Programme unter Linux ausführen" Kapitel "37. Listen" Kapitel "40. Strings" Kapitel "85. Frame" Kapitel "106. Canvas (Zeichenfläche)" |
2014-12-21 |
Neue Kapitel: Kapitel "54. Plattformübergreifende Programme" Kapitel "106. Canvas (Zeichenfläche)" Kapitel "107. Diagramme mit Canvas und Gnuplot" Kapitel "108. Animationen erstellen" Ergänzungen in folgenden Kapiteln: Kapitel "21. Rechnen" Kapitel "25. Datum und Uhrzeit" Kapitel "32. Lokale und globale Variablen" Kapitel "45. Arrays" Kapitel "58. Datenbank sqlite3" Kapitel "99. Combobox" Kapitel "105. Menü" Kapitel "123. Layout" |
2014-10-26 | Korrektur in Kapitel "121. Mehrsprachige GUI" |
2014-10-05 | Erstveröffentlichung |