|
Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!
Здравствуйте, гость ( Вход | Регистрация )
 Сейчас обсуждают
 
| |
|
  |
ЧаВо по Pascal/Delphi, Спрашивайте, не стесняйтесь. |
|
|
mephisto |
7.6.2008, 21:31
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Тема пока пустая, так что не стесняйтесь задавать вопросы. Еще лучше, если к вопросам будет прилагаться ответ  Куратором темы назначается ??????? (место вакантно  )
|
|
|
|
ЧаВо по Pascal/Delphi, Спрашивайте, не стесняйтесь. |
|
|
BATMEN |
18.6.2008, 18:27
|

Поддерживает разговор
Группа: Пользователи
Сообщений: 199
Регистрация: 22.6.2007
Пользователь №: 455
Репутация: 7

|
Segate: В событии onKeyPress: Код if not key in ['а'..'я'] then begin key := #0; showMessage('Invalid Char'); end;
Сообщение отредактировал BATMEN - 18.6.2008, 18:28
|
|
|
|
Segate |
18.6.2008, 18:36
|

:)
Группа: Sibnet-club
Сообщений: 1 677
Регистрация: 9.1.2008
Из: Новосибирск
Пользователь №: 16 184
Репутация: 171

|
Ну а чем мое то неподходит? У тебя во первых большие буквы незя будет ввести во вторых стереть нельзя будет (а у мну кнопка Backspase разрешена: Код if key = char(VK_BACK) then exit;
)
|
|
|
|
BATMEN |
18.6.2008, 18:47
|

Поддерживает разговор
Группа: Пользователи
Сообщений: 199
Регистрация: 22.6.2007
Пользователь №: 455
Репутация: 7

|
Емае, я же пример только привел  Код if not key in ['а'..'я', 'А'..'Я', #8] then begin key := #0; showMessage('Invalid Char'); end; Ой, сорри, я хотел адресовать пост oL___Eg Сообщение отредактировал BATMEN - 18.6.2008, 18:53
|
|
|
|
VitBank |
19.6.2008, 14:36
|
Поддерживает разговор
Группа: Sibnet-club
Сообщений: 236
Регистрация: 8.5.2008
Пользователь №: 32 284
Репутация: 12

|
Для каждого компонента для которого требуется его заполнение создай обработчик события OnPressKey или какойнибудь похожий и напиши проверку условия Код if dbEdit1.Text <> '' then if dbradiogroup.Item > -1 then if dbcombobox.Text <> '' then begin < Здесь желательно проверить то в dbradiogroup введено чтото нужное, а не просто пользовательская ахинея> Button1.Enabled := True; end else Button1.Enabled := False;
Для каждого события ето писать ненужно, достаточно написать только один раз, а потом в конструкторе события выбрать необходимый. Измените что я объясняю криво, по другому не умею.
|
|
|
|
BATMEN |
19.6.2008, 16:25
|

Поддерживает разговор
Группа: Пользователи
Сообщений: 199
Регистрация: 22.6.2007
Пользователь №: 455
Репутация: 7

|
Код Button1.Enabled := (dbEdit1.Text <> '') and (dbradiogroup.Item > -1) and (dbcombobox.Text <> ''); Так нагляднее будет  Ток там ItemIndex
|
|
|
|
(-=Dargin=-) |
16.7.2008, 13:11
|

.
Группа: Пользователи
Сообщений: 471
Регистрация: 8.12.2007
Из: Барнаула
Пользователь №: 12 820
Репутация: 43

|
Это называется ID3 теги, последние 128 байт в файле. Как-то самосу это надо было. Вот пример из DelphiWorld » Спойлер (нажмите, чтобы прочесть) « Код { Byte 1-3 = ID 'TAG' Byte 4-33 = Titel / Title Byte 34-63 = Artist Byte 64-93 = Album Byte 94-97 = Jahr / Year Byte 98-127 = Kommentar / Comment Byte 128 = Genre }
type TID3Tag = record ID: string[3]; Titel: string[30]; Artist: string[30]; Album: string[30]; Year: string[4]; Comment: string[30]; Genre: Byte; end;
const Genres : array[0..146] of string = ('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge', 'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B', 'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska', 'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient', 'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical', 'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise', 'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop', 'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic', 'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta', 'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave', 'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk', 'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk', 'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival', 'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock', 'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus', 'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera', 'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove', 'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad', 'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo', 'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House', 'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat', 'Christian Gangsta','Heavy Metal','Black Metal','Crossover','Contemporary C', 'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop');
var Form1: TForm1;
implementation
{$R *.dfm}
function readID3Tag(FileName: string): TID3Tag; var FS: TFileStream; Buffer: array [1..128] of Char; begin FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try FS.Seek(-128, soFromEnd); FS.Read(Buffer, 128); with Result do begin ID := Copy(Buffer, 1, 3); Titel := Copy(Buffer, 4, 30); Artist := Copy(Buffer, 34, 30); Album := Copy(Buffer, 64, 30); Year := Copy(Buffer, 94, 4); Comment := Copy(Buffer, 98, 30); Genre := Ord(Buffer[128]); end; finally FS.Free; end; end;
procedure TfrmMain.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin with readID3Tag(OpenDialog1.FileName) do begin LlbID.Caption := 'ID: ' + ID; LlbTitel.Caption := 'Titel: ' + Titel; LlbArtist.Caption := 'Artist: ' + Artist; LlbAlbum.Caption := 'Album: ' + Album; LlbYear.Caption := 'Year: ' + Year; LlbComment.Caption := 'Comment: ' + Comment; if (Genre >= 0) and (Genre <=146) then LlbGenre.Caption := 'Genre: ' + Genres[Genre] else LlbGenre.Caption := 'N/A'; end; end; end;
|
|
|
|
mephisto |
16.7.2008, 13:22
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Цитата((-=Dargin=-) @ 16.7.2008, 12:11)  Это называется ID3 теги, последние 128 байт в файле. Как-то самосу это надо было. Вот пример из DelphiWorld
На счет последних байт не факт. Да и размер вроде у второй версии побольше.
|
|
|
|
x0man |
24.7.2008, 20:17
|

Выпендрёжный программист... :)
Группа: Пользователи
Сообщений: 789
Регистрация: 17.7.2007
Из: Кыргызстан, Кара-Балта
Пользователь №: 2 197
Репутация: 28

|
Я так понял, это чтоб при нажатии на F9 прога вылезала из трея? это вообще речь идёт не о хуках а о Горячих клавишах... юзается функа "RegisterHotKey" первая ссылка на запрос "RegisterHotKey" в гугле... есстественно это MSDN http://msdn.microsoft.com/en-us/library/ms646309(VS.85).aspx
|
|
|
|
A_l_e_k_s |
25.7.2008, 7:25
|

Любит поговорить
Группа: Sibnet-club
Сообщений: 445
Регистрация: 29.5.2008
Из: Новоалтайск
Пользователь №: 34 897

|
Цитата(roma-19951 @ 24.7.2008, 18:35)  Мне нужно чтобы главная форма появлялась на экране (даже когда она свернута в трей) при нажатии,например, клавиши F9.
можно и без хуков, например так if GetAsyncKeyState(VK_F9) <> 0 then но проверять нажатие постоянно придётся
|
|
|
|
|
  |
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|