AGB  ·  Datenschutz  ·  Impressum  







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

Pointer wirrwarr. Bitte um hilfe

Ein Thema von hedie · begonnen am 4. Feb 2016 · letzter Beitrag vom 5. Feb 2016
 
hedie

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

Pointer wirrwarr. Bitte um hilfe

  Alt 4. Feb 2016, 22:32
Hallo zusammen

Dieser Code war meine Grundlage:
Delphi-Quellcode:
type
  TTreeData = record
    FCaption: string;
    FColumn1: string;
  end;
  PTreeData = ^TTreeData;
...
procedure TForm1.Button2Click(Sender: TObject);
var
  Node : PVirtualNode;
  Data:PTreeData;
begin

  //Data ist nur ein Pointer auf eine Datenstruktur von TTreeData;
  vst.BeginUpdate;

  //Zuerst holen wir uns den Node
  Node := VST.AddChild(nil);

  //VST kennt bereits die grösse der Struktur und hat hier genau soviel Speicher bereit gestellt
  //Wir übergeben Data nun die Adresse des Speichers von VST.
  Data := vst.GetNodeData(node);

  //Nun können wir direkt in den Node Speicher hinein schreiben.
  Data^.FCaption := 'Test';
  Data^.FColumn1 := 'Column';

  vst.EndUpdate;

end;
Wie man erkennen kann, handelt es sich um VirtualTreeView.


Ich habe nun versucht anstelle des Records ein dynamisches array bestehend aus strings zu benutzen.
Dazu habe ich folgendes versucht:


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

...


function TeVCLqueryTable.Query(Query: string):integer;
var
  row,col:integer;
  node:PVirtualNode;
  sqlData:PsqlData;
begin
  FMySQL.Query(Query);

  //SQLColCount ist 11
  for col := 0 to FMySQL.SQLColCount - 1 do begin
    FVST.Header.Columns.Add;
  end;

  FVST.BeginUpdate;
 
  SetLength(sqlData^,FMySQL.SQLColCount); //SQLColCount ist 11
  FVST.NodeDataSize := sizeof(sqlData);

  node := FVST.AddChild(nil);
  sqlData := FVST.GetNodeData(node);

  sqlData^[0] := 'Test'; //<-- Hier kommt eine exception

  Result := FMySQL.SQLRowCount;

  FVST.EndUpdate;
end;


Ich wäre froh, wenn mir hier jemand weiterhelfen könnte.

Es geht um das Problem mit den Pointern.
Irgendwas mache ich falsch ^^

Danke
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
 


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 10:10 Uhr.
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 by Thomas Breitkreuz