AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit Text ausblenden ?

Ein Thema von Davidlocke13 · begonnen am 21. Mär 2013 · letzter Beitrag vom 21. Mär 2013
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#21

AW: Edit Text ausblenden ?

  Alt 21. Mär 2013, 15:08
Hier mein Projekt

Hangman.rar

oder eher Müll
David
ApfelsineMandarineAllesGleich

Geändert von Davidlocke13 (21. Mär 2013 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: Edit Text ausblenden ?

  Alt 21. Mär 2013, 16:00
Nur mal so zum Spaß eine (sehr einfache) Hangman-Painter-Componente, die man so benutzt:
Eine PaintBox auf die Form klatschen (irgendwie noch 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;
THangmanPainter stellt (aktuell) zwei Eigenschaften zur Verfügung CharCount und 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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#23

AW: Edit Text ausblenden ?

  Alt 21. Mär 2013, 19:45
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#24

AW: Edit Text ausblenden ?

  Alt 21. Mär 2013, 19:49
Oder bin ich zu debil, das zu begreifen?
Das kann ich nicht beurteilen

Aber der TE möchte wohl etwas grafisch Anspruchsvolleres haben (darum diese TEdit-Orgie).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz