Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2002-09

TEdit control lacks a OnKeyPress event

9 messages · 6 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael A. Hess
to Andrew Johnson: Yep it should... That's because its a re-declaration of a property defined in one of its…
Andrew Johnson wrote
But until Mattias gets back from Vacation it can't be committed to CVS.

If you have patches that you would like to get applied you can always send them to me. I can commit them as well. You don't have to wait for Mattias to get back.

==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com

Reply by email

Tony Maro
to Andrew Johnson: Yep it should... That's because its a re-declaration of a property defined in one of its…
Andrew Johnson wrote 9 lines
However there does seem to be a GTK problem wherein changing the Key value doesn't do anything, so if you were planning on making a Date Mask, or filtering out non-numeric chars for a Money field, it won't work yet. I am going to see how easy it is to fix. But until Mattias gets back from Vacation it can't be committed to CVS. What you might consider doing if this is the case though, is deleting the last char in the edit text if its not one you want to allow. Obviously this is only a Temp. Hack but it might work nonetheless.

MMm - well if I had a OnKeyUp then I could do the same thing I did for my combobox autocompletes and adjust the .text after the char is placed in it, as you describe. However, I tried adding these to the declaration and recompiling and the events didn't appear in the IDE - I must have done something wrong.

Reply by email

Andrew Johnson
Shouldn't the TEdit control include an OnKeyPress event?

Yep it should...

I was looking at the source for the TComboBox and can't figure out how it's implemented... I don't see any actual code for it, just the property definition.

That's because its a re-declaration of a property defined in one of its ancestors.

If a Property is declared as just the Property and the name it usually menas that you are making public or published a property which was Protected in it parent(s). AKA it has already been implemented elsewhere.

Is it a GTK problem?

nope.. Don't why it isn't there.. or Key Down/Up either.. To make OnKeyPress a Published Property all you should have to do is add Property OnKeyPress; to the TEdit Published Section, and recompile the LCL and Lazarus.

However there does seem to be a GTK problem wherein changing the Key value doesn't do anything, so if you were planning on making a Date Mask, or filtering out non-numeric chars for a Money field, it won't work yet. I am going to see how easy it is to fix. But until Mattias gets back from Vacation it can't be committed to CVS. What you might consider doing if this is the case though, is deleting the last char in the edit text if its not one you want to allow. Obviously this is only a Temp. Hack but it might work nonetheless.

Andrew

TTFN
Genius(in name only)

_________________________________________________________________ Join the world�s largest e-mail service with MSN Hotmail. http://www.hotmail.com

Reply by email

Andrew Johnson
Show quoted text 5 lines
MMm - well if I had a OnKeyUp then I could do the same thing I did for my combobox autocompletes and adjust the .text after the char is placed in it, as you describe. However, I tried adding these to the declaration and recompiling and the events didn't appear in the IDE - I must have done something wrong.

It worked for me.. so make sure you added them to the Published section of TEdit. And do a make clean all. Other wise I do not know what you're doing wrong...

As for the GTK problem.. nobody implemented updating the GTK message with the new value.. So I tried.. but I am running into a few problems. 1.) someone switched it to use DeliverPostMessage.. BAD idea. this will mean that the calling routine will get closed before it ever getes a response, therefore the change code is never run, because there wasn't a change yet. 2.) If the value in question is a ASCII key 1-31 it has to be translated back to its GTK value, and there is no such routine yet. And if it GTK Win32, any value has to be mapped back into its GTK value, because its String value is broken. I may just copy the routine to convert a GTKKey into its char value, and invert it to do the opposite. If I can do this, and switch KeyDown and KeyPress to use Object.Dispatch instead, this should make changing the key value for either of these two work.

Andrew

_________________________________________________________________ Send and receive Hotmail on your mobile device: http://mobile.msn.com

Reply by email

Patik Martin

It won't be so fast becouse I'm new to this project and I can say that I'm a beginner in Lazarus. So first I have to understand the source code and how all the staff is implemented and this takes some time, but I'm very interested to this project (... and also it is my project on a High school).
Thanks very much for information. If you don't mind, I will write you my questions to get "in" more faster.

