Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TMemo "unmarkierbar" (https://www.delphipraxis.net/172521-tmemo-unmarkierbar.html)

Dunkelbunt27 8. Jan 2013 19:17

TMemo "unmarkierbar"
 
Hey Leute,
klingt vielleicht komisch, aber ist es möglich ein Memo "unmarkierbar" zu machen?

Erklärung: Das Memo ist nur zur Anzeige gedacht
Delphi-Quellcode:
ReadOnly=True
.
Aber außerdem soll verhindert werden, dass der User den angezeigten Text mit der Maus markieren, noch den Cursor sichtbar in das Memo setzen kann.
Es soll also verhinder werden, dass der Eindruck erweckt wird man könnte irgend etwas in das Memo schreiben oder etwas verändern.
Ist das nachvollziehbar beschrieben?

Sollte es nicht gehen, gibt es Alternativ-Komponenten, die unkompliziert genau das bieten?

Danke schonmal :)

Sir Rufo 8. Jan 2013 19:21

AW: TMemo "unmarkierbar"
 
Ein TLabel?

uligerhardt 8. Jan 2013 19:30

AW: TMemo "unmarkierbar"
 
Delphi-Quellcode:
Enabled := False
?

dunningkruger 8. Jan 2013 19:38

AW: TMemo "unmarkierbar"
 
ReadOnly
PfeilCursor
Eigenes Popupmenu mit NIX drin
OnClick ändert Focus

oder Sir Rufo ;-)

