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 THideBox -> Eigene Kompo (https://www.delphipraxis.net/75619-thidebox-eigene-kompo.html)

cherry 22. Aug 2006 13:23


THideBox -> Eigene Kompo
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi, ich bin an einer kleinen Komponente und habe nun ein kleines Problem!

Folgendes umschreibt die Komponente:

- ein Rechteck das auf einen Klick nach links verschwindet, bis nur noch ein
kleines Rechteck übrig bleibt. Klickt man wieder drauf, wird es wieder grösser.

- Der DriveIn, DriveOut Vorgang ist natürlich animiert! :dance:

- Sinn der Komponente ist, einen Text(Caption) in dieser HideBox anzeigen und verschwinden zu lassen.

Problem:

- zur Designzeit funktioniert die Kompo Super, d.h. mit Animation!
-> indem man die Property "DrivenOut" auf "true / false" setzt

- zur Laufzeit funktioniert das aber nicht wie gewünscht, weder mit einm Click noch mit dem setzen von true /false
der Variable DrivenOut!

Sicher habe ich irgendwo einen schreklich dummen Fehler gemacht, den ich aber leider nicht evaluieren kann.
Bitte dringenst um Mithilfe, sodass ich nich in der Klapsmühle landen muss.

Verbindlichsten Dank!

//EDIT: Bild angefügt!

TKC 22. Aug 2006 13:44

Re: THideBox -> Eigene Kompo
 
hi,

woran hängt es denn .. hast du schon mal mit dem Debugger nachvollzogen was passiert ?

cherry 22. Aug 2006 13:48

Re: THideBox -> Eigene Kompo
 
Wie Debbugt man eine Komponente???

Am einfachsten für euch wäre doch die Komponente runterzuladen und sie zu installieren,
dann könnt Ihr euch etwas drunter vorstellen...

Ich lad noch grad ein Bild in den ersten Thread!

Help... anybody, help... i need somebody, help... not anybody he ee e e e ee lp !!

cherry 22. Aug 2006 14:08

Re: THideBox -> Eigene Kompo
 
Mal ne Frage,

Hat sie schon jmd getestet???

Ich hab die Komponente grad noch mal getestet , nun funktioniert sie ohne das ich etwas geändert habe.
Ich habe nichtmal Delphi neu gestartet globe ich!?

Jedenfalls bin ich jetz völlig ratlos und bin mir nicht sicher ob das ein gutes Zeichen ist, respektive
ob ich der Funktionalität der Komponente vertrauen kann?!

Meflin 22. Aug 2006 14:37

Re: THideBox -> Eigene Kompo
 
Zitat:

Zitat von cherry
ob ich der Funktionalität der Komponente vertrauen kann?!

Ich würde sagen: nein :mrgreen: wenn sie nach einem neustart des pcs allerdings immernoch funktioniert, wäre ich schon zuversichtlicher :P


Daniel G 22. Aug 2006 14:43

Re: THideBox -> Eigene Kompo
 
Die Komponente klappt ein, und das war's..... Kein Ausklappen mehr zur Runtime...

cherry 22. Aug 2006 14:50

Re: THideBox -> Eigene Kompo
 
Das habe ich mir schon gedacht...

nun kann mir jetz jmand helfen bitte?

@ Daniel G

" Hast du eine Idee warum dieselbe aktion zur Designzeit funktioniert, nicht aber zur LaufZeit???" (DrivenOut)

NormanNG 22. Aug 2006 15:38

Re: THideBox -> Eigene Kompo
 
Hi,

also mit D7 geht sowohl ein- als auch ausklappen. Allerdings habe ich die Komponente nicht installiert sondern zur Laufzeit erzeugt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var HB:tHideBox;
begin
  hb:=THideBox.Create(self);
  hb.Parent:=self;
  hb.left:=50;
  hb.top:=100;
end;
Wozu benötigst du denn TIntervalProcedures? Verschiebe die DriveIn/Out-Methoden direkt in das Objekt tHideBox. Dann wird TIntervalProcedures überflüssig... Außerdem wird IntProcs := TIntervalProcedures.Create; zwar erzeugt, aber nirgends wieder freigegeben...

cherry 22. Aug 2006 15:50

Re: THideBox -> Eigene Kompo
 
Zitat:

Zitat von NormanNG
Hi,
Wozu benötigst du denn TIntervalProcedures? Verschiebe die DriveIn/Out-Methoden direkt in das Objekt tHideBox. Dann wird TIntervalProcedures überflüssig...

Wenn ich die DriveIn / DriveOut Procedures in THideBox unterbringe, kann ich sie leider nicht an die TTimer.onTimer
als Methode anhängen. Diese Methoden müssen von einem andern Objekt sein!!! , nehme ich an,
denn ich hatte das eigentlich so vor, hat aber nicht geklappt.

Zitat:

Zitat von NormanNG
also mit D7 geht sowohl ein- als auch ausklappen. Allerdings habe ich die Komponente nicht installiert sondern zur Laufzeit erzeugt:

Könntest du es evt. bitte noch testen mit installierter Komponente? ich weis ja nicht aber etwas ist faul?
kannst du dir nicht mal rasch den Code noch etwas besser ansehen?? Wäre echt nett...

PS: Die Komponente funktioniert nicht immer, nur manchmal. D.h. die Komponente reagiert auf irgendwas
das ich nichtberüksichtigt habe oder so..

Zitat:

Zitat von NormanNG
Außerdem wird IntProcs := TIntervalProcedures.Create; zwar erzeugt, aber nirgends wieder freigegeben...

Danke werd ich noch machen. Das ist übrigens nicht der einzige Bug, bin ja auch noch nicht fertig!

Danke schon mal...

NormanNG 22. Aug 2006 16:15

Re: THideBox -> Eigene Kompo
 
Hi,

Zitat:

Wenn ich die DriveIn / DriveOut Procedures in THideBox unterbringe, kann ich sie leider nicht an die TTimer.onTimer
als Methode anhängen. Diese Methoden müssen von einem andern Objekt sein!!! , nehme ich an,
denn ich hatte das eigentlich so vor, hat aber nicht geklappt.
Das ist sicher nicht richtig. Ich habe die beiden Methoden ohne Probleme nach tHideBox verschieben können.

Aber zu deinem Problem mit dem Ausklappen:
bei installierter Komponente geht's auch bei mir nicht. Es liegt wohl daran, dass die "ausgefahrene" Breite der Komponente nicht richtig gesetzt und deshalb der TimerOut sofort wieder ausgeschaltet wird (Suche mach nach FRealWidth)...

freak4fun 22. Aug 2006 16:20

Re: THideBox -> Eigene Kompo
 
Wenn bei mir die Hidebox zur Leufzeit erstellt wird gehts (Wenn man nicht wartet bis sie aus/eingefahren ist geht nix mehr). Wenn sie schon auf der Form lag, fährt die HideBox ein und nicht wieder aus. Aber der Pfeil ändert sich. :gruebel:

Ich hab jetzt Feierabend, hab mir die Unit aber nach Hause geschickt. ;)

