It was only recently that I started receiving this error.
I am receiving a run time error that first says ‘Invalid Property Value’, I click continue and then receive another one saying «Error reading Image2.OnClick : Invalid Property Value».
I use Image2 to manoeuvre between different forms. I have tried deleting all components named «Image2» along with any code under the OnClick event, but still receive the error.
Any suggestions?
asked Aug 9, 2018 at 10:59
6
Somewhere in one of your .dfm files that contain the design time properties of your forms, you have an OnClick
property that refers to a method that has either been removed, or is invalid in some other way.
Open the .dfm file for the offending form in a text edit, and look for Image2
. You will then find the offending OnClick
property setting and should be able to work out how best to resolve the problem.
answered Aug 9, 2018 at 11:37
David HeffernanDavid Heffernan
599k42 gold badges1064 silver badges1482 bronze badges
2
It’s probably related to your method’s access level.
If your OnClick method is declared as either private or public, try changing its access level to Published or move it right below the form declaration line.
answered Mar 18, 2019 at 14:26
1
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellApi, Registry, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, sSkinProvider, sSkinManager, TlHelp32, ExtCtrls, EncdDecd, acPNG, OleCtrls, SHDocVw, Menus, NB30 ; Type TForm1 = class(TForm) ListBox1: TListBox; Button2: TButton; Button3: TButton; Label1: TLabel; Label2: TLabel; IdHTTP1: TIdHTTP; Memo1: TMemo; Memo2: TMemo; Memo3: TMemo; ListBox2: TListBox; Close: TButton; ComboBox1: TComboBox; Label3: TLabel; Timer1: TTimer; Edit1: TEdit; Button1: TButton; Timer2: TTimer; Label5: TLabel; Label6: TLabel; Vk: TImage; Like: TImage; Mail: TImage; YouTube: TImage; MainMenu1: TMainMenu; N2: TMenuItem; N1: TMenuItem; Button5: TButton; OpenDialog1: TOpenDialog; ComboBox2: TComboBox; N3: TMenuItem; sSkinManager1: TsSkinManager; sSkinProvider1: TsSkinProvider; procedure Load(Sender: TObject); procedure Vhod(Sender: TObject); procedure Next(Sender: TObject); //procedure Button4Click(Sender: TObject); procedure ListBox2Click(Sender: TObject); procedure CloseClick(Sender: TObject); procedure Updater(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure LikeClick(Sender: TObject); procedure YouTubeClick(Sender: TObject); procedure VkClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure News(Sender: TObject); procedure N1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure Del(Sender: TObject); private { Private declarations } public { Public declarations } end; TForm3 = class(TForm) private { Private declarations } public { Public declarations } end; TForm2 = class(TForm) private { Private declarations } public { Public declarations } end; Const versionp = '0.0.3'; StartKey = 1556; // Start default key MultKey = 955; // Mult default AddKey = 2365; // Add default key var hw:hWND; Form1: TForm1; VipAccount, Flag:Boolean; vip, reklama, kluch:string; rekN:integer; SerialNum,dtyp:Dword; oa,ob:DWORD; Buffer,disk: array [0..255] of char; implementation uses Unit2, Unit3, Unit4, Unit5, Unit6; {$R *.dfm} ..... |
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
Invalid property valueInvalid property value(OP) 12 Feb 09 09:20 I’m writing an application in Delphi 6. Last time I saved the project everything was working, now when loading I get an error. When loading form1.pas I get ‘Invalid property value’. I am rather new to this so please keep that in mind when answering. Thank you Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
- Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close
|
|
|
Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как «свернуть» программу в трей.
3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
… (продолжение следует) …
Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка — 60 дней. Последующие попытки бан.
Мат в разделе — бан на три месяца…
TReader — помогите найти ошибку
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Вот код:
procedure TForm1.sButton1Click(Sender: TObject); var rr : TReader; tw : TWriter; f, rf : textfile; s, cr : string; i : integer; size : longint; buf : Pointer; rc : TResourceStream; fs : TFileStream; ms : TMemoryStream; db : array[1..150000] of string; begin i := 1; rc := TResourceStream.Create(hInstance,’rc_dt’, RT_RCDATA); ms := TMemoryStream.Create; ms.SetSize(20000000); ms.CopyFrom(rc, rc.Size); ms.Seek(0,0); rr := TReader.Create(ms, 4096); rr.ReadListBegin; while not rr.EndOfList do begin s := rr.ReadString; db[i] := s; inc(i); end; rr.ReadListEnd; rr.Free; rc.Free; if FileExists(‘data.tmp’) then DeleteFile(‘data.tmp’); ShowMessage(db[1]); ShowMessage(IntToStr(size)); end; Ошибка «Invalid property value» выдаётся на строке rr.ReadListBegin; Моя цель — это построчно считать данные из потока и занести их в массив. Сообщение отредактировано: bur80 — 23.12.07, 10:45 |
Shaggy |
|
Moderator Рейтинг (т): 130 |
а что в потоке? dfm? |
bur80 |
|
В потоке текстовый файл, а что есть разница ? У меня в ресурсе внутри exe`шника зашифрованный текстовый файл, я его оттуда хочу выдернуть в поток и потом построчно загнать в массив а уже из массива дешифровать и выдавать в качестве результатов пользователю. Сообщение отредактировано: bur80 — 24.12.07, 03:41 |
bur80 |
|
Может у кого есть какие нибудь мысли как решить проблему ? |
Shaggy |
|
Moderator Рейтинг (т): 130 |
Цитата bur80 @ 24.12.07, 01:17 В потоке текстовый файл, а что есть разница ? да, TReader ожидает, что в потоке содержится необходимая служебная информация, т.е. файл в ресурсе имеет необходимый формат(dfm) вот такой файл, например:
object Test: TTest List = ( ‘A’ ‘B’ ‘C’) end можно прочитать так:
Procedure ReadTextDFM(ResName:String;List:TStrings); Var RS,MS:TStream; R:TReader; begin List.Clear; RS:=TResourceStream.Create(hInstance,ResName,RT_RCDATA); Try MS:=TMemoryStream.Create; Try ObjectTextToBinary(RS,MS); MS.Position:=0; R:=TReader.Create(MS,1024); Try R.ReadSignature; R.ReadStr; //TTest R.ReadStr; //Test R.ReadStr; //List R.ReadListBegin; While Not R.EndOfList Do List.Append(R.ReadString); R.ReadListEnd; R.ReadListEnd; Finally R.Free; End; Finally MS.Free; End; Finally RS.Free; End; End; только зачем эта морока с TReader? |
alex_sporik |
|
Смахивает на то что rr.ReadListBegin; + rr.ReadListEnd; не нужны. Если ваш ресурс это просто текст — то точно не нужны, в противном случае предоставьте код записи в этот поток коотрый в ресурсе, или хотя бы дамп этого ресурса. |
bur80 |
|
Shaggy, я решил эту проблему по другому. Я из потока данные загружаю в StringList и уже с ним работаю. -Added 25.12.07, 04:33 Цитата alex_sporik @ 24.12.07, 16:41 Смахивает на то что rr.ReadListBegin; + rr.ReadListEnd; не нужны. Если ваш ресурс это просто текст — то точно не нужны, в противном случае предоставьте код записи в этот поток коотрый в ресурсе, или хотя бы дамп этого ресурса. Тут проблема была, по всей видимости, в том что ресурс он как бы текст, но зашифрованный и поэтому из-за недопустимых символов в тексте поток не читался. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Общие вопросы
- Следующая тема
[ Script execution time: 0,0551 ] [ 16 queries used ] [ Generated: 7.06.23, 08:27 GMT ]
м-м-м-да-а-а…. появилась эта фигня когда установил компоненты Raize очень функциональные и практичные….
А этот файл — dsgnintf.pas найти не могу (((
При этом интересно получается, ведь когда я в дизайнере ставлю этот цвет — компонента меняет цвет на какой-то темно синий или что-то в этом духе… получается ссылка на код цвета рабочая, почему только компилятор не жует… есть еще два цвета интересные — clMenuBar, clMenuHighlight…. вот…
Похоже копать глубже надо — модуль Graphic.pas
const
clScrollBar = TColor(COLOR_SCROLLBAR or $80000000);
clBackground = TColor(COLOR_BACKGROUND or $80000000);
clActiveCaption = TColor(COLOR_ACTIVECAPTION or $80000000);
clInactiveCaption = TColor(COLOR_INACTIVECAPTION or $80000000);
clMenu = TColor(COLOR_MENU or $80000000);
clWindow = TColor(COLOR_WINDOW or $80000000);
clWindowFrame = TColor(COLOR_WINDOWFRAME or $80000000);
clMenuText = TColor(COLOR_MENUTEXT or $80000000);
clWindowText = TColor(COLOR_WINDOWTEXT or $80000000);
clCaptionText = TColor(COLOR_CAPTIONTEXT or $80000000);
clActiveBorder = TColor(COLOR_ACTIVEBORDER or $80000000);
clInactiveBorder = TColor(COLOR_INACTIVEBORDER or $80000000);
clAppWorkSpace = TColor(COLOR_APPWORKSPACE or $80000000);
clHighlight = TColor(COLOR_HIGHLIGHT or $80000000);
clHighlightText = TColor(COLOR_HIGHLIGHTTEXT or $80000000);
clBtnFace = TColor(COLOR_BTNFACE or $80000000);
clBtnShadow = TColor(COLOR_BTNSHADOW or $80000000);
clGrayText = TColor(COLOR_GRAYTEXT or $80000000);
clBtnText = TColor(COLOR_BTNTEXT or $80000000);
clInactiveCaptionText = TColor(COLOR_INACTIVECAPTIONTEXT or $80000000);
clBtnHighlight = TColor(COLOR_BTNHIGHLIGHT or $80000000);
cl3DDkShadow = TColor(COLOR_3DDKSHADOW or $80000000);
cl3DLight = TColor(COLOR_3DLIGHT or $80000000);
clInfoText = TColor(COLOR_INFOTEXT or $80000000);
clInfoBk = TColor(COLOR_INFOBK or $80000000);
clGradientActiveCaption = TColor(COLOR_GRADIENTACTIVECAPTION or $80000000);
clGradientInactiveCaption = TColor(COLOR_GRADIENTINACTIVECAPTION or $80000000);
clBlack = TColor($000000);
clMaroon = TColor($000080);
clGreen = TColor($008000);
clOlive = TColor($008080);
clNavy = TColor($800000);
clPurple = TColor($800080);
clTeal = TColor($808000);
clGray = TColor($808080);
clSilver = TColor($C0C0C0);
clRed = TColor($0000FF);
clLime = TColor($00FF00);
clYellow = TColor($00FFFF);
clBlue = TColor($FF0000);
clFuchsia = TColor($FF00FF);
clAqua = TColor($FFFF00);
clLtGray = TColor($C0C0C0);
clDkGray = TColor($808080);
clWhite = TColor($FFFFFF);
StandardColorsCount = 16;
clMoneyGreen = TColor($C0DCC0);
clSkyBlue = TColor($F0CAA6);
clCream = TColor($F0FBFF);
clMedGray = TColor($A4A0A0);
ExtendedColorsCount = 4;
clNone = TColor($1FFFFFFF);
clDefault = TColor($20000000);
Вот тут нету этих цветов……
Чем проще — тем оригинальней, а значит гениально, т.к. все гениальное — просто! Да! Кстати! Ctrl+V реально вставляет!!! ХDD