![]() |
Objeckinspektor PropertyEigenschaften (Datei öffnen)
Ich habe jetzt verschiedene Propertys meinen CustomGraphicControl hinzugefügt. Ich möchte jedoch, wie bei einen TImage (da es sich hier um ein ImageModul handelt) bei der Property, wo man eine Datei auswählt, das sich dort ein Fenster öffnet und man dort dann die Datei auswählen kann (mit vorauswahl für .bmp). Wie kann ich das bewerkstelligen.
|
Re: Objeckinspektor PropertyEigenschaften (Datei öffnen)
such mal im Delphi-Pfad nach
'PicEdit.pas' wenn Du die Findest, kannst Du bei den Meistern direkt abschreiben ;) |
Re: Objeckinspektor PropertyEigenschaften (Datei öffnen)
Gibt es bei mir leider net.
|
Re: Objeckinspektor PropertyEigenschaften (Datei öffnen)
Hallo, ist bei mir zwar schon eine Weile her, dass ich mir eine
Komponente selber machte, aber a bisserl was hab ich für Dich: Bspl. anhand eines IniFile OpenDialogs
Delphi-Quellcode:
und
...
USES dsgnintf; // bis Delphi 5 !! ... TYPE TLogFileNameProperty = CLASS(TPropertyEditor) FUNCTION AllEqual: boolean; OVERRIDE; PROCEDURE Edit; OVERRIDE; FUNCTION GetAttributes: TPropertyAttributes; OVERRIDE; FUNCTION GetValue: STRING; OVERRIDE; PROCEDURE SetValue(CONST Value: STRING); OVERRIDE; END; PROCEDURE Register; IMPLEMENTATION ... PROCEDURE Register; BEGIN RegisterPropertyEditor(TypeInfo(STRING), TFlappError, 'LogFileName', TLogFileNameProperty); ... RegisterComponents('APP', [TFlappError]); // die Komponente selbst END; ... // --------------------------- LOG File ------------------------------------ FUNCTION TLogFileNameProperty.AllEqual: boolean; VAR FirstVal : STRING; i : Integer; BEGIN FirstVal := GetStrValue; Result := True; i := 1; WHILE Result AND (i < PropCount) DO BEGIN Result := Result AND (GetStrValueAt(i) = FirstVal); Inc(i); END; END; PROCEDURE TLogFileNameProperty.Edit; VAR Dlg : TOpenDialog; BEGIN Dlg := TOpenDialog.Create(Application); TRY WITH Dlg DO BEGIN Dlg.Filter := 'Logfile (*.log)|*.log|Textfile (*.txt)|*.txt|all Files|*.*'; Dlg.DefaultExt := '*.log'; Title := 'Logfile for ' + TComponent(GetComponent(0)).Name; FileName := Value; IF Execute THEN Value := FileName; END; FINALLY FreeAndNil(Dlg); END END; FUNCTION TLogFileNameProperty.GetAttributes: TPropertyAttributes; BEGIN Result := [paDialog] END; FUNCTION TLogFileNameProperty.GetValue: STRING; BEGIN Result := GetStrValue; END; PROCEDURE TLogFileNameProperty.SetValue(CONST Value: STRING); BEGIN SetStrValue(Value); END;
Delphi-Quellcode:
TFlappError = CLASS(TComponent) // Hauptklasse FlappError
FFileName: STRING; ... PUBLISHED ... PROPERTY LogFileName: STRING READ FFileName WRITE FFileName; END; p.s. obigen Code habe ich aus meinem Projekt kopiert, und ist so sicher nicht lauffähig, da ich die Kompo für D7 geschrieben habe. Ab Delphi 6 ist es Vorschrift, dass die Runtime- und die Designtime Teile einer Kompo in getrennten Dateien stehen müssen (aus lizenzrechtlichen Gründen, wegen der Designtime Editoren) p.p.s. Auch kann ich nicht garantieren das alle Befehle auch in D4 vorhanden sind. p.p.p.s. Aber als Anstoß könnte der Code ja taugen ... |
Re: Objeckinspektor PropertyEigenschaften (Datei öffnen)
thx
|
Re: Objeckinspektor PropertyEigenschaften (Datei öffnen)
Hallo!
Ich habe Delphi 6 Personal. Ich wollte mal fragen, wie den das TPropertyAttributes definiert ist. Also Type TPropertyAttributes= ... Joachim |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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