Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Komponente gesucht die auf Knopfdruck größer/kleiner wird
moloch - Fr 05.03.04 11:06
Titel: Komponente gesucht die auf Knopfdruck größer/kleiner wird
Hallo Leute,
ich suche eine Komponente für delphi 5 wo ich sowas wie einen kleinen Knopf oder so habe,der das objekt dann vergrößert oder verkleinert.
Sprich wie ein Panel nur mit meiner gewünschten funktion
MFG
Moloch
Loryn - Fr 05.03.04 13:29
Hallo,
ich kenne eine solche Komponente nicht, aber sie wäre leicht selbst zu schreiben.
Leite eine neue Klasse von TButton ab. Füge zwei Eigenschaften hinzu: Eine, die die Größenänderung vorgibt und eine die auf das in der Größe zu ändernde Control (TControl hat die Eigenschaften Width, Height) zeigt. Dann überschreibst Du die Methode Click, in der du die Größenänderung vornimt.
Also z.B. so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TSizeButton = class(TButton) private FControlLink: TControl; FDelta: Integer; public constructor Create(aOnwer: TComponent); override; procedure Click; override; published property ControlLink: TControl read FControlLink write FControlLink; property Delta: Integer read FDelta write SetDelta; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
|
constructor TSizeButton.Create(aOnwer: TComponent); begin inherited Create(aOwner); Delta := 16; Width := 25; Height := 25; end;
procedure TSizeButton.Click; begin if FContolLink <> nil then with FControlLink do begin Width := Width+Delta; Height := Heigth+Delta; end; inherited Click; end;
procedure TSizeButton.SetDelta(Value: Integer); begin FDelta := Value; if FDelta > 0 then Caption := '>' else Caption := '<'; end; |
Soweit mein "Schnellschuß". Man könnte auch zwei Delta-Eigenschaften definieren, eine für Width und eine für Height.
Gruß Loryn
moloch - Mi 10.03.04 10:07
hey,
danke erstmal für deine Mühe.Ich werde das mal ausprobieren.
moloch
moloch - Mi 10.03.04 10:16
hey,
also so gut konnte ich deine methode noch nicht interpretieren, da ich noch einen Fehler habe und nicht weiterkomme.Also ich habe erstmal einen button ins projekt geholt und dann deinen Quellcode reingeholt.
Der Compiler bleibt in der Zeile "property Delta: Integer read FDelta write SetDelta;" stehen und sagt: Feld oder Methodenbezeichner erwartet.
Kannst Du mir nochmal auf die Sprünge helfen. Ich habe noch nie eine Komponente irgendwie selber geschrieben oder verändert.
moloch
Loryn - Mi 10.03.04 11:54
Hallo,
ich habe eine Zeile vergessen:
Im private-Abschnitt der type-Anweisung für TSizeButton fehlt:
procedure SetDelta(Value: Integer);
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type TSizeButton = class(TButton) private FControlLink: TControl; FDelta: Integer; procedure SetDelta(Value: Integer); public constructor Create(aOnwer: TComponent); override; procedure Click; override; published property ControlLink: TControl read FControlLink write FControlLink; property Delta: Integer read FDelta write SetDelta; end; |
Gruß Loryn
moloch - Do 11.03.04 09:56
hey,
ich werde das ausprobieren und dir bescheid sagen.
danke erstmal
moloch
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!