![]() |
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! |
Re: eigener Inspektor + auf- zuklappen
Moin,
ändere mal deine THTRowTitle.ToggleExpanded Prozedur...
Delphi-Quellcode:
Kommentiere mal den Else-Teil aus, dort machst du das Gleiche wie im Then-Teil, also immer das Gleiche.
{ 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; MfG Thorsten |
Re: eigener Inspektor + auf- zuklappen
Delphi-Quellcode:
stimmt..dieser code war unnötig, allerdings sollte es so sein :-D nur leider
{ 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; ändert dies nicht an der original problematik :wall: |
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 |
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: |
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 |
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 |
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 |
Re: eigener Inspektor + auf- zuklappen
Moin,
ok ich glaube jetzt habe ich es verstanden. Hier mein neuer Vorschlag...
Delphi-Quellcode:
ändere mal die Prozedur ab, dann sollte es gehen.
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; MfG Thorsten |
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 10:19 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