AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VST GetText Problem

Ein Thema von youuu · begonnen am 19. Jul 2009 · letzter Beitrag vom 19. Jul 2009
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

VST GetText Problem

  Alt 19. Jul 2009, 11:07
Hi,

habe ein Problem mit VST.GetText, wenn ich

Delphi-Quellcode:
procedure TFormMain.VstGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
Var
  Customer: TCustomerdaten;
begin
  Customer:= TCustomerdaten(Vst.GetNodeData(node)^ );

  case Column of
    0: CellText:= Customer.company_name;
    1: CellText:= Customer.email;
    2: CellText:= Customer.company_industry;
    3: CellText:= Customer.Anrede +' '+Customer.name;
    4: CellText:= Customer.create_date;
    5: CellText:= Customer.customer_number;
    6: Celltext:= Customer.status;
  end;
end;
Funktioniert alles, ich kann Nodes löschen usw.

Allerdings wenn ich nun

Delphi-Quellcode:
procedure TFormMain.VstGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
Var
  Customer: TCustomerdaten;
begin
  Customer:= TCustomerdaten(Vst.GetNodeData(node)^ );

  If Customer.status = 'aktiveThen
    Sender.Font.Color:= ClGreen
  Else if Customer.status = 'inaktivethen
    Sender.Font.Color:= ClRed;

  case Column of
    0: CellText:= Customer.company_name;
    1: CellText:= Customer.email;
    2: CellText:= Customer.company_industry;
    3: CellText:= Customer.Anrede +' '+Customer.name;
    4: CellText:= Customer.create_date;
    5: CellText:= Customer.customer_number;
    6: Celltext:= Customer.status;
  end;
end;
Probiere, damit die spalten eingefärbt werden und dann auf den Button Node löschen klick, passiert gar nichts mehr und das Programm hängt sich auf und im Taskmanager verursacht das Programm aufeinmal 50% auslastung.

Wie kann das sein?


PS: Lösch Button sieht so aus

Delphi-Quellcode:
procedure TFormMain.ButtonDeleteClick(Sender: TObject);
begin
  Try
    If Application.MessageBox('Möchten Sie den Kunden wirklich löschen?', 'Kunden löschen', MB_OKCancel or MB_SETFOREGROUND) = IDok then
      CustomerDelete; // Funktion
  Except
    Showmessage('Sie müssen einen Kunden auswählen.');
  End;
end;
Wobei nichtmal die MessageBox dann aufgerufen wird, wenn ich die Zeilen einfärbe
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: VST GetText Problem

  Alt 19. Jul 2009, 11:10
Wenn du permanent die Farbe des Controls änderst (Sender.Font.Color) wird jedesmal das Control komplett neu gezeichent.
Das Färben muß in entsprechenden Draw-Routinen des Grids erfolgen und dann auf dem aktuellen Canvas des Controls und nicht auf dem allgemeinen Font-Property.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

Re: VST GetText Problem

  Alt 19. Jul 2009, 11:18
Das hab ich mir fast gedacht, das es sich immer neu zeichnet so kam es mir nämlich vor nun hab ich gewissheit.

Danke.

Edit: hab es nun so gelöst:

Delphi-Quellcode:
procedure TFormMain.VstCustomerBeforeCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
begin
  Customer:= TCustomerdaten(VstCustomer.GetNodeData(node)^ );

    If Customer.status = 'aktiveThen
      TargetCanvas.Brush.Color := clGreen
    Else
      TargetCanvas.Brush.Color := clRed;

    TargetCanvas.FillRect(CellRect);
end;
Allerdings wie war der befehl um nur die Schriftfarbe zuändern und nicht die Hintergrundfarbe der Spalte
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: VST GetText Problem

  Alt 19. Jul 2009, 13:14
Zitat von youuu:
Allerdings wie war der befehl um nur die Schriftfarbe zuändern und nicht die Hintergrundfarbe der Spalte
Müsste über TargetCanvas.Font.Color gehen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#5

Re: VST GetText Problem

  Alt 19. Jul 2009, 13:21
Das denk ich auch, bloß was muss hier rein dann

TargetCanvas.FillRect(CellRect); Das hab ich nicht raus gefunden :/
Steven
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: VST GetText Problem

  Alt 19. Jul 2009, 14:37
Ich würde im Event VSTPaintText die property TargetCanvas.Font.Color deinen Wünschen nach setzen.
Das OnGetText Event dient lediglich zum Ermitteln des Textes - wie der Name des Events ja schon vermuten lässt.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#7

Re: VST GetText Problem

  Alt 19. Jul 2009, 14:47
Genau das hab ich gesucht.

Danke
Steven
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#8

Re: VST GetText Problem

  Alt 19. Jul 2009, 14:48
No problem,
der VST hat schon ne Menge zu bieten.

Am besten schaut man sich mal die Demos an.
Diese kann man direkt von der Webseite des Autors downloaden.
  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 12:17 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