WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Editbox Text löschen wenn man reinklickt

 

robertss

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2016, 10:46     Titel: Editbox Text löschen wenn man reinklickt
  Antworten mit Zitat      
Ich habe unter String einen Text in einer Editbox stehen. Wie kann ich es machen das der Text gelöscht wird wenn ich mit der Maus reinklicke?


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.11.2016, 13:24     Titel: Re: Editbox Text löschen wenn man reinklickt
  Antworten mit Zitat      
Hallo robertss,

Das ist nicht die übliche Verwendeung eines EDIT-Feldes. Soll man danach auch neuen Text eingeben können oder ist das Löschen die gesamte User-Interaktion? Geht es um die rechte Maustaste oder beide?
Eine Möglichkeit ist die ButtonDownFcn, die aber für die linke Maustaste vom normalen Callback verdeckt wird, wenn das Feld auf 'Enable'='on' steht. Versuche es mal mit 'inactive' und der BuittonDownFcn.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
robertss

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2016, 08:44     Titel:
  Antworten mit Zitat      
In der Editbox steht eine Beschreibung was man da reinzuschreiben hat. Ich will mit der linken Maustaste reinklicken der Text soll dann verschwinden und ich will dann das eintragen was was reingehört.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.11.2016, 11:26     Titel:
  Antworten mit Zitat      
Hallo robertss,

Der Klick soll also nicht nur den Text löschen, sondern auch den Focus in das Editierfeld setzen, so dass der Cursor dort erscheint und man gleich lostippen kann. Das ist in Matlab nicht direkt möglich. Indirekt kann man aber alles schaffen, natürlich. Das ist aber tatsächlich eine interessante Herausforderung. Mal sehen...

Code:
function Main

figure;
uicontrol('Style', 'edit', 'String', 'Type here', ...
   'ForegroundColor', [0.8, 0.8, 0.8], ...
   'Enable', 'inactive', ...
   'ButtonDownFcn', @firstClick, ...
   'HorizontalAlignment', 'left');
end

function firstClick(ObjectH, EventData)
set(ObjectH, 'String', '', 'Enable', 'on', 'ForegroundColor', [0,0,0]);
drawnow;

% Simulate a left click at the current position to activate the edit cursor:
robot = java.awt.Robot;
robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);
robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK);
end

Ja, funktioniert so. Der java.awt.robot kann den benötigten zusätzlichen Mausklick simulieren.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.11.2016, 11:32     Titel:
  Antworten mit Zitat      
Hallo,

@ Jan: interessante Lösung :)

Ich finde es allerdings üblicher, diese Beschreibung in ein Static Text über / neben dem Edit Text unterzubringen. So bleibt die Beschreibung auch erhalten, wenn man die Eingabe später noch einmal ändern möchte.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.11.2016, 22:47     Titel:
  Antworten mit Zitat      
Hallo Harald,

Zitat:
@ Jan: interessante Lösung :)

Ich habe mich auch amüsiert. Mit Yairs FINJOBJ hätte man auch die Java-Callbacks verwenden können. Aber so ist es schlanker.

Zitat:
Ich finde es allerdings üblicher, diese Beschreibung in ein Static Text über / neben dem Edit Text unterzubringen.

Da stimme ich Dir zu. Es ist inzwischen Standard in vielen Web-Interfaces, die Bedeutung eines Feldes in grau einzutragen, wenn der Inhalt im Normalfall nur einmal eingegeben wird, z.B. bei Login-Namen und Passwort. In den Web-Interfaces wird das Löschen per JavaScript erledigt und mein Script-Blocker im Browser vermiest die Usability ziemlich.

Zum Glück wird noch einige Zeit ins Land gehen, bevor man auch bei Matlab einen Script-Blocker verwenden muss, um nicht mir Reklame zugemüllt zu werden. Hmmm. Mir kommt da gerade eine neue Geschäftsidee...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.11.2016, 00:05     Titel:
  Antworten mit Zitat      
Zitat:
Mir kommt da gerade eine neue Geschäftsidee...

Vielleicht sowas wie
Die Code-Ausführung wird fortgesetzt in 10... 9... etc

Ich sollte schlafen gehen.

Gute Nacht,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.