Thema: Delphi VST GetText Problem

Einzelnen Beitrag anzeigen

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