Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String Fett (https://www.delphipraxis.net/61003-string-fett.html)

Knotti2005 15. Jan 2006 18:03


String Fett
 
Hey wie kann ich beidisem Code erreichrn das der string nick fett erscheint...

Delphi-Quellcode:
var
  s: string;
  nick: string;
  DataThread: TClientDataThread;
begin
  // create thread
  DataThread:= TClientDataThread.Create(true);
  // set the TagetList to the gui list that you
  // with to synch with.
  DataThread.TargetList := memRecv.lines;
  // Load the Threads ListBuffer
  nick := ClientSocket.Receiveln;
  s := ClientSocket.Receiveln;
  while s <> '' do
  begin
    DataThread.ListBuffer.Add( nick + '-' + TimeToStr(Time) +'@' + ClientSocket.RemoteHost + '> '+ s);
    s := ClientSocket.Receiveln;
  end;
  // Call Resume which will execute and synch the
  // ListBuffer with the TargetList
  DataThread.Resume;
  memrecv.Perform(EM_SCROLLCARET, 0, 0);
end;

Oxmyx 15. Jan 2006 18:10

Re: String Fett
 
Gar nicht, "nick" ist eine Variable und Variablen werden in der Delphi-IDE aus gutem Grund nicht fett geschrieben. Wenn du den Code ausdrucken willst und aus irgend einem Grund diese Variable hervorheben möchtest, kopier dir den Quellcode einfach in ein Schreibprogramm und ändere ihn nach deinen Vorstellungen.

DGL-luke 15. Jan 2006 18:21

Re: String Fett
 
öhm... ich denke eher, er will den string irgendwo reinschreiben ^^

wenn du es in nen fließtext reinwillst, nimm ein Delphi-Referenz durchsuchenTRichedit, wenn du es nur irgendwo in deinem programm erscheinen lassen willst, ein label und da mal die font-eigenschaft ansehen.

ah... ich sehe grade, "listbuffer" scheint ne art listbox oder sowas zu sein. kann das sein?

Knotti2005 15. Jan 2006 18:27

Re: String Fett
 
Ich glaub du hast mich falsch verstanden ich will nur das es bei der Ausgabe in einem RichText als Schrift dick erscheint nicht in der IDE.. Er ist eine Veriable die im Programm übers Netzwerk übermittelt wird... Die soll sich halt vom Rest abheben...

memrecv ist eine RichText Komponente nun möchte ich das alles auser die Variabele s (wo die Nachricht ) drinnsteht Fett erscheint...

DGL-luke 15. Jan 2006 18:53

Re: String Fett
 
ok, beim richedit musst du den entsprechenden text auswählen und dann per selection.font formatieren.

Knotti2005 15. Jan 2006 18:57

Re: String Fett
 
Wie stell ich das an da das ja alles automatisch passiert...

Luckie 15. Jan 2006 21:15

Re: String Fett
 
Bemüh doch bitte einfach mal etwas die Hilfe, wie man Zeichen in einem RichEdit formatiert haben wir schon oft genug besprochen und Beispiel-Code im Forum gibt es dazu auch genug.

Und beim nächsten mal beschreib dein Problem bitte gelich etwas besser. dass es es um ein ein Text geht, der in ein RichEdit geschrieben werden soll, ist werde aus deiner Fragestellung noch aus dem Stückquellcode ersichtlich.

Knotti2005 16. Jan 2006 12:42

Re: String Fett
 
Ich hab mich ja schon beschäftigt mit...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with richedit1 do
  SelAttributes.Style := [fsBold];
    richedit1.Lines.Add(edit1.Text);
  richedit1.Lines.Add(edit1.Text);
  richedit1.Lines.Add(edit2.Text);
end;
zb... als Probe nur manchmal ist edit1 fett manchmal auch alles dann wieder gernix irgentwas mach ich falsch..

DGL-luke 16. Jan 2006 13:31

Re: String Fett
 
Delphi-Quellcode:
procedure Addbold(r: TRichEdit; s: string);
var start:integer;
begin
  start := r.strings.count -1;
  r.strings.add(s);
  r.selstart := start;
  r.sellength := r.strings.count - start;
  r.selAttributes.Style := [fsbold];
  r.sellength := 0;
  r.selstart := r.strings.count -1;
end;
So in etwa sollte das gehen. Bin mir nicht ganz sicher, ob die properties genau so angesprochen werden, also ein bisschen transferarbeit leisten ;)

malo 16. Jan 2006 18:03

Re: String Fett
 
@DGL-Luke: Wenn du jetzt noch einen call-by-reference-Parameter verwendest, kann man die Funktion sogar benutzen :mrgreen:
also so:
Delphi-Quellcode:
procedure Addbold(s: string; var r: TRichEdit);
;)

marabu 16. Jan 2006 18:22

Re: String Fett
 
Hi Calvin,

denke nochmal drüber nach. Der Zeiger auf das RichEdit soll ja gar nicht verändert werden - nur der Inhalt.

Grüße vom marabu

malo 16. Jan 2006 18:31

Re: String Fett
 
Zitat:

Zitat von marabu
Hi Calvin,

denke nochmal drüber nach. Der Zeiger auf das RichEdit soll ja gar nicht verändert werden - nur der Inhalt.

Grüße vom marabu

Aber mit der Prozedur wird das RichEdit gar nicht verändert. Man muss also einen Zeiger übergeben, damit man auf das RichEdit, auf das verwiesen wird, zugreifen kann. Ein Aufrufebeispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  AddBold(Richedit1, 'test');
end;
Das ist jetzt bei der ersten Version. Was würde bei diesem Code passieren, wenn kein Zeiger übergeben wurde?
Nichts, weil das Richedit kopiert wird, statt referenziert ;)

marabu 16. Jan 2006 18:53

Re: String Fett
 
So glaub mir doch, hier sind nur Zeiger im Spiel. Was wird wohl SizeOf(RichEdit1) liefern? Der Unterschied von call-by-value und call-by-reference tritt nur zu Tage, wenn du den Zeiger verändern möchtest. Für die Änderungen an den RichEdit1 properties ist die calling convention hier nicht relevant. Ich würde sogar sagen, dass call-by-value hier die vernünftigste Lösung ist. Nicht auszudenken, was alles passieren könnte, wenn da aus Versehen der Zeiger überschrieben würde.

Freundliche Grüße vom marabu


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