Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [VST] Zeilenumbruch in Nodes (https://www.delphipraxis.net/36937-%5Bvst%5D-zeilenumbruch-nodes.html)

phXql 3. Jan 2005 15:31

Re: [VST] Zeilenumbruch in Nodes
 
ne.. ich lasse nur den message-text eines error-objekts ausgeben. und wenn da ein zeilenumbruch drin ist, wird der nicht richtig dargstellt. kein wide-char oder sowas...

phXql 29. Jan 2005 11:03

Re: [VST] Zeilenumbruch in Nodes
 
So kleine Korrektur. Im OnGetText-Ereignis wird der Celltext als WideString zurückgegeben. Wie macht man einen Zeilenumbruch (#13#10) in einem Widestring?

mfg phXql

generic 28. Nov 2005 12:53

Re: [VST] Zeilenumbruch in Nodes
 
ich hab da gerade nochmal rumprobiert.

hast du mehrere spalten oder vieleicht static-texte?

Angel4585 28. Nov 2005 12:58

Re: [VST] Zeilenumbruch in Nodes
 
mach mal anstatt +#10#13+ => +sLineBreak+

(Ups, sLineBreak steht ja für #13#10, Sorry)

phXql 28. Nov 2005 16:51

Re: [VST] Zeilenumbruch in Nodes
 
Zitat:

Zitat von generic
ich hab da gerade nochmal rumprobiert.

hast du mehrere spalten oder vieleicht static-texte?

ich hab mehrere spalten, ja...

generic 29. Nov 2005 08:56

Re: [VST] Zeilenumbruch in Nodes
 
hmm, komisch komisch.
ich poste mal alles zu dem multiline was ich im letzten projekte verwendet habe.
bei multiline wird der static text nicht angezeigt.

der tree ist schon komplett aufgebaut wird nur noch durch folgendes in multiline gesetzt
Delphi-Quellcode:
vst_vergleich.IterateSubtree(nil, SetVstMultilineCallback,nil);

procedure Tfrm_vergleich.SetVstMultilineCallback(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
begin
  sender.MultiLine[node]:=True;
  Abort:=false;
end;
Im onMeasureItem errechne ich noch von allen spalten die maximale höhe+5.
der Knoten soll aber mindestens DefaultNodeHeight haben.

Delphi-Quellcode:
procedure Tfrm_vergleich.vst_vergleichMeasureItem(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; var NodeHeight: Integer);
var
  i: integer;
begin
  if Sender.MultiLine[Node] then
  begin
    NodeHeight:=vst_vergleich.DefaultNodeHeight;
    for i:=0 to vst_vergleich.Header.Columns.Count-1 do
      NodeHeight := Max(vst_vergleich.ComputeNodeHeight(TargetCanvas, Node, i)+5, NodeHeight);
  end;
end;
so nur noch mein vst:
Delphi-Quellcode:
var
  vst_vergleich: TVirtualStringTree;

  vst_vergleich := TVirtualStringTree.Create(Self);
  with vst_vergleich do
  begin
    Name := 'vst_vergleich';
    Parent := Self;
    Left := 0;
    Top := 23;
    Width := 792;
    Height := 550;
    Align := alClient;
    Header.AutoSizeIndex := 0;
    Header.Font.Charset := DEFAULT_CHARSET;
    Header.Font.Color := clWindowText;
    Header.Font.Height := -11;
    Header.Font.Name := 'Tahoma';
    Header.Font.Style := [];
    Header.Options := [hoColumnResize, hoVisible];
    Header.Style := hsPlates;
    HintAnimation := hatNone;
    HintMode := hmHint;
    LineMode := lmBands;
    LineStyle := lsSolid;
    ParentShowHint := False;
    ShowHint := True;
    TabOrder := 1;
    TreeOptions.MiscOptions := [toAcceptOLEDrop, toFullRepaintOnResize, toGridExtensions, toInitOnSave, toToggleOnDblClick, toWheelPanning, toVariableNodeHeight];
    TreeOptions.PaintOptions := [toShowButtons, toShowDropmark, toShowHorzGridLines, toShowRoot, toShowTreeLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toFullVertGridLines];
    TreeOptions.SelectionOptions := [toExtendedFocus, toFullRowSelect];
    OnGetText := vst_vergleichGetText;
    OnPaintText := vst_vergleichPaintText;
    OnGetHint := vst_vergleichGetHint;
    OnMeasureItem := vst_vergleichMeasureItem;
    with Columns.Add do begin
      Options := [coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible];
      Position := 0;
      Tag := 5;
      Width := 350;
      WideText := 'Bezeichnung';
    end;
    WideDefaultText := '';
  end;
nicht wundern das nur 1 spalte da ist. es werden noch weitere dynamisch hinzugefügt.
das passiert ungefähr so:
Delphi-Quellcode:
    fheader:=vst_vergleich.Header.Columns.Add;
    fheader.Width:=150;
    fheader.Options:=fheader.Options-[coAllowClick];
    fheader.Text:='text text';
ich nutze Version 4.3.1 des virtualstringtree.
läuft ohne probleme mit delphi 6 pro, delphi7 enterprise und delphi2005 enterprise

wenn das dann immer noch nicht geht, melde dich mal bitte per icq oder pm bei mir


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Seite 2 von 2     12   

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