AGB  ·  Datenschutz  ·  Impressum  







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

TTreeView - Knoten umbenennen

Ein Thema von regiontop · begonnen am 6. Jun 2006 · letzter Beitrag vom 7. Jun 2006
Antwort Antwort
regiontop

Registriert seit: 6. Jun 2006
8 Beiträge
 
#1

Re: TTreeView - Knoten umbenennen

  Alt 7. Jun 2006, 07:16
Also erstmal vielen Dank für die Antwort, ich werde mal den Quellcode posten, vielleicht läßt sich der Fehler so erkennen.

Wichtige Procedures meiner Hauptunit
Delphi-Quellcode:
procedure TForm1.InitListView;
var
AktStrasse : Tstrasse;
AktNode: TTreeNode;
begin
TreeView1.Items.Clear;
TreeView1.Items.Add(NIL,'Strassen');
while DataModule1.GetAdresse(AktStrasse) = TRUE do
 begin
  AktNode:= TreeView1.Items.AddChild(TreeView1.Items[0], AktStrasse.strassen);
  TreeView1.Items.AddChild(AktNode,'Dummy');
  end;
  TreeView1.Items[0].Expand(False);
end;


procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
  AktGeb: Tgeb;
  AktWoh: Twoh;
  AktNode: TTreeNode;
  
begin
 if node.Parent <> nil then
 begin
 statusbar1.SimpleText:=node.Parent.Text;
 if node.Text <> 'Strassenthen
   node.DeleteChildren;
   if node.parent.Text = 'Strassenthen
   begin
    while DataModule1.GetGebaude(node.Text,AktGeb) = true do
    begin
     aktnode:=Treeview1.Items.AddChild(node , inttostr(aktgeb.HNR));
     treeview1.items.AddChild(aktnode, 'Dummy');
    end;
    end
    else
     begin
      aktgeb.GName:=node.Text;
      aktgeb.str.strassen:=node.Parent.Text;
      while
      datamodule1.GetWohnung(node.Text, aktwoh) = true do
       begin
        Treeview1.Items.AddChild(node, inttostr(aktwoh.ZI));
       end;
      end;
     end;
  end;
Funktionen meiner Zweitunit
Delphi-Quellcode:
function TDataModule1.GetAdressePK (strasse: string): integer;
begin
GetAdressePK:=-1;
ADOQuery3.Parameters.ParamByName('Int').Value:=strasse;
ADOQuery3.Open;
if ADOQuery3.RecordCount <> 0 then
GetAdressePK := ADOQuery3.FieldByName('EADR').AsInteger;
ADOQuery3.Close;
end;


function TDataModule1.GetGebaudePK(HNR: string): integer;
begin
GetGebaudePK:=-1;
ADOQuery6.Parameters.ParamByName('Ext').Value:=HNR;
ADOQuery6.Open;
if ADOQuery6.RecordCount <> 0 then
GetGebaudePK:= ADOQuery6.FieldByName('EGID').AsInteger;
ADOQuery6.Close;
end;


function TDataModule1.GetAdresse (var strasse: Tstrasse): Boolean;
begin
GetAdresse := TRUE;
if ADOQuery1.Active = FALSE then
 ADOQuery1.Open;
if ADOQuery1.Eof =false then
 begin
  with strasse do
   begin
    strassen:= ADOQuery1.FieldByName( 'strasse').AsString;
   end;
  ADOQuery1.Next;
  end
  else
   begin
   GetAdresse:= False;
   ADOQuery1.Close;
   end;
  end;


function TDataModule1.GetGebaude (Strasse: String; var Geb: Tgeb): Boolean;
var
 AdressePK: integer;
begin
 GetGebaude:= true;
 AdressePK:= GetAdressePK(strasse);
 if AdressePK <> -1 then
  begin
   if ADOQuery2.Active = false then
    begin
     ADOQuery2.Parameters.ParamByName('GebPK').Value:= AdressePK;
     ADOQuery2.Open;
     end;
     if ADOQuery2.Eof = false then
      begin
       with Geb do
        begin
          EGID:=ADOQuery2.FieldByName( 'EGID').Asinteger;
          san:= ADOQuery2.FieldByName( 'san').AsString;
          HNR:= ADOQuery2.FieldByName( 'HNR').AsInteger;
          GName:=ADOQuery2.FieldByName( 'GName').AsString;
          HNRZ:= ADOQuery2.FieldByName( 'HNRZ').AsString;
        end;
        ADOQuery2.Next;
       end
      else
       begin
        GetGebaude:= false;
        ADOQuery2.Close;
       end;
      end
     else
      GetGebaude :=false;
     end;
   

function TDataModule1.GetWohnung (HNR: string; var Woh: Twoh): Boolean;
var
 GebaudePK: integer;
begin
 GetWohnung:= true;
 GebaudePK:=GetGebaudePK(HNR);
 if GebaudePK <> -1 then
  begin
   if ADOQuery5.Active = false then
    begin
     ADOQuery5.Parameters.ParamByName('WohPK').Value:= GebaudePK;
     ADOQuery5.Open;
     end;
     if ADOQuery5.Eof = false then
      begin
       with Woh do
        begin
          EGID:=ADOQuery5.FieldByName( 'EGID').Asinteger;
          ZI:= ADOQuery5.FieldByName( 'Zimmerzahl').AsInteger;
          NA:= ADOQuery5.FieldByName( 'Nutzungsart').AsString;
          WName:= ADOQuery5.FieldByName( 'WName').AsString;
        end;
        ADOQuery5.Next;
       end
      else
       begin
        GetWohnung:= false;
        ADOQuery5.Close;
       end;
      end
     else
      GetWohnung:=false;
     end;
In den ADOQuery's steht folgendes:

ADOQuery1: Select * from Adresse order by strasse
ADOQuery2: Select * from Gebaeude where EADR=: GebPK
ADOQuery3: Select * from Adresse where strasse=: int
ADOquery5: Select * from Wohnung where EGID=: WohPK
ADOQuery6: Select * from Gebaeude where HNR=: ext
Angehängte Grafiken
Dateityp: jpg screen_196.jpg (86,4 KB, 14x aufgerufen)
  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 22:05 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-2025 by Thomas Breitkreuz