Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Colored Names in Delphi? (https://www.delphipraxis.net/42431-colored-names-delphi.html)

Master_RC 18. Mär 2005 17:22


Colored Names in Delphi?
 
hi leutz!

ihr kennt das bestimmt:
bei einem spiel wählt ihr euren namen, wie "Heinz"
jetzt geben wir aber nicht Heinz ein, sondern \cff00ffHeinz und schon erscheint "Heinz" in rosa :)
dann kann man ja noch das eingeben:
\cff00ffHein\cff0000z
was ausgibt, dass Hein rosa ist und das z rot...

tja, aber wie mache ich das?
nen label wird das ja wohl kaum schaffen, oder?
dann noch die farbem ausrechnen, etc.... ;)

Binärbaum 18. Mär 2005 17:42

Re: Colored Names in Delphi?
 
Zitat:

Zitat von Master_RC
tja, aber wie mache ich das?
nen label wird das ja wohl kaum schaffen, oder?
dann noch die farbem ausrechnen, etc.... ;)

Also die Farben ausrechnen ist ja noch relativ einfach.
Aber mit einem Label kannst du das nicht machen, da es dort immer nur eine Schriftfarbe gibt. Allerdings könntest du eine eigene Prozedur schreiben, die den Text in verschiedenen Farben auf ein Label (oder halt was anderes (Canvas, Paintbox, oder was auch immer)) zeichnet.

MfG
Binärbaum

Master_RC 18. Mär 2005 17:44

Re: Colored Names in Delphi?
 
muss das unbedingt ich machen? :pale:

da gibts doch bestimmt einen kleinen, einsamen, gelangweilten DPler hier irgendwo :)

mr47 18. Mär 2005 17:50

Re: Colored Names in Delphi?
 
:warn:
Zitat:

Zitat von Master_RC
muss das unbedingt ich machen? :pale:

da gibts doch bestimmt einen kleinen, einsamen, gelangweilten DPler hier irgendwo :)

Lies dir mal den Codex durch:

Zitat:

Mit Fragen, die sich lesen wie "...ich habe weder Ahnung noch Lust, kann mir mal einer mein Programm schreiben..." wirst Du hier nicht auf Gegenliebe stoßen. Wir sind gerne bereit, jedem zu helfen, der selber Engagement zeigt - aber wir machen nicht die Hausaufgaben Anderer.
Zudem ist es unerläßlich, daß Du Dich selber mit dem Problem befasst hast, bevor Du in der Lage bist, dazu eine präzise Frage zu stellen.
Etwas völlig Anderes ist es natürlich, wenn Du (noch) nicht weißt, wonach Du suchen sollst, bzw. wo Du anfangen sollst. Dann frage gerne nach geeigneten Stichworten.

Binärbaum 18. Mär 2005 17:50

Re: Colored Names in Delphi?
 
Zitat:

Zitat von Master_RC
muss das unbedingt ich machen? :pale:

da gibts doch bestimmt einen kleinen, einsamen, gelangweilten DPler hier irgendwo :)

Ich bin nicht klein, höchstens manchmal etwas einsam. Und sooooooooo gelangweilt bin ich im Moment nun auch wieder nicht, dass ich jetzt einen besonders starken Drang verspüre, eine solche Prozedur zu schreiben. :mrgreen:

PS: ja ich weiß, das wird langsam OT.

Master_RC 18. Mär 2005 17:53

Re: Colored Names in Delphi?
 
ich kenn den kodex und ich halte mich eigentlich imme rdran, nur kann ich für 4-5 tage nicht an meinen rechner...

versteht ihr das?? 5 TAGE KEIN DELPHI!!!!! AARGH!! ich wer dhier noch wahnsinnig!! ^^


mmh....
doch, morgen ist eine stunde zeit :roll:
dann abba nicht mehr :wall:


gut gut, ich werd warten...
NEIN, das kann ich nicht! :mrgreen:

Binärbaum 18. Mär 2005 18:00

Re: Colored Names in Delphi?
 
Zitat:

Zitat von Master_RC
versteht ihr das?? 5 TAGE KEIN DELPHI!!!!! AARGH!! ich wer dhier noch wahnsinnig!! ^^


mmh....
doch, morgen ist eine stunde zeit :roll:
dann abba nicht mehr :wall:


gut gut, ich werd warten...
NEIN, das kann ich nicht! :mrgreen:

Wenn du nicht warten kannst, dann fang doch schonmal an dir darüber Gedanken zu machen, wie man diese bunten Namen realisieren kann, oder wie man die Farben parst und in TColor umsetzt. Und heute abend oder in der einen Stunde, die du morgen hast, kannst du hier mal zeigen, wie weit du gekommen bist und dann werden sich sicherlich auch Leute finden, die bereit sind, dir dabei weiterzuhelfen.

MfG
Binärbaum

Master_RC 18. Mär 2005 18:01

Re: Colored Names in Delphi?
 
