Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi eigener Inspektor + auf- zuklappen (https://www.delphipraxis.net/33797-eigener-inspektor-auf-zuklappen.html)

skyware 12. Nov 2004 19:10


eigener Inspektor + auf- zuklappen
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo zusammen,

folgendes problem an dem ich mir nun schon stundenlang die zähne ausbeisse :wall:
ich möcht mir einen eigenen sogenannten "inspektor" basteln (siehe attachment)
eigentlich ganz simple, eine titel-row hat wieder eine oder mehrere unter-rows.
beim doppelklick auf eine title-row soll diese auf- und zuklappen.
wenn ich nun auf die titel-row doppelklicke unter der dir rows 3.1 + 3.2 hängen, klappt
diese korrekt zu, beim erneuten doppelklicken öffnet sich die row wieder aber die
row reihenfolge stimmt nicht mehr :gruebel:
komplizierte erklärung sorry :-D

kann mir da jemand weiterhelfen?

danke im voraus!

omata 12. Nov 2004 20:38

Re: eigener Inspektor + auf- zuklappen
 
Moin,

ändere mal deine THTRowTitle.ToggleExpanded Prozedur...

Delphi-Quellcode:
{ THTRowTitle.ToggleExpanded:
-------------------------------------------------------------------------------}
procedure THTRowTitle.ToggleExpanded;
var
  xInd : integer;
  xRow : THTRow;
begin
  for xInd := 0 to FRows.Count-1 do
  begin
    xRow := THTRow(FRows.Objects[FRows.IndexOf(IntToStr(xInd))]);
    if (xRow is THTRowTitle) then
      SetRowVisible(xRow, not FExpanded)
{    else
      SetRowVisible(xRow, not FExpanded);}
  end;

  FExpanded := not FExpanded;
end;
Kommentiere mal den Else-Teil aus, dort machst du das Gleiche wie im Then-Teil, also immer das Gleiche.


MfG
Thorsten

skyware 12. Nov 2004 21:21

Re: eigener Inspektor + auf- zuklappen
 
Delphi-Quellcode:
 { THTRowTitle.ToggleExpanded:
-------------------------------------------------------------------------------} 
procedure THTRowTitle.ToggleExpanded;
var
  xInd : integer;
  xRow : THTRow;
begin
  for xInd := 0 to FRows.Count-1 do
  begin
    xRow := THTRow(FRows.Objects[FRows.IndexOf(IntToStr(xInd))]);
    //if (xRow is THTRowTitle) then
      SetRowVisible(xRow, not FExpanded);
    //else
    //  SetRowVisible(xRow, not FExpanded);
  end;

  FExpanded := not FExpanded;
end;
stimmt..dieser code war unnötig, allerdings sollte es so sein :-D nur leider
ändert dies nicht an der original problematik :wall:

omata 13. Nov 2004 00:40

Re: eigener Inspektor + auf- zuklappen
 
Moin,

ja so wie du das jetzt geschrieben hast, ist es natürlich wieder das Selbe!

ich dachte ja auch nur an den Else-Zweig. Bei mir sieht das dann gut aus. Was stimmt denn dann nicht?

MfG
Thorsten

skyware 13. Nov 2004 08:02

Re: eigener Inspektor + auf- zuklappen
 
hi,

wenn du nun auf den titel klickst unter dem die rows 3.1 und 3.2 liegen,
klappt dieser korrekt zu. beim auklappen allerdings ist die
reihenfolge dieser row anders...sprich zuerst kommt die row 3.1,
danach eine weitere titel row und dann erst die row 3.2 :shock:

weisst du was ich meine?
mach mal vor- und nachher einen printscreen, dann wirst du die unterschiede
sehen. hab immer noch nicht rausgefunden was hier das problem ist :wall:

omata 13. Nov 2004 16:50

Re: eigener Inspektor + auf- zuklappen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

ich habe mir das jetzt nochmal angesehen und keinen Fehler gefunden.

Schau dir mal meine EXE an, ob dort ein Fehler auftritt. (habe nur den ELSE-Zweig auskommentiert)
Wenn ja, bin ich wohl blind.

Ich habe das mit Delphi 7 Enterprise kompiliert.

MfG
Thorsten

skyware 13. Nov 2004 18:53

Re: eigener Inspektor + auf- zuklappen
 
hi :-D

du darfs nicht einfach den else-zweig entfernen. der code musss so
aussehen wie oben.
wenn auf die titlerow geklickt wird sollen alle rows die unter dieser
titlerow liegen auch zugeklappt werden.
das heisst wenn du nun auf die titlerow klickt unter der die rows 3.1 und 3.2 liegen,
müssen diese auch ausgeblendet werden. und durch erneutes klicken wieder
eigenblendet...
weisst du wie ich meine?

gruss,
markus

skyware 13. Nov 2004 19:15

Re: eigener Inspektor + auf- zuklappen
 
Liste der Anhänge anzeigen (Anzahl: 1)
...hier mal die aktuellste source,
hab die verschiedenen ebenen mal farblich voneinander unterschieden,
sollte nun klarer sein welche rows zusammengehören.... :-D

omata 13. Nov 2004 22:19

Re: eigener Inspektor + auf- zuklappen
 
Moin,

ok ich glaube jetzt habe ich es verstanden.

Hier mein neuer Vorschlag...

Delphi-Quellcode:
procedure THTRowTitle.ToggleExpanded;
var
  xInd     : integer;
  xRow     : THTRow;
  xExpanded : boolean;
begin
  xExpanded := not FExpanded;
  if xExpanded then begin
    for xInd := FRows.Count-1 downto 0 do
    begin
      xRow := THTRow(FRows.Objects[FRows.IndexOf(IntToStr(xInd))]);
      SetRowVisible(xRow, xExpanded);
    end;
  end
  else begin
    for xInd := 0 to FRows.Count-1 do
    begin
      xRow := THTRow(FRows.Objects[FRows.IndexOf(IntToStr(xInd))]);
      SetRowVisible(xRow, xExpanded);
    end;
  end;

  FExpanded := not FExpanded;
end;
ändere mal die Prozedur ab, dann sollte es gehen.


MfG
Thorsten

skyware 14. Nov 2004 09:28

Re: eigener Inspektor + auf- zuklappen
 
guten morgen thorsten,

das schaut jetzt wunderbar aus :bounce2:
vielen dank für deine hilfe, du bist mein held :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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