Uli Gerhardts
Enabled := False ändert die Schriftfarbe/Darstellung :-(

uligerhardt 8. Jan 2013 19:44

AW: TMemo "unmarkierbar"
 
Zitat:

Zitat von dunningkruger (Beitrag 1198287)
Uli Gerhardts
Enabled := False ändert die Schriftfarbe/Darstellung :-(

Das ist ja extra so gemacht, dass der Benutzer auch sieht, dass er in dem Memo nix machen kann.
Und falls man ihn partout in die Irre führen will, kann man das Memo auf ein disabledes TPanel legen. Dann müsste WIMRE das Memo ausschauen, als wäre es bearbeitbar, es aber nicht sein.

dunningkruger 8. Jan 2013 19:58

AW: TMemo "unmarkierbar"
 
Mir schon klar, aber es soll wohl TMemo mit dem Aussehen von TLabel sein?

Statt TMemo nehme ich für sowas sowieso TRichEdit :oops:

Dunkelbunt27 8. Jan 2013 20:03

AW: TMemo "unmarkierbar"
 
Okay, danke für die Antworten!

Also disablen kommt eher nicht in Frage, weil es eben dann aussieht wie disabled (und das soll nicht der Fall sein).
Label, naja, für den Notfall.

Zitat:

ReadOnly
PfeilCursor
Eigenes Popupmenu mit NIX drin
OnClick ändert Focus
Ich probier mal, ob das so wird wie ich es mir vorstelle :)


EDIT:
Zitat:

Mir schon klar, aber es soll wohl TMemo mit dem Aussehen von TLabel sein?

Statt TMemo nehme ich für sowas sowieso TRichEdit
Hmmm ja, das ist dann die Alternative 2, ich schau fix durch.

Popov 8. Jan 2013 20:05

AW: TMemo "unmarkierbar"
 
Wenn du dich für die TLabel entscheiden solltest, dann möchte ich dir die TScrollBox in Erinnerung bringen.

Dunkelbunt27 8. Jan 2013 20:10

AW: TMemo "unmarkierbar"
 
Zitat:

Wenn du dich für die TLabel entscheiden solltest, dann möchte ich dir die TScrollBox in Erinnerung bringen.
Danke für den Tipp, ich bleibe nun aber beim Memo.
Ich muss mich korrigieren, denn
Delphi-Quellcode:
Enabled=False
reicht doch, weil meine Texteinstellung schon auf graue Schrift ist und sich dadurch letztendlich nichts an der Anzeige ändert. Ist zwar keine universelle Lösung, aber in meinem Fall völlig ausreichend.

Danke für alle Vorschläge :thumb:

Volker Z. 8. Jan 2013 20:23

AW: TMemo "unmarkierbar"
 
Hallo,

ich weiß nicht, ob es für Dich zutreffend sein könnte.

Delphi-Quellcode:
TMemo1.Enabled := False
lässt kein Scrollen zu, wenn mehr Text darzustellen ist als in den sichtbaren Grenzen darstellbar ist.

Gruß

dunningkruger 8. Jan 2013 20:23

AW: TMemo "unmarkierbar"
 
Eigene graue Textfarbe im TMemo auf Enabled:=False fördert die Lesbarkeit bei cl.WindowText!

Angeblich soll es ja sogar Leute geben, die ihr Windows farblich irgendwie anpassen.

Viel Spaß auf den Kundenrechnern :stupid:

uligerhardt 8. Jan 2013 20:37

AW: TMemo "unmarkierbar"
 
Zitat:

Zitat von dunningkruger (Beitrag 1198302)
Eigene graue Textfarbe im TMemo auf Enabled:=False fördert die Lesbarkeit bei cl.WindowText!

Angeblich soll es ja sogar Leute geben, die ihr Windows farblich irgendwie anpassen.

Viel Spaß auf den Kundenrechnern :stupid:

Wenn du es schon erwähnst: Ich verlinke ja gerne und oft hierauf: When selecting system colors, match but don't mix :-D

Popov 8. Jan 2013 20:42

AW: TMemo "unmarkierbar"
 
Das Problem mit
Delphi-Quellcode:
Enabled
ist nicht alleine die graue Schrift. Ist es auf False, werden auch die Bildlaufleiten abgeschaltet. U. U. ist das kein Problem, dann tritt das Problem gar nicht in Erscheinung. Wenn aber der Memotext paar Seiten lang ist, dann klappt das mit Enabled nicht so einfach.

p80286 8. Jan 2013 22:00

AW: TMemo "unmarkierbar"
 
Wie wäre es mit Eigenbau:
THexdump
Den Hex-Teil Entfernen und Du hast einen Browser mit den Eigenschaften die Du gerne hättest.

Gruß
K-H

Volker Z. 8. Jan 2013 23:48

AW: TMemo "unmarkierbar"
 
Hallo,

was spricht gegen folgenden Variante: Memo auf das Form ziehen (ggf. Eigenschaft ScrollBars anpassen), Event-Handler für OnEnter und OnContextPopup.

Delphi-Quellcode:
procedure TForm1.Memo1Enter(Sender: TObject);
begin
  ActiveControl := nil
end;

procedure TForm1.Memo1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
  Handled := True
end;
Gruß

Dunkelbunt27 9. Jan 2013 19:01

AW: TMemo "unmarkierbar"
 
Scrollbars brauche ich in dem Fall nicht, der Text ist immer genau gleich lang und passt genau, also ist das kein Problem. Nur die Farbgebung ist dann problematisch

Popov 9. Jan 2013 19:09

AW: TMemo "unmarkierbar"
 
Ich mache es in solchen Fällen so: Panel so positionieren wie der Text später sein soll. BevelOuter auf bvLowered stellen. Label auf Panel legen, Align auf alClient und WordWrap auf True stellen.

Codewalker 10. Jan 2013 11:05

AW: TMemo "unmarkierbar"
 
Oder man legt das TMemo in ein Panel und setzt vom Panel
Delphi-Quellcode:
Enabled := False

Dunkelbunt27 11. Jan 2013 12:43

AW: TMemo "unmarkierbar"
 
Danke,

die letzten beiden Varianten von Popov und Codewalker sind auch ziemlich gut, finde ich.
Ich hab es jetzt so wie Codewalkergemacht
Zitat:

Oder man legt das TMemo in ein Panel und setzt vom Panel Enabled := False
Scheint alles so zu klappen wie es soll, die Farben bleiben hoffe ich auch. Anklicken kann man es jedenfalls nicht, genau wie es sein soll!

Danke nochmal für eure tatkräftige Hilfe :thumb::dp:

uligerhardt 11. Jan 2013 12:51

AW: TMemo "unmarkierbar"
 
Zitat:

Zitat von Dunkelbunt27 (Beitrag 1198638)
Ich hab es jetzt so wie Codewalkergemacht
Zitat:

Oder man legt das TMemo in ein Panel und setzt vom Panel Enabled := False

Genaugenommen ist das ja mein Vorschlag aus Post 5. :mrgreen:

Dunkelbunt27 12. Jan 2013 12:00

AW: TMemo "unmarkierbar"
 
Haha :-D
Ja habs auch gesehen, du hast Recht uligerhardt,
hätte ich also auch schon früher so machen können :lol:
Danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz