AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Delphi : String umtauschen und mit Rectangles ausgeben.
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi : String umtauschen und mit Rectangles ausgeben.

Ein Thema von At0mGuRk3 · begonnen am 19. Dez 2004 · letzter Beitrag vom 19. Dez 2004
Antwort Antwort
At0mGuRk3

Registriert seit: 23. Nov 2004
9 Beiträge
 
#1

Delphi : String umtauschen und mit Rectangles ausgeben.

  Alt 19. Dez 2004, 13:33

Hallo Leute,
ich hab ein kleines Problem.
Ich hab ein Programm, dass, wenn man einen Text eingibt, es ihn umgekehrt ausgibt
und dazu noch für jeden Buchstaben ein Rechteck anlegt.
Das Ganze sollte in etwa so aussehen:

Hauptrechteck (265x265)
(Rechteck1 + 1. Buchstabe) < Hauptrechteck
(Rechteck2 + 2. Buchstabe) < (Rechteck1 + 1. Buchstabe)
.
.
.
(Rechteckn + n. Buchstabe) < (Rechteckn-1 + n-1. Buchstabe)


Sprich:
Der 1. Buchstabe wird ganz unten in einem Rechteck ausgegeben.
Der 2. Buchstabe wird da schräg rechts drüber in einem weiteren Rechteck ausgegeben, dass das 1. umschließt.
Und so weiter, bis in etwa der n. Buchstabe im n. Rechteck in der Mitte ausgegeben wird.


Goil wäre auch, wenn der 1. Buchstabe von der Mitte aus bis hin zum n. Buchstaben ganz unten links in Rechtecken ausgegeben wird...

Na jedenfalls macht mein jetziges Proggy voll die Kagge...
Delphi-Quellcode:
//Meine String-Tausch-Funktion, FUNKTIONIERT!
function umdrehen(wort:STRING):STRING;
var dummy:CHAR;
BEGIN
  //"Wenn keine Eingabe, dann keine Ausgabe" - Abfrage
  IF length(wort) = 0 THEN umdrehen:=''
  ELSE
  BEGIN
  //Wenn eine Eingabe erfolgt ist,
  //dann schreibt er den ERSTEN Buchstaben in dummy rein
  //und löscht ihn aus dem Wort
    dummy:= wort[1]; delete(wort,1,1);
  //Nun wird die Funktion wieder aufgerufen
  //Also praktisch, bis die Wortlänge 0 ist,
  //wird in dummy immer der Wert von umdrehen + dummy davor angehängt
    umdrehen:= umdrehen(wort) + dummy;
  END;
END;



procedure TForm1.Button1Click(Sender: TObject);
var getauscht:STRING;
    i,n:INTEGER;
begin

//String wird getauscht und ausgegeben
getauscht:=edit1.text;
edit2.text:=umdrehen(getauscht);
n:=length(getauscht);

//Hier soll gezeichnet werden...
//WAS IS NUR FALSCH?
//BITTE TESTET DIES MAL ORDENTLICH DURCH
for i:=0 TO n DO
BEGIN
WITH image1.Canvas DO
BEGIN
Pen.Color:=ClBlue;
Rectangle((265 MOD 2),(265 MOD 2),Image1.Width-(i*15),Image1.Height-(i*15));
Textout(i*15,265-(i*15),getauscht[i]);

END;
END;
end;

//HIER WIRD ALLES GELÖSCHT
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
image1.Picture:=NIL;
end;
Jopp...
Also ich hab eine Image-Komponente, 2 Editfelder und 3 Knöppe [tausche,clear,exit]

Wär cool, wenn ihr mir weiterhelfen könntet.
MfG die Gurke
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Delphi : String umtauschen und mit Rectangles ausgeben.

  Alt 19. Dez 2004, 13:50
Zitat von At0mGuRk3:
Na jedenfalls macht mein jetziges Proggy voll die Kagge...
Bitte mäßige dich etwas in deiner Ausdrucksweise!

Desweiteren würde ich das nicht unbedingt als sehr hilfreiche Fehlerbeschreibung bezeichen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
At0mGuRk3

Registriert seit: 23. Nov 2004
9 Beiträge
 
#3

Re: Delphi : String umtauschen und mit Rectangles ausgeben.

  Alt 19. Dez 2004, 14:15
Öööhm ok
Sry...


Ich habs gefunden...


Das Problem lag hier:
Delphi-Quellcode:
for i:=0 TO n DO
BEGIN
WITH image1.Canvas DO
BEGIN
Pen.Color:=ClBlue;
rectangle(i*15,i*15,265-i*15,265-i*15);
Textout(0+(i*15),265-(i*15),getauscht[i]);

END;
END;
Jetzt macht ers...
Zumindest bis zu einer bestimmten Stringlänge

Trotzdem danke...

(Hätte vielleicht erst mal selbst weitermachen müssen, statt zu fragen...)

MfG, die Gurke
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:58 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