Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Edit Text ausblenden ? (https://www.delphipraxis.net/173868-edit-text-ausblenden.html)

Davidlocke13 21. Mär 2013 12:35

Edit Text ausblenden ?
 
Morgen,

gibt es eine Möglichkeit bei einem Edit den den Text auszublenden ohne es zu leeren?

LG

Klaus01 21. Mär 2013 12:36

AW: Edit Text ausblenden ?
 
.. Textfarbe = Hintergrundfarbe?

Grüße
Klaus

Davidlocke13 21. Mär 2013 12:37

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Klaus01 (Beitrag 1208220)
.. Textfarbe = Hintergrundfarbe?

Grüße
Klaus

Dann markiere Mal den Text und schwups kannst den wieder lesen und alles war umsonst ;-)

DeddyH 21. Mär 2013 12:39

AW: Edit Text ausblenden ?
 
Irgendwie klingt das Anliegen merkwürdig, was hast Du denn vor?

Davidlocke13 21. Mär 2013 12:43

AW: Edit Text ausblenden ?
 
Ich möchte einen Edit einen String zuweisen und erst wenn ich frage ob in dem Edit der entsprechende String drin steht soll es mir den Text Anzeigen

DeddyH 21. Mär 2013 12:45

AW: Edit Text ausblenden ?
 
:gruebel: :?: Ich habe kein Wort verstanden, ehrlich gesagt.

sHoXx 21. Mär 2013 12:54

AW: Edit Text ausblenden ?
 
dann kannst du evtl mit der Eigentschaft PasswordChar arbeiten, entsprechende den Char setzen wenn der Text ausgeblendet sein soll und wenn du ihn anzeigen willst den Char wieder auf den defaultwert setzen

Davidlocke13 21. Mär 2013 13:01

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von DeddyH (Beitrag 1208224)
:gruebel: :?: Ich habe kein Wort verstanden, ehrlich gesagt.

Ja ok ich mache mir das gerade wahrscheinlich auch wieder viel zu kompliziert !

1 Ich habe ein Edit

2 Dieses bekommt einen String zugweisen mit "Edit.Text := String"

3 Jetzt soll der Text aber erst angezeigt werden wenn ich auf einen Button drücke !

Das Problem: Der String wird schon zu einen früheren Zeitpunkt zugweisen und nicht erst beim Button klicken !

DeddyH 21. Mär 2013 13:03

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1208230)
Das Problem: Der String wird schon zu einen früheren Zeitpunkt zugweisen und nicht erst beim Button klicken !

Und wieso? Man kann den String doch zur Not in einem privaten Feld ablegen und dann erst später zuweisen.

Davidlocke13 21. Mär 2013 13:10

AW: Edit Text ausblenden ?
 
Ja du hast mich da auf eine Idee gebracht werde ich dann mal ausprobieren ;-)

Davidlocke13 21. Mär 2013 14:24

AW: Edit Text ausblenden ?
 
So folgendes Problem: das Edit befindet sich in einem Array was ich zur Laufzeit erstell keine Ahnung wie ich da drauf zugreifen kann Da das Edit keinen Namen hat !


Delphi-Quellcode:
EditArray[i]:= TEdit.Create(Self);
    EditArray[i].Parent := Self;
    EditArray[i].Left:= 50 +(32* i);
    EditArray[i].Top:= 380;
    EditArray[i].Width:= 30;
    EditArray[i].Font.Name := 'Comic Sans MS';
    EditArray[i].Font.Size := 14;
    EditArray[i].MaxLength := 1;
    EditArray[i].Alignment := taCenter;
    EditArray[i].ReadOnly := true;

Klaus01 21. Mär 2013 14:26

AW: Edit Text ausblenden ?
 
..
Delphi-Quellcode:
EditArray[x].Text := '123';
Grüße
Klaus

DeddyH 21. Mär 2013 14:27

AW: Edit Text ausblenden ?
 
Na, über EditArray[Index]

Davidlocke13 21. Mär 2013 14:45

AW: Edit Text ausblenden ?
 
Delphi-Quellcode:
if 'A' in String then
  begin
    EditArray[i].Text := Wort[i + 1];
  end;
end;
warum geht das nicht ? :(

Sir Rufo 21. Mär 2013 14:47

AW: Edit Text ausblenden ?
 
Sach mah, willst du so etwas wie den Galgenmann (Hangman) programmieren?

Das sieht irgendwie ganz grauslich aus, was du da probierst ...

Klaus01 21. Mär 2013 14:49

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1208253)
Delphi-Quellcode:
if 'A' in String then
  begin
    EditArray[i].Text := Wort[i + 1];
  end;
end;
warum geht das nicht ? :(

.. kannst Du bitte etwas genauer werden?

Hat i einen Wert zugewiesen bekommen?

Grüße
Klaus

Davidlocke13 21. Mär 2013 14:52

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1208255)
Sach mah, willst du so etwas wie den Galgenmann (Hangman) programmieren?

Das sieht irgendwie ganz grauslich aus, was du da probierst ...

Ja ich bin da wieder dran nachdem ich mein anders Project fertig habe !

Das es grauslich aussieht glaube ich gerne aber so ist das bei mir nun mal wenn ich mir alles selber beibringen muss und ausprobiere !

p80286 21. Mär 2013 14:55

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1208253)
Delphi-Quellcode:
if 'A' in String then
  begin
    EditArray[i].Text := Wort[i + 1];
  end;
end;
warum geht das nicht ? :(

Falls das Pseudocode sein soll, dann sollte das gehen, falls das ernst gemeint war "string" als Variablenname ist nicht so der Bringer.
(ist i>0?)
ist i<length(wort)?

Fragen über Fragen.

Gruß
K-H

Reich doch mal allen Sourcecode den Du hast herüber.

Davidlocke13 21. Mär 2013 15:01

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von p80286 (Beitrag 1208259)
Zitat:

Zitat von Davidlocke13 (Beitrag 1208253)
Delphi-Quellcode:
if 'A' in String then
  begin
    EditArray[i].Text := Wort[i + 1];
  end;
end;
warum geht das nicht ? :(

Falls das Pseudocode sein soll, dann sollte das gehen, falls das ernst gemeint war "string" als Variablenname ist nicht so der Bringer.
(ist i>0?)
ist i<length(wort)?

Fragen über Fragen.

Gruß
K-H

String ist nur Pseudocode ich gebe meinen Variablen schon ordentliche Namen ;-)

Ist hallt alles nicht so der Bringer bei mir was ich da mit Delphi mache! in der Berufsschule Lehren ich C++ für Konsole und da auf meiner Arbeit mit Delphi Programmiert wir muss ich das jetzt auch noch irgendwie lernen!

Sir Rufo 21. Mär 2013 15:05

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1208258)
Zitat:

Zitat von Sir Rufo (Beitrag 1208255)
Sach mah, willst du so etwas wie den Galgenmann (Hangman) programmieren?

Das sieht irgendwie ganz grauslich aus, was du da probierst ...

Ja ich bin da wieder dran nachdem ich mein anders Project fertig habe !

Das es grauslich aussieht glaube ich gerne aber so ist das bei mir nun mal wenn ich mir alles selber beibringen muss und ausprobiere !

Hmmm, aber funktioniert Hangman nicht so, dass man einen Buchstaben sagt und dann werden alle Stellen wo der Buchstabe im Wort enthalten ist aufgedeckt?

Dann frage ich mich, wozu du die ganzen Edit-Felder benötigst?

Wenn du dir eine Delphi-Referenz durchsuchenTPaintBox nimmst und im Delphi-Referenz durchsuchenTPaintBox.OnPaint Event die Felder malst und (wenn schon erraten) die Buchstaben in die Felder malst, dann bist du mit der Anzeige-Geschichte in Null-komma-Nix fertig ...

Aber so versuchst du dich gerade selber zu ver.... :mrgreen:

Davidlocke13 21. Mär 2013 15:08

AW: Edit Text ausblenden ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mein Projekt

Anhang 38782

oder eher Müll

Sir Rufo 21. Mär 2013 16:00

AW: Edit Text ausblenden ?
 
Nur mal so zum Spaß eine (sehr einfache) Hangman-Painter-Componente, die man so benutzt:
Eine PaintBox auf die Form klatschen (irgendwie noch
Delphi-Quellcode:
Align := alTop
) und dann:

Delphi-Quellcode:
uses
  HangManPainter,
  ...;

type
  TForm1 = class( TForm )
    PaintBox1 : TPaintBox;
    procedure FormCreate( Sender : TObject );
  private
    FPainter : THangManPainter;
  end;

