TIPropertyGrid und TFilename

Rund um die LCL und andere Komponenten
JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

TIPropertyGrid und TFilename

Beitrag von JKnill »

Hallo Gemeinde

ich bin neu hier und hoffe Ihr könnt mir helfen.

ich habe eine Klasse gemacht die ein image laden soll Funktioniert auch recht gut

Code: Alles auswählen

TTest = class(TCustomComponent)
private
  fFilename ; TFileName;
  procedure Setfilename(avalue : TFilename);
published
  property Filename : TFilename raed fFilename write Setfilename;
end;
jetzt soll da aber zur laufzeit passieren! habe dazu eine TIPropertyGrid auf meine Form gesetzt und die TIobject mit der Instamz meiner klasse verbunden. ich kann da auch den filename eintragen aber es erscheint der Button im propertygrid der den Filedialog öffnet nicht (ich meine die drei punkte neben dem editfeld)

was mache ich da falsch! Habe schon alles mögliche versucht wenn ich eine TImage instanz mit der OI verbinde erscheint der button um das Dile auszuwählen!

mfg

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: TIPropertyGrid und TFilename

Beitrag von Maik81ftl »

JKnill hat geschrieben:Hallo Gemeinde

ich bin neu hier und hoffe Ihr könnt mir helfen.

ich habe eine Klasse gemacht die ein image laden soll Funktioniert auch recht gut

Code: Alles auswählen

TTest = class(TCustomComponent)
private
  fFilename ; TFileName;
  procedure Setfilename(avalue : TFilename);
published
  property Filename : TFilename raed fFilename write Setfilename;
end;
jetzt soll da aber zur laufzeit passieren! habe dazu eine TIPropertyGrid auf meine Form gesetzt und die TIobject mit der Instamz meiner klasse verbunden. ich kann da auch den filename eintragen aber es erscheint der Button im propertygrid der den Filedialog öffnet nicht (ich meine die drei punkte neben dem editfeld)

was mache ich da falsch! Habe schon alles mögliche versucht wenn ich eine TImage instanz mit der OI verbinde erscheint der button um das Dile auszuwählen!

mfg
Ähmmm warum machst du das nicht mit dem Fertigen Image?
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: TIPropertyGrid und TFilename

Beitrag von MAC »

Ich habe dir gerade dieses Beispielprogramm geschrieben.
Ist nur der Source - kompilieren darfst du selber ;)

In dem Beispiel steht, wies einfach und wies kompliziert geht (Eine eigene Klasse ist hier - zumindest meiner meinung, ich weis ja nicht wie du diese erweitern willst , noch sinnlos - zum üben ist das allerding ok)...
Dateianhänge
Test.zip
Beispiel
(126.08 KiB) 82-mal heruntergeladen

Code: Alles auswählen

Signatur := nil;

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

Hallo
Ich habe mich anscheinend nicht ganz verständlich ausgedrückt
es geht mir darum warum der dialog (... schaltfeld) im TIpropertygrid beim z.B. property Databasename der Interbase Componente zur laufzeit nicht angezeigt wird aber im Objectinspektor in der IDE schon

mache ich da was in der zuweisung des TIpropertygrid falsch?

bitte lasst mich nicht dum sterben
Dateianhänge
mytest.zip
beispiel
(125.82 KiB) 79-mal heruntergeladen

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: TIPropertyGrid und TFilename

Beitrag von Maik81ftl »

du meinen bei der IBConnection1? wenn das ein Menü ist liegt die Antwort glaube schon auf der Hand.

ExecuteAction...

Has das mal bit in die classes.h verfolgt und bin denne auf das hier gestoßen... TBasicAction

da da leider nicht mehr drinne stand als nur TBasicAction = class[/b] bin ich via Chome auf das her gestoßen.
http://www.freepascal.org/docs-html/rtl ... ction.html

Dies und folgende Zeilen sollten dir theoreitsch helfen.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IBConnection1.ExecuteAction() then
     TIPropertyGrid1.TIObject:=IBConnection1;
end;
Würde dir gerne mehr sagen, aber meine Kenntnisse in DB = 0 :| Hoffe dennoch, das es etwas hilft.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

