AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi In eine Zeile in einem Richtext mehrere texte einfügen.
Thema durchsuchen
Ansicht
Themen-Optionen

In eine Zeile in einem Richtext mehrere texte einfügen.

Ein Thema von Power-Poler · begonnen am 20. Mär 2008 · letzter Beitrag vom 20. Mär 2008
Antwort Antwort
Seite 2 von 3     12 3      
Power-Poler

Registriert seit: 16. Mär 2008
34 Beiträge
 
#11

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 12:05
So, habe jetzt das hofenlich so, wie du es gemeint hast, mit der schleife das brauche ich nicht, da es keine Tabele in dem sin sein solte, mir geht es nur um einzele Zeilen.
Mein code sieht jetzt, für die ermitlung des Abstandes in px so aus:
Delphi-Quellcode:
Abstand1 := canvas.TextWidth(' ' + variable1);
Abstand2 := canvas.TextWidth(' ');
Abstand3 := Abstand2 - Abstand1;
Jetzt habe ich den px abstand in Abstand3 den ich brauche, also den zwischen variable 1 und Text2
wie sage ich jetzt aber dem tab, das er diesen abstand anhemen soll.
Dein bezug auf die Hilfe, ich denke mal du meinst die vom Delphi, die will bei mir irgenwie nicht, der meint immer das das file in meinem Projekt Order ligt, und das es da nicht ist, ist klar. Hab woll irgenwo nen fehler gemacht
Deswegen frage ich, befor ich vor verzweiflubg wider ein Projekt aufgebe, wäre nicht das erste, das ich angefangen habe, und das in die tonne getretten wurde, weil ich nicht weitergekommen bin. (Nicht nur in delphi)
  Mit Zitat antworten Zitat
Zugi

Registriert seit: 2. Feb 2006
Ort: Iserlohn
16 Beiträge
 
Delphi 2007 Professional
 
#12

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 12:50
Hallo!

Ich würde auch zu einem StringGrid raten, das ist am einfachsten. Wenn Du es doch in einem RichEdit haben möchtest und das Setzen der Tabs Dir zu kompliziert erscheint, dann könntest Du vielleicht eine Schriftart mit fester Zeichenbreite nehmen(z.B. Courier). Dann in einer Schleife die maximale Anzahl der Zeichen je Spalte ermitteln (mit Length('Dein String')) und jeweils entsprechend viele Leerzeichen anhängen. Aber elegant ist das nicht!

Gruß,
Zugi
  Mit Zitat antworten Zitat
Power-Poler

Registriert seit: 16. Mär 2008
34 Beiträge
 
#13

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 12:53
taaktaak sagte etwas davon, das man die länger des Tab bestimmen kann, mit welchem befehl geht das?

Zitat von taaktaak:
Den Wert für den Tabulator setzt du mit Hilfe von SendMessage/PostMessage und EM_SETTABSTOPS, auch hierzu solltest du weitere Informationen finden.
Aber irgenwie verstehe ich nicht, was ich jetzt in den code schreiben muss.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#14

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 12:56
Hi,

es geht Dir darum, Daten mehr oder weniger tabellarisch darzustellen?

Warum nutzt Du kein TStringGrid oder eine TListView?

Ein RichEdit für so etwas zu "missbrauchen" ist nicht gerade eine gute Alternative.
  Mit Zitat antworten Zitat
Power-Poler

Registriert seit: 16. Mär 2008
34 Beiträge
 
#15

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 13:01
Ich glaube ihr habt das falsch verstaden, ich will die Strings in keiner Tabele ausgeben, es ist schon richtig, das ich ein richtext nehme.
Bin über jede hilfe dankbar, aber von meiner entscheidung ein RichText zu verwänden, lasse ich micht nicht abringen.

Oben das:
Code:
Test1      Test2      Test3
Dieter1    Dieter2    Dieter3
und nicht so:
Test1      Test2      Test3
Dieter1      Dieter2      Dieter3
Das war nur ein Beispiel, so sieht das nachher nicht aus, das wahr nur zur erklärung, wie ich das meine, das halt die Position vom nächsten String nicht verändert werden darf, egal wie lang der vorhergehende ist.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#16

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 13:29
Wenn Du eine Schriftart fester Breite verwendest, kannst Du auch die Textlängen ausrechnen und ggf. mit Leerzeichen auffüllen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Zugi

Registriert seit: 2. Feb 2006
Ort: Iserlohn
16 Beiträge
 
Delphi 2007 Professional
 
#17

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 14:15
Hallo!

OK, ganz auf die Schnelle, Quick'n'Dirty:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
    StringList1: TStringList;
    StringList2: TStringList;
    StringList3: TStringList;
    function GetMaxLength(StringList: TStringList): Integer;
    procedure AppendBlanks(var StringList: TStringList; nLength: Integer);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  nCount: Integer;
  TabPixelPos1: Integer;
  TabPixelPos2: Integer;
begin
  StringList1.Add(Edit1.Text);
  StringList2.Add(Edit2.Text);
  StringList3.Add(Edit3.Text);

  TabPixelPos1 := GetMaxLength(StringList1);
  TabPixelPos2 := GetMaxLength(StringList2);

  RichEdit1.Clear;

  AppendBlanks(StringList1, TabPixelPos1);
  AppendBlanks(StringList2, TabPixelPos2);

  for nCount := 0 to StringList1.Count - 1 do
  begin
    RichEdit1.Lines.Add(StringList1[nCount] + ' ' + StringList2[nCount] + ' ' + StringList3[nCount]);
  end;

  RichEdit1.Repaint;
end;

function TForm1.GetMaxLength(StringList: TStringList): Integer;
var
  nCount: Integer;
  nLength: Integer;
begin
  nLength := 0;
  for nCount := 0 to StringList.Count - 1 do
  begin
    if nLength < Length(StringList[nCount]) then
      nLength := Length(StringList[nCount]);
  end;
  result := nLength;
end;

procedure TForm1.AppendBlanks(var StringList: TStringList; nLength: Integer);
var
  nCount: Integer;
begin
  for nCount := 0 to StringList.Count - 1 do
  begin
    while Length(StringList[nCount]) < nLength do
    begin
      StringList[nCount] := StringList[nCount] + ' ';
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringList1 := TStringList.Create;
  StringList2 := TStringList.Create;
  StringList3 := TStringList.Create;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeAndNil(StringList1);
  FreeAndNil(StringList2);
  FreeAndNil(StringList3);
end;

end.
Du brauchst: 1 * TRichEdit, 1 * TButton, 3 * TEdit.

Hoffe das hilft.
Ach ja, nicht vergessen: im RichEdit den Font auf Courier stellen!

Gruß,
Zugi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#18

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 14:18
So in der Art hatte ich das gemeint
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Zugi

Registriert seit: 2. Feb 2006
Ort: Iserlohn
16 Beiträge
 
Delphi 2007 Professional
 
#19

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 14:22
Ich in #12 auch schon

Gruß,
Zugi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#20

Re: In eine Zeile in einem Richtext mehrere texte einfügen.

  Alt 20. Mär 2008, 14:25
Muss ich irgendwie übersehen haben .
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:38 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