Die IDee und die Umsetzung, finde ich allerdings super. :thumb:

MfG
freak

Der_Unwissende 22. Aug 2006 16:23

Re: THideBox -> Eigene Kompo
 
Hi,
schau dir mal deine Realwidth an, die sieht ein wenig falsch initialisiert aus (= 0 beim Einfahren).

Gruß Der Unwissende

cherry 22. Aug 2006 16:25

Re: THideBox -> Eigene Kompo
 
Danke euch allen...
Ich mach jetzt auf Feierabend...

Ich meld mich dann morgen wieder...
Gruss

freak4fun 22. Aug 2006 18:32

Re: THideBox -> Eigene Kompo
 
Zitat:

Zitat von Der_Unwissende
Hi,
schau dir mal deine Realwidth an, die sieht ein wenig falsch initialisiert aus (= 0 beim Einfahren).

Was muss ich ändern, damit es geht?

MfG
freak

NormanNG 23. Aug 2006 07:41

Re: THideBox -> Eigene Kompo
 
Hi,

Zitat:

Was muss ich ändern, damit es geht?
Nun, im Konstruktor wird Width:= gesetzt, aber für das Ausklappen FRealwidth abgefragt. Setz' einfach im Konstruktur die Variable FRealwidth:=Width (nachdem Width gesetzt wurde :wink: )

freak4fun 23. Aug 2006 11:32

Re: THideBox -> Eigene Kompo
 
Zitat:

Zitat von NormanNG
Hi,

Zitat:

Was muss ich ändern, damit es geht?
Nun, im Konstruktor wird Width:= gesetzt, aber für das Ausklappen FRealwidth abgefragt. Setz' einfach im Konstruktur die Variable FRealwidth:=Width (nachdem Width gesetzt wurde :wink: )

Ok, das geht. Wenn ich allerdings zur Designzeit die Länge ändere und dann die HideBox ein und ausfahre fährt sie nur bis 75Pixel aus. :(

MfG
freak

Der_Unwissende 23. Aug 2006 11:48

Re: THideBox -> Eigene Kompo
 
Hi,
hab gerade deinen QC nicht zur Hand, deshalb kurz die einfache Beschreibung.
Du definierst dir die Width (ausgeklappt) als Property und setzt die über ein Methode
Delphi-Quellcode:
type
  TDeineKlasse = class(TObject)
    private
      FWidth : Integer;
      FRealWidth : Integer;
    protected
      procedure setWidth(const Width : Integer);
    public
      property Width : Integer read FWidth write setWidth;
  end;
Und in dem Setter setzt du dann einfach Realwidth und Width.

Gruß Der Unwissende

cherry 29. Aug 2006 12:16

Re: THideBox -> Eigene Kompo
 
Liste der Anhänge anzeigen (Anzahl: 1)
So.. nun funktioniert das Teil!!!
Wird evt. noch einmal weiterentwickelt, im Moment kann ich
die Komponente so verwenden und es ist gut.

Hier noch des Zeuchs...

freak4fun 29. Aug 2006 12:42

Re: THideBox -> Eigene Kompo
 
Danke! :hello:

MfG
freak


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