Martin.

Earlier message 27 lines
-----Original Message----- From: Michael A. Hess Sent: Tuesday, September 24, 2002 10:13 AM To: Subject: Re: [lazarus] TEdit control lacks a OnKeyPress event Andrew Johnson wrote: > > But until Mattias gets back from Vacation it can't > be committed to CVS. If you have patches that you would like to get applied you can always send them to me. I can commit them as well. You don't have to wait for Mattias to get back. -- ==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives

Reply by email

Peter Oosterman
to Andrew Johnson: Yep it should... That's because its a re-declaration of a property defined in one of its…

Hi,

I'm having a bit of trouble compiling the source. I've tried this, that and the other thing but I'm pretty all my problems come from

Lazarus compiles, but linking fails with: libgdk-pixbuf not found

as stated in the faq.

I hunted down gdk-pixbuf-0.5.0-1.i386.rpm and installed it with rpm --install --force gdk-pixbuf-0.5.0-1.i386.rpm
(kpackager would let me install it saying it was an old version) It copied its files to the locations it said it would.

but the problem remains.

I've done a standard install from fpc-1.0.7-laz.20020906.i386.rpm and fpc-1.0.7-laz.20020906.src.rpm and I have attached my fpc.cfg (which I'm pretty sure is the only cfg file I have) at the end of the email.

Also, if i try compiling without the pixbuf lib using How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option '-dNoGdkPixBufLib'
or at command line:
"make clean all OPT=-dNoGdkPixBufLib".

it complains about PIMAGE not vaild (or something to that effect)

Anyone have any ideas?

Pete

#
# Example fpc.cfg for Free Pascal Compiler
#
# ----------------------
# Defines (preprocessor)
# ----------------------
#
# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed #
# -d is the same as #DEFINE
# -u is the same as #UNDEF
#
# When not m68k is defined at the commandline, define i386 #IFNDEF m68k
#DEFINE i386
#ENDIF
#
# Some examples (for switches see below, and the -? helppages) #
# Try compiling with the -dRELEASE or -dDEBUG on the commandline #
# For a release compile with optimizes and strip debuginfo #IFDEF RELEASE
-OG2p3
-Xs
#WRITE Compiling Release Version
#ENDIF
# For a debug version compile with debuginfo and all codegeneration checks on #IFDEF DEBUG
-g
-Crtoi
#WRITE Compiling Debug Version
#ENDIF
# ----------------
# Parsing switches
# ----------------
# All assembler blocks are intel styled by default #-Rintel
# All assembler blocks are AT&T styled by default
#-Ratt
# Semantic checking
# -S2 switch some Delphi 2 extension on
# -Sc supports operators like C (*=,+=,/= and -=) # -Sg allows LABEL and GOTO
# -Si support C++ stlyed INLINE
# -Sm support macros like C (global)
# -So tries to be TP/BP 7.0 compatible
# -Ss constructor name must be init (destructor must be done) # -St allows static keyword in objects
# Allow goto, inline, C-operators, C-vars
-Sgic
# ---------------
# Code generation
# ---------------
# Uncomment the next line if you always want static/dynamic units by default # (can be overruled with -CD, -CS at the commandline) #-CS
#-CD
# Set the default heapsize to 8Mb
#-Ch8000000
# Set default codegeneration checks (iocheck, overflow, range, stack) #-Ci
#-Co
#-Cr
#-Ct
# Optimizer switches
# -Og generate smaller code
# -OG generate faster code (default)
# -Or keep certain variables in registers (still BUGGY!!!) # -Ou enable uncertain optimizations (see docs) # -O1 level 1 optimizations (quick optimizations) # -O2 level 2 optimizations (-O1 + slower optimizations) # -O3 level 3 optimizations (same as -O2u)
# -Op target processor
# -Op1 set target processor to 386/486
# -Op2 set target processor to Pentium/PentiumMMX (tm) # -Op3 set target processor to PPro/PII/c6x86/K6 (tm) # Optimize always for Size and PII
#-OG2p3