ich weiß ja nicht mal, wo ich anfangen soll :(
mit nem label klappts net...

ne paintbox jedes einfügen - ne!

ich brauch sowas wien label, das eben mehrere colors anzeigen kann...

Binärbaum 18. Mär 2005 18:05

Re: Colored Names in Delphi?
 
Zitat:

Zitat von Master_RC
ich weiß ja nicht mal, wo ich anfangen soll :(
mit nem label klappts net...

ne paintbox jedes einfügen - ne!

ich brauch sowas wien label, das eben mehrere colors anzeigen kann...

Hier mal eine Idee: versuchs doch mal damit, eine neue Komponente von TLabel abzuleiten und dann nur die Eigenschaften für die Farbe und das Zeichnen des Textes auf das Label an deine Bedürfnisse anzupassen. Der Rest kann ja erstmal gleich bleiben.

MfG
Binärbaum

alcaeus 18. Mär 2005 18:06

Re: Colored Names in Delphi?
 
Du koenntest ein RichEdit aufs Form knallen, Color auf clBtnFace stellen, ReadOnly auf True, Rand weg und du solltest gluecklich sein. Fuer die Formatierung druckst du dir am besten die Online-Hilfe aus ;)

Greetz
alcaeus

Master_RC 18. Mär 2005 18:13

Re: Colored Names in Delphi?
 
yeah, das ruled ;)

gut, so werd ichs machen, THX!

SirThornberry 18. Mär 2005 18:58

Re: Colored Names in Delphi?
 
bin zwar nicht klein, einsam und gelangweilt aber habs trotzdem mal versucht umzusetzen...
Delphi-Quellcode:
procedure DrawColorTextToCanvas(AText: String; ACanvas: TCanvas; APos: TPoint);
var LLeft, LPos, LLastPos, LCount: Integer;
    LStr2, LWord: String;
    LColorList: TStringlist;
    LColor: TColor;
begin
  LColorList := TStringList.Create;
  LPos := 1;
  LLastPos := 1;
  LPos := PosEx('\c', AText, LPos);
  while LPos > 0 do
  begin
    LStr2 := copy(AText, LPos + 2, 6);
    if length(LStr2) = 6 then
    begin
      LColor := RGB(StrToInt('$' + copy(AText, LPos + 2, 2)),
                    StrToInt('$' + copy(AText, LPos + 4, 2)),
                    StrToInt('$' + copy(AText, LPos + 6, 2)));
      LStr2 := copy(AText, LLastPos, LPos - LLastPos);
      LColorList.AddObject(LStr2, TObject(LColor));
      LWord := LWord + LStr2;
    end;
    LLastPos := LPos + 8;
    LPos := PosEx('\c', AText, LLastPos);
  end;
  LStr2 := copy(AText, LLastPos, length(AText) - LLastPos + 1);
  if LStr2 <> '' then
  begin
    LColorList.AddObject(LStr2, nil);
    LWord := LWord + LStr2;
  end;
  LLeft := APos.X;
  for LCount := 0 to LColorList.Count - 1 do
  begin
    ACanvas.TextOut(LLeft, APos.Y, LColorList.Strings[LCount]);
    ACanvas.Font.Color := TColor(LColorList.Objects[LCount]);
    LLeft := LLeft + ACanvas.TextWidth(LColorList.Strings[LCount]);
  end;
  LColorList.Free;
end;
Beispielaufruf:
Delphi-Quellcode:
   DrawColorTextToCanvas('\c0000ffHein\cff0000z', Canvas, Point(0,0));
ich denk die aufgabe war so einfach das auch du es in einer Zeit von weniger als einer Stunde hinnbekommen hättest.

Master_RC 20. Mär 2005 18:38

Re: Colored Names in Delphi?
 
kewl, ich werds morgen ausporboeren (ja, ich darf mprgen schon ran!!! :D )


nur... wie kann ich die func dann erweitern, dass wenn ich \r oder so eingebe, dass dann die standardfarbe kommt?

Alexander 20. Mär 2005 18:49

Re: Colored Names in Delphi?
 
Hi,
ich denke, dass wirst du selbst hinbekommen, wenn du dir das Beispiel von SirThornberry anschaust. Da ist im Prinzip alles drin :-)
Kleiner Tipp, du muss nach \r suchen, genau wie im Beispiel, und anschließend die "Standard"-Farbe mit in die ColorList tun. Das war's. Der Rest wird dann automatisch gemacht.


Nachtrag:
Alternativ könntest du auch \r im vornherein durch die Standard-Farbe ersetzen :)

Master_RC 20. Mär 2005 18:58

Re: Colored Names in Delphi?
 
oh mein gott bin ich doof! ^^'

natürlich!
ich muss ja eigntlich nur ienen teil kopieren und einen bestimmten farbwert zuweisen!

h3h3, jetzt hab ichs, danke!


PS:
geht es auch, dass ich bilder mit einfügen kann oder einen farbverlauf?

Master_RC 16. Apr 2005 14:04

Re: Colored Names in Delphi?
 
um darauf zurückzukommen:

ich wollte es vorhin mal benutzen, abba die funktion "PosEx" müsstest du noch dazupacken, die hat ein nromaler delphi-loose... äh.. "user" nicht ;)

jfheins 16. Apr 2005 14:27

Re: Colored Names in Delphi?
 
Die hat auch ein

Zitat:

delphi-loose... äh.. "user"
, nämlich in der Unit StrUtils ...

Master_RC 20. Apr 2005 16:42

Re: Colored Names in Delphi?
 
kewl, danke, klappt wunderbar! :D


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