procedure TForm1.FormCreate( Sender : TObject );
begin
  FPainter := THangManPainter.Create( PaintBox1 );
end;
Delphi-Quellcode:
THangmanPainter
stellt (aktuell) zwei Eigenschaften zur Verfügung
Delphi-Quellcode:
CharCount
und
Delphi-Quellcode:
Chars[Index]
und darüber stellt man dann die Anzahl der Buchstaben ein und an welcher Stelle welcher Buchstabe angezeigt werden soll.

Das Spiel selber steuert das dann ganz simpel über diese beiden Eigenschaften.

Das weitere Aufhübschen überlasse ich dir dann mal ;)
Delphi-Quellcode:
unit HangManPainter;

interface

uses
  Classes, ExtCtrls;

type
  THangManPainter = class( TComponent )
  private
    FPaintBox : TPaintBox;
    FCharCount : Integer;
    FChars :    array of Char;
    procedure SetCharCount( const Value : Integer );
    function GetChars( const index : Integer ) : Char;
    procedure SetChars( const index : Integer; const Value : Char );
    function GetCharCount : Integer;
  protected
    procedure OnPaint( Sender : TObject );
  public
    constructor Create( APaintBox : TPaintBox ); reintroduce;

    property CharCount : Integer read GetCharCount write SetCharCount;
    property Chars[const index : Integer] : Char read GetChars write SetChars;

  end;

implementation

uses
  Math, Graphics, Types;

{ THangManPainter }

constructor THangManPainter.Create( APaintBox : TPaintBox );
begin
  inherited Create( APaintBox );
  FPaintBox        := APaintBox;
  FPaintBox.OnPaint := OnPaint;
end;

function THangManPainter.GetCharCount : Integer;
begin
  Result := High( FChars ) - Low( FChars ) + 1;
end;

function THangManPainter.GetChars( const index : Integer ) : Char;
begin
  Result := FChars[Index];
end;

procedure THangManPainter.OnPaint( Sender : TObject );
var
  LIdx :   Integer;
  LCanvas : TCanvas;
  LRect :  TRect;
  LText :  string;
begin
  if CharCount <= 0
  then
    Exit;

  LCanvas := FPaintBox.Canvas;

  LCanvas.Brush.Style := bsSolid;
  LCanvas.Pen.Color  := clBlack;
  LCanvas.Pen.Width  := 4;
  LCanvas.Pen.Style  := psSolid;

  LCanvas.Font.Height := 30;

  for LIdx := 0 to Pred( CharCount ) do
    begin

      if FChars[LIdx] = #0
      then
        LCanvas.Brush.Color := clWhite
      else
        LCanvas.Brush.Color := clYellow;

      LRect.Left  := 50 * LIdx + 30;
      LRect.Top   := 30;
      LRect.Width := 30;
      LRect.Height := 50;
      LCanvas.RoundRect( LRect, 5, 5 );

      InflateRect( LRect, - 3, - 3 );

      LText := FChars[LIdx];
      LCanvas.TextRect( LRect, LText, [tfCenter, tfSingleLine, tfVerticalCenter] );
      // LCanvas.TextRect( LRect, LText );
    end;
end;

procedure THangManPainter.SetCharCount( const Value : Integer );
begin
  SetLength( FChars, Value );
  FPaintBox.Invalidate;
end;

procedure THangManPainter.SetChars( const index : Integer; const Value : Char );
begin
  FChars[Index] := Value;
  FPaintBox.Invalidate;
end;

end.

Furtbichler 21. Mär 2013 19:45

AW: Edit Text ausblenden ?
 
Wie jetzt? Ich habe ein geheimes Wort 'Halmackenreuther'.
Anfangs wird das so dargestellt '________________'
Und wenn man z.B. 'e' vorschlägt, soll dastehen '_______e__e___e_'. Oder wie?

Wie wäre es dann mit einem TLabel? Und nach jedem Buchstaben, der richtig geraten wird, 'berechnet' man einfach die Caption vom Label neu.

Oder bin ich zu debil, das zu begreifen?

Sir Rufo 21. Mär 2013 19:49

AW: Edit Text ausblenden ?
 
Zitat:

Zitat von Furtbichler (Beitrag 1208309)
Oder bin ich zu debil, das zu begreifen?

Das kann ich nicht beurteilen :mrgreen:

Aber der TE möchte wohl etwas grafisch Anspruchsvolleres haben (darum diese TEdit-Orgie).


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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