# -----------------------
# Set Filenames and Paths
# -----------------------
# Slashes are also allowed under dos
# path to the messagefile, not necessary anymore but can be used to override # the default language
#-Fr/usr/lib/fpc/1.0.7/msg/errore.msg
#-Fr/usr/lib/fpc/1.0.7/msg/errorn.msg
# searchpath for includefiles
#-Fi/pp/inc;/pp/rtl/inc
# searchpath for units and other system dependent things -Fu/usr/lib/fpc/1.0.7/units/$target
-Fu/usr/lib/fpc/1.0.7/units/$target/*
-Fu/usr/lib/fpc/1.0.7/units/$target/rtl
#-Fu~/fpc/packages/*;~/fpc/rtl/linux

# adding lots in the hope that my pixbuf v1 lib will be picked up # searchpath for libraries
-Fl/usr/lib/gcc-lib/i386-redhat-linux/2.96
-Fl/usr/lib/gdk-pixbuf/*
-Fl/usr/lib/*
-Fl/usr/lib/gdk-pixbuk
-Fl/lib;/usr/lib

# -------------
# Linking
# -------------
# generate always debugging information for GDB (slows down the compiling # process)
#-g
# always pass an option to the linker
#-k-s
# Always strip debuginfo from the executable
-Xs

# -------------
# Miscellaneous
# -------------
# Write always a nice FPC logo ;)
-l
# Verbosity
# e : Show errors (default) d : Show debug info # w : Show warnings u : Show used files # n : Show notes t : Show tried files # h : Show hints m : Show defined macros # i : Show general info p : Show compiled procedures # l : Show linenumbers c : Show conditionals # a : Show everything 0 : Show nothing (except errors) # Display Info, Warnings, Notes and Hints
-viwn
# If you don't want so much verbosity use
#-vw
#
# That's all folks
#

Reply by email

Andrew Johnson
Lazarus compiles, but linking fails with: libgdk-pixbuf not found

this means that the linker can't find the library in the search path(not that it isn't installed persay)

I hunted down gdk-pixbuf-0.5.0-1.i386.rpm and installed it with rpm --install --force gdk-pixbuf-0.5.0-1.i386.rpm (kpackager would let me install it saying it was an old version) It copied its files to the locations it said it would.

wow.. 0.5!! thats a MAJORLY old version.. the library version expected is 0.16.0 or greater which can be gotten from the Gnome Download site or mirrors. And you probably had a compatible version already installed based on the package error.

but the problem remains.

AFAIK the RPM installs into /usr, /usr/lib etc, which is the default search path on any system.. for the most part anyhow.. So I would suggest adding /usr/lib to the library path. I would also def. Suggest you get a good version from the gnome ftp site, such as the 0.18 version, but Otherwise I am clueless.

Also, if i try compiling without the pixbuf lib [...] it complains about PIMAGE not vaild (or something to that effect)

This was as a result of a last minute change in the design of my code from the last patch. I will have it fixed next time I send a Patch in, but that will be over a week probably. So to fix this yourself(IF you can't get Pixbuf working) Open lazarus/lcl/interfaces/gtkwinapi.inc, and on line 1017 change PImage, to PGDKIMage and on line 1083 change Result := , to Pixel := .

Sorry your having such issues. Hope this helps.

Andrew

_________________________________________________________________ Send and receive Hotmail on your mobile device: http://mobile.msn.com

Reply by email

Peter Oosterman
to Andrew Johnson: On Tue, 24 Sep 2002 13:13:01 +1200 this means that the linker can't find the library in…
0.16.0 or greater which can be gotten from the Gnome Download site or mirrors. And you probably had a compatible version already installed based

ta, that did the trick.

just realised what I did, got a couple of libraries mixed up in my mind with the net result being that I though the faq was telling me to install a really old version of gtk-pixbuf.

Thanks for you help,
Pete.

Reply by email