Hallo

es dreht sich nicht um ein Menü sonden immer noch um das was ich oden (denke ich) doch eindeutig beschrieben habe

aslo nochmal wenn ich in der IDE eine Komponnete mit einem property type TFilename ooder auch TDatabase dan erscheint im der IDR im OI drei punkte um einen Dialog zu starten!
das funktioniert aber nicht wenn ich das TIpropertyGrid in meiner Anwendung verwende (siehe beispiel mytest)

ich möchte eigentlich nur wissen warum ich zur laufzeit diese schatfläche im TIPropertyGrid nicht bekomme obwohl es der Gleiche Datentyp ist!!!!

Grüsle

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: TIPropertyGrid und TFilename

Beitrag von Maik81ftl »

nun da mein Laza dies richtig laufen leis, sehe ich was du meinst

einen Fehler kann ich selber nicht sehen, da ja die OnLogin und die DataBaseName gleich in ihren vorgängern behandelt werden.

Habe mir einmal beide angeschaut, um ggf. 'nen Unterschied zu finden.
Zuletzt geändert von Maik81ftl am Mi 16. Mär 2011, 15:02, insgesamt 1-mal geändert.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

hallo

wenn ich den property als String deklariere ändert das auch nichts

mfg

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: TIPropertyGrid und TFilename

Beitrag von schnullerbacke »

Hi,

du musst die RTI-Komponenten verwenden wenn du zur Laufzeit auf deine Propertys zugreifen willst wie in der IDE... 8)
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

Hallo

da ist so nicht richtig ich kann das auch mit eigenen komponenten diese müssen mindestens von TPersistent abgeleitet sein
und die Propertys die im OI sichtbar sein sollen müssen published sein

grüssle

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

Hi,
Also jetzt nochmal zu meiner frage


warum kann ich zur laufzeit im Propertygrid nicht die Datasource1 auswählen ?
das müsste doch gehen oder ?
newtest.zip
Beispiel
(125.07 KiB) 90-mal heruntergeladen
Glüssle

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: TIPropertyGrid und TFilename

Beitrag von Maik81ftl »

Hmmm, hab's mir mal grad angeschaut. du müsstest deinem Programm schon sagen, das er bei z.B. Button1 oder andere Eingabe diese Komponente Lädt.

Hab dies mal um die entsprechenden zeilen erweitert. :mrgreen:

Hoffe, das ich das, was du meinst in etwa getroffen Habe.

lg Maik

PS: hab einen kleinen aber Harmlosen wirt eingebaut. ergo nur eine Showmessage bei Falscheingabe.

PPS. BITTE BEACHTEN!!! habe es mit Ubuntu weitergeschrieben. also bitte den "Lib" ordner beachten
Dateianhänge
newtest2.zip
(4.9 MiB) 78-mal heruntergeladen
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

Hallo Maik

leider nicht ganz. Wie ich dem Propertygrid objecte zuweise weis ich

mich interesiert warum ich bei dem zugewiesenen object dbedit nicht die Datasource auswählen kann ( ist ja im Projekt drin und auch instanziert)

Grüssle Jürgen

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: TIPropertyGrid und TFilename

Beitrag von Maik81ftl »

Jopp! jetzt hab'sch richtig geschnallt..

aba beantworten kann ich dir diese Frage leider gottes nicht :(

aber was gehen sollte, wäre die.

a) manuelle einbindung im OI oder
b) wenn's geht via Button. aber recht hast. sollte eigendlich auch inna LZ gehen.

aber da du ja ggf. die auch mal wechseln willst, muß es Var c sein.

c) einbindung in der LZ ohne Button.

Übrigend. die idee, mit dem TIPropertyGrid1 gefällt mir.

gruß maik
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

JKnill
Beiträge: 16
Registriert: Mo 14. Mär 2011, 15:46

Re: TIPropertyGrid und TFilename

Beitrag von JKnill »

hat niemand eine Idee?

kam man vieleicht propertyeditoren zur laufzeit aufrufen oder erzeugen!

wäre wirklich wichtig

Grüssle

Antworten