Smallpad reBoot
- Beta
- Closed Source
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 139 Antworten in diesem Thema. Der letzte Beitrag () ist von chenjung.
-
-
-
-
Hi, bei einem Doppelklickt passiert einfach nichts.
Dies steht im Fenster.
Instanzen dieses Fehlers (1)
1.
Aufrufliste
ausblenden
bei
Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomEventBindingService.ValidateMethodName(String
methodName)
bei
System.ComponentModel.Design.EventBindingService.EventPropertyDescriptor.SetValue(Object
component, Object value)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAttachEventStatement(IDesignerSerializationManager
manager, CodeAttachEventStatement statement)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager
manager, CodeStatement statement)
PS: kleines Preview
Mit dem nächsten Update folgen dann auch weitere Infso.Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „chenjung“ ()
-
Also lass bitte das ganze My. Zeug weg.
Zu dem Quellcode den du oben hast...
Ich habe mal ein kleines Beispiel erstellt, wie du mit ner Funktion eine Datei öffnen und den aktuellen Text ggf. speichern kannst.
Hier wird geprüft ob der aktuelle Text abweicht von dem aus der aktuellen Datei und nur dann die Abfrage ob zu speichern ist gewählt.
Eine Auswahl einer neuen Speicher-Datei wird ebenfalls nur dann aufgerufen, wenn die Datei nicht schon vom letzten Öffnen bekannt ist.
Der Inhalt wird ebenfalls nur dann ersetzt, wenn alles i.O. ist.
Spoiler anzeigen VB.NET-Quellcode
- Imports System.IO
- Public Class Form1
- Private aktuelleDatei As String = ""
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- 'Beispielhafter Aufruf der Funktion
- Dim ofd As New OpenFileDialog
- If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
- If Oeffne_neue_Datei(TextBox1.Text, ofd.FileName, aktuelleDatei) Then
- aktuelleDatei = ofd.FileName
- End If
- End If
- End Sub
- ''' <summary>
- ''' Öffnen einer neuen Datei
- ''' </summary>
- ''' <param name="inhalt">Inhalt der aktuellen Datei</param>
- ''' <param name="dateiNeu">Pfad der neuen Datei</param>
- ''' <param name="dateiAktuell">Pfad der aktuellen Datei</param>
- ''' <returns>Information ob die Datei korrekt geöffnet wurde</returns>
- ''' <remarks></remarks>
- Private Function Oeffne_neue_Datei(Optional ByRef inhalt As String = "", Optional ByVal dateiNeu As String = "", Optional ByVal dateiAktuell As String = "") As Boolean
- 'Prüfung ob Inhalt gefüllt oder abweichend von aktueller Datei
- If (File.Exists(dateiAktuell) AndAlso
- inhalt <> System.IO.File.ReadAllText(dateiAktuell, System.Text.Encoding.Default)) OrElse (Not File.Exists(dateiAktuell) AndAlso inhalt <> "") Then
- Dim msgResult = MessageBox.Show("Soll ich den Text sichern?", "Text vorhanden, sichern?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
- If msgResult = Windows.Forms.DialogResult.Yes Then
- Dim sfd As New SaveFileDialog
- If dateiAktuell = "" Then
- If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
- dateiAktuell = sfd.FileName
- Else
- Return False 'Wenn Datei nicht ausgewählt dann abbruch
- End If
- End If
- File.WriteAllText(dateiAktuell, inhalt, System.Text.Encoding.Default)
- inhalt = ""
- ElseIf msgResult = Windows.Forms.DialogResult.Cancel Then
- Return False 'Abbruch weil auf Abbruch gedrückt
- End If
- End If
- If File.Exists(dateiNeu) Then
- inhalt = File.ReadAllText(dateiNeu, System.Text.Encoding.Default)
- Return True
- End If
- Return False
- End Function
- End Class
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'D -
-
Bei dem Code fragt er nur nach, wenn der Inhalt der Datei <> dem Inhalt der Textbox ist ODER es noch keine Datei gibt und der Inhalt der Textbox nicht leer ist.
Also dann wenn es etwas zu speichern gibt.
Und er fragt nur nach einem Speicherpfad, wenn er diesen noch nicht kennt.Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'D -
-
Update: Version 1.04 ist nun auf der 1. Seite.
Folgende Updates:
- Bei Text in der Textbox fragt SmallPad nun, ob der Texte vor dem Beenden gespeichert werden soll.
- Selbes beim öffnen einer neuen Datei.
- Systemmeldungen sind ein.- und ausblendbar.
- Hinweise und Danke Formen hinzugefügt.
- Neue Icons für das Rechtsklickmenü und in den anderen Menüs.
Demnächst wird sich um folgendes gekümmert:
- Wörter / Buchstaben zählen.
- Druckerauswahl
Danke an alle, die so eine geduld mit mir haben
Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „chenjung“ ()
-
Hey @chenjung
Also aufgefallen ist mir folgendes, bzw. das könnte man ausbessern/ändern:
Dankeform / Versionsform
- Beide als FixedToolWindow hinterlegen.
- Da du auf der jeweiligen Form ein "Schliessen"-Button hast könntest du im Designer unter den Properties deiner Form folgendes hinterlegen. (CancelButton.png) Somit würde durch drücken von ESC die Form geschlossen werden. (Sehe das als Standard, mit ESC die Form schließen zu können)
- Beide durch .ShowDialog aufrufen (Finde ich auch schöner, da man nicht einfach auf die Anwendung zurück kann, bis man das Fenster geschlossen hat )
Maximieren / Minimieren
- Evtl. die Bilder austauschen, ich assoziiere die Lupe mit Zoom-Inhalt (Maxi-Minimize.png)
Aber ansonsten, funzt es so, wie es soll.
An Projekten kann man wachsen.. Von daher finde ich es gut, das du Dir eine Aufgabe ausgesucht hast.
Edit:
Speichern/Speichern unter müsstest du noch anpassen. Momentan bekommt man als Vorschlag den kompletten Pfad zur zuletzt gespeicherten Datei, vielleicht nur auf Dateinamen begrenzen. (Speichern.png)
Grüße,
DrahuverarOption Strict On!Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Drahuverar“ ()
- Beide als FixedToolWindow hinterlegen.
-
Kleines nettes Gimmick wäre ja noch, dass man eine Datei auf deinen SmallPad ziehen kann und er diese dann öffnet. Ist ja mit Darg & Drop im Handumdrehen erledigt.
Zudem wäre es vielleicht noch schön die Möglichkeit zu bieten eine Datei mit einer vom User auswählbaren Codierung "neu" zu öffnen und auch zu speichern.
Denn... was ist, wenn ich mit dem SmallPad eine Datei aufmache die in UTF-8 erstellt wurde...? Sonderzeichen ade! ;D
Auch das wäre ja recht leicht umzusetzen.Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'DDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()
-
Danke für eure Hinweise.
@Drahuverar: das sollte nicht sein. Das Speichern Feld sollte eig leer sein. Bei mir sehe ich da nichts? O.o
Deine anderen Hinweise stehen auf der ToDo.
@Memoanmichselbst: das werde ich mal versuchen drag& drop.
Allerdings mit UTF8 muss ich mal gucken wegen unlauten. Ich meine bis jetzt lief es ja da es als .txt gespeichert wird. Ich werde da mal bissi was nachlesenIhr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
-
Nachdem man gespeichert hat ist erst der Pfad als Dateiname hinterlegt
Vorher ist es leer.
Drag'n'Drop vom Text und oder von Dateien oder anderes findest du hier
GrüßeOption Strict On! -
Kleines Update *wird in Version 1.05 verfügbar sein!*
Und danke für die Tipps
Drahuverar schrieb:
Dankeform / Versionsform
[*]Beide als FixedToolWindow hinterlegen. - Done
[*]Da du auf der jeweiligen Form ein "Schliessen"-Button hast könntest du im Designer unter den Properties deiner Form folgendes hinterlegen. (CancelButton.png) Somit würde durch drücken von ESC die Form geschlossen werden. (Sehe das als Standard, mit ESC die Form schließen zu können) - Done
[*]Beide durch .ShowDialog aufrufen (Finde ich auch schöner, da man nicht einfach auf die Anwendung zurück kann, bis man das Fenster geschlossen hat ) - Done
Zudem habe ich noch eine Checkbox eingebaut um den Editor im Focus zu halten.
Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „chenjung“ ()
-
Kleines Mini Upate: *wird in Version 1.05 verfügbar sein!*
- Drag&Drop geht nun
Man kann nun .TXT Files direkt ins Textfeld ziehen. Läuft gut und stabil.
- Icons Angepasst für Zoom in / out
- Icons angepasst für Fenster Maximieren / Normalisieren
Kleines Pre Video zum Drag&drob
Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „chenjung“ ()
-
Zum Thema Kodierungen.
In meinem Beispiel wird ja immer mit ".Default" geöffnet und gespeichert.
Nun müsstest du nur die Funktion so anpassen, dass du die Kodierung der aktuellen Datei und die Kodierung der neuen Datei mitgeben kannst (wären zwei Optionale Parameter mit Nothing initialisiert).
In der Funktion müsstest du nun prüfen ob Nothing übergeben wurde und dies dann mit Default überschreiben.
Ab da dann nurnoch mit den internen Variablen arbeiten.
Und dann bräuchtest du im Programm neben der Variable der aktuellen Datei noch ne Variable der aktuellen Kodierung.
Ich hoffe das reicht als Denkanstoß
An und für sich nicht großes. Aber bei den unterschiedlichen Dateikodierungen die es gibt (internet wäre UTF8 am verbreitetsten... Microsoft hat ihr eigenes (kenn ich aktuell nicht auswendig. 1525 oder so... oO) und so weiter und sofort.
Das gehört zu den Grundvoraussetzungen eines Editors dass er Dateien mit ner anderen Kodierung als Default öffnen kann und dass er Dateien auch in ne andere Kodierung als die geöffnete speichern kann.
Wennst noch Hilfe brauchst einfach fragen. Bin nur gerade nicht in Reichweite des Arbeitsrechners ;DEs war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'DDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()
-
Neue Version auf der 1. Seite
Änderungen:
- Drag&drob
- Neue Icons (in den Menüs)
- Checkbox immer im Focus halten (an/aus)
- Im Menü ist die Option im Focus an und abwählbar
Was angepasst wird:
- Icons im Menü (die neuen sind nicht transparent) werden demnächst upgedatet.
@Memoanmichselbst: Dein Gedankenanstoß ist genau richtig, ich werde dahin gehend weiter suchen & daran abreiten Danke für deine Mühe und auch den anderen. Danke für eure Ideen & Tipps.Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „chenjung“ ()
-
Hey @chenjung
Ich habe mir deine neue Version angesehen
- Bei den Websteitenangaben des Versionenhinweis... mache dort doch Links... weil den Text kopieren kann ich auch nicht und abschreiben wird's wohl kaum jemand
- das selbe fürs email... das direkt eine neue Mail geöffnet wird.
- wenn ich im Vordergrund aktiviert habe und nun den Register "dank" öffne, dann kann ich diesen nicht mehr schliessen weil kein Button mehr sichtbar ist, je nach Fenstergrösse
- für was ist denn diese Checkbox überhaupt?
- die Registerkarte Ansicht => Vordergrund An/Aus funktioniert nicht, weder als Button noch als Kurzbefehl
Gruss Mirco
Gruss Mirco -
Hi @'MircoTuor:
Danke für deinen Hinweis. Die Links werden eingearbeitet
Was den Vordergrund + die beiden Fenster (Danke und Versionshinweis) werde ich mal sehen, was ich da machen kann.
Die Checkbox ist für die schnell "im Vordegrundhalten" Funktion gedacht, falls man nicht STRG+T drücken will (im Editor) außerhalb des Editors geht es nicht. Die Funktion Vordergrund an/aus geht bei mir, allerdings wie gesagt nur im Editor (also wegen Shortcut) über das drücken allerdings auch.
Siehe Video:
Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
-
Du kannst auch global Hotkeys abonnieren.
Aber da musst dann aufpassen dass die sich nicht mit anderen Programmen behaken.
Im Idealfall so bauen, dass der Anwender diese ändern kann.
Hier eine Klasse die das ermöglicht (musst halt erstellen und dann den Code einfügen)
Spoiler anzeigen VB.NET-Quellcode
- ''' <summary>
- ''' Mit dieser Klasse kann man sehr leicht eine globale Hotkey funktionalität in seinem Programm einbinden.
- ''' Man muss nur diese Klasse mit WithEvents deklarieren und ihr eine Form zuweisen die gesubclassed werden soll.
- ''' Dann muss man nur noch ein paar eigene HotKey-Kombinationen registrieren (z.B. Strg+Alt+X) und diese
- ''' mit dem Event abfragen bzw, abfangen. Dazu muss man eine eigene HotKeyID angeben um einen bestimmte HotKey
- ''' Kombination später zu identifizieren wenn diese gedrückt wird. Wenn man z.B. eine Kombination registriert
- ''' und ihr z.B. die HotKeyID "TEST1" zugewiesen wird, dann kann man später im Event nach dieser ID "TEST1" fragen
- ''' und dann eine Funktion aufrufen die für diesen HotKey bestimmt wurde.
- ''' </summary>
- ''' <remarks>Tim Hartwig</remarks>
- Public Class clsHotKey
- Implements IMessageFilter
- Private Declare Function RegisterHotKey Lib "user32" ( _
- ByVal Hwnd As IntPtr, _
- ByVal ID As Integer, _
- ByVal Modifiers As Integer, _
- ByVal Key As Integer) _
- As Integer
- Private Declare Function UnregisterHotKey Lib "user32" ( _
- ByVal Hwnd As IntPtr, _
- ByVal ID As Integer) _
- As Integer
- Private Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" ( _
- ByVal IDString As String) _
- As Short
- Private Declare Function GlobalDeleteAtom Lib "kernel32" ( _
- ByVal Atom As Short) _
- As Short
- Public Class HotKeyObject
- Private mHotKey As Keys
- Private mModifier As MODKEY
- Private mHotKeyID As String
- Private mAtomID As Short
- Public Property HotKey() As Keys
- Get
- Return mHotKey
- End Get
- Set(ByVal value As Keys)
- mHotKey = value
- End Set
- End Property
- Public Property Modifier() As MODKEY
- Get
- Return mModifier
- End Get
- Set(ByVal value As MODKEY)
- mModifier = value
- End Set
- End Property
- Public Property HotKeyID() As String
- Get
- Return mHotKeyID
- End Get
- Set(ByVal value As String)
- mHotKeyID = value
- End Set
- End Property
- Public Property AtomID() As Short
- Get
- Return mAtomID
- End Get
- Set(ByVal value As Short)
- mAtomID = value
- End Set
- End Property
- <DebuggerStepThrough()> _
- Sub New(ByVal NewHotKey As Keys, ByVal NewModifier As MODKEY, ByVal NewHotKeyID As String)
- mHotKey = NewHotKey
- mModifier = NewModifier
- mHotKeyID = NewHotKeyID
- End Sub
- End Class
- Private mForm As Form
- Private Const WM_HOTKEY As Integer = &H312
- Private mHotKeyList As New System.Collections.Generic.Dictionary(Of Short, HotKeyObject)
- Private mHotKeyIDList As New System.Collections.Generic.Dictionary(Of String, Short)
- ''' <summary>
- ''' Diesem Event wird immer die zugewiesene HotKeyID übergeben wenn eine HotKey Kombination gedrückt wurde.
- ''' </summary>
- Public Event HotKeyPressed(ByVal HotKeyID As String)
- Public Enum MODKEY As Integer
- MOD_ALT = 1
- MOD_CONTROL = 2
- MOD_SHIFT = 4
- MOD_WIN = 8
- End Enum
- <DebuggerStepThrough()> Sub New(ByVal OwnerForm As Form)
- mForm = OwnerForm
- Application.AddMessageFilter(Me)
- End Sub
- ''' <summary>
- ''' Diese Funktion fügt einen Hotkey hinzu und registriert ihn auch sofort
- ''' </summary>
- ''' <param name="KeyCode">Den KeyCode für die Taste</param>
- ''' <param name="Modifiers">Die Zusatztasten wie z.B. Strg oder Alt, diese können auch mit OR kombiniert werden</param>
- ''' <param name="HotKeyID">Die ID die der Hotkey bekommen soll um diesen zu identifizieren</param>
- <DebuggerStepThrough()> _
- Public Sub AddHotKey(ByVal KeyCode As Keys, ByVal Modifiers As MODKEY, ByVal HotKeyID As String)
- If mHotKeyIDList.ContainsKey(HotKeyID) = True Then Exit Sub
- Dim ID As Short = GlobalAddAtom(HotKeyID)
- mHotKeyIDList.Add(HotKeyID, ID)
- mHotKeyList.Add(ID, New HotKeyObject(KeyCode, Modifiers, HotKeyID))
- RegisterHotKey(mForm.Handle, ID, mHotKeyList(ID).Modifier, mHotKeyList(ID).HotKey)
- End Sub
- ''' <summary>
- ''' Diese Funktion entfernt einen Hotkey und deregistriert ihn auch sofort
- ''' </summary>
- ''' <param name="HotKeyID">Gibt die HotkeyID an welche entfernt werden soll</param>
- <DebuggerStepThrough()> _
- Public Sub RemoveHotKey(ByVal HotKeyID As String)
- If mHotKeyIDList.ContainsKey(HotKeyID) = False Then Exit Sub
- Dim ID As Short = mHotKeyIDList(HotKeyID)
- mHotKeyIDList.Remove(HotKeyID)
- mHotKeyList.Remove(ID)
- UnregisterHotKey(mForm.Handle, CInt(ID))
- GlobalDeleteAtom(ID)
- End Sub
- <DebuggerStepThrough()> _
- Private Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements System.Windows.Forms.IMessageFilter.PreFilterMessage
- Try
- If m.Msg = WM_HOTKEY Then
- RaiseEvent HotKeyPressed(mHotKeyList(CShort(m.WParam)).HotKeyID)
- End If
- Catch ex As Exception
- End Try
- End Function
- End Class
Dann kannst du mit
den Hotkey abonnieren und mit
den Hotkey wieder freigeben.
Hierfür musst dann deinem Programm mitgeben:
Auf die unterschiedlichen Events kannst dann mit
EDIT:
Ich hab mal nen Beispiel hochgeladen wo du sehen kannst wie das so machbar wäre.Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'DDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()
-
Ähnliche Themen
-
XxLike - - Off-Topic
-
20 Benutzer haben hier geschrieben
- chenjung (66)
- MemoAnMichSelbst (18)
- Vainamo (13)
- Drahuverar (11)
- MircoTuor (6)
- Trade (5)
- Schamash (4)
- nafets (2)
- milaim (2)
- Linkai (2)
- fichz (2)
- ThuCommix (1)
- thomasuebi (1)
- SystemException (1)
- Ruerte (1)
- Mokki (1)
- KidRick (1)
- ichduersie (1)
- Hilfe0987 (1)
- BornToBeRoot (1)