Einzelnen Beitrag anzeigen

hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#12

AW: Pointer wirrwarr. Bitte um hilfe

  Alt 5. Feb 2016, 17:21
Ja, das sind variablen.

Nachfolgend das gesamte Interface

Delphi-Quellcode:
type
  TsqlData = record
    Data: array of string;
  end;
  PsqlData = ^TsqlData;

  //Das war ein versuch. Wird nicht benutzt
  PmySQL = ^TmySQLe;
  Pvst = ^TVirtualStringTree;

type
  TeVCLqueryTable = class
    private

      FVST:TVirtualStringTree;
      FMySQL:TmySQLe;
      FsearchMode:boolean;
      FsearchString:string;
      //FsqlData:array of string;

      procedure onGetText(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: string);

      procedure onFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);

      procedure onBeforeCellPaint(Sender: TBaseVirtualTree;
      TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
      CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);

    public

      constructor Create(const VST:TVirtualStringTree; const MySQL:TmySQLe);
      destructor Destroy; override;

      function Query(Query:string):integer;
      procedure FilterNodes(const Text : string);


  end;

implementation
...

Nein, das wird nicht zweimal freigegeben.
Sieht so aus:

Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var
  table:TeVCLqueryTable;
begin

  //VirtualStringTree1 liegt als Objekt zur Designzeit auf dem Form
  //mysql ist eine Variable der Klasse TForm6 und wird zum Programmstart erstellt.


  table := TeVCLqueryTable.create(VirtualStringTree1, mysql);
  table.Query('SELECT * FROM rechnung');
  table.Free;
end;
Mit .free gibts direkt eine exception.
Ohne gibts keine und es funktioniert.

Auch bei mehrmaligem klicken.
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat