| imho.ws |
![]() |
|
|
|
# 1 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Delphi (помогите разобраться)
Создаю событие OnMouseDown, создаю переменную Btn типа TButton . В ответ получаю Undeclared identifier: 'TButton'
Код:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Btn : TButton; begin end; |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120
![]() |
создал пустой проект, на свойствах формы попытался сделать анаологичное вышеописанному, ктрл + ф9 - ошибка...
потом, кинул на форму кнопку, снова откомпилировал - ошибки нет... так что проверяй юзес...
__________________
"я не волшебник - я только учусь..." (c) ...а зовут меня Олег... |
|
|
|
|
# 4 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Не могу разобраться с полиморфизмом классов. В книге по которой я учусь, описывается следующий пример.
Код:
TMyClass1 = class procedure Show; procedure Hide; procedure MyProc(IsShow : Boolean); virtual; end; TMyClass2 = class(TMyClass1) procedure MyProc(IsShow : Boolean); override; end; procedure TMyClass1.Show; begin MyProc(True); end; procedure TMyClass1.Hide; begin MyProc(False); end; |
|
|
|
|
# 6 |
|
::VIP::
Регистрация: 11.06.2003
Адрес: Там...
Сообщения: 236
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
steelik
Либо в TStringList загрузить (LoadFromFile) и после параметр Text взять, либо: Код:
var f:System.Text; s,buf:string; begin AssingFile(f,'file.txt'); Reset(F); s:=''; while not eof(f) do begin readln(f,buf); s:=s+buf; end; end; |
|
|
|
|
# 7 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
расшифровываю и упрощаю понимание :var f:TStringList; //Переменная типа объект TStringList. begin f:= TStringList.Create(); f.LoadFromFile(‘c:\filename.txt’);// Загружаю текстовый файл f.Strings[0]; // Здесь находиться первая строчка файла f.Strings[1]; // Здесь находиться вторая строчка файла //и т.д. f.Free; //не забываем чистьть за собой память end;
Последний раз редактировалось /7y3uK; 16.05.2004 в 03:23. |
|
|
|
|
# 9 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
2 f00rd
Впринципе если в тексте нужно что-то искать, то по f.Text искать действительно быстрее. Но также возможна ситуация - допустим, каждая строка - фамилия. В случае TStringList достаточно читать по нескольку символов из начала каждой строки, а при нахождении сразу же по индексу вытаскивать всю строку. |
|
|
|
|
# 11 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Пишу следующую, так сказать утилитку.
Загружаю текстовый файл, вот допустим его содержимое: Код:
321948 953295 531295 359895 Код:
example;321948;example; example;953295;example; example;531295;example; example;359895;example; Код:
var
st : TStringList;
..
st := TStringList.Create;
if OpenDialog1.Execute then
st.LoadFromFile(OpenDialog1.FileName);
astring := Format('%s%s%s',['General;',st.[i],';name;']);
|
|
|
|
|
# 14 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Алё... в делфе почти у всех компонентов есть свойство Enable... например: Button1.Enable:=False - выключить, True - включить... Ты конкретнее рассказывай, зачем тебе кнопку выключать и когда включать, тебе народ расскажет как можно хитрее все сделать, раз ты дельфю только начал рюхать...
|
|
|
|
|
# 15 |
|
Junior Member
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120
![]() |
Располагай кнопки на тулбарах в соответствии с их назначением и активиру/деактивируй не по-кнопочно, а тулбар целиком. Так будет проще...
__________________
"я не волшебник - я только учусь..." (c) ...а зовут меня Олег... |
|
|
|
|
# 16 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Всем респект!
Ещё вопрос! Как отличить цифру от текстового символа. Например, в переменной st[0] у меня находится вот такая строчка: 610177 , как определить, что в этой сроке записано? Цифра али текст? Задача состоит в том, чтобы проверять отрываемый файл, если в нём имеется текст, то он автоматом закрывается, т.к. для работы нам необходим файл с целочисленными с строками не более 10 символов в длину. |
|
|
|
|
# 17 |
|
::VIP::
Регистрация: 11.06.2003
Адрес: Там...
Сообщения: 236
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
steelik
Код:
var i:integer; s:string; begin try i:=StrToInt(s); except exit; //s- не число end; Код:
var i:integer; s:string; begin i:=StrToIntDef(s,-12345); if i=-12345 then exit;//s- не число end; Последний раз редактировалось f00rd; 20.05.2004 в 15:25. |
|
|
|
|
# 18 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Не понимаю, почему билды такие огромные получаются, пару диалоговых окон с примитивными процедурами, всего 600кб. Капался в опциях проекта, нашёл Build with runtime packages, после того, как поставил галку в этом чекбоксе, билд стал весить 70кб, однако проект библиотеки требует, которые весят по 700кб 8)))) Вот значит, почему все так не любят дельфи?
|
|
|
|
|
# 19 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Значит есть у меня переменная st типа TStringList, мне необходимо изменить каждую строчку следующим способом, формат такой [i]str1+st+str2, всё это можно было бы записать следующим образом, что я вообщем-то и сделал
Код:
for i := 0 to st.count-1
begin
st[ i ] := Format('%s%s%s',[str1,st[ i ],str2])
end
Всё работает, но, когда я ввожу следующие значения, хочу например изменить значения str1, str2, то получается такого типа строчка: str1 str1 st[i] str2 str2 То есть, к чему я это всё, функция Format не изменяет мне значения str1,str2, а просто их добавляет в строку - постоянно, может быть посоветуете что-нибудь? Нехотелось бы мне при каждом разе заполнять переменную st (у меня это происходит при открытии файла) исходной информацией. Последний раз редактировалось steelik; 20.05.2004 в 18:47. |
|
|
|
|
# 20 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Во-первых я Делфи люблю и уважаю, т.к. я ей балуюсь уже лет 5, но склоняюсь все больше и больше к любым С, т.к. там есть много чего полезного, чем дельфя обделена... а весят они так немеряно, т.к. дельфя за тебя делает всю рутинную работу: ресурсы делает, процедуру окна создает и много чего другого разного, что впринципе можно было бы сделать ручками, но так получается быстрее... на голом асме пустое окно с кнопкой без кода у меня весит 3 КБ, но выглядит все мрачно и не красиво
![]() По поводу форматирования: самое простое и не изящное - это сделать еще один StringList такого же сайза как первый, например st2, и делать в цикле вот так st2[i]:=str1+st[i]+str2; |
|
|